*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 19:29:09 +0000 (19:29 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 19:29:09 +0000 (19:29 +0000)
20 files changed:
GNUS-NEWS
lisp/ChangeLog
lisp/gnus-msg.el
lisp/gnus-score.el
lisp/gnus-srvr.el
lisp/gnus-vis.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/message.el
lisp/nnbabyl.el
lisp/nndb.el
lisp/nnfolder.el
lisp/nnheader.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index c8cad14..ee19d80 100644 (file)
--- a/GNUS-NEWS
+++ b/GNUS-NEWS
@@ -2,15 +2,15 @@
 
 Gnus, the Emacs newsreader, has undergone further rewriting.  Many new
 commands and variables have been added.  There should be no
-significant imcompatabilities between this Gnus version and the
-previosly released version, except in the message composition area.
+significant incompatibilities between this Gnus version and the
+previously released version, except in the message composition area.
 
 Below is a list of the more user-visible changes.  Coding changes
 between Gnus 5.1 and 5.2 are more extensive.
 
 *** A new message composition mode is used.  All old customization 
 variables for mail-mode, rnews-reply-mode and gnus-msg are now
-absolete.
+obsolete.
 
 *** Gnus is now able to generate "sparse" threads -- threads where
 missing articles are represented by empty nodes.
@@ -49,7 +49,7 @@ buffers.
 
     (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
 
-*** Gnus can resend and bounce mail.
+*** Gnus can re-send and bounce mail.
 
     Use the `S D r' and `S D b'.
 
index c18fa82..ec11910 100644 (file)
@@ -1,5 +1,84 @@
+Thu Jun 13 02:28:26 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nnheader.el (nnheader-insert-nov): Fudge a message-id if
+       necessary. 
+
+       * nnml.el (nnml-request-accept-article): Use it.
+
+       * nnmail.el (nnmail-check-syntax): New function.
+
+       * gnus.el (gnus-group-fetch-faq): Would bug out when not called in
+       the group buffer.
+       (gnus-use-long-file-name): Doc fix.
+       (gnus-summary-search-article): Search backward from where we left
+       off. 
+
+       * gnus-xmas.el (gnus-xmas-server-menu-add): New function.
+       (gnus-xmas-browse-menu-add): Ditto.
+
+Wed Jun 12 18:32:57 1996  Christoph Wedler  <wedler@fmi.uni-passau.de>
+
+       * gnus-srvr.el (gnus-server-make-menu-bar): Use
+       `gnus-server-deny-server'
+
+Wed Jun 12 23:02:19 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
+
+       * message.el (message-send-rename-function): New variable.
+       (message-do-send-housekeeping): Use it.
+
+Wed Jun 12 22:53:32 1996  Richard Mlynarik  <mly@adoc.xerox.com>
+
+       * message.el (message-make-fqdn): Make sure `user-mail-address'
+       and `mail-host-address' looks like a full address.
+
+Wed Jun 12 22:06:39 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
+
+       * message.el (message-generate-new-buffers): Extended syntax.
+       (message-buffer-name): Use it.
+       (message-make-fqdn): Checked `user-mail-address' directly.
+       (message-check-news-syntax): Check for misconfiguration.
+
+       * nnmail.el (nnmail-move-inbox): Use it.
+
+Wed Jun 12 22:06:10 1996  Richard Pieri  <ratinox@unilab.dfci.harvard.edu>
+
+       * nnmail.el (nnmail-read-password): New function.
+
+Wed Jun 12 21:59:40 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
+
+       * message.el (message-send): Make buffer read/write before
+       sending. 
+
+       * gnus-score.el (gnus-score-edit-current-scores): Correct
+       message. 
+
+Wed Jun 12 19:31:50 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus-msg.el (gnus-inews-insert-archive-gcc): If ":" in name,
+       just use name.
+       (gnus-message-archive-group): Doc fix.
+
+       * nnmail.el (nnmail-split-it): Regexp bogosity.
+
+       * gnus-vis.el (gnus-button-alist): Have "news:" rule come before
+       URL rule.
+
+       * message.el (message-setup): Really be read-only.
+
+       * gnus.el (gnus-summary-import-article): Use message.
+
+Tue Jun 11 10:04:55 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+
+       * message.el (message-make-fqdm): Use `mail-host-address' before
+       `user-mail-address'. 
+       (message-make-fqdn): Typo is function name.
+
+       * nndb.el: Make byte-compiler silent.
+
 Tue Jun 11 02:29:33 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
 
+       * gnus.el: Gnus v5.2.15 is released.
+
        * gnus-score.el (gnus-score-find-trace): Erase contents first.
 
        * nntp.el (nntp-send-region-to-server): Make sure the server is
index 98b9175..0f65c0d 100644 (file)
@@ -61,7 +61,13 @@ of names).")
 This can either be a string, a list of strings; or an alist
 of regexps/functions/forms to be evaluated to return a string (or a list
 of strings).  The functions are called with the name of the current
-group (or nil) as a parameter.")
+group (or nil) as a parameter.
+
+Normally the group names returned by this variable should be
+unprefixed -- which implictly means \"store on the archive server\".
+However, you may wish to store the message on some other server.  In
+that case, just return a fully prefixed name of the group --
+\"nnml+private:mail.misc\", for instance.")
 
 (defvar gnus-mailing-list-groups nil
   "*Regexp matching groups that are really mailing lists.
@@ -881,7 +887,8 @@ this is a reply."
                                (t
                                 (eval (car var)))))))
              (setq var (cdr var)))
