Synch with Oort Gnus.
authoryamaoka <yamaoka>
Wed, 8 Aug 2001 02:12:51 +0000 (02:12 +0000)
committeryamaoka <yamaoka>
Wed, 8 Aug 2001 02:12:51 +0000 (02:12 +0000)
19 files changed:
GNUS-NEWS
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-cache.el
lisp/gnus-group.el
lisp/gnus-sum.el
lisp/gnus-util.el
lisp/message.el
lisp/mm-decode.el
lisp/mm-util.el
lisp/mm-uu.el
lisp/mm-view.el
lisp/mml.el
lisp/mml2015.el
lisp/nnmail.el
lisp/smime.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 6334597..f780719 100644 (file)
--- a/GNUS-NEWS
+++ b/GNUS-NEWS
@@ -8,6 +8,8 @@ For older news, see Gnus info node "New Features".
 \f
 * 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
index 95ef95b..8caf5d3 100644 (file)
@@ -1,3 +1,116 @@
+2001-08-04  Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
+       Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * 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  <zsh@cs.rochester.edu>
+
+       * 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\e,Av\e(Bllmann
+       <gerd@gnu.org>.
+
+       * 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   <fw@deneb.enyo.de>
+
+       * message.el (message-indent-citation): Use
+       `message-yank-cited-prefix' for empty lines.
+
+2001-08-05  Florian Weimer   <fw@deneb.enyo.de>
+
+       * message.el (message-indent-citation): Quote only lines starting
+       with ">" using `message-yank-cited-prefix'.
+
+2001-08-05  Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
+
+       * gnus-cache.el (gnus-cache-possibly-enter-article): Use
+       gnus-cache-fully-p.
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+
+       * 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  <jas@extundo.com>
+
+       * 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  <jas@extundo.com>
+
+       * 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 <nuutti.kotivuori@smarttrust.com>.
+
+2001-08-04  Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com>
+       Committed by Simon Josefsson  <jas@extundo.com>
+
+       * 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  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-mime-security-verify-or-decrypt): Insert
+       before remove.
+       (gnus-mime-security-show-details): Ditto.
+
+2001-08-04  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * 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  <zsh@cs.rochester.edu>
+
+       * mm-util.el (mm-find-charset-region): Remove control-1.
+
+2001-08-03 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * mm-decode.el (mm-readable-p): Emacs 20 takes one argument.
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+
+       * smime.el (smime-sign-region, smime-encrypt-region): Fix details
+       buffer.  Delete MIME-Version header.
+
+2001-08-03  Simon Josefsson  <jas@extundo.com>
+
+       * 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  <zsh@cs.rochester.edu>
+
+       * mml2015.el (mml2015-gpg-extract-signature-details): Don't barf.
+
+2001-08-03  Simon Josefsson  <jas@extundo.com>
+
+       * mml.el (mml-menu): Rename from MML to Mime. Collapse Security
+       menu.
+
 2001-08-02  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus.el (post-method): New group parameter.  It also provides
index c864119..1819a7f 100644 (file)
@@ -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)
index 53b4318..e02b157 100644 (file)
@@ -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
index f395607..f974de2 100644 (file)
@@ -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
index a76b6e9..62924f3 100644 (file)
@@ -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)))))
index c80bf88..51d4242 100644 (file)
@@ -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))
index 5464daa..3e19cc3 100644 (file)
@@ -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)
index 1a1363f..8614d4c 100644 (file)
@@ -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)
index 38da083..50899a3 100644 (file)
@@ -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.
index 0a78298..7c90203 100644 (file)
@@ -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)
index 9e6a729..9ff9428 100644 (file)
   (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 }
   (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
index 89cc6f4..2757551 100644 (file)
@@ -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]
index cd3c628..a16a4e5 100644 (file)
@@ -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")))
index f9bdcc8..b57a426 100644 (file)
@@ -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)))
index 21df38c..678042a 100644 (file)
@@ -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.
 
 ;; <rant>
