+Fri May 31 04:33:16 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * custom.el (custom-face-lookup): Escape errors.
+
+ * gnus-msg.el (gnus-inews-do-gcc): Don't do anything unless Gnus
+ is alive.
+
+ * custom.el (custom-face-lookup): Wrong number of params.
+
+Fri May 31 00:14:17 1996 Lars Magne Ingebrigtsen <larsi@ylfing.ifi.uio.no>
+
+ * gnus.el (gnus-continuum-version): Also give responses to
+ directory names.
+ (gnus-summary-update-article): Would bug out on editing articles.
+
Thu May 30 05:04:07 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+ * gnus.el: Gnus v5.2.2 is released.
+
* gnus.el (gnus-article-hide-headers): Show boring headers as
well.
(defvar custom-mouse-face nil)
(defvar custom-field-active-face nil))
-(or (and (fboundp 'modify-face) (not (featurep 'face-lock)))
- ;; Introduced in Emacs 19.29. Incompatible definition also introduced
- ;; by face-lock.el version 3.00 and above for Emacs 19.28 and below.
- ;; face-lock does not call modify-face, so we can safely redefine it.
- (defun modify-face (face foreground background stipple
- bold-p italic-p underline-p)
- "Change the display attributes for face FACE.
-FOREGROUND and BACKGROUND should be color strings or nil.
-STIPPLE should be a stipple pattern name or nil.
-BOLD-P, ITALIC-P, and UNDERLINE-P specify whether the face should be set bold,
-in italic, and underlined, respectively. (Yes if non-nil.)
-If called interactively, prompts for a face and face attributes."
- (interactive
- (let* ((completion-ignore-case t)
- (face (symbol-name (read-face-name "Modify face: ")))
- (colors (mapcar 'list x-colors))
- (stipples (mapcar 'list
- (apply 'nconc
- (mapcar 'directory-files
- x-bitmap-file-path))))
- (foreground (modify-face-read-string
- face (face-foreground (intern face))
- "foreground" colors))
- (background (modify-face-read-string
- face (face-background (intern face))
- "background" colors))
- (stipple (modify-face-read-string
- face (face-stipple (intern face))
- "stipple" stipples))
- (bold-p (y-or-n-p (concat "Set face " face " bold ")))
- (italic-p (y-or-n-p (concat "Set face " face " italic ")))
- (underline-p (y-or-n-p (concat "Set face " face " underline "))))
- (message "Face %s: %s" face
- (mapconcat 'identity
- (delq nil
- (list (and foreground (concat (downcase foreground) " foreground"))
- (and background (concat (downcase background) " background"))
- (and stipple (concat (downcase stipple) " stipple"))
- (and bold-p "bold") (and italic-p "italic")
- (and underline-p "underline"))) ", "))
- (list (intern face) foreground background stipple
- bold-p italic-p underline-p)))
- (condition-case nil (set-face-foreground face foreground) (error nil))
- (condition-case nil (set-face-background face background) (error nil))
- (condition-case nil (set-face-stipple face stipple) (error nil))
- (if (string-match "XEmacs" emacs-version)
- (progn
- (funcall (if bold-p 'make-face-bold 'make-face-unbold) face)
- (funcall (if italic-p 'make-face-italic 'make-face-unitalic) face))
- (funcall (if bold-p 'make-face-bold 'make-face-unbold) face nil t)
- (funcall (if italic-p 'make-face-italic 'make-face-unitalic) face nil t))
- (set-face-underline-p face underline-p)
- (and (interactive-p) (redraw-display))))
-
;; We can't easily check for a working intangible.
(defconst intangible (if (and (boundp 'emacs-minor-version)
(or (> emacs-major-version 19)
(not (string-equal fg "default")))
(set-face-foreground name fg))
(when (and bg
- (not (string-equal fg "default")))
+ (not (string-equal bg "default")))
(set-face-background name bg))
(when (and stipple
- (not (eq stipple 'as-is)))
- (set-face-stipple name))
+ (not (string-equal stipple "default"))
+ (not (eq stipple 'custom:asis))
+ (fboundp 'set-face-stipple))
+ (set-face-stipple name stipple))
(when (and bold
- (not (eq bold 'as-is)))
- (make-face-bold name))
+ (not (eq bold 'custom:asis)))
+ (condition-case ()
+ (make-face-bold name)
+ (error nil)))
(when (and italic
- (not (eq italic 'as-is)))
- (make-face-italic name))
+ (not (eq italic 'custom:asis)))
+ (condition-case ()
+ (make-face-italic name)
+ (error nil)))
(when (and underline
- (not (eq underline 'as-is)))
- (set-face-underline-p name)))
+ (not (eq underline 'custom:asis)))
+ (condition-case ()
+ (set-face-underline-p name t)
+ (error nil))))
name))
(defun custom-face-hack (field value)
(not (string-match "XEmacs" emacs-version)))
(custom-category-put 'custom-hidden-properties intangible t)
-(if (file-readable-p custom-file)
- (load-file custom-file))
+(eval-when 'load
+ (if (file-readable-p custom-file)
+ (load-file custom-file)))
(provide 'custom)
(list
""
(custom-face-lookup "cyan" nil nil t nil nil)
- (custom-face-lookup "forestgreen" nil nil nil t nil))))
+ (custom-face-lookup "forestgreen" nil nil nil t
+ nil))))
(t
(list
(list "From" nil
(list "Newsgroups:.*," nil
(custom-face-lookup "indianred" nil nil t t nil))
(list ""
- (custom-face-lookup "DarkGreen" nil nil t nil nil)
- (custom-face-lookup "DarkGreen" nil nil nil t nil))))))
+ (custom-face-lookup
+ "DarkGreen" nil nil t nil nil)
+ (custom-face-lookup "DarkGreen" nil nil
+ nil t nil))))))
(data
((type . repeat)
(header . nil)
(list
(cons
'(= mark gnus-canceled-mark)
- (custom-face-lookup "yellow" "black" nil nil nil nil))
+ (custom-face-lookup "yellow" "black" nil
+ nil nil nil))
(cons '(and (> score default)
(or (= mark gnus-dormant-mark)
(= mark gnus-ticked-mark)))
- (custom-face-lookup "pink" nil nil t nil nil))
+ (custom-face-lookup
+ "pink" nil nil t nil nil nil))
(cons '(and (< score default)
(or (= mark gnus-dormant-mark)
(= mark gnus-ticked-mark)))
- (custom-face-lookup "pink" nil nil nil t nil))
+ (custom-face-lookup "pink" nil nil
+ nil t nil))
(cons '(or (= mark gnus-dormant-mark)
(= mark gnus-ticked-mark))
- (custom-face-lookup "pink" nil nil nil nil nil))
+ (custom-face-lookup
+ "pink" nil nil nil nil nil))
(cons
'(and (> score default) (= mark gnus-ancient-mark))
- (custom-face-lookup "dark blue" nil nil t nil nil))
+ (custom-face-lookup "dark blue" nil nil t
+ nil nil))
(cons
'(and (< score default) (= mark gnus-ancient-mark))
- (custom-face-lookup "SkyBlue" nil nil nil t nil))
+ (custom-face-lookup "SkyBlue" nil nil
+ nil t nil))
(cons
'(= mark gnus-ancient-mark)
- (custom-face-lookup "SkyBlue" nil nil nil nil nil))
-
+ (custom-face-lookup "SkyBlue" nil nil
+ nil nil nil))
(cons '(and (> score default) (= mark gnus-unread-mark))
- (custom-face-lookup "white" nil nil t nil nil))
+ (custom-face-lookup "white" nil nil t
+ nil nil))
(cons '(and (< score default) (= mark gnus-unread-mark))
- (custom-face-lookup "white" nil nil nil t nil))
+ (custom-face-lookup "white" nil nil
+ nil t nil))
(cons '(= mark gnus-unread-mark)
- (custom-face-lookup "white" nil nil nil nil nil))
+ (custom-face-lookup
+ "white" nil nil nil nil nil))
(cons '(> score default) 'bold)
(cons '(< score default) 'italic)))
(t
(list
- (cons '(= mark gnus-canceled-mark)
- (custom-face-lookup "yellow" "black" nil nil nil nil))
+ (cons
+ '(= mark gnus-canceled-mark)
+ (custom-face-lookup
+ "yellow" "black" nil nil nil nil))
(cons '(and (> score default)
(or (= mark gnus-dormant-mark)
(= mark gnus-ticked-mark)))
- (custom-face-lookup "firebrick" nil nil t nil nil))
+ (custom-face-lookup "firebrick" nil nil
+ t nil nil))
(cons '(and (< score default)
(or (= mark gnus-dormant-mark)
(= mark gnus-ticked-mark)))
- (custom-face-lookup "firebrick" nil nil nil t nil))
- (cons '(or (= mark gnus-dormant-mark)
- (= mark gnus-ticked-mark))
- (custom-face-lookup "firebrick" nil nil nil nil nil))
+ (custom-face-lookup "firebrick" nil nil
+ nil t nil))
+ (cons
+ '(or (= mark gnus-dormant-mark)
+ (= mark gnus-ticked-mark))
+ (custom-face-lookup
+ "firebrick" nil nil nil nil nil))
(cons '(and (> score default) (= mark gnus-ancient-mark))
- (custom-face-lookup "RoyalBlue" nil nil t nil nil))
+ (custom-face-lookup "RoyalBlue" nil nil
+ t nil nil))
(cons '(and (< score default) (= mark gnus-ancient-mark))
- (custom-face-lookup "RoyalBlue" nil nil nil t nil))
- (cons '(= mark gnus-ancient-mark)
- (custom-face-lookup "RoyalBlue" nil nil nil nil nil))
+ (custom-face-lookup "RoyalBlue" nil nil
+ nil t nil))
+ (cons
+ '(= mark gnus-ancient-mark)
+ (custom-face-lookup
+ "RoyalBlue" nil nil nil nil nil))
(cons '(and (> score default) (/= mark gnus-unread-mark))
- (custom-face-lookup "DarkGreen" nil nil t nil nil))
+ (custom-face-lookup "DarkGreen" nil nil
+ t nil nil))
(cons '(and (< score default) (/= mark gnus-unread-mark))
- (custom-face-lookup "DarkGreen" nil nil nil t nil))
- (cons '(/= mark gnus-unread-mark)
- (custom-face-lookup "DarkGreen" nil nil nil nil nil))
+ (custom-face-lookup "DarkGreen" nil nil
+ nil t nil))
+ (cons
+ '(/= mark gnus-unread-mark)
+ (custom-face-lookup "DarkGreen" nil nil
+ nil nil nil))
(cons '(> score default) 'bold)
(cons '(< score default) 'italic)))))
;; Do Gcc handling, which copied the message over to some group.
(defun gnus-inews-do-gcc (&optional gcc)
- (save-excursion
- (save-restriction
- (message-narrow-to-headers)
- (let ((gcc (or gcc (mail-fetch-field "gcc" nil t)))
- (cur (current-buffer))
- groups group method)
- (when gcc
- (message-remove-header "gcc")
- (widen)
- (setq groups (message-tokenize-header gcc " ,"))
- ;; Copy the article over to some group(s).
- (while (setq group (pop groups))
- (gnus-check-server
- (setq method
- (cond ((and (null (gnus-get-info group))
- (eq (car gnus-message-archive-method)
- (car
- (gnus-server-to-method
- (gnus-group-method group)))))
- ;; If the group doesn't exist, we assume
- ;; it's an archive group...
- gnus-message-archive-method)
- ;; Use the method.
- ((gnus-info-method (gnus-get-info group))
- (gnus-info-method (gnus-get-info group)))
- ;; Find the method.
- (t (gnus-group-method group)))))
- (gnus-check-server method)
- (unless (gnus-request-group group t method)
- (gnus-request-create-group group method))
- (save-excursion
- (nnheader-set-temp-buffer " *acc*")
- (insert-buffer-substring cur)
- (goto-char (point-min))
- (when (re-search-forward
- (concat "^" (regexp-quote mail-header-separator) "$")
- nil t)
- (replace-match "" t t ))
- (unless (gnus-request-accept-article group method t)
- (gnus-message 1 "Couldn't store article in group %s: %s"
- group (gnus-status-message method))
- (sit-for 2))
- (kill-buffer (current-buffer)))))))))
+ (when (gnus-alive-p)
+ (save-excursion
+ (save-restriction
+ (message-narrow-to-headers)
+ (let ((gcc (or gcc (mail-fetch-field "gcc" nil t)))
+ (cur (current-buffer))
+ groups group method)
+ (when gcc
+ (message-remove-header "gcc")
+ (widen)
+ (setq groups (message-tokenize-header gcc " ,"))
+ ;; Copy the article over to some group(s).
+ (while (setq group (pop groups))
+ (gnus-check-server
+ (setq method
+ (cond ((and (null (gnus-get-info group))
+ (eq (car gnus-message-archive-method)
+ (car
+ (gnus-server-to-method
+ (gnus-group-method group)))))
+ ;; If the group doesn't exist, we assume
+ ;; it's an archive group...
+ gnus-message-archive-method)
+ ;; Use the method.
+ ((gnus-info-method (gnus-get-info group))
+ (gnus-info-method (gnus-get-info group)))
+ ;; Find the method.
+ (t (gnus-group-method group)))))
+ (gnus-check-server method)
+ (unless (gnus-request-group group t method)
+ (gnus-request-create-group group method))
+ (save-excursion
+ (nnheader-set-temp-buffer " *acc*")
+ (insert-buffer-substring cur)
+ (goto-char (point-min))
+ (when (re-search-forward
+ (concat "^" (regexp-quote mail-header-separator) "$")
+ nil t)
+ (replace-match "" t t ))
+ (unless (gnus-request-accept-article group method t)
+ (gnus-message 1 "Couldn't store article in group %s: %s"
+ group (gnus-status-message method))
+ (sit-for 2))
+ (kill-buffer (current-buffer))))))))))
(defun gnus-inews-insert-gcc ()
"Insert Gcc headers based on `gnus-outgoing-message-group'."
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version-number "5.2.3"
+(defconst gnus-version-number "5.2.4"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
(number (mail-header-number header))
pos)
(when thread
- (setcar thread nil)
+ ;; !!! Should this be in or not?
+ ;(setcar thread nil)
(when parent
(delq thread parent))
(if (gnus-summary-insert-subject id header)
(defun gnus-continuum-version (version)
"Return VERSION as a floating point number."
- (when (string-match "^\\([^ ]+\\)? ?Gnus v?\\([0-9.]+\\)$" version)
+ (when (or (string-match "^\\([^ ]+\\)? ?Gnus v?\\([0-9.]+\\)$" version)
+ (string-match "^\\(.?\\)gnus-\\([0-9.]+\\)$" version))
(let* ((alpha (and (match-beginning 1) (match-string 1 version)))
(number (match-string 2 version))
major minor least)
(if (zerop major)
(format "%s00%02d%02d"
(cond
- ((string= alpha "(ding)") "4.99")
- ((string= alpha "September") "5.01")
- ((string= alpha "Red") "5.03"))
+ ((member alpha '("(ding)" "d")) "4.99")
+ ((member alpha '("September" "s")) "5.01")
+ ((member alpha '("Red" "r")) "5.03"))
minor least)
(format "%d.%02d%02d" major minor least))))))
;;; Code:
+(require 'cl)
+
;; Make the byte-compiler shut up.
(defvar headers)
(defvar message-send-news-function 'message-send-news
"Function to call to send the current buffer as news.
The headers should be delimited by a line whose contents match the
-variable `message-header-separator'.")
+variable `mail-header-separator'.")
;;;###autoload
(defvar message-reply-to-function nil
(defvar message-generate-headers-first nil
"*If non-nil, generate all possible headers before composing.")
-;;;###autoload
-(defvar message-header-separator "--text follows this line--"
- "*Line used to separate headers from text in messages being composed.")
-
(defvar message-setup-hook nil
"Normal hook, run each time a new outgoing message is initialized.
The function `message-setup' runs this hook.")
["Sort Headers" message-sort-headers t]
["Yank Original" message-yank-original t]
["Fill Yanked Message" message-fill-yanked-message t]
- ;; ["Insert Signature" news-reply-signature t]
+ ["Insert Signature" message-insert-signature t]
["Caesar (rot13) Message" message-caesar-buffer-body t]
["Rename buffer" message-rename-buffer t]
["Spellcheck" ispell-message t]
+Fri May 31 03:07:47 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * message.texi (Message Headers): Typo.
+
Tue May 28 21:19:29 1996 Lars Magne Ingebrigtsen <lars@eyesore.no>
* gnus.texi (Composing Messages): Deletia.
@node Message Headers
@section Message Headers
-Message is a quite aggressive on the message generation front. It has
+Message is quite aggressive on the message generation front. It has
to be -- it's a combined news and mail agent. To be able to send
combined messages, it has to generate all headers itself to ensure that
mail and news copies of messages look sufficiently similar.