+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.
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
(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.
(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
(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
(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")))
(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
valstr))))
(eval-and-compile
- (if gnus-xemacs
+ (if (string-match "XEmacs\\|Lucid" emacs-version)
nil
(defvar gnus-mouse-face-prop 'mouse-face
(require 'xpm)
(require 'annotations)
(require 'custom)
+(require 'gnus-art)
+(require 'gnus-win)
(defgroup picons nil
"Show pictures of people, domains, and newsgroups (XEmacs).
(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
(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)
;;; 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)
: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)
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
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
(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)
;;; Code:
-(eval-when-compile
- (require 'cl))
+(require 'cl)
(require 'mailheader)
(require 'rmail)
(require 'nnheader)
(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
(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))))
(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\".
(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)))
(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)
(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)
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)
(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.
(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.
;;; 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"
(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)
(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
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)))
(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)))
(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)
(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)
(require 'gnus)
(require 'w3)
(require 'url)
+(require 'nnmail)
(ignore-errors
(require 'w3-forms))
(= (char-after (1- (point))) ?\()))
t)))
+(defvar gnus-article-buffer)
;;;###autoload
(defun gnus-smiley-display ()
(interactive)