на главнуюВсе эхи RU.EMACS
войти ?

Re: О сломанном mail-citation-hook в emacs-22.3

От Aleksey Cheusov (2:5020/400) к Alexey Kretov

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


From: Aleksey Cheusov <cheusov@scnsoft.com>

AK> Hello, Aleksey !

AK> Прошу прощения, а вы этим фидошным квотингом emacs gnus не поделитесь?
AK> Hигде никак не найду.

(defun mygnus-email-to-full-name (email)
(cond ((and email (string-match "^\\s-*\"?\\(.*?\\)\"?\\s-*<[^>]+>" email))
(match-string 1 email))
((and email (string-match "(\\s-*\"?\\([^)]+?\\)\"?\\s-*)" email))
(match-string 1 email))
(t "noname")
))

(defun mygnus-full-name-to-initials (full-name)
(let ((splitted-name
(delete "" (split-string (if full-name full-name "") "\\s-+"))))
(mapconcat (lambda (s) (substring s 0 1))
(if splitted-name splitted-name "")
"")))

(defun mygnus-citation ()
(let* ((beg (point))
(end (mark t))
(from (message-fetch-reply-field "From"))
(newsgroup (message-fetch-reply-field "Newsgroups"))
(initials (mygnus-full-name-to-initials
(mygnus-email-to-full-name from)))
(initials (concat " " initials))
)
(save-excursion
(if (or (null newsgroup)
(not (string-match "fido7" newsgroup)))
(setq initials ""))
(narrow-to-region beg end)
(goto-char (point-min))
(search-forward "\n\n")
(delete-region (point-min) (point))
(while (not (eobp))
(beginning-of-line)
(unless (eolp)
(if (re-search-forward "^ *\\(\\w*\\)\\(>\\)" (point-at-eol) t)
(replace-match " \\1>\\2")
(insert initials "> ")))
(forward-line 1))
(widen))))

(setq message-cite-function 'message-cite-original)
(add-hook 'mail-citation-hook 'mygnus-citation)

--
Best regards, Aleksey Cheusov.
--- ifmail v.2.15dev5.4
* Origin: Demos online service (2:5020/400)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.EMACS?msgid=<1187324174@chen.chizhovka.net>+aba65ee4