*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 5 Mar 1997 05:48:42 +0000 (05:48 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 5 Mar 1997 05:48:42 +0000 (05:48 +0000)
23 files changed:
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-ems.el
lisp/gnus-gl.el
lisp/gnus-group.el
lisp/gnus-msg.el
lisp/gnus-score.el
lisp/gnus-srvr.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-undo.el
lisp/gnus-util.el
lisp/gnus-uu.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/message.el
lisp/messagexmas.el
lisp/nnmail.el
lisp/nnml.el
lisp/nntp.el
texi/ChangeLog
texi/gnus.texi
texi/message.texi

index 5d95fa9..ef8a8e2 100644 (file)
@@ -1,3 +1,113 @@
+Mon Feb 10 14:19:55 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.4.12 is released.
+
+Mon Feb 10 12:47:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.el (message-fetch-field): Accept an optional param.
+       (message-reply): Only fetch the first Message-ID.
+
+       * gnus-score.el (gnus-summary-score-effect): Update mode line.
+
+Mon Feb 10 12:32:38 1997  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * gnus-art.el: Simplify.
+
+Mon Feb 10 12:23:48 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-sum.el (gnus-summary-prev-page): Don't scroll when the
+       article buffer isn't visible.
+
+       * gnus.el ((featurep 'gnus-xmas)): Removed
+       `gnus-make-local-hook'. 
+
+Mon Feb 10 12:08:31 1997  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * gnus-util.el (gnus-turn-off-edit-menu): Doc fix.
+
+Mon Feb 10 07:42:37 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-sum.el (gnus-summary-prepare-unthreaded): Make sure point
+       is at bol.
+
+       * gnus-srvr.el (gnus-browse-mode-map): Define gnus-bug.
+       (gnus-server-mode-map): Ditto.
+
+       * gnus-sum.el (gnus-summary-edit-article-done): Update original
+       article buffer.
+
+       * gnus-uu.el (gnus-uu-digest-mail-forward): Restore window
+       config. 
+
+       * nnmail.el (nnmail-move-inbox): Make sure tofile exists before
+       setting modes.
+
+       * gnus-xmas.el (gnus-xmas-region-active-p): New function.
+
+       * gnus-ems.el (gnus-region-active-p): New function.
+
+Mon Feb 10 07:40:45 1997  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * gnus-sum.el (gnus-summary-work-articles): Use zmacs-region. 
+
+Mon Feb 10 07:06:44 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.el (message-mode): Nix out all local variables.
+
+       * gnus-art.el (gnus-summary-save-in-mail): Don't ask.
+
+       * gnus-sum.el (gnus-ps-print-hook): New hook.
+       (gnus-summary-print-article): Use it.
+
+       * message.el (message-reply): Make sure there is something
+       inserted as a To.
+
+Mon Feb 10 05:54:28 1997  Paul Franklin  <paul@cs.washington.edu>
+
+       * gnus-group.el (gnus-group-edit-group): Ignore errors while
+       closing group.
+
+Mon Feb 10 05:22:09 1997  Steven L. Baur  <steve@miranova.com>
+
+       * messagexmas.el (message-xmas-maybe-fontify): New function.
+       (message-mode-hook): Use it.
+
+Sat Feb  8 21:18:25 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.el (message-user-organization): Only use string values
+       of `gnus-local-organization'.
+
+Tue Feb  4 20:26:20 1997  Paul Franklin  <paul@cs.washington.edu>
+
+       * nnmail.el (nnmail-get-spool-files): Don't call file-directory-p
+       on pop spool specifiers.
+
+Wed Feb  5 01:56:07 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.el (message-delete-mh-headers): Changed default.
+       (message-send-mail-with-mh): Use it.
+       (message-mh-deletable-headers): Renamed.
+
+       * gnus-sum.el (gnus-read-header): Don't do anything if the article
+       can't be requested.
+
+Wed Feb  5 01:51:07 1997  Joev Dubach  <dubach1@husc.harvard.edu>
+
+       * gnus-sum.el (gnus-select-newsgroup): Update group line.
+
+Tue Feb  4 20:23:30 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-util.el (gnus-output-to-mail): Insert a newline before the
+       "From ".
+
+       * nnml.el (nnml-request-move-article): Update active ranges.
+       (nnml-nov-delete-article): Update active ranges.
+
+Tue Feb  4 17:54:09 1997  HISASHIGE Kenji  <hysa@adtec.ed.fujitsu.co.jp>
+
+       * gnus-msg.el (gnus-summary-reply-with-original): Pass on the
+       `wide' param.
+
 Tue Feb  4 03:49:59 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.4.11 is released.
index b0e4a27..68e00d2 100644 (file)
@@ -179,10 +179,11 @@ asynchronously.    The compressed face will be piped to this command."
         '(("_" "_" underline)
           ("/" "/" italic)
           ("\\*" "\\*" bold)
-          ("_/" "/_" underline-italic)
-          ("_\\*" "\\*_" underline-bold)
+          ;;("_/" "/_" underline-italic)
+          ;;("_\\*" "\\*_" underline-bold)
           ("\\*/" "/\\*" bold-italic)
-          ("_\\*/" "/\\*_" underline-bold-italic))))
+          ;;("_\\*/" "/\\*_" underline-bold-italic)
+          )))
     `(("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_[^_]\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)"
        2 3 gnus-emphasis-underline)
       ,@(mapcar
@@ -1458,7 +1459,7 @@ Directory to save to is default to `gnus-article-save-directory'."
          (if (and (file-readable-p filename)
                   (mail-file-babyl-p filename))
              (gnus-output-to-rmail filename t)
-           (gnus-output-to-mail filename t)))))
+           (gnus-output-to-mail filename)))))
     ;; Remember the directory name to save articles.
     (setq gnus-newsgroup-last-mail filename)))
 
index 1da6a1d..b42037f 100644 (file)
@@ -195,6 +195,12 @@ asynchronously.     The compressed face will be piped to this command."))
       (insert " " gnus-tmp-subject-or-nil "\n"))
     )))
 
+(defun gnus-region-active-p ()
+  "Say whether the region is active."
+  (and (boundp 'transient-mark-mode)
+       transient-mark-mode
+       (boundp 'mark-active)
+       mark-active))
 
 (provide 'gnus-ems)
 
index 31e566a..b6ca6f5 100644 (file)
@@ -810,9 +810,9 @@ recommend using both scores and grouplens predictions together."
          (if (null arg) (not gnus-grouplens-mode)
            (> (prefix-numeric-value arg) 0)))
     (when gnus-grouplens-mode
-      (gnus-make-local-hook 'gnus-select-article-hook)
+      (make-local-hook 'gnus-select-article-hook)
       (gnus-add-hook 'gnus-select-article-hook 'grouplens-do-time nil 'local)
-      (gnus-make-local-hook 'gnus-exit-group-hook)
+      (make-local-hook 'gnus-exit-group-hook)
       (gnus-add-hook 'gnus-exit-group-hook 'bbb-exit-group nil 'local)
       (make-local-variable 'gnus-score-find-score-files-function)
 
index b6798d1..9bc4999 100644 (file)
@@ -762,7 +762,7 @@ The following commands are available:
   (gnus-set-default-directory)
   (gnus-update-format-specifications nil 'group 'group-mode)
   (gnus-update-group-mark-positions)
-  (gnus-make-local-hook 'post-command-hook)
+  (make-local-hook 'post-command-hook)
   (gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
   (when gnus-use-undo
     (gnus-undo-mode 1))
@@ -1871,7 +1871,8 @@ and NEW-NAME will be prompted for."
       (error "No group on current line"))
     (unless (setq info (gnus-get-info group))
       (error "Killed group; can't be edited"))
-    (gnus-close-group group)
+    (ignore-errors
+      (gnus-close-group group))
     (gnus-edit-form
      ;; Find the proper form to edit.
      (cond ((eq part 'method)
index 7d72d54..3029eb7 100644 (file)
@@ -175,7 +175,7 @@ Thank you for your help in stamping out bugs.
        (gnus-configure-windows ,config t))))
     
 (defun gnus-inews-add-send-actions (winconf buffer article)
-  (gnus-make-local-hook 'message-sent-hook)
+  (make-local-hook 'message-sent-hook)
   (gnus-add-hook 'message-sent-hook 'gnus-inews-do-gcc nil t)
   (setq message-post-method
        `(lambda (arg)
@@ -594,7 +594,7 @@ automatically."
   "Start composing a reply mail to the current message.
 The original article will be yanked."
   (interactive "P")
-  (gnus-summary-reply (gnus-summary-work-articles n)))
+  (gnus-summary-reply (gnus-summary-work-articles n) wide))
 
 (defun gnus-summary-wide-reply (&optional yank)
   "Start composing a wide reply mail to the current message.
index 46407d2..6ff0bae 100644 (file)
@@ -829,7 +829,8 @@ SCORE is the score to add."
                                       regexp)
                       (string-match regexp content))
                 (gnus-summary-raise-score score))))
