From: Lars Magne Ingebrigtsen Date: Tue, 4 Mar 1997 19:31:47 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: http://cgit.sxemacs.org/?a=commitdiff_plain;h=ad9b4ba38132b1bc2be77c80fecd2c4333d03ff2;p=gnus *** empty log message *** --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ec11910e8..61d9c52b6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,56 @@ +Fri Jun 14 06:24:02 1996 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.2.17 is released. + +Fri Jun 14 05:16:14 1996 Lars Magne Ingebrigtsen + + * gnus-xmas.el (gnus-xmas-call-region): New function. + + * nnheaderxm.el (nnheader-xmas-find-file-noselect): Simplify. + +Fri Jun 14 04:30:30 1996 Steven L. Baur + + * messagexmas.el (message-xmas-exchange-point-and-mark): New + function. + (message-xmas-dont-activate-region): New variable. + +Fri Jun 14 02:59:30 1996 Lars Magne Ingebrigtsen + + * gnus.el (gnus-summary-next-article): Check for nil cmd. + + * gnus-xmas.el (gnus-xmas-group-startup-message): Use xbm if that + is required. + + * messagexmas.el (message-xmas-setup-toolbar): Make sure all + buttons are defined. + + * gnus-xmas.el (gnus-summary-mail-toolbar): Add other icons. + (gnus-summary-toolbar): Add next/prev/catchup icons. + + * gnus-xmas.el: Use more native functions. + +Thu Jun 13 23:40:45 1996 Steven L. Baur + + * messagexmas.el (message-use-toolbar): Check for toolbar + support. + +Thu Jun 13 22:35:43 1996 Lars Magne Ingebrigtsen + + * gnus-score.el (gnus-newsgroup-score-alist): New function. + + * gnus.el (gnus-simplify-buffer-fuzzy): Use folded search. + + * message.el (message-tokenize-header): Respect quotes. + + * gnus.el (gnus-group-kill-group): Mass killing didn't work. + + * gnus-demon.el (gnus-demon-scan-mail): Make sure the server is + openable. + +Thu Jun 13 02:41:11 1996 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.2.16 is released. + Thu Jun 13 02:28:26 1996 Lars Magne Ingebrigtsen * nnheader.el (nnheader-insert-nov): Fudge a message-id if diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index 1038ab69c..431eb3220 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -211,9 +211,10 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's.") (defun gnus-demon-scan-mail () (let ((servers gnus-opened-servers) server) - (while servers - (setq server (car (pop servers))) + (while (setq server (car (pop servers))) (and (gnus-check-backend-function 'request-scan (car server)) + (or (gnus-server-opened server) + (gnus-open-server server)) (gnus-request-scan nil server))))) (provide 'gnus-demon) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 6d5eb0486..b0927ef02 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -488,15 +488,22 @@ used as score." (error "No article on current line") nil)))) +(defun gnus-newsgroup-score-alist () + (or + (let ((param-file (gnus-group-get-parameter + gnus-newsgroup-name 'score-file))) + (when param-file + (gnus-score-load param-file))) + (gnus-score-load + (gnus-score-file-name gnus-newsgroup-name))) + gnus-score-alist) + (defsubst gnus-score-get (symbol &optional alist) ;; Get SYMBOL's definition in ALIST. (cdr (assoc symbol (or alist gnus-score-alist - (progn - (gnus-score-load - (gnus-score-file-name gnus-newsgroup-name)) - gnus-score-alist))))) + (gnus-newsgroup-score-alist))))) (defun gnus-summary-score-entry (header match type score date &optional prompt silent) @@ -728,9 +735,7 @@ SCORE is the score to add." (let* ((alist (or alist gnus-score-alist - (progn - (gnus-score-load (gnus-score-file-name gnus-newsgroup-name)) - gnus-score-alist))) + (gnus-newsgroup-score-alist))) (entry (assoc symbol alist))) (cond ((gnus-score-get 'read-only alist) ;; This is a read-only score file, so we do nothing. diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index 0f5c15c6e..40e7e4d0f 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -27,7 +27,7 @@ (require 'text-props) (eval-when-compile (require 'cl)) -(defvar menu-bar-mode t) +(defvar menu-bar-mode (featurep 'menubar)) (require 'messagexmas) (defvar gnus-xmas-glyph-directory nil @@ -113,6 +113,7 @@ asynchronously. The compressed face will be piped to this command.") (defvar gnus-article-treatment-menu) (defvar gnus-mouse-2) (defvar standard-display-table) +(defvar gnus-tree-minimize-window) (defun gnus-xmas-set-text-properties (start end props &optional buffer) "You should NEVER use this function. It is ideologically blasphemous. @@ -380,7 +381,7 @@ call it with the value of the `gnus-data' text property." (defun gnus-xmas-define () (setq gnus-mouse-2 [button2]) - (or (memq 'underline (list-faces)) + (or (memq 'underline (face-list)) (and (fboundp 'make-face) (funcall (intern "make-face") 'underline))) ;; Must avoid calling set-face-underline-p directly, because it @@ -418,7 +419,7 @@ call it with the value of the `gnus-data' text property." (defun gnus-byte-code (func) "Return a form that can be `eval'ed based on FUNC." (let ((fval (symbol-function func))) - (if (byte-code-function-p fval) + (if (compiled-function-p fval) (list 'funcall fval) (cons 'progn (cdr (cdr fval)))))) @@ -528,7 +529,8 @@ pounce directly on the real variables themselves.") (let ((logo (and gnus-xmas-glyph-directory (concat (file-name-as-directory gnus-xmas-glyph-directory) - "gnus.xpm"))) + "gnus." + (if (featurep 'xpm) "xpm" "xbm")))) (xpm-color-symbols (and (featurep 'xpm) (append `(("thing" ,(car gnus-xmas-logo-colors)) @@ -590,14 +592,16 @@ pounce directly on the real variables themselves.") (put-text-property (match-beginning 0) (match-end 0) 'face 'bold)) (goto-char (point-min)) (let* ((mode-string (gnus-group-set-mode-line))) - (setq mode-line-buffer-identification + (setq modeline-buffer-identification (list (concat gnus-version (substring (car mode-string) 4)))) (set-buffer-modified-p t)))) ;;; The toolbar. -(defvar gnus-use-toolbar 'default-toolbar +(defvar gnus-use-toolbar (if (featurep 'toolbar) + 'default-toolbar + nil) "*If nil, do not use a toolbar. If it is non-nil, it must be a toolbar. The five legal values are `default-toolbar', `top-toolbar', `bottom-toolbar', @@ -619,6 +623,10 @@ If it is non-nil, it must be a toolbar. The five legal values are (defvar gnus-summary-toolbar '( + [gnus-summary-prev-unread + gnus-summary-prev-unread-article t "Prev unread article"] + [gnus-summary-next-unread + gnus-summary-next-unread-article t "Next unread article"] [gnus-summary-post-news gnus-summary-post-news t "Post an article"] [gnus-summary-followup-with-original @@ -642,19 +650,36 @@ If it is non-nil, it must be a toolbar. The five legal values are gnus-uu-post-news t "Post an uuencoded article"] [gnus-summary-cancel-article gnus-summary-cancel-article t "Cancel article"] + [gnus-summary-catchup-and-exit + gnus-summary-catchup-and-exit t "Catchup and exit"] ) "The summary buffer toolbar.") (defvar gnus-summary-mail-toolbar - '([gnus-summary-mail-reply gnus-summary-reply t "Reply"] + '( + [gnus-summary-prev-unread + gnus-summary-prev-unread-article t "Prev unread article"] + [gnus-summary-next-unread + gnus-summary-next-unread-article t "Next unread article"] + [gnus-summary-mail-reply gnus-summary-reply t "Reply"] [gnus-summary-mail-get gnus-mail-get t "Message get"] [gnus-summary-mail-originate gnus-summary-post-news t "Originate"] [gnus-summary-mail-save gnus-summary-save-article t "Save"] [gnus-summary-mail-copy gnus-summary-copy-article t "Copy message"] - [gnus-summary-mail-delete gnus-summary-delete-article t "Delete message"] +; [gnus-summary-mail-delete gnus-summary-delete-article t "Delete message"] [gnus-summary-mail-forward gnus-summary-mail-forward t "Forward message"] ; [gnus-summary-mail-spell gnus-mail-spell t "Spell"] ; [gnus-summary-mail-help gnus-mail-help t "Message help"] + [gnus-summary-caesar-message + gnus-summary-caesar-message t "Rot 13"] + [gnus-uu-decode-uu + gnus-uu-decode-uu t "Decode uuencoded articles"] + [gnus-summary-save-article-file + gnus-summary-save-article-file t "Save article in file"] + [gnus-summary-save-article + gnus-summary-save-article t "Save article"] + [gnus-summary-catchup-and-exit + gnus-summary-catchup-and-exit t "Catchup and exit"] ) "The summary buffer mail toolbar.") @@ -683,19 +708,36 @@ XEmacs compatibility workaround." nil (mail-strip-quoted-names address))) +(defun gnus-xmas-call-region (command &rest args) + (apply + 'call-process-region (point-min) (point-max) command t '(t nil) nil + args)) + (defun gnus-xmas-article-display-xface (beg end) "Display any XFace headers in the current article." (save-excursion (let (xface-glyph) - (when (featurep 'xface) - (setq xface-glyph - (make-glyph (vector 'xface :data - (setq my (concat "X-Face: " - (buffer-substring beg end)))))) - (goto-char (point-min)) - (re-search-forward "^From:" nil t) - (beginning-of-line) - (set-extent-begin-glyph - (make-extent (point) (point)) xface-glyph))))) + (if (featurep 'xface) + (setq xface-glyph + (make-glyph (vector 'xface :data + (concat "X-Face: " + (buffer-substring beg end))))) + (let ((cur (current-buffer))) + (save-excursion + (gnus-set-work-buffer) + (insert (format "%s" (buffer-substring beg end cur))) + (gnus-xmas-call-region "uncompface") + (goto-char (point-min)) + (insert "/* Width=48, Height=48 */\n") + (gnus-xmas-call-region "icontopbm") + (gnus-xmas-call-region "ppmtoxpm") + (setq xface-glyph + (make-glyph + (vector 'xpm :data (buffer-string ))))))) + (goto-char (point-min)) + (re-search-forward "^From:" nil t) + (beginning-of-line) + (set-extent-begin-glyph + (make-extent (point) (point)) xface-glyph)))) ;;; gnus-xmas.el ends here diff --git a/lisp/gnus.el b/lisp/gnus.el index 5b69bc50c..0aceb5b37 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -1730,7 +1730,7 @@ variable (string, integer, character, etc).") "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") -(defconst gnus-version-number "5.2.16" +(defconst gnus-version-number "5.2.17" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) @@ -3113,49 +3113,50 @@ If RE-ONLY is non-nil, strip leading `Re:'s only." ;; all whitespace. ;; Written by Stainless Steel Rat . (defun gnus-simplify-buffer-fuzzy () - (goto-char (point-min)) - (while (search-forward "\t" nil t) - (replace-match " " t t)) - (goto-char (point-min)) - (re-search-forward "^ *\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;] *" nil t) - (goto-char (match-beginning 0)) - (while (or - (looking-at "^ *\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;] *") - (looking-at "^[[].*: .*[]]$")) + (let ((case-fold-search t)) + (goto-char (point-min)) + (while (search-forward "\t" nil t) + (replace-match " " t t)) (goto-char (point-min)) - (while (re-search-forward "^ *\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;] *" - nil t) + (re-search-forward "^ *\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;] *" nil t) + (goto-char (match-beginning 0)) + (while (or + (looking-at "^ *\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;] *") + (looking-at "^[[].*: .*[]]$")) + (goto-char (point-min)) + (while (re-search-forward "^ *\\(re\\|fwd\\)[[{(^0-9]*[])}]?[:;] *" + nil t) + (replace-match "" t t)) + (goto-char (point-min)) + (while (re-search-forward "^[[].*: .*[]]$" nil t) + (goto-char (match-end 0)) + (delete-char -1) + (delete-region + (progn (goto-char (match-beginning 0))) + (re-search-forward ":")))) + (goto-char (point-min)) + (while (re-search-forward " *[[{(][^()\n]*[]})] *$" nil t) (replace-match "" t t)) (goto-char (point-min)) - (while (re-search-forward "^[[].*: .*[]]$" nil t) - (goto-char (match-end 0)) - (delete-char -1) - (delete-region - (progn (goto-char (match-beginning 0))) - (re-search-forward ":")))) - (goto-char (point-min)) - (while (re-search-forward " *[[{(][^()\n]*[]})] *$" nil t) - (replace-match "" t t)) - (goto-char (point-min)) - (while (re-search-forward " +" nil t) - (replace-match " " t t)) - (goto-char (point-min)) - (while (re-search-forward " $" nil t) - (replace-match "" t t)) - (goto-char (point-min)) - (while (re-search-forward "^ +" nil t) - (replace-match "" t t)) - (goto-char (point-min)) - (when gnus-simplify-subject-fuzzy-regexp - (if (listp gnus-simplify-subject-fuzzy-regexp) - (let ((list gnus-simplify-subject-fuzzy-regexp)) - (while list - (goto-char (point-min)) - (while (re-search-forward (car list) nil t) - (replace-match "" t t)) - (setq list (cdr list)))) - (while (re-search-forward gnus-simplify-subject-fuzzy-regexp nil t) - (replace-match "" t t))))) + (while (re-search-forward " +" nil t) + (replace-match " " t t)) + (goto-char (point-min)) + (while (re-search-forward " $" nil t) + (replace-match "" t t)) + (goto-char (point-min)) + (while (re-search-forward "^ +" nil t) + (replace-match "" t t)) + (goto-char (point-min)) + (when gnus-simplify-subject-fuzzy-regexp + (if (listp gnus-simplify-subject-fuzzy-regexp) + (let ((list gnus-simplify-subject-fuzzy-regexp)) + (while list + (goto-char (point-min)) + (while (re-search-forward (car list) nil t) + (replace-match "" t t)) + (setq list (cdr list)))) + (while (re-search-forward gnus-simplify-subject-fuzzy-regexp nil t) + (replace-match "" t t)))))) (defun gnus-simplify-subject-fuzzy (subject) "Siplify a subject string fuzzily." @@ -6324,6 +6325,12 @@ of groups killed." (while groups (gnus-group-remove-mark (setq group (pop groups))) (gnus-delete-line) + (push group gnus-killed-list) + (setq gnus-newsrc-alist + (delq (assoc group gnus-newsrc-alist) + gnus-newsrc-alist)) + (when gnus-group-change-level-function + (funcall gnus-group-change-level-function group 9 3)) (cond ((setq entry (gnus-gethash group gnus-newsrc-hashtb)) (push (cons (car entry) (nth 2 entry)) @@ -10398,7 +10405,8 @@ If BACKWARD, the previous article is selected instead of the next." (select-window (get-buffer-window (current-buffer))) ;; Select next unread newsgroup automagically. (cond - ((not gnus-auto-select-next) + ((or (not gnus-auto-select-next) + (not cmd)) (gnus-message 7 "No more%s articles" (if unread " unread" ""))) ((or (eq gnus-auto-select-next 'quietly) (and (eq gnus-auto-select-next 'slightly-quietly) @@ -14275,10 +14283,11 @@ always hide." (if (and (boundp 'mime::preview/content-list) mime::preview/content-list) (let ((pcinfo (car (last mime::preview/content-list)))) - (narrow-to-region - (funcall (intern "mime::preview-content-info/point-min") pcinfo) - (point-max)) - t)) + (condition-case () + (narrow-to-region + (funcall (intern "mime::preview-content-info/point-min") pcinfo) + (point-max)) + (error nil)))) (goto-char (point-max)) (when (re-search-backward gnus-signature-separator nil t) (forward-line 1) diff --git a/lisp/message.el b/lisp/message.el index 847e9fd20..aeb75e809 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -516,17 +516,24 @@ The cdr of ech entry is a function for applying the face to a region.") (defun message-tokenize-header (header &optional separator) "Split HEADER into a list of header elements. \",\" is used as the separator." - (let* ((beg 0) - (separator (or separator ",")) - (regexp - (format "[ \t]*\\([^%s]+\\)?\\([%s]+\\|\\'\\)" separator separator)) - elems) - (while (and (string-match regexp header beg) - (< beg (length header))) - (when (match-beginning 1) - (push (match-string 1 header) elems)) - (setq beg (match-end 0))) - (nreverse elems))) + (let ((regexp (format "[%s]+" (or separator ","))) + (beg 1) + quoted elems) + (save-excursion + (message-set-work-buffer) + (insert header) + (goto-char (point-min)) + (while (not (eobp)) + (forward-char 1) + (cond ((or (eobp) + (and (looking-at regexp) + (> (point) beg) + (not quoted))) + (push (buffer-substring beg (point)) elems) + (setq beg (match-end 0))) + ((= (following-char) ?\") + (setq quoted (not quoted))))) + (nreverse elems)))) (defun message-fetch-field (header) "The same as `mail-fetch-field', only remove all newlines." @@ -1085,7 +1092,7 @@ prefix, and don't delete any headers." (delete-windows-on message-reply-buffer t) (insert-buffer message-reply-buffer) (funcall message-cite-function) - (exchange-point-and-mark) + (gnus-exchange-point-and-mark) (unless (bolp) (insert ?\n)) (unless modified @@ -1599,7 +1606,6 @@ the user from the mailer." (car headers) header))))) ;; Check the From header. (or - (message-check-element 'from) (save-excursion (let* ((case-fold-search t) (from (message-fetch-field "from"))) @@ -2880,6 +2886,8 @@ which specify the range to operate on." (if (eq (following-char) (char-after (- (point) 2))) (delete-char -2)))))) +(fset 'gnus-exchange-point-and-mark 'exchange-point-and-mark) + ;; Support for toolbar (when (string-match "XEmacs\\|Lucid" emacs-version) (require 'messagexmas)) diff --git a/lisp/messagexmas.el b/lisp/messagexmas.el index 851cd1c3e..aca2ba236 100644 --- a/lisp/messagexmas.el +++ b/lisp/messagexmas.el @@ -25,12 +25,17 @@ ;;; Code: +(defvar message-xmas-dont-activate-region nil + "If t, don't activate region after yanking.") + (defvar message-xmas-glyph-directory nil "*Directory where Message logos and icons are located. If this variable is nil, Message will try to locate the directory automatically.") -(defvar message-use-toolbar 'default-toolbar +(defvar message-use-toolbar (if (featurep 'toolbar) + 'default-toolbar + nil) "*If nil, do not use a toolbar. If it is non-nil, it must be a toolbar. The five legal values are `default-toolbar', `top-toolbar', `bottom-toolbar', @@ -71,13 +76,12 @@ If it is non-nil, it must be a toolbar. The five legal values are (unless package (setq message-xmas-glyph-directory dir)) (when dir - (if (and (not force) - (boundp (aref (car bar) 0))) - dir - (while bar - (setq icon (aref (car bar) 0) - name (symbol-name icon) - bar (cdr bar)) + (while bar + (setq icon (aref (car bar) 0) + name (symbol-name icon) + bar (cdr bar)) + (when (or force + (not (boundp icon))) (setq up (concat dir name "-up." xpm)) (setq down (concat dir name "-down." xpm)) (setq disabled (concat dir name "-disabled." xpm)) @@ -85,8 +89,8 @@ If it is non-nil, it must be a toolbar. The five legal values are (set icon nil) (set icon (toolbar-make-button-list up (and (file-exists-p down) down) - (and (file-exists-p disabled) disabled))))) - dir)))) + (and (file-exists-p disabled) disabled))))))) + dir)) (defun message-setup-toolbar () (and message-use-toolbar @@ -94,6 +98,10 @@ If it is non-nil, it must be a toolbar. The five legal values are (set-specifier (symbol-value message-use-toolbar) (cons (current-buffer) message-toolbar)))) +(defun message-xmas-exchange-point-and-mark () + "Exchange point and mark, but allow for XEmacs' optional argument." + (exchange-point-and-mark message-dont-activate-region)) + (provide 'messagexmas) ;;; messagexmas.el ends here diff --git a/lisp/nnheaderxm.el b/lisp/nnheaderxm.el index 5d1df4763..d4459adc6 100644 --- a/lisp/nnheaderxm.el +++ b/lisp/nnheaderxm.el @@ -75,9 +75,7 @@ The buffer is not selected, just returned to the caller." (number (nthcdr 10 (file-attributes truename))) ;; Find any buffer for a file which has same truename. (other (and (not buf) - (if (fboundp 'find-buffer-visiting) - (find-buffer-visiting filename) - (get-file-buffer filename)))) + (get-file-buffer filename))) error) ;; Let user know if there is a buffer with the same truename. (if other diff --git a/texi/ChangeLog b/texi/ChangeLog index c2156e273..a79090c7e 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,9 @@ +Fri Jun 14 04:51:17 1996 Lars Magne Ingebrigtsen + + * message.texi: Changed name. + + * gnus.texi: Changed name. + Wed Jun 12 22:44:25 1996 Lars Magne Ingebrigtsen * message.texi (Message Buffers): Addition. diff --git a/texi/Makefile b/texi/Makefile index f401c2a85..79b7c34e5 100644 --- a/texi/Makefile +++ b/texi/Makefile @@ -6,14 +6,14 @@ LATEX=latex DVIPS=dvips PERL=perl -all: gnus.info message.info +all: gnus message most: texi2latexi.elc latex latexps -gnus.info: gnus.texi +gnus: gnus.texi $(MAKEINFO) gnus.texi $(INFOSWI) -message.info: message.texi +message: message.texi $(MAKEINFO) message.texi $(INFOSWI) dvi: gnus.texi @@ -29,8 +29,8 @@ clean: gnus.cind gnus.ilg gnus.ind gnus.kidx gnus.kind gnus.idx makeinfo: - makeinfo -o gnus.info gnus.texi - makeinfo -o message.info message.texi + makeinfo -o gnus gnus.texi + makeinfo -o message message.texi texi2latexi.elc: $(EMACS) -batch -l bytecomp -f batch-byte-recompile-directory diff --git a/texi/gnus.texi b/texi/gnus.texi index 9096f37e2..bee84aeb3 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- -@setfilename gnus.info +@setfilename gnus @settitle Gnus 5.2 Manual @synindex fn cp @synindex vr cp diff --git a/texi/message.texi b/texi/message.texi index a6952dba2..640e2176b 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- -@setfilename message.info +@setfilename message @settitle Message Manual @synindex fn cp @synindex vr cp