-           result))))
+           result)))
+        name)
     (when groups
       (when (stringp groups)
        (setq groups (list groups)))
@@ -890,9 +897,11 @@ this is a reply."
          (gnus-inews-narrow-to-headers)
          (goto-char (point-max))
          (insert "Gcc: ")
-         (while groups
-           (insert (gnus-group-prefixed-name 
-                    (pop groups) gnus-message-archive-method))
+         (while (setq name (pop groups))
+           (insert (if (string-match ":" name)
+                       name
+                     (gnus-group-prefixed-name 
+                      name gnus-message-archive-method)))
            (insert " "))
          (insert "\n"))))))
 
index 5e93d1b..6d5eb04 100644 (file)
@@ -797,7 +797,7 @@ SCORE is the score to add."
     (setq gnus-prev-winconf winconf))
   (gnus-message 
    4 (substitute-command-keys 
-      "\\<gnus-score-mode-map>\\[gnus-score-edit-done] to save edits")))
+      "\\<gnus-score-mode-map>\\[gnus-score-edit-exit] to save edits")))
   
 (defun gnus-score-edit-file (file)
   "Edit a score file."
index c257b34..6e52170 100644 (file)
@@ -68,32 +68,30 @@ with some simple extensions.")
 
 (defun gnus-server-make-menu-bar ()
   (gnus-visual-turn-off-edit-menu 'server)
-  (or
-   (boundp 'gnus-server-menu)
-   (progn
-     (easy-menu-define
-      gnus-server-menu gnus-server-mode-map ""
-      '("Server"
-       ["Add" gnus-server-add-server t]
-       ["Browse" gnus-server-read-server t]
-       ["List" gnus-server-list-servers t]
-       ["Kill" gnus-server-kill-server t]
-       ["Yank" gnus-server-yank-server t]
-       ["Copy" gnus-server-copy-server t]
-       ["Edit" gnus-server-edit-server t]
-       ["Exit" gnus-server-exit t]
-       ))
-
-     (easy-menu-define
-      gnus-server-menu gnus-server-mode-map ""
-      '("Connections"
-       ["Open" gnus-server-open-server t]
-       ["Close" gnus-server-close-server t]
-       ["Deny" gnus-server-deny-servers t]
-       ["Reset" gnus-server-remove-denials t]
-       ))
-
-     (run-hooks 'gnus-server-menu-hook))))
+  (unless (boundp 'gnus-server-menu)
+    (easy-menu-define
+     gnus-server-menu gnus-server-mode-map ""
+     '("Server"
+       ["Add" gnus-server-add-server t]
+       ["Browse" gnus-server-read-server t]
+       ["List" gnus-server-list-servers t]
+       ["Kill" gnus-server-kill-server t]
+       ["Yank" gnus-server-yank-server t]
+       ["Copy" gnus-server-copy-server t]
+       ["Edit" gnus-server-edit-server t]
+       ["Exit" gnus-server-exit t]
+       ))
+
+    (easy-menu-define
+     gnus-server-menu gnus-server-mode-map ""
+     '("Connections"
+       ["Open" gnus-server-open-server t]
+       ["Close" gnus-server-close-server t]
+       ["Deny" gnus-server-deny-server t]
+       ["Reset" gnus-server-remove-denials t]
+       ))
+
+    (run-hooks 'gnus-server-menu-hook)))
 
 (defvar gnus-server-mode-map nil)
 (put 'gnus-server-mode 'mode-class 'special)
index 17d9490..62a54aa 100644 (file)
 (defvar gnus-button-alist 
   `(("\\bin\\( +article\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2 
      t gnus-button-message-id 3)
+    ("\\(<?\\(url: ?\\)?news:\\([^>\n\t ]*\\)>?\\)" 1 t
+     gnus-button-message-id 3)
+    ("\\(<URL: *\\)?mailto: *\\([^ \n\t]+\\)>?" 0 t gnus-button-reply 2)
     ;; This is how URLs _should_ be embedded in text...
     ("<URL: *\\([^\n\r>]*\\)>" 0 t gnus-button-url 1)
     ;; Next regexp stolen from highlight-headers.el.
     ;; Modified by Vladimir Alexiev.
-    (,gnus-button-url-regexp 0 t gnus-button-url 0)
-    ("\\(<?\\(url: \\)?news:\\([^>\n\t ]*\\)>?\\)" 1 t
-     gnus-button-message-id 3)
-    ("\\(<URL: *\\)?mailto: *\\([^ \n\t]+\\)>?" 0 t gnus-button-reply 2))
+    (,gnus-button-url-regexp 0 t gnus-button-url 0))
   "Alist of regexps matching buttons in article bodies.
 
 Each entry has the form (REGEXP BUTTON FORM CALLBACK PAR...), where
@@ -1493,14 +1493,15 @@ specified by `gnus-button-alist'."
                              0 (length string) nil string)
                             string))
                         (nthcdr 4 entry))))
-      (cond ((fboundp fun)
-            (apply fun args))
-           ((and (boundp fun)
-                 (fboundp (symbol-value fun)))
-            (apply (symbol-value fun) args))
-           (t
-            (gnus-message 1 "You must define `%S' to use this button"
-                          (cons fun args)))))))
+      (cond
+       ((fboundp fun)
+       (apply fun args))
+       ((and (boundp fun)
+            (fboundp (symbol-value fun)))
+       (apply (symbol-value fun) args))
+       (t
+       (gnus-message 1 "You must define `%S' to use this button"
+                     (cons fun args)))))))
 
 (defun gnus-button-message-id (message-id)
   "Fetch MESSAGE-ID."
index d48a3d0..0f5c15c 100644 (file)
@@ -316,6 +316,14 @@ call it with the value of the `gnus-data' text property."
   (gnus-xmas-menu-add tree
     gnus-tree-menu))
 
+(defun gnus-xmas-server-menu-add ()
+  (gnus-xmas-menu-add menu
+    gnus-server-menu))
+
+(defun gnus-xmas-browse-menu-add ()
+  (gnus-xmas-menu-add browse
+    gnus-browse-menu))
+
 (defun gnus-xmas-grouplens-menu-add ()
   (gnus-xmas-menu-add grouplens
     gnus-grouplens-menu))
@@ -496,6 +504,8 @@ pounce directly on the real variables themselves.")
   (add-hook 'gnus-tree-mode-hook 'gnus-xmas-tree-menu-add)
   (add-hook 'gnus-binary-mode-hook 'gnus-xmas-binary-menu-add)
   (add-hook 'gnus-grouplens-mode-hook 'gnus-xmas-grouplens-menu-add)
+  (add-hook 'gnus-server-mode-hook 'gnus-xmas-server-menu-add)
+  (add-hook 'gnus-browse-mode-hook 'gnus-xmas-browse-menu-add)
 
   (add-hook 'gnus-group-mode-hook 'gnus-xmas-setup-group-toolbar)
   (add-hook 'gnus-summary-mode-hook 'gnus-xmas-setup-summary-toolbar)
@@ -680,8 +690,8 @@ XEmacs compatibility workaround."
       (when (featurep 'xface)
        (setq xface-glyph
              (make-glyph (vector 'xface :data 
-                                 (concat "X-Face: "
-                                         (buffer-substring beg end)))))
+                                 (setq my (concat "X-Face: "
+                                         (buffer-substring beg end))))))
        (goto-char (point-min))
        (re-search-forward "^From:" nil t)
        (beginning-of-line)
index 71d8f48..5b69bc5 100644 (file)
@@ -283,7 +283,11 @@ If this variable is a list, and the list contains the element
 `not-score', long file names will not be used for score files; if it
 contains the element `not-save', long file names will not be used for
 saving; and if it contains the element `not-kill', long file names
-will not be used for kill files.")
+will not be used for kill files.
+
+Note that the default for this variable varies according to what system
+type you're using.  On `usg-unix-v' and `xenix' this variable defaults
+to nil while on all other systems it defaults to t.")
 
 (defvar gnus-article-save-directory gnus-directory
   "*Name of the directory articles will be saved in (default \"~/News\").")
@@ -1726,7 +1730,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version-number "5.2.15"
+(defconst gnus-version-number "5.2.16"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -2078,13 +2082,12 @@ Thank you for your help in stamping out bugs.
       gnus-uu-decode-binhex-view)
      ("gnus-msg" (gnus-summary-send-map keymap)
       gnus-mail-yank-original gnus-mail-send-and-exit
-      gnus-sendmail-setup-mail gnus-article-mail
-      gnus-inews-message-id gnus-new-mail gnus-mail-reply)
+      gnus-article-mail gnus-new-mail gnus-mail-reply)
      ("gnus-msg" :interactive t
       gnus-group-post-news gnus-group-mail gnus-summary-post-news
       gnus-summary-followup gnus-summary-followup-with-original
       gnus-summary-cancel-article gnus-summary-supersede-article
-      gnus-post-news gnus-inews-news gnus-cancel-news
+      gnus-post-news gnus-inews-news 
       gnus-summary-reply gnus-summary-reply-with-original
       gnus-summary-mail-forward gnus-summary-mail-other-window
       gnus-bug)
@@ -6511,7 +6514,8 @@ If N is negative, this group and the N-1 previous groups will be checked."
   "Fetch the FAQ for the current group."
   (interactive
    (list
-    (gnus-group-real-name (gnus-group-group-name))
+    (and (gnus-group-group-name)
+        (gnus-group-real-name (gnus-group-group-name)))
     (cond (current-prefix-arg
           (completing-read
            "Faq dir: " (and (listp gnus-group-faq-directory)
@@ -11201,6 +11205,8 @@ Optional argument BACKWARD means do search for backward.
     (gnus-save-hidden-threads
       (gnus-summary-select-article)
       (set-buffer gnus-article-buffer)
+      (when backward
+       (forward-line -1))
       (while (not found)
        (gnus-message 7 "Searching article: %d..." (cdr gnus-article-current))
        (if (if backward
@@ -11680,7 +11686,7 @@ latter case, they will be copied into the relevant groups."
                          (current-time-string (nth 5 atts))
                          (current-time-zone now)
                          (current-time-zone now)) "\n"
-               "Message-ID: " (gnus-inews-message-id) "\n"
+               "Message-ID: " (message-make-message-id) "\n"
                "Lines: " (int-to-string lines) "\n"
                "Chars: " (int-to-string (nth 7 atts)) "\n\n"))
       (gnus-request-accept-article group nil t)
index 1e4b077..847e9fd 100644 (file)
@@ -47,6 +47,9 @@
 (defvar message-max-buffers 10
   "*How many buffers to keep before starting to kill them off.")
 
+(defvar message-send-rename-function nil
+  "Function called to rename the buffer after sending it.")
+
 ;;;###autoload
 (defvar message-fcc-handler-function 'rmail-output
   "*A function called to save outgoing articles.
@@ -139,7 +142,10 @@ nil means let mailer mail back a message to report errors.")
 
 ;;;###autoload
 (defvar message-generate-new-buffers t
-  "*Non-nil means that a new message buffer will be created whenever `mail-setup' is called.")
+  "*Non-nil means that a new message buffer will be created whenever `mail-setup' is called.
+If this is a function, call that function with three parameters:  The type,
+the to address and the group name.  (Any of these may be nil.)  The function
+should return the new buffer name.")
 
 ;;;###autoload
 (defvar message-kill-buffer-on-exit nil
@@ -942,10 +948,10 @@ C-c C-r  message-ceasar-buffer-body (rot13 the message body)."
       ;; Remove blank lines at the end of the message.
       (goto-char (point-max))
       (skip-chars-backward " \t\n")
-      (end-of-line)
+      (forward-line 1)
       (delete-region (point) (point-max))
       ;; Insert the signature.
-      (insert "\n\n-- \n")
+      (insert "\n-- \n")
       (if (eq signature t)
          (insert-file-contents message-signature-file)
        (insert signature))
@@ -1214,6 +1220,8 @@ the user from the mailer."
              (y-or-n-p "No changes in the buffer; really send? ")))
     ;; Make it possible to undo the coming changes.
     (undo-boundary)
