*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 7 Mar 1997 06:39:32 +0000 (06:39 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Fri, 7 Mar 1997 06:39:32 +0000 (06:39 +0000)
22 files changed:
lisp/ChangeLog
lisp/Makefile
lisp/cus-face.el
lisp/dgnushack.el
lisp/gnus-art.el
lisp/gnus-ems.el
lisp/gnus-picon.el
lisp/gnus-sum.el
lisp/gnus-util.el
lisp/gnus.el
lisp/lpath.el
lisp/message.el
lisp/nnbabyl.el
lisp/nnfolder.el
lisp/nnheader.el
lisp/nnheaderxm.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
lisp/nnweb.el
lisp/smiley.el

index c1f469b..d07b30e 100644 (file)
@@ -1,3 +1,39 @@
+Fri Mar  7 07:36:14 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.4.21 is released.
+
+Fri Mar  7 04:17:40 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nnfolder.el (nnfolder-request-accept-article): Switch to the
+       right folder.
+
+       * Makefile (gnus-load.el): cus-edit.
+
+       * gnus.el: Removed all compilation warnings under both Emacs and
+       XEmacs. 
+
+       * cus-face.el: Moved variable defintions around a bit to avoid
+       compilation warnings.
+
+       * nnmail.el (nnmail-cache-message-id-when-accepting): New
+       variable. 
+
+       * nnfolder.el (nnfolder-dont-cache-message-id): Removed.
+       * nnmh.el (nnmh-request-accept-article): Ditto.
+       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
+       * nnml.el (nnml-request-accept-article): Ditto.
+       * nnmbox.el (nnmbox-request-accept-article): Use it.
+
+Thu Mar  6 18:22:29 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+       * nnfolder.el (nnfolder-dont-cache-message-id): Variable to allow
+       backwards compatibility with respect to saved messages.
+       (nnfolder-request-accept-article): Use it.
+
+Fri Mar  7 04:10:21 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nnmail.el: Autoload pop3.
+
 Fri Mar  7 01:33:34 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.4.20 is released.
index 731ced0..571c263 100644 (file)
@@ -28,7 +28,7 @@ gnus-load.el:
        echo ";;" >> gnus-load.el
        echo ";;; Code:" >> gnus-load.el
        echo >> gnus-load.el
-       $(EMACS)  $(FLAGS) -l ./dgnushack.el -l custom-edit.el *.el \
+       $(EMACS)  $(FLAGS) -l ./dgnushack.el -l cus-edit.el *.el \
                -f custom-make-dependencies >> gnus-load.el
        echo >> gnus-load.el
        echo "(provide 'gnus-load)" >> gnus-load.el
index a4580a9..cda39a4 100644 (file)
@@ -138,24 +138,57 @@ If the colors are not specified in the face, use the default colors."
        (set-face-foreground face bg frame)
        (set-face-background face fg frame)))))
 
