[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/gnus/nndoc.el
From: |
ShengHuo ZHU |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/gnus/nndoc.el |
Date: |
Fri, 21 Jun 2002 14:56:00 -0400 |
Index: emacs/lisp/gnus/nndoc.el
diff -c emacs/lisp/gnus/nndoc.el:1.4 emacs/lisp/gnus/nndoc.el:1.5
*** emacs/lisp/gnus/nndoc.el:1.4 Wed Nov 8 18:19:00 2000
--- emacs/lisp/gnus/nndoc.el Fri Jun 21 14:56:00 2002
***************
*** 1,9 ****
;;; nndoc.el --- single file access for Gnus
! ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <address@hidden>
! ;; Masanobu UMEDA <address@hidden>
;; Keywords: news
;; This file is part of GNU Emacs.
--- 1,9 ----
;;; nndoc.el --- single file access for Gnus
! ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <address@hidden>
! ;; Masanobu UMEDA <address@hidden>
;; Keywords: news
;; This file is part of GNU Emacs.
***************
*** 25,30 ****
--- 25,32 ----
;;; Commentary:
+ ;; For Outlook mail boxes format, see http://mbx2mbox.sourceforge.net/
+
;;; Code:
(require 'nnheader)
***************
*** 41,47 ****
"*Type of the file.
One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
`rfc934', `rfc822-forward', `mime-parts', `standard-digest',
! `slack-digest', `clari-briefs', `nsmail' or `guess'.")
(defvoo nndoc-post-type 'mail
"*Whether the nndoc group is `mail' or `post'.")
--- 43,50 ----
"*Type of the file.
One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
`rfc934', `rfc822-forward', `mime-parts', `standard-digest',
! `slack-digest', `clari-briefs', `nsmail', `outlook', `oe-dbx',
! `mailman', `exim-bounce', or `guess'.")
(defvoo nndoc-post-type 'mail
"*Whether the nndoc group is `mail' or `post'.")
***************
*** 55,60 ****
--- 58,66 ----
`((mmdf
(article-begin . "^\^A\^A\^A\^A\n")
(body-end . "^\^A\^A\^A\^A\n"))
+ (exim-bounce
+ (article-begin . "^------ This is a copy of the message, including all
the headers. ------\n\n")
+ (body-end-function . nndoc-exim-bounce-body-end-function))
(nsmail
(article-begin . "^From - "))
(news
***************
*** 70,83 ****
(body-end . "\^_")
(body-begin-function . nndoc-babyl-body-begin)
(head-begin-function . nndoc-babyl-head-begin))
- (forward
- (article-begin . "^-+ \\(Start of \\)?forwarded message.*\n+")
- (body-end . "^-+ End \\(of \\)?forwarded message.*$")
- (prepare-body-function . nndoc-unquote-dashes))
(rfc934
(article-begin . "^--.*\n+")
(body-end . "^--.*$")
(prepare-body-function . nndoc-unquote-dashes))
(clari-briefs
(article-begin . "^ \\*")
(body-end . "^\t------*[ \t]^*\n^ \\*")
--- 76,89 ----
(body-end . "\^_")
(body-begin-function . nndoc-babyl-body-begin)
(head-begin-function . nndoc-babyl-head-begin))
(rfc934
(article-begin . "^--.*\n+")
(body-end . "^--.*$")
(prepare-body-function . nndoc-unquote-dashes))
+ (mailman
+ (article-begin . "^--__--__--\n\nMessage:")
+ (body-end . "^--__--__--$")
+ (prepare-body-function . nndoc-unquote-dashes))
(clari-briefs
(article-begin . "^ \\*")
(body-end . "^\t------*[ \t]^*\n^ \\*")
***************
*** 117,124 ****
(head-begin . "^Paper.*:")
(head-end . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
(body-begin . "")
! (body-end . "-------------------------------------------------")
! (file-end . "^Title: Recent Seminal")
(generate-head-function . nndoc-generate-lanl-gov-head)
(article-transform-function . nndoc-transform-lanl-gov-announce)
(subtype preprints guess))
--- 123,130 ----
(head-begin . "^Paper.*:")
(head-end . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
(body-begin . "")
! (body-end .
"\\(-------------------------------------------------\\|%-%-%-%-%-%-%-%-%-%-%-%-%-%-\\|%%--%%--%%--%%--%%--%%--%%--%%--\\|%%%---%%%---%%%---%%%---\\)")
! (file-end . "\\(^Title: Recent Seminal\\|%%%---%%%---%%%---%%%---\\)")
(generate-head-function . nndoc-generate-lanl-gov-head)
(article-transform-function . nndoc-transform-lanl-gov-announce)
(subtype preprints guess))
***************
*** 128,133 ****
--- 134,149 ----
(outlook
(article-begin-function . nndoc-outlook-article-begin)
(body-end . "\0"))
+ (oe-dbx ;; Outlook Express DBX format
+ (dissection-function . nndoc-oe-dbx-dissection)
+ (generate-head-function . nndoc-oe-dbx-generate-head)
+ (generate-article-function . nndoc-oe-dbx-generate-article))
+ (forward
+ (article-begin . "^-+ \\(Start of \\)?forwarded message.*\n+")
+ (body-end . "^-+ End \\(of \\)?forwarded message.*$")
+ (prepare-body-function . nndoc-unquote-dashes))
+ (mail-in-mail ;; Wild guess on mailer daemon's messages or others
+ (article-begin-function . nndoc-mail-in-mail-article-begin))
(guess
(guess . t)
(subtype nil))
***************
*** 138,143 ****
--- 154,162 ----
(guess . t)
(subtype nil))))
+ (defvar nndoc-binary-file-names ".[Dd][Bb][Xx]$"
+ "Regexp for binary nndoc file names.")
+
(defvoo nndoc-file-begin nil)
(defvoo nndoc-first-article nil)
***************
*** 163,168 ****
--- 182,189 ----
(defvoo nndoc-generate-head-function nil)
(defvoo nndoc-article-transform-function nil)
(defvoo nndoc-article-begin-function nil)
+ (defvoo nndoc-generate-article-function nil)
+ (defvoo nndoc-dissection-function nil)
(defvoo nndoc-status-string "")
(defvoo nndoc-group-alist nil)
***************
*** 213,220 ****
(set-buffer buffer)
(erase-buffer)
(when entry
! (if (stringp article)
! nil
(insert-buffer-substring
nndoc-current-buffer (car entry) (nth 1 entry))
(insert "\n")
--- 234,244 ----
(set-buffer buffer)
(erase-buffer)
(when entry
! (cond
! ((stringp article) nil)
! (nndoc-generate-article-function
! (funcall nndoc-generate-article-function article))
! (t
(insert-buffer-substring
nndoc-current-buffer (car entry) (nth 1 entry))
(insert "\n")
***************
*** 226,232 ****
(funcall nndoc-prepare-body-function))
(when nndoc-article-transform-function
(funcall nndoc-article-transform-function article))
! t)))))
(deffoo nndoc-request-group (group &optional server dont-check)
"Select news GROUP."
--- 250,256 ----
(funcall nndoc-prepare-body-function))
(when nndoc-article-transform-function
(funcall nndoc-article-transform-function article))
! t))))))
(deffoo nndoc-request-group (group &optional server dont-check)
"Select news GROUP."
***************
*** 246,253 ****
(deffoo nndoc-request-type (group &optional article)
(cond ((not article) 'unknown)
! (nndoc-post-type nndoc-post-type)
! (t 'unknown)))
(deffoo nndoc-close-group (group &optional server)
(nndoc-possibly-change-buffer group server)
--- 270,277 ----
(deffoo nndoc-request-type (group &optional article)
(cond ((not article) 'unknown)
! (nndoc-post-type nndoc-post-type)
! (t 'unknown)))
(deffoo nndoc-close-group (group &optional server)
(nndoc-possibly-change-buffer group server)
***************
*** 299,308 ****
(save-excursion
(set-buffer nndoc-current-buffer)
(erase-buffer)
! (if (stringp nndoc-address)
! (nnheader-insert-file-contents nndoc-address)
! (insert-buffer-substring nndoc-address))
! (run-hooks 'nndoc-open-document-hook))))
;; Initialize the nndoc structures according to this new document.
(when (and nndoc-current-buffer
(not nndoc-dissection-alist))
--- 323,336 ----
(save-excursion
(set-buffer nndoc-current-buffer)
(erase-buffer)
! (if (and (stringp nndoc-address)
! (string-match nndoc-binary-file-names nndoc-address))
! (let ((coding-system-for-read 'binary))
! (mm-insert-file-contents nndoc-address))
! (if (stringp nndoc-address)
! (nnheader-insert-file-contents nndoc-address)
! (insert-buffer-substring nndoc-address))
! (run-hooks 'nndoc-open-document-hook)))))
;; Initialize the nndoc structures according to this new document.
(when (and nndoc-current-buffer
(not nndoc-dissection-alist))
***************
*** 331,337 ****
nndoc-body-begin nndoc-body-end-function nndoc-body-end
nndoc-prepare-body-function nndoc-article-transform-function
nndoc-generate-head-function nndoc-body-begin-function
! nndoc-head-begin-function)))
(while vars
(set (pop vars) nil)))
(let (defs)
--- 359,367 ----
nndoc-body-begin nndoc-body-end-function nndoc-body-end
nndoc-prepare-body-function nndoc-article-transform-function
nndoc-generate-head-function nndoc-body-begin-function
! nndoc-head-begin-function
! nndoc-generate-article-function
! nndoc-dissection-function)))
(while vars
(set (pop vars) nil)))
(let (defs)
***************
*** 436,446 ****
t))
(defun nndoc-forward-type-p ()
! (when (and (re-search-forward "^-+ \\(Start of \\)?forwarded message.*\n+"
nil t)
! (not (re-search-forward "^Subject:.*digest" nil t))
! (not (re-search-backward "^From:" nil t 2))
! (not (re-search-forward "^From:" nil t 2)))
t))
(defun nndoc-rfc934-type-p ()
--- 466,474 ----
t))
(defun nndoc-forward-type-p ()
! (when (and (re-search-forward "^-+ \\(Start of \\)?forwarded message.*\n+"
nil t)
! (looking-at "[\r\n]*[a-zA-Z][a-zA-Z0-9-]*:"))
t))
(defun nndoc-rfc934-type-p ()
***************
*** 450,455 ****
--- 478,487 ----
(not (re-search-forward "^From:" nil t 2)))
t))
+ (defun nndoc-mailman-type-p ()
+ (when (re-search-forward "^--__--__--\n+" nil t)
+ t))
+
(defun nndoc-rfc822-forward-type-p ()
(save-restriction
(message-narrow-to-head)
***************
*** 520,525 ****
--- 552,564 ----
(insert "From: " "address@hidden (" (or from "unknown") ")"
"\nSubject: " (or subject "(no subject)") "\n")))
+ (defun nndoc-exim-bounce-type-p ()
+ (and (re-search-forward "^------ This is a copy of the message, including
all the headers. ------" nil t)
+ t))
+
+ (defun nndoc-exim-bounce-body-end-function ()
+ (goto-char (point-max)))
+
(defun nndoc-mime-digest-type-p ()
(let ((case-fold-search t)
***************
*** 540,546 ****
(cons 'body-begin "^ ?\n")
(cons 'article-begin b-delimiter)
(cons 'body-end-function 'nndoc-digest-body-end)
! (cons 'file-end (concat "\n--" boundary-id "--[ \t]*$"))))
t)))
(defun nndoc-standard-digest-type-p ()
--- 579,585 ----
(cons 'body-begin "^ ?\n")
(cons 'article-begin b-delimiter)
(cons 'body-end-function 'nndoc-digest-body-end)
! (cons 'file-end (concat "^--" boundary-id "--[ \t]*$"))))
t)))
(defun nndoc-standard-digest-type-p ()
***************
*** 558,592 ****
(defun nndoc-lanl-gov-announce-type-p ()
(when (let ((case-fold-search nil))
! (re-search-forward "^\\\\\\\\\nPaper: [a-z-]+/[0-9]+" nil t))
t))
(defun nndoc-transform-lanl-gov-announce (article)
(goto-char (point-max))
! (when (re-search-backward "^\\\\\\\\ +(\\([^ ]*\\) , *\\([^ ]*\\))" nil t)
! (replace-match "\n\nGet it at \\1 (\\2)" t nil)))
(defun nndoc-generate-lanl-gov-head (article)
(let ((entry (cdr (assq article nndoc-dissection-alist)))
! (e-mail "no address given")
! subject from)
(save-excursion
(set-buffer nndoc-current-buffer)
(save-restriction
! (narrow-to-region (car entry) (nth 1 entry))
! (goto-char (point-min))
! (when (looking-at "^Paper.*: \\([a-z-]+/[0-9]+\\)")
! (setq subject (concat " (" (match-string 1) ")"))
! (when (re-search-forward "^From: \\([^ ]+\\)" nil t)
! (setq e-mail (match-string 1)))
! (when (re-search-forward "^Title: \\([^\f]*\\)\nAuthors?: \\(.*\\)"
! nil t)
! (setq subject (concat (match-string 1) subject))
! (setq from (concat (match-string 2) " <" e-mail ">"))))))
(while (and from (string-match "(\[^)\]*)" from))
(setq from (replace-match "" t t from)))
(insert "From: " (or from "unknown")
! "\nSubject: " (or subject "(no subject)") "\n")))
(defun nndoc-nsmail-type-p ()
(when (looking-at "From - ")
--- 597,650 ----
(defun nndoc-lanl-gov-announce-type-p ()
(when (let ((case-fold-search nil))
! (re-search-forward "^\\\\\\\\\nPaper\\( (\\*cross-listing\\*)\\)?:
[a-zA-Z-\\.]+/[0-9]+" nil t))
t))
(defun nndoc-transform-lanl-gov-announce (article)
(goto-char (point-max))
! (when (re-search-backward "^\\\\\\\\ +( *\\([^ ]*\\) , *\\([^ ]*\\))" nil t)
! (replace-match "\n\nGet it at \\1 (\\2)" t nil))
! (goto-char (point-min))
! (while (re-search-forward "^\\\\\\\\$" nil t)
! (replace-match "" t nil))
! (goto-char (point-min))
! (when (re-search-forward "^replaced with revised version +\\(.*[^ ]\\) +"
nil t)
! (replace-match "Date: \\1 (revised) " t nil))
! (goto-char (point-min))
! (unless (re-search-forward "^From" nil t)
! (goto-char (point-min))
! (when (re-search-forward "^Authors?: \\(.*\\)" nil t)
! (goto-char (point-min))
! (insert "From: " (match-string 1) "\n"))))
(defun nndoc-generate-lanl-gov-head (article)
(let ((entry (cdr (assq article nndoc-dissection-alist)))
! (from "<no address given>")
! subject date)
(save-excursion
(set-buffer nndoc-current-buffer)
(save-restriction
! (narrow-to-region (car entry) (nth 1 entry))
! (goto-char (point-min))
! (when (looking-at "^Paper.*: \\([a-zA-Z-\\.]+/[0-9]+\\)")
! (setq subject (concat " (" (match-string 1) ")"))
! (when (re-search-forward "^From: \\(.*\\)" nil t)
! (setq from (concat "<"
! (cadr (funcall gnus-extract-address-components
! (match-string 1))) ">")))
! (if (re-search-forward "^Date: +\\([^(]*\\)" nil t)
! (setq date (match-string 1))
! (when (re-search-forward "^replaced with revised version
+\\([^(]*\\)" nil t)
! (setq date (match-string 1))))
! (when (re-search-forward "^Title: \\([^\f]*\\)\nAuthors?: \\(.*\\)"
! nil t)
! (setq subject (concat (match-string 1) subject))
! (setq from (concat (match-string 2) " " from))))))
(while (and from (string-match "(\[^)\]*)" from))
(setq from (replace-match "" t t from)))
(insert "From: " (or from "unknown")
! "\nSubject: " (or subject "(no subject)") "\n")
! (if date (insert "Date: " date))))
(defun nndoc-nsmail-type-p ()
(when (looking-at "From - ")
***************
*** 600,609 ****
;; FIXME: Is JMF the magic of outlook mailbox? -- ShengHuo.
(looking-at "JMF"))
(deffoo nndoc-request-accept-article (group &optional server last)
nil)
-
;;;
;;; Functions for dissecting the documents
;;;
--- 658,763 ----
;; FIXME: Is JMF the magic of outlook mailbox? -- ShengHuo.
(looking-at "JMF"))
+ (defun nndoc-oe-dbx-type-p ()
+ (looking-at (mm-string-as-multibyte "\317\255\022\376")))
+
+ (defun nndoc-read-little-endian ()
+ (+ (prog1 (char-after) (forward-char 1))
+ (lsh (prog1 (char-after) (forward-char 1)) 8)
+ (lsh (prog1 (char-after) (forward-char 1)) 16)
+ (lsh (prog1 (char-after) (forward-char 1)) 24)))
+
+ (defun nndoc-oe-dbx-decode-block ()
+ (list
+ (nndoc-read-little-endian) ;; this address
+ (nndoc-read-little-endian) ;; next address offset
+ (nndoc-read-little-endian) ;; blocksize
+ (nndoc-read-little-endian))) ;; next address
+
+ (defun nndoc-oe-dbx-dissection ()
+ (let ((i 0) blk p tp)
+ (goto-char 60117) ;; 0x0000EAD4+1
+ (setq p (point))
+ (unless (eobp)
+ (setq blk (nndoc-oe-dbx-decode-block)))
+ (while (and blk (> (car blk) 0) (or (zerop (nth 3 blk))
+ (> (nth 3 blk) p)))
+ (push (list (incf i) p nil nil nil 0) nndoc-dissection-alist)
+ (while (and (> (car blk) 0) (> (nth 3 blk) p))
+ (goto-char (1+ (nth 3 blk)))
+ (setq blk (nndoc-oe-dbx-decode-block)))
+ (if (or (<= (car blk) p)
+ (<= (nth 1 blk) 0)
+ (not (zerop (nth 3 blk))))
+ (setq blk nil)
+ (setq tp (+ (car blk) (nth 1 blk) 17))
+ (if (or (<= tp p) (>= tp (point-max)))
+ (setq blk nil)
+ (goto-char tp)
+ (setq p tp
+ blk (nndoc-oe-dbx-decode-block)))))))
+
+ (defun nndoc-oe-dbx-generate-article (article &optional head)
+ (let ((entry (cdr (assq article nndoc-dissection-alist)))
+ (cur (current-buffer))
+ (begin (point))
+ blk p)
+ (with-current-buffer nndoc-current-buffer
+ (setq p (car entry))
+ (while (> p (point-min))
+ (goto-char p)
+ (setq blk (nndoc-oe-dbx-decode-block))
+ (setq p (point))
+ (with-current-buffer cur
+ (insert-buffer-substring nndoc-current-buffer p (+ p (nth 2 blk))))
+ (setq p (1+ (nth 3 blk)))))
+ (goto-char begin)
+ (while (re-search-forward "\r$" nil t)
+ (delete-backward-char 1))
+ (when head
+ (goto-char begin)
+ (when (search-forward "\n\n" nil t)
+ (setcar (cddddr entry) (count-lines (point) (point-max)))
+ (delete-region (1- (point)) (point-max))))
+ t))
+
+ (defun nndoc-oe-dbx-generate-head (article)
+ (nndoc-oe-dbx-generate-article article 'head))
+
+ (defun nndoc-mail-in-mail-type-p ()
+ (let (found)
+ (save-excursion
+ (catch 'done
+ (while (re-search-forward "\n\n[-A-Za-z0-9]+:" nil t)
+ (setq found 0)
+ (forward-line)
+ (while (looking-at "[ \t]\\|[-A-Za-z0-9]+:")
+ (if (looking-at "[-A-Za-z0-9]+:")
+ (setq found (1+ found)))
+ (forward-line))
+ (if (and (> found 0) (looking-at "\n"))
+ (throw 'done 9999)))
+ nil))))
+
+ (defun nndoc-mail-in-mail-article-begin ()
+ (let (point found)
+ (if (catch 'done
+ (while (re-search-forward "\n\n\\([-A-Za-z0-9]+:\\)" nil t)
+ (setq found 0)
+ (setq point (match-beginning 1))
+ (forward-line)
+ (while (looking-at "[ \t]\\|[-A-Za-z0-9]+:")
+ (if (looking-at "[-A-Za-z0-9]+:")
+ (setq found (1+ found)))
+ (forward-line))
+ (if (and (> found 0) (looking-at "\n"))
+ (throw 'done t)))
+ nil)
+ (goto-char point))))
+
(deffoo nndoc-request-accept-article (group &optional server last)
nil)
;;;
;;; Functions for dissecting the documents
;;;
***************
*** 625,667 ****
;; Remove blank lines.
(while (eq (following-char) ?\n)
(delete-char 1))
! ;; Find the beginning of the file.
! (when nndoc-file-begin
! (nndoc-search nndoc-file-begin))
! ;; Go through the file.
! (while (if (and first nndoc-first-article)
! (nndoc-search nndoc-first-article)
! (nndoc-article-begin))
! (setq first nil)
! (cond (nndoc-head-begin-function
! (funcall nndoc-head-begin-function))
! (nndoc-head-begin
! (nndoc-search nndoc-head-begin)))
! (if (or (eobp)
! (and nndoc-file-end
! (looking-at nndoc-file-end)))
! (goto-char (point-max))
! (setq head-begin (point))
! (nndoc-search (or nndoc-head-end "^$"))
! (setq head-end (point))
! (if nndoc-body-begin-function
! (funcall nndoc-body-begin-function)
! (nndoc-search (or nndoc-body-begin "^\n")))
! (setq body-begin (point))
! (or (and nndoc-body-end-function
! (funcall nndoc-body-end-function))
! (and nndoc-body-end
! (nndoc-search nndoc-body-end))
! (nndoc-article-begin)
! (progn
! (goto-char (point-max))
! (when nndoc-file-end
! (and (re-search-backward nndoc-file-end nil t)
! (beginning-of-line)))))
! (setq body-end (point))
! (push (list (incf i) head-begin head-end body-begin body-end
! (count-lines body-begin body-end))
! nndoc-dissection-alist))))))
(defun nndoc-article-begin ()
(if nndoc-article-begin-function
--- 779,823 ----
;; Remove blank lines.
(while (eq (following-char) ?\n)
(delete-char 1))
! (if nndoc-dissection-function
! (funcall nndoc-dissection-function)
! ;; Find the beginning of the file.
! (when nndoc-file-begin
! (nndoc-search nndoc-file-begin))
! ;; Go through the file.
! (while (if (and first nndoc-first-article)
! (nndoc-search nndoc-first-article)
! (nndoc-article-begin))
! (setq first nil)
! (cond (nndoc-head-begin-function
! (funcall nndoc-head-begin-function))
! (nndoc-head-begin
! (nndoc-search nndoc-head-begin)))
! (if (or (eobp)
! (and nndoc-file-end
! (looking-at nndoc-file-end)))
! (goto-char (point-max))
! (setq head-begin (point))
! (nndoc-search (or nndoc-head-end "^$"))
! (setq head-end (point))
! (if nndoc-body-begin-function
! (funcall nndoc-body-begin-function)
! (nndoc-search (or nndoc-body-begin "^\n")))
! (setq body-begin (point))
! (or (and nndoc-body-end-function
! (funcall nndoc-body-end-function))
! (and nndoc-body-end
! (nndoc-search nndoc-body-end))
! (nndoc-article-begin)
! (progn
! (goto-char (point-max))
! (when nndoc-file-end
! (and (re-search-backward nndoc-file-end nil t)
! (beginning-of-line)))))
! (setq body-end (point))
! (push (list (incf i) head-begin head-end body-begin body-end
! (count-lines body-begin body-end))
! nndoc-dissection-alist)))))))
(defun nndoc-article-begin ()
(if nndoc-article-begin-function
***************
*** 736,741 ****
--- 892,901 ----
(unless article-insert
(setq article-insert (buffer-substring (point-min) (point-max))
head-end head-begin))
+ ;; Fix MIME-Version
+ (unless (string-match "MIME-Version:" article-insert)
+ (setq article-insert
+ (concat article-insert "MIME-Version: 1.0\n")))
(setq summary-insert article-insert)
;; - summary Subject.
(setq summary-insert
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/gnus/nndoc.el,
ShengHuo ZHU <=