+    (let ((inhibit-read-only t))
+      (put-text-property (point-min) (point-max) 'read-only nil))
     (message-fix-before-sending)
     (run-hooks 'message-send-hook)
     (message "Sending...")
@@ -1495,7 +1503,14 @@ the user from the mailer."
                (goto-char (point-min))
                (insert "Followup-To: " to "\n"))
              t))
-
+       ;; Check "Shoot me".
+       (or (message-check-element 'shoot)
+           (save-excursion
+             (if (search-forward
+                  ".i-have-a-misconfigured-system-so-shoot-me" nil t)
+                 (y-or-n-p
+                  "You appear to have a misconfigured system.  Really post? ")
+               t)))
        ;; Check for Approved.
        (or (message-check-element 'approved)
            (save-excursion
@@ -1778,7 +1793,7 @@ the user from the mailer."
                            (mail-header-subject message-reply-headers))
                           (message-strip-subject-re psubject))))
                "_-_" ""))
-         "@" (message-make-fqdm) ">"))
+         "@" (message-make-fqdn) ">"))
 
 (defvar message-unique-id-char nil)
 
@@ -1966,34 +1981,37 @@ give as trustworthy answer as possible."
   (when user-mail-address
     (nth 1 (mail-extract-address-components user-mail-address))))
 