-       (beginning-of-line 2)))))
+       (beginning-of-line 2))))
+  (gnus-set-mode-line 'summary))
 
 (defun gnus-summary-score-crossposting (score date)
   ;; Enter score file entry for current crossposting.
index c1049c1..289bb20 100644 (file)
@@ -129,7 +129,8 @@ with some simple extensions.")
 
    "g" gnus-server-regenerate-server
 
-    "\C-c\C-i" gnus-info-find-node))
+    "\C-c\C-i" gnus-info-find-node
+    "\C-c\C-b" gnus-bug))
 
 (defun gnus-server-mode ()
   "Major mode for listing and editing servers.
@@ -512,7 +513,8 @@ The following commands are available:
    "\C-c\C-c" gnus-browse-exit
    "?" gnus-browse-describe-briefly
 
-   "\C-c\C-i" gnus-info-find-node))
+   "\C-c\C-i" gnus-info-find-node
+   "\C-c\C-b" gnus-bug))
 
 (defun gnus-browse-make-menu-bar ()
   (gnus-turn-off-edit-menu 'browse)
index ad34dbf..1e2f0ce 100644 (file)
@@ -647,6 +647,11 @@ automatically when it is selected."
   :group 'gnus-group-select
   :type 'hook)
 
+(defcustom gnus-ps-print-hook nil
+  "*A hook run before ps-printing something from Gnus."
+  :group 'gnus-summary
+  :type 'hook)
+
 (defcustom gnus-summary-selected-face 'gnus-summary-selected-face
   "Face used for highlighting the current article in the summary buffer."
   :group 'gnus-summary-visual
@@ -701,6 +706,7 @@ mark:    The articles mark."
   :type '(repeat (cons (sexp :tag "Form" nil)
                       face)))
 
+
 ;;; Internal variables
 
 (defvar gnus-scores-exclude-files nil)
@@ -1888,7 +1894,7 @@ The following commands are available:
   (make-local-variable 'gnus-summary-line-format)
   (make-local-variable 'gnus-summary-line-format-spec)
   (make-local-variable 'gnus-summary-mark-positions)
-  (gnus-make-local-hook 'post-command-hook)
+  (make-local-hook 'post-command-hook)
   (gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t)
   (run-hooks 'gnus-summary-mode-hook)
   (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy)
@@ -3530,6 +3536,8 @@ or a straight list of headers."
   "Generate an unthreaded summary buffer based on HEADERS."
   (let (header number mark)
 
+    (beginning-of-line)
+
     (while headers
       ;; We may have to root out some bad articles...
       (when (memq (setq number (mail-header-number
@@ -3604,6 +3612,10 @@ If READ-ALL is non-nil, all articles in the group are selected."
 
     (setq gnus-newsgroup-processable nil)
 
+    (gnus-update-read-articles group gnus-newsgroup-unreads)
+    (unless (gnus-ephemeral-group-p gnus-newsgroup-name)
+      (gnus-group-update-group group))
     (setq articles (gnus-articles-to-read group read-all))
 
     (cond
@@ -4407,10 +4419,7 @@ taken into consideration."
                   (gnus-summary-find-next nil article)))
          (decf n)))
       (nreverse articles)))
-   ((and (boundp 'transient-mark-mode)
-        transient-mark-mode
-        (boundp 'mark-active)
-        mark-active)
+   ((gnus-region-active-p)
     ;; Work on the region between point and mark.
     (let ((max (max (point) (mark)))
          articles article)
@@ -5421,7 +5430,8 @@ article."
 Argument LINES specifies lines to be scrolled down."
   (interactive "P")
   (gnus-set-global-variables)
-  (let ((article (gnus-summary-article-number)))
+  (let ((article (gnus-summary-article-number))
+       (article-window (get-buffer-window gnus-article-buffer)))
     (gnus-configure-windows 'article)
     (if (or (null gnus-current-article)
            (null gnus-article-current)
@@ -5430,8 +5440,9 @@ Argument LINES specifies lines to be scrolled down."
        ;; Selected subject is different from current article's.
        (gnus-summary-display-article article)
       (gnus-summary-recenter)
-      (gnus-eval-in-buffer-window gnus-article-buffer
-       (gnus-article-prev-page lines))))
+      (when article-window
+       (gnus-eval-in-buffer-window gnus-article-buffer
+         (gnus-article-prev-page lines)))))
   (gnus-summary-position-point))
 
 (defun gnus-summary-scroll-up (lines)
@@ -6367,6 +6378,7 @@ to save in."
            (copy-to-buffer buffer (point-min) (point-max))
            (set-buffer buffer)
            (gnus-article-delete-invisible-text)
+           (run-hooks 'gnus-ps-print-hook)
            (ps-print-buffer-with-faces filename))
        (kill-buffer buffer)))))
 
@@ -6622,6 +6634,13 @@ and `request-accept' functions."
                 (memq article gnus-newsgroup-dormant)
                 (memq article gnus-newsgroup-unreads)))
 
+             (when (and (equal to-group gnus-newsgroup-name)
+                        (not (memq article gnus-newsgroup-unreads)))
+               ;; Mark this article as read in this group.
+               (push (cons to-article gnus-read-mark) gnus-newsgroup-reads)
+               (setcdr (gnus-active to-group) to-article)
+               (setcdr gnus-newsgroup-active to-article))
+             
              (while marks
                (when (memq article (symbol-value
                                     (intern (format "gnus-newsgroup-%s"
@@ -6634,7 +6653,7 @@ and `request-accept' functions."
                               (symbol-value
                                (intern (format "gnus-newsgroup-%s"
                                                (caar marks)))))))
-                 ;; Copy mark to other group.
+                 ;; Copy the marks to other group.
                  (gnus-add-marked-articles
                   to-group (cdar marks) (list to-article) info))
                (setq marks (cdr marks)))))
@@ -6942,7 +6961,10 @@ groups."
     ;; Prettify the article buffer again.
     (save-excursion
       (set-buffer gnus-article-buffer)
-      (run-hooks 'gnus-article-display-hook))
+      (run-hooks 'gnus-article-display-hook)
+      (set-buffer gnus-original-article-buffer)
+      (gnus-request-article
+       (cdr gnus-article-current) (car gnus-article-current) (current-buffer)))
     ;; Prettify the summary buffer line.
     (when (gnus-visual-p 'summary-highlight 'highlight)
       (run-hooks 'gnus-visual-mark-article-hook))))
@@ -8367,7 +8389,8 @@ save those articles instead."
                  (t gnus-reffed-article-number))
                 (current-buffer))
          (insert " Article retrieved.\n"))
-       (if (not (setq header (car (gnus-get-newsgroup-headers nil t))))
+       (if (or (not where)
+               (not (setq header (car (gnus-get-newsgroup-headers nil t)))))
            ()                          ; Malformed head.
          (unless (gnus-summary-article-sparse-p (mail-header-number header))
            (when (and (stringp id)
index 81fbb20..c4f8a84 100644 (file)
@@ -399,7 +399,7 @@ articles in the topic and its subtopics."
         (point-max (point-max))
         (unread 0)
         (topic (car type))
-        info entry end active)
+        info entry end active tick)
     ;; Insert any sub-topics.
     (while topicl
       (incf unread
@@ -429,13 +429,17 @@ articles in the topic and its subtopics."
                 (not (member (gnus-info-group (setq info (nth 2 entry)))
                              gnus-topic-tallied-groups)))
        (push (gnus-info-group info) gnus-topic-tallied-groups)
-       (incf unread (car entry))))
+       (incf unread (car entry)))
+      (when (and (listp entry)
+                (numberp (car entry)))
+       (setq tick t)))
     (goto-char beg)
     ;; Insert the topic line.
     (when (and (not silent)
-              (or gnus-topic-display-empty-topics
-                  (not (zerop unread))
-                  (/= point-max (point-max))))
+              (or gnus-topic-display-empty-topics ;We want empty topics
+                  (not (zerop unread)) ;Non-empty
+                  tick                 ;Ticked articles 
+                  (/= point-max (point-max)))) ;Unactivated groups
       (gnus-extent-start-open (point))
       (gnus-topic-insert-topic-line 
        (car type) visiblep
@@ -929,7 +933,7 @@ articles in the topic and its subtopics."
           'gnus-group-sort-topic)
       (setq gnus-group-change-level-function 'gnus-topic-change-level)
       (setq gnus-goto-missing-group-function 'gnus-topic-goto-missing-group)
-      (gnus-make-local-hook 'gnus-check-bogus-groups-hook)
+      (make-local-hook 'gnus-check-bogus-groups-hook)
       (add-hook 'gnus-check-bogus-groups-hook 'gnus-topic-clean-alist)
       (setq gnus-topology-checked-p nil)
       ;; We check the topology.
index 9461835..39c0a50 100644 (file)
@@ -96,7 +96,7 @@
     (unless (assq 'gnus-undo-mode minor-mode-map-alist)
       (push (cons 'gnus-undo-mode gnus-undo-mode-map)
            minor-mode-map-alist))
-    (gnus-make-local-hook 'post-command-hook)
+    (make-local-hook 'post-command-hook)
     (gnus-add-hook 'post-command-hook 'gnus-undo-boundary nil t)
     (add-hook 'gnus-summary-exit-hook 'gnus-undo-boundary)
     (run-hooks 'gnus-undo-mode-hook)))
index 3f804ca..69a3ecc 100644 (file)
@@ -567,7 +567,7 @@ Timezone package is used."
     `(,(car funs) t1 t2)))
 
 (defun gnus-turn-off-edit-menu (type)
-  "Turn off edit meny in `gnus-TYPE-mode-map'."
+  "Turn off edit menu in `gnus-TYPE-mode-map'."
   (define-key (symbol-value (intern (format "gnus-%s-mode-map" type)))
     [menu-bar edit] 'undefined))
 
@@ -764,7 +764,7 @@ with potentially long computations."
       (when (and (not (get-file-buffer filename))
                 (not (file-exists-p filename)))
        (if (or (not ask)
-               (gnus-yes-or-no-p
+               (gnus-y-or-n-p
                 (concat "\"" filename "\" does not exist, create it? ")))
            (let ((file-buffer (create-file-buffer filename)))
              (save-excursion
@@ -787,6 +787,9 @@ with potentially long computations."
          (set-buffer outbuf)
          (let ((buffer-read-only nil))
            (goto-char (point-max))
+           (unless (eobp)
+             (insert "\n"))
+           (insert "\n")
            (insert-buffer-substring tmpbuf)))))
     (kill-buffer tmpbuf)))
 
index 979cdc1..6acaed7 100644 (file)
@@ -505,43 +505,43 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
   (let ((gnus-uu-save-in-digest t)
        (file (make-temp-name (nnheader-concat gnus-uu-tmp-dir "forward")))
        buf subject from newsgroups)
-    (setq gnus-uu-digest-from-subject nil)
-    (gnus-uu-decode-save n file)
-    (setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*")))
-    (gnus-add-current-to-buffer-list)
-    (erase-buffer)
-    (delete-other-windows)
-    (insert-file file)
-    (let ((fs gnus-uu-digest-from-subject))
-      (when fs
-       (setq from (caar fs)
-             subject (gnus-simplify-subject-fuzzy (cdar fs))
-             fs (cdr fs))
-       (while (and fs (or from subject))
-         (when from
-           (unless (string= from (caar fs))
-             (setq from nil)))
-         (when subject
-           (unless (string= (gnus-simplify-subject-fuzzy (cdar fs))
-                            subject)
-             (setq subject nil)))
-         (setq fs (cdr fs))))
-      (unless subject
-       (setq subject "Digested Articles"))
-      (unless from 
-       (setq from
-             (if (gnus-news-group-p gnus-newsgroup-name)
-                 gnus-newsgroup-name
-               "Various"))))
-    (goto-char (point-min))
-    (when (re-search-forward "^Subject: ")
-      (delete-region (point) (gnus-point-at-eol))
-      (insert subject))
-    (goto-char (point-min))
-    (when (re-search-forward "^From: ")
-      (delete-region (point) (gnus-point-at-eol))
-      (insert from))
-    (message-forward post)
+    (gnus-setup-message 'forward
+      (setq gnus-uu-digest-from-subject nil)
+      (gnus-uu-decode-save n file)
+      (setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*")))
+      (gnus-add-current-to-buffer-list)
+      (erase-buffer)
+      (insert-file file)
+      (let ((fs gnus-uu-digest-from-subject))
+       (when fs
+         (setq from (caar fs)
+               subject (gnus-simplify-subject-fuzzy (cdar fs))
+               fs (cdr fs))
+         (while (and fs (or from subject))
+           (when from
+             (unless (string= from (caar fs))
+               (setq from nil)))
+           (when subject
+             (unless (string= (gnus-simplify-subject-fuzzy (cdar fs))
+                              subject)
+               (setq subject nil)))
+           (setq fs (cdr fs))))
+       (unless subject
+         (setq subject "Digested Articles"))
+       (unless from 
+         (setq from
+               (if (gnus-news-group-p gnus-newsgroup-name)
+                   gnus-newsgroup-name
+                 "Various"))))
+      (goto-char (point-min))
+      (when (re-search-forward "^Subject: ")
+       (delete-region (point) (gnus-point-at-eol))
+       (insert subject))
+      (goto-char (point-min))
+      (when (re-search-forward "^From: ")
+       (delete-region (point) (gnus-point-at-eol))
+       (insert from))
+      (message-forward post))
     (delete-file file)
     (kill-buffer buf)
     (setq gnus-uu-digest-from-subject nil)))
index 581f819..8801f03 100644 (file)
@@ -434,6 +434,9 @@ call it with the value of the `gnus-data' text property."
            (color-instance-rgb-components
             (make-color-instance color))))))
 
+(defun gnus-xmas-region-active-p ()
+  (and (fboundp 'region-active-p)
+       (region-active-p)))
 
 (defun gnus-xmas-redefine ()
   "Redefine lots of Gnus functions for XEmacs."
@@ -450,13 +453,13 @@ call it with the value of the `gnus-data' text property."
   (fset 'gnus-appt-select-lowest-window 
        'gnus-xmas-appt-select-lowest-window)
   (fset 'gnus-mail-strip-quoted-names 'gnus-xmas-mail-strip-quoted-names)
-  (fset 'gnus-make-local-hook 'make-local-variable)
   (fset 'gnus-add-hook 'gnus-xmas-add-hook)
   (fset 'gnus-character-to-event 'character-to-event)
   (fset 'gnus-mode-line-buffer-identification
        'gnus-xmas-mode-line-buffer-identification)
   (fset 'gnus-key-press-event-p 'key-press-event-p)
-
+  (fset 'gnus-region-active-p 'gnus-xmas-region-active-p)
+  
   (add-hook 'gnus-group-mode-hook 'gnus-xmas-group-menu-add)
   (add-hook 'gnus-summary-mode-hook 'gnus-xmas-summary-menu-add)
   (add-hook 'gnus-article-mode-hook 'gnus-xmas-article-menu-add)
index f0b3979..60e6e01 100644 (file)
@@ -198,7 +198,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.11"
+(defconst gnus-version-number "5.4.12"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -230,7 +230,6 @@ be set in `.emacs' instead."
   (defalias 'gnus-topic-remove-excess-properties 'ignore)
   (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
   (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
-  (defalias 'gnus-make-local-hook 'make-local-hook)
   (defalias 'gnus-add-hook 'add-hook)
   (defalias 'gnus-character-to-event 'identity)
   (defalias 'gnus-add-text-properties 'add-text-properties)
index 9ed90a4..6fbaa4b 100644 (file)
@@ -247,6 +247,7 @@ should return the new buffer name."
 (defvar gnus-local-organization)
 (defcustom message-user-organization 
   (or (and (boundp 'gnus-local-organization)
+          (stringp gnus-local-organization)
           gnus-local-organization)
       (getenv "ORGANIZATION")
       t)
@@ -583,7 +584,7 @@ actually occur."
     'message-mail 'message-send-and-exit 
     'message-kill-buffer 'message-send-hook))
 
-(defvar message-delete-mh-headers t
+(defvar message-mh-deletable-headers '(Message-ID Date Lines Sender)
   "If non-nil, delete the deletable headers before feeding to mh.")
 
 ;;; Internal variables.
@@ -794,9 +795,9 @@ The cdr of ech entry is a function for applying the face to a region.")
                 (setq paren nil))))
        (nreverse elems)))))
 
-(defun message-fetch-field (header)
+(defun message-fetch-field (header &optional not-all)
   "The same as `mail-fetch-field', only remove all newlines."
-  (let ((value (mail-fetch-field header nil t)))
+  (let ((value (mail-fetch-field header nil (not not-all))))
     (when value
       (nnheader-replace-chars-in-string value ?\n ? ))))
 
@@ -1052,10 +1053,10 @@ C-c C-r  message-caesar-buffer-body (rot13 the message body)."
   (kill-all-local-variables)
   (make-local-variable 'message-reply-buffer)
   (setq message-reply-buffer nil)
-  (make-local-variable 'message-send-actions)
-  (make-local-variable 'message-exit-actions)
-  (make-local-variable 'message-kill-actions)
-  (make-local-variable 'message-postpone-actions)
+  (set (make-local-variable 'message-send-actions) nil)
+  (set (make-local-variable 'message-exit-actions) nil)
+  (set (make-local-variable 'message-kill-actions) nil)
+  (set (make-local-variable 'message-postpone-actions) nil)
   (set-syntax-table message-mode-syntax-table)
   (use-local-map message-mode-map)
   (setq local-abbrev-table message-mode-abbrev-table)
@@ -1766,8 +1767,8 @@ to find out how to use this."
                       "msg."))))
     (setq buffer-file-name name)
     ;; MH wants to generate these headers itself.
-    (when message-delete-mh-headers
-      (let ((headers message-deletable-headers))
+    (when message-mh-deletable-headers
+      (let ((headers message-mh-deletable-headers))
        (while headers
          (goto-char (point-min)) 
          (and (re-search-forward 
@@ -1945,7 +1946,7 @@ to find out how to use this."
    ;; Check the Message-ID header.
    (message-check 'message-id
      (let* ((case-fold-search t)
-           (message-id (message-fetch-field "message-id")))
+           (message-id (message-fetch-field "message-id" t)))
        (or (not message-id)
           (and (string-match "@" message-id)
                (string-match "@[^\\.]*\\." message-id))
@@ -2840,7 +2841,7 @@ Headers already prepared in the buffer are not modified."
            mct (message-fetch-field "mail-copies-to")
            reply-to (unless ignore-reply-to (message-fetch-field "reply-to"))
            references (message-fetch-field "references")
-           message-id (message-fetch-field "message-id"))
+           message-id (message-fetch-field "message-id" t))
       ;; Remove any (buggy) Re:'s that are present and make a
       ;; proper one.
       (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
@@ -2875,6 +2876,9 @@ Headers already prepared in the buffer are not modified."
              (insert (prog1 (rmail-dont-reply-to (buffer-string))
                        (erase-buffer)))
              (goto-char (point-min))
+             ;; Perhaps Mail-Copies-To: never removed the only address?
+             (when (eobp)
+               (insert (or reply-to from "")))
              (setq ccalist
                    (mapcar
                     (lambda (addr)
@@ -2938,7 +2942,7 @@ If TO-NEWSGROUPS, use that as the new Newsgroups line."
            date (message-fetch-field "date") 
            subject (or (message-fetch-field "subject") "none")
            references (message-fetch-field "references")
-           message-id (message-fetch-field "message-id")
+           message-id (message-fetch-field "message-id" t)
            followup-to (message-fetch-field "followup-to")
            newsgroups (message-fetch-field "newsgroups")
            reply-to (message-fetch-field "reply-to")
@@ -3034,7 +3038,7 @@ responses here are directed to other newsgroups."))
          (message-narrow-to-head)
          (setq from (message-fetch-field "from")
                newsgroups (message-fetch-field "newsgroups")
-               message-id (message-fetch-field "message-id")
+               message-id (message-fetch-field "message-id" t)
                distribution (message-fetch-field "distribution")))
        ;; Make sure that this article was written by the user.
        (unless (string-equal
index 4a9d28a..1921fa6 100644 (file)
@@ -92,6 +92,13 @@ If it is non-nil, it must be a toolbar.  The five legal values are
 
 (fset 'message-exchange-point-and-mark 'message-xmas-exchange-point-and-mark)
 
+(defun message-xmas-maybe-fontify ()
+  (when (and (featurep 'font-lock)
+            font-lock-auto-fontify)
+    (turn-on-font-lock)))
+
+(add-hook 'message-mode-hook 'message-xmas-maybe-fontify)
+
 (provide 'messagexmas)
 
 ;;; messagexmas.el ends here
index b9c812f..71a089d 100644 (file)
@@ -556,7 +556,8 @@ parameter.  It should return nil, `warn' or `delete'."
                    ;; No output => movemail won
                    (progn
                      (unless popmail
-                       (set-file-modes tofile nnmail-default-file-modes))
+                       (when (file-exists-p tofile)
+                         (set-file-modes tofile nnmail-default-file-modes)))
                      (push inbox nnmail-moved-inboxes))
                  (set-buffer errors)
                  ;; There may be a warning about older revisions.  We
@@ -565,7 +566,8 @@ parameter.  It should return nil, `warn' or `delete'."
                  (if (search-forward "older revision" nil t)
                      (progn
                        (unless popmail
-                         (set-file-modes tofile nnmail-default-file-modes))
+                         (when (file-exists-p tofile)
+                           (set-file-modes tofile nnmail-default-file-modes)))
                        (push inbox nnmail-moved-inboxes))
                    ;; Probably a real error.
                    (subst-char-in-region (point-min) (point-max) ?\n ?\  )
@@ -1254,19 +1256,19 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
                'nconc
                (mapcar 
                 (lambda (file)
-                  (if (file-directory-p file)
+                  (if (and (not (string-match "^po:" file))
+                           (file-directory-p file))
                       (nnheader-directory-regular-files file)
                     (list file)))
                 nnmail-spool-file))
               procmails))
-            ((and (stringp nnmail-spool-file)
-                  (not (file-directory-p nnmail-spool-file)))
-             (cons nnmail-spool-file procmails))
-            ((and (stringp nnmail-spool-file)
-                  (file-directory-p nnmail-spool-file))
-             (nconc
-              (nnheader-directory-regular-files nnmail-spool-file)
-              procmails))
+            ((stringp nnmail-spool-file)
+             (if (and (not (string-match "^po:" nnmail-spool-file))
+                      (file-directory-p nnmail-spool-file))
+                 (nconc 
+                  (nnheader-directory-regular-files nnmail-spool-file)
+                  procmails)
+               (cons nnmail-spool-file procmails)))
             ((eq nnmail-spool-file 'pop)
              (cons (format "po:%s" (user-login-name)) procmails))
             (t
index d35a1ef..462e33e 100644 (file)
@@ -318,7 +318,9 @@ all.  This may very well take some time.")
                            (int-to-string article)))
         (file-error nil))
        (nnml-nov-delete-article group article)
-       (and last (nnml-save-nov))))
+       (when last
+        (nnml-save-nov)
+        (nnmail-save-active nnml-group-alist nnml-active-file))))
     result))
 
 (deffoo nnml-request-accept-article (group &optional server last)
@@ -774,9 +776,17 @@ all.  This may very well take some time.")
 (defun nnml-nov-delete-article (group article)
   (save-excursion
     (set-buffer (nnml-open-nov group))
-    (goto-char (point-min))
-    (when (re-search-forward (concat "^" (int-to-string article) "\t") nil t)
-      (delete-region (match-beginning 0) (progn (forward-line 1) (point))))
+    (when (nnheader-find-nov-line article)
+      (delete-region (point) (progn (forward-line 1) (point)))
+      (when (bobp)
+       (let ((active (cadr (assoc group nnml-group-alist)))
+             num)
+         (when active
+           (if (eobp)
+               (setf (car active) (1+ (cdr active)))
+             (when (and (setq num (ignore-errors (read (current-buffer))))
+                        (numberp num))
+               (setf (car active) num)))))))
     t))
 
 (provide 'nnml)
index 39147f8..4a9db87 100644 (file)
@@ -548,8 +548,7 @@ It will prompt for a password."
 
 (defun nntp-send-authinfo-from-file ()
   "Send the AUTHINFO to the nntp server.
-This function is supposed to be called from `nntp-server-opened-hook'.
-It will prompt for a password."
+This function is supposed to be called from `nntp-server-opened-hook'."
   (when (file-exists-p "~/.nntp-authinfo")
     (nnheader-temp-write nil
       (insert-file-contents "~/.nntp-authinfo")
index 1d7b1a4..e2ce951 100644 (file)
@@ -1,5 +1,20 @@
+Mon Feb 10 07:18:16 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Article Commands): Addition.
+
+Mon Feb  3 19:59:10 1997  Paul Franklin  <paul@cs.washington.edu>
+
+       * gnus-group.el (gnus-group-edit-group): Allow editing of bad
+       groups.
+
+Wed Feb  5 02:00:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.texi (Mail Variables): Change.
+
 Tue Feb  4 02:33:31 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
+       * message.texi (Mail Aliases): New.
+
        * gnus.texi (Splitting Mail): Addition.
 
 Mon Feb  3 07:31:47 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
index c8b762e..672d6dd 100644 (file)
@@ -2855,7 +2855,6 @@ news.
 
 @item H f
 @kindex H f (Group)
-@itemx M-f
 @findex gnus-group-fetch-faq
 @vindex gnus-group-faq-directory
 @cindex FAQ
@@ -6203,9 +6202,11 @@ listed above.
 @cindex PostScript
 @cindex printing
 @kindex A P (Summary)
+@vindex gnus-ps-print-hook
 @findex gnus-summary-print-article 
 Generate and print a PostScript image of the article buffer
-(@code{gnus-summary-print-article}).
+(@code{gnus-summary-print-article}).  @code{gnus-ps-print-hook} will be
+run just before printing the buffer.
 
 @end table
 
@@ -7578,8 +7579,9 @@ spell-checking via the @code{ispell} package:
 
 Gnus provides a few different methods for storing the mail you send.
 The default method is to use the @dfn{archive virtual server} to store
-the mail.  If you want to disable this completely, you should set
-@code{gnus-message-archive-group} to @code{nil}.
+the mail.  If you want to disable this completely, the
+@code{gnus-message-archive-group} variable should be @code{nil}, which
+is the default.
 
 @vindex gnus-message-archive-method
 @code{gnus-message-archive-method} says what virtual server Gnus is to
@@ -8687,6 +8689,8 @@ password, you can either set @code{nnmail-pop-password-required} to
 @code{t} and be prompted for the password, or set
 @code{nnmail-pop-password} to the password itself.
 
+@code{nnmail-spool-file} can also be a list of mailboxes.
+
 Your Emacs has to have been configured with @samp{--with-pop} before
 compilation.  This is the default, but some installations have it
 switched off.
@@ -13790,9 +13794,10 @@ David S. Goldberg,
 D. Hall, 
 Magnus Hammerin,
 Raja R. Harinath,
+Hisashige Kenji, @c Hisashige
 Marc Horowitz,
+François Felix Ingrand,
 Ishikawa Ichiro, @c Ishikawa
-Francois Felix Ingrand,
 Lee Iverson, 
 Rajappa Iyer,
 Randell Jesup,
index eb5203f..040114d 100644 (file)
@@ -299,6 +299,7 @@ will be removed before popping up the buffer.  The default is
 * Insertion::           Inserting things into message buffers.
 * Various Commands::    Various things.
 * Sending::             Actually sending the message.
+* Mail Aliases::        How to use mail aliases.
 @end menu
 
 
@@ -555,6 +556,30 @@ Kill the message buffer and exit (@code{message-kill-buffer}).
 @end table
 
 
+
+@node Mail Aliases
+@section Mail Aliases
+@cindex mail aliases
+@cindex aliases
+
+Message uses @code{mailabbrev} to handle mail aliases.  
+@code{mailabbrev} works by parsing the @file{/etc/mailrc} and
+@file{~/.mailrc} files.  These files look like:
+
+@example
+alias lmi "Lars Magne Ingebrigtsen <larsi@@ifi.uio.no>"
+alias ding "ding@@ifi.uio.no (ding mailing list)"
+@end example
+
+After adding lines like this to your @file{~/.mailrc} file, you should
+be able to just write @samp{lmi} in the @code{To} or @code{Cc} (and so
+on) headers and press @kbd{SPC} to expand the alias.
+
+No expansion will be performed upon sending of the message---all
+expansions have to be done explicitly.
+
+
+
 @node Variables
 @chapter Variables
 
@@ -696,8 +721,10 @@ to.  If it isn't present already, it will be prompted for.
 @cindex organization
 This optional header will be filled out depending on the
 @code{message-user-organization} variable.
-@code{message-user-organization-file} will be used if that variable is
-@code{t}.
+@code{message-user-organization-file} will be used if this variable is
+@code{t}.  This variable can also be a string (in which case this string
+will be used), or it can be a function (which will be called with no
+parameters and should return a string to be used).
 
 @item Lines
 @cindex Lines