(nndoc-transform-git-headers): Generate Subject headers.
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Tue, 19 Oct 2010 22:38:49 +0000 (00:38 +0200)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Tue, 19 Oct 2010 22:38:49 +0000 (00:38 +0200)
lisp/ChangeLog
lisp/nndoc.el

index 035dbc3..769bd16 100644 (file)
@@ -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.
index 5d946f5..9f147e3 100644 (file)
@@ -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))