-(if (string-match "XEmacs" emacs-version)
-    ;; XEmacs.
+(defcustom custom-background-mode nil
+  "The brightness of the background.
+Set this to the symbol dark if your background color is dark, light if
+your background is light, or nil (default) if you want Emacs to
+examine the brightness for you."
+  :group 'customize
+  :type '(choice (choice-item dark) 
+                (choice-item light)
+                (choice-item :tag "default" nil)))
+
+(eval-and-compile
+  (if (string-match "XEmacs" emacs-version)
+      ;; XEmacs.
+      (defun custom-extract-frame-properties (frame)
+       "Return a plist with the frame properties of FRAME used by custom."
+       (list 'type (device-type (frame-device frame))
+             'class (device-class (frame-device frame))
+             'background (or custom-background-mode
+                             (frame-property frame
+                                             'background-mode)
+                             (custom-background-mode frame))))
+    ;; Emacs.
     (defun custom-extract-frame-properties (frame)
       "Return a plist with the frame properties of FRAME used by custom."
-      (list 'type (device-type (frame-device frame))
-           'class (device-class (frame-device frame))
+      (list 'type window-system
+           'class (frame-property frame 'display-type)
            'background (or custom-background-mode
-                           (frame-property frame
-                                           'background-mode)
-                           (custom-background-mode frame))))
-  ;; Emacs.
-  (defun custom-extract-frame-properties (frame)
-    "Return a plist with the frame properties of FRAME used by custom."
-    (list 'type window-system
-         'class (frame-property frame 'display-type)
-         'background (or custom-background-mode
-                         (frame-property frame 'background-mode)
-                         (custom-background-mode frame)))))  
+                           (frame-property frame 'background-mode)
+                           (custom-background-mode frame))))))  
+
+(defconst custom-face-attributes
+  '((:bold (toggle :format "Bold: %[%v%]\n") custom-set-face-bold)
+    (:italic (toggle :format "Italic: %[%v%]\n") custom-set-face-italic)
+    (:underline
+     (toggle :format "Underline: %[%v%]\n") set-face-underline-p)
+    (:foreground (color :tag "Foreground") set-face-foreground)
+    (:background (color :tag "Background") set-face-background)
+    (:reverse (const :format "Reverse Video\n" t) 
+             (lambda (face value &optional frame)
+               ;; We don't use VALUE.
+               (reverse-face face frame)))
+    (:stipple (editable-field :format "Stipple: %v") set-face-stipple))
+  "Alist of face attributes. 
+
+The elements are of the form (KEY TYPE SET) where KEY is a symbol
+identifying the attribute, TYPE is a widget type for editing the
+attibute, SET is a function for setting the attribute value.
+
+The SET function should take three arguments, the face to modify, the
+value of the attribute, and optionally the frame where the face should
+be changed.")
 
 ;;; Declaring a face.
 
@@ -205,28 +238,6 @@ If FRAME is nil, set the default face."
          (funcall fun face value frame)
        (error nil)))))
 
