From 3dd0d75daea81f18f28c1363db77a29627376882 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Wed, 8 Aug 2001 02:12:51 +0000 Subject: [PATCH] Synch with Oort Gnus. --- GNUS-NEWS | 2 + lisp/ChangeLog | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-art.el | 44 +++++++++++--------- lisp/gnus-cache.el | 41 +++++++++++++++---- lisp/gnus-group.el | 2 +- lisp/gnus-sum.el | 20 ++++++++-- lisp/gnus-util.el | 11 +++-- lisp/message.el | 30 +++++++++++--- lisp/mm-decode.el | 3 +- lisp/mm-util.el | 3 +- lisp/mm-uu.el | 2 +- lisp/mm-view.el | 12 ++++-- lisp/mml.el | 12 +++--- lisp/mml2015.el | 2 +- lisp/nnmail.el | 9 +++-- lisp/smime.el | 10 ++++- texi/ChangeLog | 9 +++++ texi/gnus-ja.texi | 22 +++++++++- texi/gnus.texi | 23 ++++++++++- 19 files changed, 310 insertions(+), 60 deletions(-) diff --git a/GNUS-NEWS b/GNUS-NEWS index 6334597..f780719 100644 --- a/GNUS-NEWS +++ b/GNUS-NEWS @@ -8,6 +8,8 @@ For older news, see Gnus info node "New Features". * Changes in Oort Gnus +** Menu bar: "Misc" -> "Gnus". + ** gnus-group-charset-alist and gnus-group-ignored-charsets-alist The regexps in these variables are compared with full group names diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 95ef95b..8caf5d3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,116 @@ +2001-08-04 Nuutti Kotivuori + Committed by ShengHuo ZHU + + * gnus-sum.el (gnus-summary-show-article): Call + gnus-summary-update-secondary-secondary-mark. + * gnus-sum.el (gnus-summary-edit-article-done): Ditto. + * gnus-sum.el (gnus-summary-reparent-thread): Ditto. + +2001-08-07 16:00:00 ShengHuo ZHU + + * gnus-sum.el (gnus-summary-make-menu-bar): Misc -> Gnus. + + * gnus-group.el (gnus-group-make-menu-bar): Ditto. + + * mm-uu.el (mm-uu-dissect): Autoload. From Gerd M,Av(Bllmann + . + + * gnus-art.el (gnus-output-to-file): Bind file-name-coding-system. + + * gnus-util.el (gnus-output-to-rmail): Ditto. + (gnus-output-to-mail): Ditto. + + * nnmail.el (nnmail-pathname-coding-system): Set default to nil. + +2001-08-06 Florian Weimer + + * message.el (message-indent-citation): Use + `message-yank-cited-prefix' for empty lines. + +2001-08-05 Florian Weimer + + * message.el (message-indent-citation): Quote only lines starting + with ">" using `message-yank-cited-prefix'. + +2001-08-05 Nuutti Kotivuori + + * gnus-cache.el (gnus-cache-possibly-enter-article): Use + gnus-cache-fully-p. + +2001-08-04 Simon Josefsson + + * gnus-cache.el (gnus-cache-possibly-update-active): Create active + file if it doesn't exist (by calling gnus-cache-read-active). + +2001-08-04 Simon Josefsson + + * gnus-cache.el (gnus-cache-possibly-enter-article): Revert. + (gnus-cache-passively-or-fully-p): Removed. + (gnus-cache-fully-p): Fix it. + + * mm-view.el (mm-pkcs7-signed-magic): Support more ASN.1 lengths. + +2001-08-04 Simon Josefsson + + * gnus-cache.el (gnus-cache-fully-p) + (gnus-cache-passively-or-fully-p): New functions. + (gnus-cache-possibly-enter-article): Cosmetic change, use + `g-c-p-o-f-p'. + (gnus-cache-possibly-enter-article): Use `g-c-p-u-a'; last change + was bogus (`g-c-p-a-a' does not change active info, just change + the functions parameters). + (gnus-cache-possibly-remove-articles-1): Make sure articles are + not removed in groups that match `gnus-uncacheable-groups'. + + Reported and modifications based on discussions with Nuutti + Kotivuori . + +2001-08-04 Nuutti Kotivuori + Committed by Simon Josefsson + + * gnus-cache.el (gnus-cache-possibly-update-active): New function; + calls `gnus-cache-update-active' if bounds has been extended. + +2001-08-04 10:00:00 ShengHuo ZHU + + * gnus-art.el (gnus-mime-security-verify-or-decrypt): Insert + before remove. + (gnus-mime-security-show-details): Ditto. + +2001-08-04 Kai Gro,A_(Bjohann + + * nnmail.el (nnmail-split-fancy-with-parent): Correct `mapconcat' + syntax. Protect string-match against nil string and regexp. + +2001-08-03 19:00:00 ShengHuo ZHU + + * mm-util.el (mm-find-charset-region): Remove control-1. + +2001-08-03 17:00:00 ShengHuo ZHU + + * mm-decode.el (mm-readable-p): Emacs 20 takes one argument. + +2001-08-04 Simon Josefsson + + * smime.el (smime-sign-region, smime-encrypt-region): Fix details + buffer. Delete MIME-Version header. + +2001-08-03 Simon Josefsson + + * gnus-cache.el (gnus-cache-possibly-enter-article): The article + that is entered does not necessarily have the highest article + number in the group, so use `gnus-cache-possibly-alter-active' + instead of `gnus-cache-update-active'. + +2001-08-03 10:00:00 ShengHuo ZHU + + * mml2015.el (mml2015-gpg-extract-signature-details): Don't barf. + +2001-08-03 Simon Josefsson + + * mml.el (mml-menu): Rename from MML to Mime. Collapse Security + menu. + 2001-08-02 Katsumi Yamaoka * gnus.el (post-method): New group parameter. It also provides diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index c864119..1819a7f 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -4466,7 +4466,9 @@ Provided for backwards compatibility." ;; save it to file. (goto-char (point-max)) (insert "\n") - (write-region-as-binary (point-min) (point-max) file-name 'append) + (let ((file-name-coding-system nnmail-pathname-coding-system) + (pathname-coding-system nnmail-pathname-coding-system)) + (write-region-as-binary (point-min) (point-max) file-name 'append)) t))) (defun gnus-narrow-to-page (&optional arg) @@ -5642,8 +5644,8 @@ specified by `gnus-button-alist'." (if (not (string-match "[:/]" address)) ;; This is just a simple group url. (gnus-group-read-ephemeral-group address gnus-select-method) - (if (not - (string-match + (if (not + (string-match "^\\([^:/]+\\)\\(:\\([^/]+\\)\\)?/\\([^/]+\\)\\(/\\([0-9]+\\)\\)?" address)) (error "Can't parse %s" address) @@ -6072,21 +6074,25 @@ For example: (defun gnus-mime-security-verify-or-decrypt (handle) (mm-remove-parts (cdr handle)) (let ((region (mm-handle-multipart-ctl-parameter handle 'gnus-region)) - buffer-read-only) + point buffer-read-only) + (if region + (goto-char (car region))) + (save-restriction + (narrow-to-region (point) (point)) + (with-current-buffer (mm-handle-multipart-original-buffer handle) + (let* ((mm-verify-option 'known) + (mm-decrypt-option 'known) + (nparts (mm-possibly-verify-or-decrypt (cdr handle) handle))) + (unless (eq nparts (cdr handle)) + (mm-destroy-parts (cdr handle)) + (setcdr handle nparts)))) + (setq point (point)) + (gnus-mime-display-security handle) + (goto-char (point-max))) (when region - (delete-region (car region) (cdr region)) + (delete-region (point) (cdr region)) (set-marker (car region) nil) - (set-marker (cdr region) nil))) - (with-current-buffer (mm-handle-multipart-original-buffer handle) - (let* ((mm-verify-option 'known) - (mm-decrypt-option 'known) - (nparts (mm-possibly-verify-or-decrypt (cdr handle) handle))) - (unless (eq nparts (cdr handle)) - (mm-destroy-parts (cdr handle)) - (setcdr handle nparts)))) - (let ((point (point)) - buffer-read-only) - (gnus-mime-display-security handle) + (set-marker (cdr region) nil)) (goto-char point))) (defun gnus-mime-security-show-details (handle) @@ -6102,13 +6108,15 @@ For example: gnus-mime-security-button-line-format) (forward-char -1)) (forward-char) + (save-restriction + (narrow-to-region (point) (point)) + (gnus-insert-mime-security-button handle)) (delete-region (point) (or (text-property-not-all (point) (point-max) 'gnus-line-format gnus-mime-security-button-line-format) - (point-max))) - (gnus-insert-mime-security-button handle)) + (point-max)))) (if (gnus-buffer-live-p gnus-mime-security-details-buffer) (with-current-buffer gnus-mime-security-details-buffer (erase-buffer) diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 53b4318..e02b157 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -164,11 +164,7 @@ it's not cached." (when (and number (> number 0) ; Reffed article. (or force - (and (or (not gnus-cacheable-groups) - (string-match gnus-cacheable-groups group)) - (or (not gnus-uncacheable-groups) - (not (string-match - gnus-uncacheable-groups group))) + (and (gnus-cache-fully-p group) (gnus-cache-member-of-class gnus-cache-enter-articles ticked dormant unread))) (not (file-exists-p (setq file (gnus-cache-file-name @@ -213,7 +209,7 @@ it's not cached." (nnheader-insert-nov headers) ;; Update the active info. (set-buffer gnus-summary-buffer) - (gnus-cache-update-active group number) + (gnus-cache-possibly-update-active group (cons number number)) (push article gnus-newsgroup-cached) (gnus-summary-update-secondary-mark article)) t)))))) @@ -239,7 +235,7 @@ it's not cached." (defun gnus-cache-possibly-remove-articles-1 () "Possibly remove some of the removable articles." - (unless (eq gnus-use-cache 'passive) + (when (gnus-cache-fully-p gnus-newsgroup-name) (let ((articles gnus-cache-removable-articles) (cache-articles gnus-newsgroup-cached) article) @@ -609,6 +605,24 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache" ;; Mark the active hashtb as unaltered. (setq gnus-cache-active-altered nil))) +(defun gnus-cache-possibly-update-active (group active) + "Update active info bounds of GROUP with ACTIVE if necessary. +The update is performed if ACTIVE contains a higher or lower bound +than the current." + (let ((lower t) (higher t)) + (if gnus-cache-active-hashtb + (let ((cache-active (gnus-gethash group gnus-cache-active-hashtb))) + (when cache-active + (unless (< (car active) (car cache-active)) + (setq lower nil)) + (unless (> (cdr active) (cdr cache-active)) + (setq higher nil)))) + (gnus-cache-read-active)) + (when lower + (gnus-cache-update-active group (car active) t)) + (when higher + (gnus-cache-update-active group (cdr active))))) + (defun gnus-cache-update-active (group number &optional low) "Update the upper bound of the active info of GROUP to NUMBER. If LOW, update the lower bound instead." @@ -683,6 +697,19 @@ If LOW, update the lower bound instead." (interactive "FMove the cache tree to: ") (rename-file gnus-cache-directory dir)) +(defun gnus-cache-fully-p (&optional group) + "Returns non-nil if the cache should be fully used. +If GROUP is non-nil, also cater to `gnus-cacheable-groups' and +`gnus-uncacheable-groups'." + (and gnus-use-cache + (not (eq gnus-use-cache 'passive)) + (if (null group) + t + (and (or (not gnus-cacheable-groups) + (string-match gnus-cacheable-groups group)) + (or (not gnus-uncacheable-groups) + (not (string-match gnus-uncacheable-groups group))))))) + (provide 'gnus-cache) ;;; gnus-cache.el ends here diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index f395607..f974de2 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -857,7 +857,7 @@ simple manner.") (easy-menu-define gnus-group-misc-menu gnus-group-mode-map "" - `("Misc" + `("Gnus" ("SOUP" ["Pack replies" nnsoup-pack-replies (fboundp 'nnsoup-request-group)] ["Send replies" gnus-soup-send-replies diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index a76b6e9..62924f3 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -2020,7 +2020,7 @@ increase the score of each group you read." (easy-menu-define gnus-summary-misc-menu gnus-summary-mode-map "" - `("Misc" + `("Gnus" ("Mark Read" ["Mark as read" gnus-summary-mark-as-read-forward t] ["Mark same subject and select" @@ -7832,7 +7832,10 @@ without any article massaging functions being run." (gnus-data-find (cdr gnus-article-current)) header) (gnus-summary-update-article-line - (cdr gnus-article-current) header)))) + (cdr gnus-article-current) header) + (if (gnus-summary-goto-subject (cdr gnus-article-current) nil t) + (gnus-summary-update-secondary-mark + (cdr gnus-article-current)))))) ((not arg) ;; Select the article the normal way. (gnus-summary-select-article nil 'force)) @@ -8526,10 +8529,17 @@ groups." (gnus-data-find (cdr gnus-article-current)) header) (gnus-summary-update-article-line - (cdr gnus-article-current) header)))))) + (cdr gnus-article-current) header) + (if (gnus-summary-goto-subject + (cdr gnus-article-current) nil t) + (gnus-summary-update-secondary-mark + (cdr gnus-article-current)))))))) ;; Update threads. (set-buffer (or buffer gnus-summary-buffer)) - (gnus-summary-update-article (cdr gnus-article-current))) + (gnus-summary-update-article (cdr gnus-article-current)) + (if (gnus-summary-goto-subject (cdr gnus-article-current) nil t) + (gnus-summary-update-secondary-mark + (cdr gnus-article-current)))) ;; Prettify the article buffer again. (unless no-highlight (save-excursion @@ -9427,6 +9437,8 @@ is non-nil or the Subject: of both articles are the same." (set-buffer gnus-summary-buffer) (gnus-summary-unmark-all-processable) (gnus-summary-update-article current-article) + (if (gnus-summary-goto-subject (cdr gnus-article-current) nil t) + (gnus-summary-update-secondary-mark (cdr gnus-article-current))) (gnus-summary-rethread-current) (gnus-message 3 "Article %d is now the child of article %d" current-article parent-article))))) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index c80bf88..51d4242 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -735,7 +735,10 @@ with potentially long computations." ;; Decide whether to append to a file or to an Emacs buffer. (let ((outbuf (get-file-buffer filename))) (if (not outbuf) - (write-region-as-binary (point-min) (point-max) filename 'append) + (let ((file-name-coding-system nnmail-pathname-coding-system) + (pathname-coding-system nnmail-pathname-coding-system)) + (write-region-as-binary (point-min) (point-max) + filename 'append)) ;; File has been visited, in buffer OUTBUF. (set-buffer outbuf) (let ((buffer-read-only nil) @@ -804,8 +807,10 @@ with potentially long computations." (insert "\n")) (insert "\n")) (goto-char (point-max)) - (write-region-as-binary (point-min) (point-max) - filename 'append))) + (let ((file-name-coding-system nnmail-pathname-coding-system) + (pathname-coding-system nnmail-pathname-coding-system)) + (write-region-as-binary (point-min) (point-max) + filename 'append)))) ;; File has been visited, in buffer OUTBUF. (set-buffer outbuf) (let ((buffer-read-only nil)) diff --git a/lisp/message.el b/lisp/message.el index 5464daa..3e19cc3 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -704,7 +704,7 @@ an article is yanked by the command `message-yank-original' interactively." :group 'message-insertion) (defcustom message-yank-cited-prefix ">" - "*Prefix inserted on cited lines of yanked messages. + "*Prefix inserted on cited or empty lines of yanked messages. Fix `message-cite-prefix-regexp' if it is set to an abnormal value. See also `message-yank-prefix'." :type 'string @@ -2358,11 +2358,31 @@ However, if `message-yank-prefix' is non-nil, insert that prefix on each line." (indent-rigidly start (mark t) message-indentation-spaces) (save-excursion (goto-char start) - (while (< (point) (mark t)) - (if (looking-at message-cite-prefix-regexp) + (let (last-line) + ;; `last-line' describes the contents of the last line + ;; encountered in the loop below. nil means "empty line", + ;; spaces "line consisting entirely of whitespace", + ;; right-angle "line starts with >", quoted "quote character + ;; at the beginning of the line", text "the remaining cases". + (while (< (point) (mark t)) + (cond + ((eolp) (insert message-yank-cited-prefix) - (insert message-yank-prefix)) - (forward-line 1)))) + (setq last-line nil)) + ((looking-at ">") + (if (memq last-line '(nil spaces right-angle quoted)) + (progn + (insert message-yank-cited-prefix) + (setq last-line 'quoted)) + (insert message-yank-prefix) + (setq last-line 'right-angle))) + ((looking-at "\\s-+$") + (insert message-yank-prefix) + (setq last-line 'spaces)) + (t + (insert message-yank-prefix) + (setq last-line 'text))) + (forward-line 1))))) (goto-char start))) (defun message-list-references (refs-list &rest refs-strs) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 1a1363f..8614d4c 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -1304,7 +1304,8 @@ If RECURSIVE, search recursively." (defun mm-readable-p (handle) "Say whether the content of HANDLE is readable." - (and (< (buffer-size (mm-handle-buffer handle)) 10000) + (and (< (with-current-buffer (mm-handle-buffer handle) + (buffer-size)) 10000) (mm-with-unibyte-buffer (mm-insert-part handle) (and (eq (mm-body-7-or-8) '7bit) diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 38da083..50899a3 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -440,7 +440,8 @@ Mule4 only." ;; Remove eight-bit-*, treat them as ascii. (let ((css (find-charset-region b e))) (mapcar (lambda (cs) (setq css (delq cs css))) - '(composition eight-bit-control eight-bit-graphic)) + '(composition eight-bit-control eight-bit-graphic + control-1)) css)) (t ;; We are in a unibyte buffer or XEmacs non-mule, so we futz around a bit. diff --git a/lisp/mm-uu.el b/lisp/mm-uu.el index 0a78298..7c90203 100644 --- a/lisp/mm-uu.el +++ b/lisp/mm-uu.el @@ -371,7 +371,7 @@ Return that buffer." (mm-make-handle buf '("application/pgp-keys")))) -;;;### autoload +;;;###autoload (defun mm-uu-dissect () "Dissect the current buffer and return a list of uu handles." (let ((case-fold-search t) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 9e6a729..9ff9428 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -326,8 +326,10 @@ (mm-string-as-unibyte (apply 'concat (mapcar 'char-to-string - (list ?\x30 ?\x82 ?\x2e ?\x2e ?\x06 ?\x09 ?\x5c ?\x2a - ?\x86 ?\x48 ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x02))))) + (list ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c + ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e + ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48 + ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x02))))) ;; id-envelopedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) ;; us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3 } @@ -335,8 +337,10 @@ (mm-string-as-unibyte (apply 'concat (mapcar 'char-to-string - (list ?\x30 ?\x82 ?\x2e ?\x2e ?\x06 ?\x09 ?\x5c ?\x2a - ?\x86 ?\x48 ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x03))))) + (list ?\x30 ?\x5c ?\x28 ?\x80 ?\x5c ?\x7c ?\x81 ?\x2e ?\x5c + ?\x7c ?\x82 ?\x2e ?\x2e ?\x5c ?\x7c ?\x83 ?\x2e ?\x2e + ?\x2e ?\x5c ?\x29 ?\x06 ?\x09 ?\x5c ?\x2a ?\x86 ?\x48 + ?\x86 ?\xf7 ?\x0d ?\x01 ?\x07 ?\x03))))) (defun mm-view-pkcs7-get-type (handle) (mm-with-unibyte-buffer diff --git a/lisp/mml.el b/lisp/mml.el index 89cc6f4..2757551 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -720,7 +720,7 @@ If HANDLES is non-nil, use it instead reparsing the buffer." (easy-menu-define mml-menu mml-mode-map "" - '("MML" + '("Mime" ("Attach" ["File" mml-attach-file t] ["Buffer" mml-attach-buffer t] @@ -729,12 +729,10 @@ If HANDLES is non-nil, use it instead reparsing the buffer." ["Multipart" mml-insert-multipart t] ["Part" mml-insert-part t]) ("Security" - ("Sign" - ["PGP/MIME" mml-secure-sign-pgpmime t] - ["S/MIME" mml-secure-sign-smime t]) - ("Encrypt" - ["PGP/MIME" mml-secure-encrypt-pgpmime t] - ["S/MIME" mml-secure-encrypt-smime t])) + ["Sign PGP/MIME" mml-secure-sign-pgpmime t] + ["Sign S/MIME" mml-secure-sign-smime t] + ["Encrypt PGP/MIME" mml-secure-encrypt-pgpmime t] + ["Encrypt S/MIME" mml-secure-encrypt-smime t]) ;;["Narrow" mml-narrow-to-part t] ["Quote" mml-quote-region t] ["Validate" mml-validate t] diff --git a/lisp/mml2015.el b/lisp/mml2015.el index cd3c628..a16a4e5 100644 --- a/lisp/mml2015.el +++ b/lisp/mml2015.el @@ -422,7 +422,7 @@ by you.") (unless trust-good-enough-p (concat "\nUntrusted, Fingerprint: " (mml2015-gpg-pretty-print-fpr fprint)))) - (error "From unknown user"))) + "From unknown user")) (if (re-search-forward "^gpg: Good signature from \"\\(.*\\)\"$" nil t) (match-string 1) "From unknown user"))) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index f9bdcc8..b57a426 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -478,7 +478,7 @@ parameter. It should return nil, `warn' or `delete'." nnheader-text-coding-system "Coding system used in reading inbox") -(defvar nnmail-pathname-coding-system 'binary +(defvar nnmail-pathname-coding-system nil "*Coding system for pathname.") (defun nnmail-find-file (file) @@ -1485,7 +1485,10 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (references nil) (res nil) (regexp (if (consp nnmail-split-fancy-with-parent-ignore-groups) - (mapconcat 'nnmail-split-fancy-with-parent-ignore-groups " *\\|") + (mapconcat + (lambda (x) (format "\\(%s\\)" x)) + nnmail-split-fancy-with-parent-ignore-groups + "\\|") nnmail-split-fancy-with-parent-ignore-groups))) (when refstr (setq references (nreverse (gnus-split-references refstr))) @@ -1494,7 +1497,7 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (mapcar (lambda (x) (setq res (or (nnmail-cache-fetch-group x) res)) (when (or (string= "drafts" res) - (and regexp (string-match regexp res))) + (and regexp res (string-match regexp res))) (setq res nil))) references) res))) diff --git a/lisp/smime.el b/lisp/smime.el index 21df38c..678042a 100644 --- a/lisp/smime.el +++ b/lisp/smime.el @@ -89,6 +89,8 @@ ;; environment variables to pass the password to OpenSSL, which is ;; slightly insecure. Hence a new todo: use a better -passin method. ;; +;; Cache password for e.g. 1h +;; ;; Suggestions and comments are appreciated, mail me at simon@josefsson.org. ;; @@ -222,6 +224,7 @@ If signing fails, the buffer is not modified. Region is assumed to have proper MIME tags. KEYFILES is expected to contain a PEM encoded private key and certificate as its car, and a list of additional certificates to include in its caar." + (smime-new-details-buffer) (let ((keyfile (car keyfiles)) (certfiles (and (cdr keyfiles) (cadr keyfiles))) (buffer (generate-new-buffer (generate-new-buffer-name " *smime*"))) @@ -244,10 +247,11 @@ to include in its caar." (delete-file tmpfile))) (delete-region b e) (insert-buffer-substring buffer) + (goto-char b) (when (looking-at "^MIME-Version: 1.0$") (delete-region (point) (progn (forward-line 1) (point)))) t) - (with-current-buffer (get-buffer-create smime-details-buffer) + (with-current-buffer smime-details-buffer (goto-char (point-max)) (insert-buffer-substring buffer)) (kill-buffer buffer)))) @@ -257,6 +261,7 @@ to include in its caar." If encryption fails, the buffer is not modified. Region is assumed to have proper MIME tags. CERTFILES is a list of filenames, each file is expected to contain of a PEM encoded certificate." + (smime-new-details-buffer) (let ((buffer (generate-new-buffer (generate-new-buffer-name " *smime*"))) (tmpfile (make-temp-file "smime"))) (prog1 @@ -269,10 +274,11 @@ is expected to contain of a PEM encoded certificate." (delete-file tmpfile))) (delete-region b e) (insert-buffer-substring buffer) + (goto-char b) (when (looking-at "^MIME-Version: 1.0$") (delete-region (point) (progn (forward-line 1) (point)))) t) - (with-current-buffer (get-buffer-create smime-details-buffer) + (with-current-buffer smime-details-buffer (goto-char (point-max)) (insert-buffer-substring buffer)) (kill-buffer buffer)))) diff --git a/texi/ChangeLog b/texi/ChangeLog index 5e98338..cff95a0 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,12 @@ +2001-08-04 Kai Gro,A_(Bjohann + + * gnus.texi (Summary Buffer Lines): Mention `gnus-goto-colon'. + +2001-08-03 Kai Gro,A_(Bjohann + + * gnus.texi (Backend Interface): Explain about article numbers. + Suggested by Paul Jarc. + 2001-08-02 22:00:00 ShengHuo ZHU * emacs-mime.texi (Non-MIME): Addition. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index cd1719c..d806133 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -3996,7 +3996,9 @@ Gnus $B$OJQ?t(B @code{gnus-extract-address-components} $B$NCM$r(B @code{From $B$HF1$8$h$&$KF0:n$7$^$9!#(B $B9T$K$O>o$K%3%m%s$,B8:_$7$F$$$J$1$l$P$J$j$^$;$s!#A`:n$7$?8e$K!"%+!<%=%k$O(B -$B$$$D$b%3%m%s$N>l=j$K0\F0$7$^$9!#(B +$B$$$D$b%3%m%s$N>l=j$K0\F0$7$^$9!#(B($B$b$A$m$s!"$3$NF0:n$rJQ$($k$3$H$,$G$-$J(B +$B$$$H$7$?$i(B Gnus $B$K$O$"$k$^$8$-$3$H$G$9!#4X?t(B @code{gnus-goto-colon} $B$r!"(B +$B$"$J$?$,9%$-$J%+!<%=%k$NF0$-$K$J$k$h$&$K!"?7$?$K=q$1$PNI$$$N$G$9!#(B) $B=i4|CM$NJ8;zNs$O(B @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} $B$G$9!#(B @@ -20735,6 +20737,24 @@ Gnus $B$,%P%C%/%(%s%I(B --- $BNc$($P(B @code{nntp} --- $B$K2?$+$N>pJs$rMW5a $B$;$s!#$3$N%5!<%P!<$H$O!"%0%k!<%W$r;}$A!"$=$N%0%k!<%W$K>pJs$rG[Aw$9$k$b$N(B $B$G!"$=$l0J>e$N$b$N$G$O$"$j$^$;$s!#(B +Gnus $B$O%0%k!<%WL>$H5-;vHV9f$K$h$C$F$=$l$>$l$N%a%C%;!<%8$rFCDj$7$^$9!#$=(B +$B$l$i5-;vHV9f$K4X$9$k$A$g$C$H$7$?@bL@$r$9$k$3$H$OM-1W$+$b$7$l$^$;$s!#$^$:(B +$BBh0l$K!"$=$N?t;z$O@5$N@0?t$G$9!#BhFs$K!"(BGnus $B$r:.Mp$5$;$k$3$H$J$/8E$$5-(B +$B;vHV9f$r8e$G:F;HMQ$9$k$3$H$OIaDL$O$G$-$^$;$s!#$=$l$O!"$b$7$"$k%0%k!<%W$,(B +$B$+$D$F(B 42 $BHV$N5-;v$r;}$C$F$$$?$H$7$?$i!"$=$NHV9f$GB>$N5-;v$r;}$D$3$H$O$G(B +$B$-$J$$$+!"$^$?$O(B Gnus $B$,:.Mp$7$F$7$^$&$+$b$7$l$J$$$H$$$&$3$H$G$9!#(B +@footnote{See the function @code{nnchoke-request-update-info}, +@ref{Optional Backend Functions}$B!#(B} $BBh;0$K!"5-;vHV9f$O$=$N%0%k!<%W$G$NE~(B +$BCe=g$K$J$C$F$$$J$1$l$P$J$i$J$$$3$H$G$9!#$H$O8@$(%a%C%;!<%8$NF|IU$bE~Ce=g(B +$B$G$"$kI,MW$O$"$j$^$;$s$,!#(B + +$B$9$G$KA0$N@a$G!"5-;vHV9f$O0l2s;H$o$l$?$@$1$GLrL\$r=*$o$i$J$1$l$P$J$i$J(B +$B$$(B `$B87$7$$(B' $B@)8B$K$D$$$F@bL@$7$^$7$?!#$7$+$7!"5-;vHV9f$NJB$S$KH4$1$,$"$k(B +$B$H(B Gnus $B$O$H$F$b:.Mp$7$F$7$^$&$N$G!"(B@emph{$BDL$7(B} $BHV9f$rIU$1$k$3$H$,M-MQ$J(B +$B$N$+$b$7$l$^$;$s!#$?$@$7(B `$B:F;HMQIT2D(B' $B$N@)8B$,$"$k$N$G!"$$$D$G$bHV9f$NH4(B +$B$1$r2sHr$G$-$k$H$O8B$j$^$;$s!#$^$?!"2DG=$J8B$j5-;vHV9f$r(B 1 $B$+$i;O$a$k$3(B +$B$H$O!"HV9f$r;H$$@Z$C$F$7$^$&$3$H$rHr$1$k$?$a$KLrN)$A$^$9!#(B + $B$3$3$G$NNc$HDj5A$G$O!"A[A|>e$N%P%C%/%(%s%I(B @code{nnchoke} $B$r0z$-9g$$$K=P(B $B$9$3$H$K$7$^$9!#(B diff --git a/texi/gnus.texi b/texi/gnus.texi index a8bda50..4473c5e 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -4015,7 +4015,9 @@ lines as a normal @code{format} string, with some extensions (@pxref{Formatting Variables}). There should always be a colon on the line; the cursor always moves to -the colon after performing an operation. +the colon after performing an operation. (Of course, Gnus wouldn't be +Gnus if it wasn't possible to change this. Just write a new function +@code{gnus-goto-colon} which does whatever you like with the cursor.) The default string is @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n}. @@ -21364,6 +21366,25 @@ only operate on one group at a time, and have no concept of ``server'' -- they have a group, and they deliver info on that group and nothing more. +Gnus identifies each message by way of group name and article number. A +few remarks about these article numbers might be useful. First of all, +the numbers are positive integers. Secondly, it is normally not +possible for later articles to `re-use' older article numbers without +confusing Gnus. That is, if a group has ever contained a message +numbered 42, then no other message may get that number, or Gnus will get +mightily confused.@footnote{See the function +@code{nnchoke-request-update-info}, @ref{Optional Backend Functions}.} +Third, article numbers must be assigned in order of arrival in the +group; this is not necessarily the same as the date of the message. + +The previous paragraph already mentions all the `hard' restrictions that +article numbers must fulfill. But it seems that it might be useful to +assign @emph{consecutive} article numbers, for Gnus gets quite confused +if there are holes in the article numbering sequence. However, due to +the `no-reuse' restriction, holes cannot be avoided altogether. It's +also useful for the article numbers to start at 1 to avoid running out +of numbers as long as possible. + In the examples and definitions I will refer to the imaginary backend @code{nnchoke}. -- 1.7.10.4