@@ -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))))
index 5e98338..cff95a0 100644 (file)
@@ -1,3 +1,12 @@
+2001-08-04  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * gnus.texi (Summary Buffer Lines): Mention `gnus-goto-colon'.
+
+2001-08-03  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * gnus.texi (Backend Interface): Explain about article numbers.
+       Suggested by Paul Jarc.
+
 2001-08-02 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * emacs-mime.texi (Non-MIME): Addition.
index cd1719c..d806133 100644 (file)
@@ -3996,7 +3996,9 @@ Gnus \e$B$OJQ?t\e(B @code{gnus-extract-address-components} \e$B$NCM$r\e(B @code{From
 \e$B$HF1$8$h$&$KF0:n$7$^$9!#\e(B
 
 \e$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\e(B
-\e$B$$$D$b%3%m%s$N>l=j$K0\F0$7$^$9!#\e(B
+\e$B$$$D$b%3%m%s$N>l=j$K0\F0$7$^$9!#\e(B(\e$B$b$A$m$s!"$3$NF0:n$rJQ$($k$3$H$,$G$-$J\e(B
+\e$B$$$H$7$?$i\e(B Gnus \e$B$K$O$"$k$^$8$-$3$H$G$9!#4X?t\e(B @code{gnus-goto-colon} \e$B$r!"\e(B
+\e$B$"$J$?$,9%$-$J%+!<%=%k$NF0$-$K$J$k$h$&$K!"?7$?$K=q$1$PNI$$$N$G$9!#\e(B)
 
 \e$B=i4|CM$NJ8;zNs$O\e(B @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} \e$B$G$9!#\e(B
 
@@ -20735,6 +20737,24 @@ Gnus \e$B$,%P%C%/%(%s%I\e(B --- \e$BNc$($P\e(B @code{nntp} --- \e$B$K2?$+$N>pJs$rMW5a
 \e$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\e(B
 \e$B$G!"$=$l0J>e$N$b$N$G$O$"$j$^$;$s!#\e(B
 
+Gnus \e$B$O%0%k!<%WL>$H5-;vHV9f$K$h$C$F$=$l$>$l$N%a%C%;!<%8$rFCDj$7$^$9!#$=\e(B
+\e$B$l$i5-;vHV9f$K4X$9$k$A$g$C$H$7$?@bL@$r$9$k$3$H$OM-1W$+$b$7$l$^$;$s!#$^$:\e(B
+\e$BBh0l$K!"$=$N?t;z$O@5$N@0?t$G$9!#BhFs$K!"\e(BGnus \e$B$r:.Mp$5$;$k$3$H$J$/8E$$5-\e(B
+\e$B;vHV9f$r8e$G:F;HMQ$9$k$3$H$OIaDL$O$G$-$^$;$s!#$=$l$O!"$b$7$"$k%0%k!<%W$,\e(B
+\e$B$+$D$F\e(B 42 \e$BHV$N5-;v$r;}$C$F$$$?$H$7$?$i!"$=$NHV9f$GB>$N5-;v$r;}$D$3$H$O$G\e(B
+\e$B$-$J$$$+!"$^$?$O\e(B Gnus \e$B$,:.Mp$7$F$7$^$&$+$b$7$l$J$$$H$$$&$3$H$G$9!#\e(B
+@footnote{See the function @code{nnchoke-request-update-info},
+@ref{Optional Backend Functions}\e$B!#\e(B} \e$BBh;0$K!"5-;vHV9f$O$=$N%0%k!<%W$G$NE~\e(B
+\e$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\e(B
+\e$B$G$"$kI,MW$O$"$j$^$;$s$,!#\e(B
+
+\e$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\e(B
+\e$B$$\e(B `\e$B87$7$$\e(B' \e$B@)8B$K$D$$$F@bL@$7$^$7$?!#$7$+$7!"5-;vHV9f$NJB$S$KH4$1$,$"$k\e(B
+\e$B$H\e(B Gnus \e$B$O$H$F$b:.Mp$7$F$7$^$&$N$G!"\e(B@emph{\e$BDL$7\e(B} \e$BHV9f$rIU$1$k$3$H$,M-MQ$J\e(B
+\e$B$N$+$b$7$l$^$;$s!#$?$@$7\e(B `\e$B:F;HMQIT2D\e(B' \e$B$N@)8B$,$"$k$N$G!"$$$D$G$bHV9f$NH4\e(B
+\e$B$1$r2sHr$G$-$k$H$O8B$j$^$;$s!#$^$?!"2DG=$J8B$j5-;vHV9f$r\e(B 1 \e$B$+$i;O$a$k$3\e(B
+\e$B$H$O!"HV9f$r;H$$@Z$C$F$7$^$&$3$H$rHr$1$k$?$a$KLrN)$A$^$9!#\e(B
+
 \e$B$3$3$G$NNc$HDj5A$G$O!"A[A|>e$N%P%C%/%(%s%I\e(B @code{nnchoke} \e$B$r0z$-9g$$$K=P\e(B
 \e$B$9$3$H$K$7$^$9!#\e(B
 
index a8bda50..4473c5e 100644 (file)
@@ -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}.