[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
More on format=flowed
From: |
Yuri D'Elia |
Subject: |
More on format=flowed |
Date: |
Sun, 02 Jan 2011 16:59:20 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
In my quest for format=flowed, I *think* I've come up with a workable
solution by using the following:
---
(defun harden-newlines ()
(save-excursion
(goto-char (point-min))
(while (search-forward "\n" nil t)
(put-text-property (1- (point)) (point) 'hard t))))
(setq fill-flowed-display-column nil)
(add-hook 'message-setup-hook
(lambda ()
(when message-this-is-mail
(turn-off-auto-fill)
(setq
truncate-lines nil
word-wrap t
use-hard-newlines t))))
(add-hook 'message-send-hook
(lambda ()
(when use-hard-newlines
(harden-newlines))))
(add-hook 'gnus-article-mode-hook
(lambda ()
(setq
truncate-lines nil
word-wrap t)))
---
The idea behind it:
- `fill-flowed-display-column' will unwrap flowed message as expected.
Apparently, the current code in flow-fill.el has problems with long
quoted text (not all lines are correctly unfolded, but this doesn't
affect the usability of the message).
- `gnus-article-mode-hook' will wrap flowed messages using word-wrap
instead. This works nicely.
- In `message-setup-hook' again we turn on the built-in worp-wrap,
disable auto-fill and set use-hard-newlines silently. Those are set
for mail messages only, though I've verified that flowed messages also
work on gmane groups (gmane.test).
- The magic is really done i `message-send-hook', where all newlines are
replaced with hard newlines. This way the existing message, and more
importantly, pasted text lacking 'hard' newlines will be preserved.
All long lines will be wrapped at `fill-flowed-encode-column' since
`use-hard-newlines' was already turned on earlier.
That's *much* harder than calling (use-hard-newlines) to use
format=flowed all around. Yet, it seems to work. Maybe.
Comments?
- More on format=flowed,
Yuri D'Elia <=