-(defconst custom-face-attributes
-  '((:bold (toggle :format "Bold: %[%v%]\n") custom-set-face-bold)
-    (:italic (toggle :format "Italic: %[%v%]\n") custom-set-face-italic)
-    (:underline
-     (toggle :format "Underline: %[%v%]\n") set-face-underline-p)
-    (:foreground (color :tag "Foreground") set-face-foreground)
-    (:background (color :tag "Background") set-face-background)
-    (:reverse (const :format "Reverse Video\n" t) 
-             (lambda (face value &optional frame)
-               ;; We don't use VALUE.
-               (reverse-face face frame)))
-    (:stipple (editable-field :format "Stipple: %v") set-face-stipple))
-  "Alist of face attributes. 
-
-The elements are of the form (KEY TYPE SET) where KEY is a symbol
-identifying the attribute, TYPE is a widget type for editing the
-attibute, SET is a function for setting the attribute value.
-
-The SET function should take three arguments, the face to modify, the
-value of the attribute, and optionally the frame where the face should
-be changed.")
-
 (defun custom-set-face-bold (face value &optional frame)
   "Set the bold property of FACE to VALUE."
   (if value
@@ -287,16 +298,6 @@ See `defface' for information about SPEC."
            (put face 'custom-face-display display))
          (setq spec nil))))))
 
-(defcustom custom-background-mode nil
-  "The brightness of the background.
-Set this to the symbol dark if your background color is dark, light if
-your background is light, or nil (default) if you want Emacs to
-examine the brightness for you."
-  :group 'customize
-  :type '(choice (choice-item dark) 
-                (choice-item light)
-                (choice-item :tag "default" nil)))
-
 (defun custom-background-mode (frame)
   "Kludge to detect background mode for FRAME."
   (let* ((bg-resource 
index 7955ccd..0d5da7d 100644 (file)
@@ -47,6 +47,9 @@
     (fset 'x-defined-colors 'ignore)
     (fset 'read-color 'ignore)))
 
+(setq byte-compile-warnings 
+      '(free-vars unresolved callargs redefine))
+
 (defun dgnushack-compile ()
   ;;(setq byte-compile-dynamic t)
   (let ((files (directory-files "." nil ".el$"))
        (require 'w3-forms)
       (error (setq files (delete "nnweb.el" files))))
     (while (setq file (pop files))
-      (cond 
-       ((or (string= file "custom.el") (string= file "browse-url.el"))
-       (setq byte-compile-warnings nil))
-       (t
-       (setq byte-compile-warnings 
-             '(free-vars unresolved callargs redefine obsolete))))
       (when (or (not (member file '("gnus-xmas.el" "gnus-picon.el" 
                                    "messagexmas.el" "nnheaderxm.el"
                                    "smiley.el")))
index 6c54dcb..09162f8 100644 (file)
@@ -250,11 +250,6 @@ See `format-time-zone' for the possible values."
   (autoload 'timezone-make-date-arpa-standard "timezone")
   (autoload 'mail-extract-address-components "mail-extr"))
 
-(defcustom gnus-article-save-directory gnus-directory
-  "*Name of the directory articles will be saved in (default \"~/News\")."
-  :group 'gnus-article-saving
-  :type 'directory)
-
 (defcustom gnus-save-all-headers t
   "*If non-nil, don't remove any headers before saving."
   :group 'gnus-article-saving
index b42037f..d71e016 100644 (file)
@@ -71,7 +71,7 @@
         valstr))))
 
 (eval-and-compile
-  (if gnus-xemacs
+  (if (string-match "XEmacs\\|Lucid" emacs-version)
       nil
 
     (defvar gnus-mouse-face-prop 'mouse-face
index 630804d..78e6a50 100644 (file)
@@ -29,6 +29,8 @@
 (require 'xpm)
 (require 'annotations)
 (require 'custom)
+(require 'gnus-art)
+(require 'gnus-win)
 
 (defgroup picons nil
   "Show pictures of people, domains, and newsgroups (XEmacs).
index b934132..fe3a192 100644 (file)
@@ -314,9 +314,6 @@ It uses the same syntax as the `gnus-split-methods' variable."
                         (cons regexp (repeat string))
                         sexp)))
 
-;; Mark variables suggested by Thomas Michanek
-;; <Thomas.Michanek@telelogic.se>.
-
 (defcustom gnus-unread-mark ? 
   "*Mark used for unread articles."
   :group 'gnus-summary-marks
index fbbe712..3283b4f 100644 (file)
@@ -36,6 +36,9 @@
 (require 'timezone)
 (require 'message)
 
+(eval-and-compile
+  (autoload 'nnmail-date-to-time "nnmail"))
+
 (defun gnus-boundp (variable)
   "Return non-nil if VARIABLE is bound and non-nil."
   (and (boundp variable)
@@ -704,6 +707,7 @@ with potentially long computations."
 
 ;;; Functions for saving to babyl/mail files.
 
+(defvar rmail-default-rmail-file)
 (defun gnus-output-to-rmail (filename &optional ask)
   "Append the current article to an Rmail file named FILENAME."
   (require 'rmail)
index c6667f9..0ce7a14 100644 (file)
@@ -226,7 +226,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.20"
+(defconst gnus-version-number "5.4.21"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -1370,8 +1370,12 @@ want."
             gnus-article-strip-leading-blank-lines
             gnus-article-strip-multiple-blank-lines
             gnus-article-strip-blank-lines
-            gnus-article-treat-overstrike
-            ))
+            gnus-article-treat-overstrike))
+
+(defcustom gnus-article-save-directory gnus-directory
+  "*Name of the directory articles will be saved in (default \"~/News\")."
+  :group 'gnus-article-saving
+  :type 'directory)
 
 \f
 ;;; Internal variables
@@ -1638,7 +1642,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
       gnus-article-prepare gnus-article-set-window-start
       gnus-article-next-page gnus-article-prev-page
       gnus-request-article-this-buffer gnus-article-mode
-      gnus-article-setup-buffer gnus-narrow-to-page)
+      gnus-article-setup-buffer gnus-narrow-to-page
+      gnus-article-delete-invisible-text)
      ("gnus-art" :interactive t
       gnus-article-hide-headers gnus-article-hide-boring-headers
       gnus-article-treat-overstrike gnus-article-word-wrap
index c1f850f..139a909 100644 (file)
@@ -8,24 +8,50 @@
        (fset (car args) 'ignore))
     (setq args (cdr args))))
 
+(defun maybe-bind (args)
+  (mapcar (lambda (var) (unless (boundp var) (set var nil))) args))
+
 (if (string-match "XEmacs" emacs-version)
     (progn 
       (defvar track-mouse nil)
-      (maybe-fbind '(posn-point event-start x-popup-menu
-                    facemenu-get-face window-at
-                    coordinates-in-window-p compute-motion
-                    x-defined-colors easy-menu-create-keymaps)) 
+      (maybe-fbind '(posn-point
+                    event-start x-popup-menu
+                    facemenu-get-face window-at coordinates-in-window-p
+                    compute-motion x-defined-colors easy-menu-create-keymaps
+                    read-event internal-find-face internal-next-face-id
+                    make-face-internal set-frame-face-alist frame-face-alist
+                    facemenu-add-new-face make-face-x-resource-internal
+                    set-font-size set-font-family posn-window
+                    run-with-idle-timer mouse-minibuffer-check window-edges
+                    event-click-count track-mouse read-event mouse-movement-p
+                    event-end mouse-scroll-subr overlay-lists delete-overlay
+                    set-face-stipple mail-abbrevs-setup char-int
+                    make-char-table set-char-table-range font-create-object
+                    x-color-values widget-make-intangible error-message-string
+                    w3-form-encode-xwfu
+                    )) 
+      (maybe-bind '(global-face-data
+                   mark-active transient-mark-mode mouse-selection-click-count
+                   mouse-selection-click-count-buffer buffer-display-table
+                   font-lock-defaults user-full-name user-login-name
+                   gnus-newsgroup-name gnus-article-x-face-too-ugly))
       ;; XEmacs thinks writting compatible code is obsolete.
       (require 'bytecomp)
       (setq byte-compile-default-warnings
            (delq 'obsolete byte-compile-default-warnings)))
   (defvar browse-url-browser-function nil)
-  (maybe-fbind '(color-instance-rgb-components make-color-instance
-                color-instance-name specifier-instance device-type
-                device-class get-popup-menu-response event-object
+  (maybe-fbind '(color-instance-rgb-components
+                make-color-instance color-instance-name specifier-instance
+                device-type device-class get-popup-menu-response event-object
                 x-defined-colors read-color add-submenu set-font-family
                 font-create-object set-font-size frame-device find-face
-                set-extent-property make-extent characterp display-error)))
+                set-extent-property make-extent characterp display-error
+                set-face-doc-string frame-property face-doc-string
+                button-press-event-p next-command-event
+                widget-make-intangible glyphp make-glyph set-glyph-image
+                set-glyph-property event-glyph glyph-property event-point
+                device-on-window-system-p make-gui-button Info-goto-node
+                pp-to-string color-name)))
 
 (setq load-path (cons "." load-path))
 (require 'custom)
index d299e26..3a7d9f0 100644 (file)
@@ -29,8 +29,7 @@
 
 ;;; Code:
 
-(eval-when-compile 
-  (require 'cl))
+(require 'cl)
 (require 'mailheader)
 (require 'rmail)
 (require 'nnheader)
@@ -823,7 +822,8 @@ The cdr of ech entry is a function for applying the face to a region.")
   (autoload 'gnus-point-at-eol "gnus-util")
   (autoload 'gnus-point-at-bol "gnus-util")
   (autoload 'gnus-output-to-mail "gnus-util")
-  (autoload 'gnus-output-to-rmail "gnus-util"))
+  (autoload 'gnus-output-to-rmail "gnus-util")
+  (autoload 'mail-abbrev-in-expansion-header-p "mailabbrev"))
 
 \f
 
@@ -874,6 +874,16 @@ The cdr of ech entry is a function for applying the face to a region.")
                 (setq paren nil))))
        (nreverse elems)))))
 
+(defun message-mail-file-mbox-p (file)
+  "Say whether FILE looks like a Unix mbox file."
+  (when (and (file-exists-p file)
+            (file-readable-p file)
+            (file-regular-p file))
+    (nnheader-temp-write nil
+      (nnheader-insert-file-contents file)
+      (goto-char (point-min))
+      (looking-at message-unix-mail-delimiter))))
+
 (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 (not not-all))))
@@ -1405,7 +1415,7 @@ Mail and USENET news headers are not rotated."
         (unless (equal 0 (call-process-region
                            (point-min) (point-max) program t t))
             (insert body)
-            (gnus-message 1 "%s failed." program))))))
+            (message "%s failed." program))))))
 
 (defun message-rename-buffer (&optional enter-string)
   "Rename the *message* buffer to \"*message* RECIPIENT\".  
index 55937fa..d4ead2b 100644 (file)
        (save-excursion
         (while (re-search-backward "^X-Gnus-Newsgroup: " beg t)
           (delete-region (point) (progn (forward-line 1) (point)))))
-       (nnmail-cache-insert (nnmail-fetch-field "message-id"))
+       (when nnmail-cache-message-id-when-accepting
+        (nnmail-cache-insert (nnmail-fetch-field "message-id")))
        (setq result (car (nnbabyl-save-mail
                          (if (stringp group)
                              (list (cons group (nnbabyl-active-number group)))
index 82e83a1..4012b16 100644 (file)
@@ -382,7 +382,8 @@ time saver for large mailboxes.")
        (forward-line -1)
        (while (re-search-backward (concat "^" nnfolder-article-marker) nil t)
         (delete-region (point) (progn (forward-line 1) (point))))
-       (nnmail-cache-insert (nnmail-fetch-field "message-id"))
+       (when nnmail-cache-message-id-when-accepting
+        (nnmail-cache-insert (nnmail-fetch-field "message-id")))
        (setq result
             (car (nnfolder-save-mail
                   (if (stringp group)
@@ -391,7 +392,7 @@ time saver for large mailboxes.")
                           (nnmail-article-group 'nnfolder-active-number)))))))
      (when last
        (save-excursion
-        (nnfolder-possibly-change-folder (or (car art-group) group))
+        (nnfolder-possibly-change-folder (or (caar art-group) group))
         (nnfolder-save-buffer)
         (nnmail-cache-close))))
     (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
@@ -711,7 +712,7 @@ time saver for large mailboxes.")
         file)
     (while (setq file (pop files))
       (when (and (not (backup-file-name-p file))
-                 (nnheader-mail-file-mbox-p
+                 (message-mail-file-mbox-p
                  (concat nnfolder-directory file)))
         (nnheader-message 5 "Adding group %s..." file)
         (push (list file (cons 1 0)) nnfolder-group-alist)
index 4dbdb75..0b68710 100644 (file)
@@ -56,7 +56,9 @@ on your system, you could say something like:
  (autoload 'nnmail-message-id "nnmail")
  (autoload 'mail-position-on-field "sendmail")
  (autoload 'message-remove-header "message")
- (autoload 'cancel-function-timers "timers"))
+ (autoload 'cancel-function-timers "timers")
+ (autoload 'gnus-point-at-eol "gnus-util")
+ (autoload 'gnus-buffer-live-p "gnus-util"))
 
 ;;; Header access macros.
 
@@ -627,19 +629,6 @@ without formatting."
       (apply 'insert format args))
     t))
 
-(defun nnheader-mail-file-mbox-p (file)
-  "Say whether FILE looks like an Unix mbox file."
-  (when (and (file-exists-p file)
-            (file-readable-p file)
-            (file-regular-p file))
-    (save-excursion
-      (nnheader-set-temp-buffer " *mail-file-mbox-p*")
-      (nnheader-insert-file-contents file)
-      (goto-char (point-min))
-      (prog1
-         (looking-at message-unix-mail-delimiter)
-       (kill-buffer (current-buffer))))))
-
 (defun nnheader-replace-chars-in-string (string from to)
   "Replace characters in STRING from FROM to TO."
   (let ((string (substring string 0))  ;Copy string.
index 3e7a5d4..4ac2462 100644 (file)
@@ -25,6 +25,9 @@
 
 ;;; Code:
 
+(eval-and-compile
+  (autoload 'nnheader-insert-file-contents "nnheader"))
+
 (defun nnheader-xmas-run-at-time (time repeat function &rest args)
   (start-itimer
    "nnheader-run-at-time"
index 5079765..c6736f9 100644 (file)
 (require 'nnheader)
 (require 'timezone)
 (require 'message)
-(eval-when-compile (require 'cl))
+(require 'cl)
 (require 'custom)
 
+(eval-and-compile
+  (autoload 'gnus-error "gnus-util"))
+
 (defgroup nnmail nil
   "Reading mail with Gnus."
   :group 'gnus)
@@ -422,6 +425,11 @@ parameter.  It should return nil, `warn' or `delete'."
                 (const warn)
                 (const delete)))
 
+(defvar nnmail-cache-message-id-when-accepting nil
+  "If non-nil put the Message-ID: of incoming messages in the message ID cache.
+Not doing so is dangerous, but it is how Gnus used to work for a long
+time.")
+
 ;;; Internal variables.
 
 (defvar nnmail-split-history nil
@@ -1682,9 +1690,11 @@ If ARGS, PROMPT is used as an argument to `format'."
              his nil)))
     found))
 
+(eval-and-compile
+  (autoload 'pop3-movemail "pop3"))
+
 (defun nnmail-pop3-movemail (inbox crashbox)
   "Function to move mail from INBOX on a pop3 server to file CRASHBOX."
-  (require 'pop3)
   (let ((pop3-maildrop
          (substring inbox (match-end (string-match "^po:" inbox)))))
     (pop3-movemail crashbox)))
index 4bfb0b2..1b9f9ee 100644 (file)
        (forward-line -1)
        (while (re-search-backward "^X-Gnus-Newsgroup: " nil t)
         (delete-region (point) (progn (forward-line 1) (point))))
-       (nnmail-cache-insert (nnmail-fetch-field "message-id"))
+       (when nnmail-cache-message-id-when-accepting
+        (nnmail-cache-insert (nnmail-fetch-field "message-id")))
        (setq result (nnmbox-save-mail
                     (if (stringp group)
                         (list (cons group (nnmbox-active-number group)))
index 71bbbbf..85ddfee 100644 (file)
 (deffoo nnmh-request-accept-article (group &optional server last noinsert)
   (nnmh-possibly-change-directory group server)
   (nnmail-check-syntax)
-  (nnmail-save-active nnml-group-alist nnml-active-file)
+  (when nnmail-cache-message-id-when-accepting
+    (nnmail-cache-insert (nnmail-fetch-field "message-id")))
   (if (stringp group)
       (and 
        (nnmail-activate 'nnmh)
index 1c92ed3..55e97b0 100644 (file)
@@ -313,7 +313,8 @@ all.  This may very well take some time.")
   (nnml-possibly-change-directory group server)
   (nnmail-check-syntax)
   (let (result)
-    (nnmail-cache-insert (nnmail-fetch-field "message-id"))
+    (when nnmail-cache-message-id-when-accepting
+      (nnmail-cache-insert (nnmail-fetch-field "message-id")))
     (if (stringp group)
        (and 
         (nnmail-activate 'nnml)
index 2499d6b..5ab3b17 100644 (file)
@@ -34,6 +34,7 @@
 (require 'gnus)
 (require 'w3)
 (require 'url)
+(require 'nnmail)
 (ignore-errors
   (require 'w3-forms))
 
index 537aa6c..e1760c3 100644 (file)
@@ -248,6 +248,7 @@ above them."
                   (= (char-after (1- (point))) ?\()))
       t)))
 
+(defvar gnus-article-buffer)
 ;;;###autoload    
 (defun gnus-smiley-display ()
   (interactive)