From: Lars Magne Ingebrigtsen Date: Tue, 19 Oct 2010 22:38:49 +0000 (+0200) Subject: (nndoc-transform-git-headers): Generate Subject headers. X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=ef8c9fbe38698f986c26ff81d39411f8627b9f3b (nndoc-transform-git-headers): Generate Subject headers. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 035dbc398..769bd1618 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -4,6 +4,7 @@ (nndoc-git-type-p): New function. (nndoc-transform-git-article): Ditto. (nndoc-transform-git-headers): Ditto. + (nndoc-transform-git-headers): Generate Subject headers. * shr.el (shr-parse-style): New function. (shr-tag-span): Ditto. diff --git a/lisp/nndoc.el b/lisp/nndoc.el index 5d946f5a6..9f147e32b 100644 --- a/lisp/nndoc.el +++ b/lisp/nndoc.el @@ -232,19 +232,22 @@ from the document.") (while articles (when (setq entry (cdr (assq (setq article (pop articles)) nndoc-dissection-alist))) - (insert (format "221 %d Article retrieved.\n" article)) - (if nndoc-generate-head-function - (funcall nndoc-generate-head-function article) - (insert-buffer-substring - nndoc-current-buffer (car entry) (nth 1 entry))) - (goto-char (point-max)) - (unless (eq (char-after (1- (point))) ?\n) - (insert "\n")) - (insert (format "Lines: %d\n" (nth 4 entry))) - (insert ".\n"))) - - (when nndoc-header-transform-function - (funcall nndoc-header-transform-function)) + (let ((start (point))) + (insert (format "221 %d Article retrieved.\n" article)) + (if nndoc-generate-head-function + (funcall nndoc-generate-head-function article) + (insert-buffer-substring + nndoc-current-buffer (car entry) (nth 1 entry))) + (goto-char (point-max)) + (unless (eq (char-after (1- (point))) ?\n) + (insert "\n")) + (insert (format "Lines: %d\n" (nth 4 entry))) + (insert ".\n") + (when nndoc-header-transform-function + (save-excursion + (save-restriction + (narrow-to-region start (point)) + (funcall nndoc-header-transform-function entry))))))) (nnheader-fold-continuation-lines) 'headers))))) @@ -671,10 +674,19 @@ from the document.") (when (re-search-forward "^Author: " nil t) (replace-match "From: " t t))) -(defun nndoc-transform-git-headers () +(defun nndoc-transform-git-headers (entry) (goto-char (point-min)) - (while (re-search-forward "^Author: " nil t) - (replace-match "From: " t t))) + (when (re-search-forward "^Author: " nil t) + (replace-match "From: " t t)) + (let (subject) + (with-current-buffer nndoc-current-buffer + (goto-char (car entry)) + (when (search-forward "\n\n" nil t) + (setq subject (buffer-substring (point) (line-end-position))))) + (when subject + (goto-char (point-min)) + (forward-line 1) + (insert (format "Subject: %s\n" subject))))) (defun nndoc-lanl-gov-announce-type-p () (when (let ((case-fold-search nil))