-(defun message-make-fqdm ()
+(defun message-make-fqdn ()
   "Return user's fully qualified domain name."
-  (let ((system-name (system-name)))
+  (let ((system-name (system-name))
+       (user-mail (message-user-mail-address)))
     (cond 
      ((string-match "[^.]\\.[^.]" system-name)
       ;; `system-name' returned the right result.
       system-name)
-     ;; We try `user-mail-address' as a backup.
-     ((string-match "@\\(.*\\)\\'" (message-user-mail-address))
-      (match-string 1 user-mail-address))
      ;; Try `mail-host-address'.
      ((and (boundp 'mail-host-address)
-          mail-host-address)
+          (stringp mail-host-address)
+          (string-match "\\." mail-host-address))
       mail-host-address)
+     ;; We try `user-mail-address' as a backup.
+     ((and (string-match "\\." user-mail)
+          (string-match "@\\(.*\\)\\'" user-mail))
+      (match-string 1 user-mail))
      ;; Default to this bogus thing.
      (t
       (concat system-name ".i-have-a-misconfigured-system-so-shoot-me")))))
 
 (defun message-make-host-name ()
   "Return the name of the host."
-  (let ((fqdm (message-make-fqdm)))
-    (string-match "^[^.]+\\." fqdm)
-    (substring fqdm 0 (1- (match-end 0)))))
+  (let ((fqdn (message-make-fqdn)))
+    (string-match "^[^.]+\\." fqdn)
+    (substring fqdn 0 (1- (match-end 0)))))
 
 (defun message-make-domain ()
   "Return the domain name."
   (or mail-host-address
-      (message-make-fqdm)))
+      (message-make-fqdn)))
 
 (defun message-generate-headers (headers)
   "Prepare article HEADERS.
@@ -2205,17 +2223,25 @@ Headers already prepared in the buffer are not modified."
 
 (defun message-buffer-name (type &optional to group)
   "Return a new (unique) buffer name based on TYPE and TO."
-  (if message-generate-new-buffers
-      (generate-new-buffer-name
-       (concat "*" type
-              (if to
-                  (concat " to "
-                          (or (car (mail-extract-address-components to))
-                              to) "")
-                "")
-              (if group (concat " on " group) "")
-              "*"))
-    (format "*%s message*" type)))
+  (cond
+   ;; Check whether `message-generate-new-buffers' is a function, 
+   ;; and if so, call it.
+   ((message-functionp message-generate-new-buffers)
+    (funcall message-generate-new-buffers type to group))
+   ;; Generate a new buffer name The Message Way.
+   (message-generate-new-buffers
+    (generate-new-buffer-name
+     (concat "*" type
+            (if to
+                (concat " to "
+                        (or (car (mail-extract-address-components to))
+                            to) "")
+              "")
+            (if group (concat " on " group) "")
+            "*")))
+   ;; Use standard name.
+   (t
+    (format "*%s message*" type))))
 
 (defun message-pop-to-buffer (name)
   "Pop to buffer NAME, and warn if it already exists and is modified."
@@ -2245,9 +2271,11 @@ Headers already prepared in the buffer are not modified."
                 (not (buffer-modified-p buffer)))
        (kill-buffer buffer))))
   ;; Rename the buffer.
-  (when (string-match "\\`\\*" (buffer-name))
-    (rename-buffer 
-     (concat "*sent " (substring (buffer-name) (match-end 0))) t))
+  (if message-send-rename-function
+      (funcall message-send-rename-function)
+    (when (string-match "\\`\\*" (buffer-name))
+      (rename-buffer 
+       (concat "*sent " (substring (buffer-name) (match-end 0))) t)))
   ;; Push the current buffer onto the list.
   (when message-max-buffers
     (setq message-buffer-list 
@@ -2281,7 +2309,7 @@ Headers already prepared in the buffer are not modified."
    (point)
    (progn
      (insert mail-header-separator "\n")
-     (point))
+     (1- (point)))
    'read-only nil)
   (forward-line -1)
   (when (message-news-p)
index 6d1cca9..abd909c 100644 (file)
 
 (deffoo nnbabyl-request-accept-article (group &optional server last)
   (nnbabyl-possibly-change-newsgroup group server)
+  (nnmail-check-syntax)
   (let ((buf (current-buffer))
        result beg)
     (and 
index e5a29c4..15d82ec 100644 (file)
 
 (nnoo-define-basics nndb)
 
+;; Import other stuff from nntp as is.
+
+(nnoo-import nndb
+  (nntp))
+
 ;;- maybe this should be mail??
 ;;-(defun nndb-request-type (group &optional article)
 ;;-  'news)
@@ -219,15 +224,6 @@ with the contents of the BUFFER."
 ; nndb-request-rename-group does not exist
 ; todo -- maybe later
 
-;; Import stuff from nntp
-
-
-
-;; Import other stuff from nntp as is.
-
-(nnoo-import nndb
-  (nntp))
-
 (provide 'nndb)
 
 
index fe19c8d..086182c 100644 (file)
@@ -372,6 +372,7 @@ time saver for large mailboxes.")
 
 (deffoo nnfolder-request-accept-article (group &optional server last)
   (nnfolder-possibly-change-group group server)
+  (nnmail-check-syntax)
   (and (stringp group) (nnfolder-possibly-change-group group))
   (let ((buf (current-buffer))
        result)
index d4ae9a4..1a48d0c 100644 (file)
@@ -233,7 +233,8 @@ on your system, you could say something like:
    (or (mail-header-subject header) "(none)") "\t"
    (or (mail-header-from header) "(nobody)") "\t"
    (or (mail-header-date header) "") "\t"
-   (or (mail-header-id header) "") "\t"
+   (or (mail-header-id header) 
+       (nnmail-message-id)) "\t"
    (or (mail-header-references header) "") "\t")
   (princ (or (mail-header-chars header) 0) (current-buffer))
   (insert "\t")
index b968a33..02e6963 100644 (file)
@@ -269,9 +269,6 @@ parameter.  It should return nil, `warn' or `delete'.")
 
 ;;; Internal variables.
 
-(eval-and-compile
-  (autoload 'ange-ftp-read-passwd "ange-ftp"))
-
 (defvar nnmail-split-fancy-syntax-table
   (copy-syntax-table (standard-syntax-table))
   "Syntax table used by `nnmail-split-fancy'.")
@@ -378,7 +375,7 @@ parameter.  It should return nil, `warn' or `delete'.")
            (setq password nnmail-pop-password)
            (when (and nnmail-pop-password-required (not nnmail-pop-password))
              (setq password
-                   (ange-ftp-read-passwd
+                   (nnmail-read-passwd
                     (format "Password for %s: "
                             (substring inbox (+ popmail 3))))))
            (message "Getting mail from post office ..."))
@@ -899,7 +896,7 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
                                    (cdr (assq value
                                               nnmail-split-abbrev-alist))
                                  value)
-                               "\\>\\)")))
+                               "\\)\\>")))
           (setq nnmail-split-cache 
                 (cons (cons split regexp) nnmail-split-cache))
           (goto-char (point-max))
@@ -1173,6 +1170,23 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
             ;; Compare the time with the current time.
             (nnmail-time-less days (nnmail-time-since time)))))))
 
+(defvar nnmail-read-passwd nil)
+(defun nnmail-read-passwd (prompt)
+  (unless nnmail-read-passwd
+    (if (load "passwd" t)
+       (setq nnmail-read-passwd 'read-passwd)
+      (autoload 'ange-ftp-read-passwd "ange-ftp")
+      (setq nnmail-read-passwd 'ange-ftp-read-passwd)))
+  (funcall nnmail-read-passwd prompt))
+
+(defun nnmail-check-syntax ()
+  "Check (and modify) the syntax of the message in the current buffer."
+  (save-restriction
+    (message-narrow-to-head)
+    (let ((case-fold-search t))
+      (unless (re-search-forward "^Message-Id:" nil t)
+       (insert "Message-ID: " (nnmail-message-id) "\n")))))
+
 (run-hooks 'nnmail-load-hook)
            
 (provide 'nnmail)
index ba4c8b9..1714637 100644 (file)
 
 (deffoo nnmbox-request-accept-article (group &optional server last)
   (nnmbox-possibly-change-newsgroup group server)
+  (nnmail-check-syntax)
   (let ((buf (current-buffer))
        result)
     (goto-char (point-min))
index 3417e98..0ffd775 100644 (file)
 
 (deffoo nnmh-request-accept-article (group &optional server last noinsert)
   (nnmh-possibly-change-directory group server)
+  (nnmail-check-syntax)
   (if (stringp group)
       (and 
        (nnmail-activate 'nnmh)
index cdc5ef5..93ab4f3 100644 (file)
@@ -318,6 +318,7 @@ all. This may very well take some time.")
 
 (deffoo nnml-request-accept-article (group &optional server last)
   (nnml-possibly-change-directory group server)
+  (nnmail-check-syntax)
   (let (result)
     (if (stringp group)
        (and 
index d40a3ad..c2156e2 100644 (file)
@@ -1,3 +1,12 @@
+Wed Jun 12 22:44:25 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
+
+       * message.texi (Message Buffers): Addition.
+       (Message Buffers): Addition.
+
+Wed Jun 12 19:32:44 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.texi: Deletia.
+
 Mon Jun 10 03:21:04 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * message.texi (Various Message Variables): Addition.
index 9f67b7c..9096f37 100644 (file)
@@ -5734,11 +5734,6 @@ Import an arbitrary file into the current mail newsgroup
 (@code{gnus-summary-import-article}).  You will be prompted for a file
 name, a @code{From} header and a @code{Subject} header.
 
-Something similar can be done by just starting to compose a mail
-message.  Instead of typing @kbd{C-c C-c} to mail it off, you can type
-@kbd{C-c M-C-p} instead.  This will put the message you have just created
-into the current mail group.
-
 @item B r
 @kindex B r (Summary)
 @findex gnus-summary-respool-article
index e70a7b0..a6952db 100644 (file)
@@ -921,16 +921,31 @@ message buffers are kept alive.
 
 @table @code
 @item message-generate-new-buffers
-@findex message-generate-new-buffers
-If non-@code{nil}, generate new buffers.  The default is @code{t}.
+@vindex message-generate-new-buffers
+If non-@code{nil}, generate new buffers.  The default is @code{t}.  If
+this is a function, call that function with three parameters: The type,
+the to address and the group name.  (Any of these may be @code{nil}.)
+The function should return the new buffer name.
 
 @item message-max-buffers
-@findex message-max-buffers
+@vindex message-max-buffers
 This variable says how many old message buffers to keep.  If there are
 more message buffers than this, the oldest buffer will be killed.  The
 default is 10.  If this variable is @code{nil}, no old message buffers
 will ever be killed.
 
+@item message-send-rename-function
+@vindex message-send-rename-function
+After sending a message, the buffer is renamed from, for instance,
+@samp{*reply to Lars*} to @samp{*sent reply to Lars*}.  If you don't
+like this, set this variable to a function that renames the buffer in a
+manner you like.  If you don't want to rename the buffer at all, you can
+say:
+
+@lisp
+(setq message-send-rename-function 'ignore)
+@end lisp
+
 @item message-kill-buffer-on-exit
 @findex message-kill-buffer-on-exit
 If non-@code{nil}, kill the buffer immediately on exit.