From: ichikawa Date: Sat, 28 Nov 1998 06:02:59 +0000 (+0000) Subject: Importing pgnus-0.55 X-Git-Tag: pgnus-0_55~1 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=1fabbb0eee2b36b4b416aaf7b8c34e46ee36439f;p=elisp%2Fgnus.git- Importing pgnus-0.55 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f2ba265..c2e8f7a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,57 @@ +Fri Nov 27 12:26:10 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.55 is released. + +1998-11-27 12:38:52 Lars Magne Ingebrigtsen + + * mm-view.el (mm-setup-w3): New function. + + * mm-decode.el (mm-content-id-get-contents): New function. + (mm-content-id-get-type): Ditto. + (mm-content-id-get-encoding): Ditto. + (mm-get-handle-by-content-id): Removed. + +1998-11-25 Colin Rafferty + + * message.el (message-generate-new-buffers): Fix tag. + +1998-11-25 10:43:28 Lars Magne Ingebrigtsen + + * message.el (message-buffer-name): Check for unique first. + + * gnus-art.el (gnus-unbuttonized-mime-type-p): use + gnus-inhibit-mime-unbuttonizing. + + * gnus-sum.el (t): Bind M-t. + (gnus-inhibit-unbuttonizing): New variable. + (gnus-summary-toggle-display-buttonized): New command. + + * gnus-art.el (gnus-display-mime): Select article window. + (article-strip-trailing-space): New command and keystroke. + + * nneething.el (nneething-include-files): New variable. + (nneething-create-mapping): Use it. + + * nntp.el (nntp-possibly-change-group): Use nntp-send-command. + + * nnvirtual.el (nnvirtual-request-update-mark): Only yodate + ayto-expirable marks. + +1998-11-24 21:00:02 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-mime-view-all-parts): Set buffer. + + * gnus-sum.el (gnus-summary-display-buttonized): Don't pass on + ARG. + + * gnus-art.el (gnus-article-mode-line-format): Doc fix. + +Tue Nov 24 14:57:41 1998 Shenghuo ZHU + + * mm-util.el (mm-binary-coding-system): New variable. + (mm-with-unibyte-buffer): Use mm-binary-coding-system. + * mm-decode.el (mm-display-external): Ditto. + Tue Nov 24 10:43:06 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.54 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 7dfb754..65d38ce 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -388,7 +388,12 @@ beginning of a line." (defcustom gnus-article-mode-line-format "Gnus: %g %S%m" "*The format specification for the article mode line. -See `gnus-summary-mode-line-format' for a closer description." +See `gnus-summary-mode-line-format' for a closer description. + +The following additional specs are available: + +%w The article washing status. +%m The number of MIME parts in the article." :type 'string :group 'gnus-article-various) @@ -1215,6 +1220,16 @@ always hide." (while (re-search-forward "^[ \t]+" nil t) (replace-match "" t t))))) +(defun article-strip-trailing-space () + "Remove all white space from the end of the lines in the article." + (interactive) + (save-excursion + (let ((inhibit-point-motion-hooks t) + buffer-read-only) + (article-goto-body) + (while (re-search-forward "[ \t]+$" nil t) + (replace-match "" t t))))) + (defun article-strip-blank-lines () "Strip leading, trailing and multiple blank lines." (interactive) @@ -1919,6 +1934,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is article-strip-leading-blank-lines article-strip-multiple-blank-lines article-strip-leading-space + article-strip-trailing-space article-strip-blank-lines article-strip-all-blank-lines article-date-local @@ -2211,8 +2227,10 @@ If ALL-HEADERS is non-nil, no headers are hidden." (gnus-run-hooks 'gnus-tmp-internal-hook) (gnus-run-hooks 'gnus-article-prepare-hook) (when gnus-display-mime-function - (let ((url-standalone-mode (not gnus-plugged))) - (funcall gnus-display-mime-function))) + ;(let ((url-standalone-mode (not gnus-plugged))) + (funcall gnus-display-mime-function) + ) + ;) ;; Perform the article display hooks. (gnus-run-hooks 'gnus-article-display-hook))) @@ -2280,12 +2298,13 @@ If ALL-HEADERS is non-nil, no headers are hidden." (defun gnus-mime-view-all-parts () "View all the MIME parts." (interactive) - (gnus-article-check-buffer) - (let ((handles gnus-article-mime-handles) - (rfc2047-default-charset gnus-newsgroup-default-charset) - (mm-charset-iso-8859-1-forced gnus-newsgroup-iso-8859-1-forced)) - (while handles - (mm-display-part (pop handles))))) + (save-current-buffer + (set-buffer gnus-article-buffer) + (let ((handles gnus-article-mime-handles) + (rfc2047-default-charset gnus-newsgroup-default-charset) + (mm-charset-iso-8859-1-forced gnus-newsgroup-iso-8859-1-forced)) + (while handles + (mm-display-part (pop handles)))))) (defun gnus-mime-save-part () "Save the MIME part under point." @@ -2306,7 +2325,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (interactive) (gnus-article-check-buffer) (let ((data (get-text-property (point) 'gnus-data)) - (url-standalone-mode (not gnus-plugged))) + ;(url-standalone-mode (not gnus-plugged)) + ) (mm-interactively-view-part data))) (defun gnus-mime-copy-part (&optional handle) @@ -2333,7 +2353,7 @@ If ALL-HEADERS is non-nil, no headers are hidden." (gnus-article-check-buffer) (let* ((data (get-text-property (point) 'gnus-data)) (contents (mm-get-part data)) - (url-standalone-mode (not gnus-plugged)) + ;(url-standalone-mode (not gnus-plugged)) (b (point)) buffer-read-only) (if (mm-handle-undisplayer data) @@ -2351,7 +2371,7 @@ If ALL-HEADERS is non-nil, no headers are hidden." (interactive) (gnus-article-check-buffer) (let* ((handle (or handle (get-text-property (point) 'gnus-data))) - (url-standalone-mode (not gnus-plugged)) + ;(url-standalone-mode (not gnus-plugged)) (mm-user-display-methods nil) (rfc2047-default-charset gnus-newsgroup-default-charset) (mm-charset-iso-8859-1-forced gnus-newsgroup-iso-8859-1-forced)) @@ -2477,30 +2497,34 @@ If ALL-HEADERS is non-nil, no headers are hidden." (defun gnus-display-mime (&optional ihandles) "Insert MIME buttons in the buffer." - (let* ((handles (or ihandles (mm-dissect-buffer) (mm-uu-dissect))) - handle name type b e display) - (unless ihandles - ;; Top-level call; we clean up. - (mm-destroy-parts gnus-article-mime-handles) - (setq gnus-article-mime-handles handles - gnus-article-mime-handle-alist nil) - ;; We allow users to glean info from the handles. - (when gnus-article-mime-part-function - (gnus-mime-part-function handles))) - (when (and handles - (or (not (stringp (car handles))) - (cdr handles))) + (save-selected-window + (let ((window (get-buffer-window gnus-article-buffer))) + (when window + (select-window window))) + (let* ((handles (or ihandles (mm-dissect-buffer) (mm-uu-dissect))) + handle name type b e display) (unless ihandles - ;; Clean up for mime parts. - (article-goto-body) - (delete-region (point) (point-max))) - (if (stringp (car handles)) - (if (equal (car handles) "multipart/alternative") - (let ((id (1+ (length gnus-article-mime-handle-alist)))) - (push (cons id handles) gnus-article-mime-handle-alist) - (gnus-mime-display-alternative (cdr handles) nil nil id)) - (gnus-mime-display-mixed (cdr handles))) - (gnus-mime-display-single handles))))) + ;; Top-level call; we clean up. + (mm-destroy-parts gnus-article-mime-handles) + (setq gnus-article-mime-handles handles + gnus-article-mime-handle-alist nil) + ;; We allow users to glean info from the handles. + (when gnus-article-mime-part-function + (gnus-mime-part-function handles))) + (when (and handles + (or (not (stringp (car handles))) + (cdr handles))) + (unless ihandles + ;; Clean up for mime parts. + (article-goto-body) + (delete-region (point) (point-max))) + (if (stringp (car handles)) + (if (equal (car handles) "multipart/alternative") + (let ((id (1+ (length gnus-article-mime-handle-alist)))) + (push (cons id handles) gnus-article-mime-handle-alist) + (gnus-mime-display-alternative (cdr handles) nil nil id)) + (gnus-mime-display-mixed (cdr handles))) + (gnus-mime-display-single handles)))))) (defun gnus-mime-part-function (handles) (if (stringp (car handles)) @@ -2564,11 +2588,12 @@ If ALL-HEADERS is non-nil, no headers are hidden." (defun gnus-unbuttonized-mime-type-p (type) "Say whether TYPE is to be unbuttonized." - (catch 'found - (let ((types gnus-unbuttonized-mime-types)) - (while types - (when (string-match (pop types) type) - (throw 'found t)))))) + (unless gnus-inhibit-mime-unbuttonizing + (catch 'found + (let ((types gnus-unbuttonized-mime-types)) + (while types + (when (string-match (pop types) type) + (throw 'found t))))))) (defun gnus-article-insert-newline () "Insert a newline, but mark it as undeletable." diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 434c2db..70df894 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -819,6 +819,7 @@ which it may alter in any way.") (defvar gnus-article-decoded-p nil) (defvar gnus-scores-exclude-files nil) (defvar gnus-page-broken nil) +(defvar gnus-inhibit-mime-unbuttonizing nil) (defvar gnus-original-article nil) (defvar gnus-article-internal-prepare-hook nil) @@ -1317,7 +1318,9 @@ increase the score of each group you read." "L" gnus-summary-lower-score "\M-i" gnus-symbolic-argument "h" gnus-summary-select-article-buffer + "b" gnus-article-view-part + "\M-t" gnus-summary-toggle-display-buttonized "V" gnus-summary-score-map "X" gnus-uu-extract-map @@ -1496,7 +1499,8 @@ increase the score of each group you read." "m" gnus-article-strip-multiple-blank-lines "a" gnus-article-strip-blank-lines "A" gnus-article-strip-all-blank-lines - "s" gnus-article-strip-leading-space) + "s" gnus-article-strip-leading-space + "e" gnus-article-strip-trailing-space) (gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map) "v" gnus-version @@ -1608,7 +1612,8 @@ increase the score of each group you read." ["Trailing" gnus-article-remove-trailing-blank-lines t] ["All of the above" gnus-article-strip-blank-lines t] ["All" gnus-article-strip-all-blank-lines t] - ["Leading space" gnus-article-strip-leading-space t]) + ["Leading space" gnus-article-strip-leading-space t] + ["Trailing space" gnus-article-strip-trailing-space t]) ["Overstrike" gnus-article-treat-overstrike t] ["Dumb quotes" gnus-article-treat-dumbquotes t] ["Emphasis" gnus-article-emphasize t] @@ -9190,12 +9195,22 @@ save those articles instead." ;;; MIME Commands ;;; -(defun gnus-summary-display-buttonized (&optional arg) - "Display the current buffer fully MIME-buttonized." - (interactive "P") +(defun gnus-summary-display-buttonized () + "Display the current article buffer fully MIME-buttonized." + (interactive) (require 'gnus-art) (let ((gnus-unbuttonized-mime-types nil)) - (gnus-summary-show-article arg))) + (gnus-summary-show-article))) + +(defun gnus-summary-toggle-display-buttonized () + "Toggle the buttonizing of the article buffer." + (interactive) + (require 'gnus-art) + (if (setq gnus-inhibit-mime-unbuttonizing + (not gnus-inhibit-mime-unbuttonizing)) + (let ((gnus-unbuttonized-mime-types nil)) + (gnus-summary-show-article)) + (gnus-summary-show-article))) (gnus-ems-redefine) diff --git a/lisp/gnus.el b/lisp/gnus.el index d64720b..5819603 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -254,7 +254,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.54" +(defconst gnus-version-number "0.55" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) diff --git a/lisp/lpath.el b/lisp/lpath.el index 13728ab..11a6030 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -55,6 +55,8 @@ adaptive-fill-first-line-regexp adaptive-fill-regexp url-current-mime-headers)) (maybe-fbind '(color-instance-rgb-components + glyph-width annotation-glyph window-pixel-width glyph-height + window-pixel-height 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 diff --git a/lisp/mailcap.el b/lisp/mailcap.el index 6e85b13..9a8307e 100644 --- a/lisp/mailcap.el +++ b/lisp/mailcap.el @@ -412,7 +412,7 @@ If FORCE, re-parse even if already parsed." (downcase-region name-pos (point)) (setq name (buffer-substring name-pos (point))) (skip-chars-forward " \t\n") - (if (not (eq (or (char-after (point)) 0) ?=)) ; There is no value + (if (not (eq (char-after (point)) ?=)) ; There is no value (setq value nil) (skip-chars-forward " \t\n=") (setq val-pos (point)) @@ -426,7 +426,7 @@ If FORCE, re-parse even if already parsed." (error (goto-char (point-max))))) (while (not done) (skip-chars-forward "^;") - (if (eq (or (char-after (1- (point))) 0) ?\\ ) + (if (eq (char-after (1- (point))) ?\\ ) (progn (subst-char-in-region (1- (point)) (point) ?\\ ? ) (skip-chars-forward ";")) diff --git a/lisp/message.el b/lisp/message.el index c88a1f5..87ffcb4 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -251,7 +251,7 @@ should return the new buffer name." :group 'message-buffers :type '(choice (const :tag "off" nil) (const :tag "unique" unique) - (const :tag "unsuniqueent" unsent) + (const :tag "unsent" unsent) (function fun))) (defcustom message-kill-buffer-on-exit nil @@ -3177,10 +3177,6 @@ Headers already prepared in the buffer are not modified." (defun message-buffer-name (type &optional to group) "Return a new (unique) buffer name based on TYPE and TO." (cond - ;; Check whether `message-generate-new-buffers' is a function, - ;; and if so, call it. - ((message-functionp message-generate-new-buffers) - (funcall message-generate-new-buffers type to group)) ;; Generate a new buffer name The Message Way. ((eq message-generate-new-buffers 'unique) (generate-new-buffer-name @@ -3192,6 +3188,10 @@ Headers already prepared in the buffer are not modified." "") (if (and group (not (string= group ""))) (concat " on " group) "") "*"))) + ;; Check whether `message-generate-new-buffers' is a function, + ;; and if so, call it. + ((message-functionp message-generate-new-buffers) + (funcall message-generate-new-buffers type to group)) ((eq message-generate-new-buffers 'unsent) (generate-new-buffer-name (concat "*unsent " type diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index f4d3abc..196f8cc 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -137,6 +137,8 @@ (error nil))) description)))) (when id + (when (string-match " *<\\(.*\\)> *" id) + (setq id (match-string 1 id))) (push (cons id result) mm-content-id-alist)) result)))) @@ -241,7 +243,7 @@ external if displayed external." (select-window win))) (switch-to-buffer (generate-new-buffer "*mm*"))) (buffer-disable-undo) - (mm-set-buffer-file-coding-system 'binary) + (mm-set-buffer-file-coding-system mm-binary-coding-system) (insert-buffer-substring cur) (message "Viewing with %s" method) (let ((mm (current-buffer))) @@ -264,8 +266,7 @@ external if displayed external." (setq file (expand-file-name (file-name-nondirectory filename) dir)) (setq file (make-temp-name (expand-file-name "mm." dir)))) - (write-region (point-min) (point-max) - file nil 'nomesg nil 'binary) + (write-region (point-min) (point-max) file nil 'nomesg) (message "Viewing with %s" method) (unwind-protect (setq process @@ -451,6 +452,8 @@ This overrides entries in the mailcap file." (when (or (not (file-exists-p file)) (yes-or-no-p (format "File %s already exists; overwrite? " file))) + ;; Now every coding system is 100% binary within mm-with-unibyte-buffer + ;; Is text still special? (let ((coding-system-for-write (if (equal "text" (car (split-string (car (mm-handle-type handle)) "/"))) @@ -526,6 +529,30 @@ This overrides entries in the mailcap file." (< (glyph-height (annotation-glyph image)) (window-pixel-height))))) +(defun url-cid (url) + (set-buffer (get-buffer-create url-working-buffer)) + (let ((content-type nil) + (encoding nil) + (part nil) + (data nil)) + (if (not (string-match "^cid:\\(.*\\)" url)) + (message "Malformed CID URL: %s" url) + (setq url (url-unhex-string (match-string 1 url)) + part (mm-get-content-id url)) + (if (not part) + (message "Unknown CID encounterred: %s" url) + (setq data (buffer-string nil nil (mm-handle-buffer part)) + content-type (mm-handle-type part) + encoding (symbol-name (mm-handle-encoding part))) + (if (= 0 (length content-type)) (setq content-type "text/plain")) + (if (= 0 (length encoding)) (setq encoding "8bit")) + (setq url-current-content-length (length data) + url-current-mime-type content-type + url-current-mime-encoding encoding + url-current-mime-headers (list (cons "content-type" content-type) + (cons "content-encoding" encoding))) + (and data (insert data)))))) + (provide 'mm-decode) ;; mm-decode.el ends here diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 51ab0f0..29c65ac 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -24,6 +24,11 @@ ;;; Code: +(defvar mm-binary-coding-system + (if (string-match "XEmacs" emacs-version) + 'binary 'no-conversion) + "100% binary coding system.") + (defvar mm-default-coding-system nil "The default coding system to use.") @@ -42,8 +47,9 @@ (iso-8859-7 greek-iso8859-7) (iso-8859-8 hebrew-iso8859-8) (iso-8859-9 latin-iso8859-9) + (iso-2022-jp-2 japanese-jisx0208) (iso-2022-jp latin-jisx0201 - japanese-jisx0208-1978 japanese-jisx0208) + japanese-jisx0208-1978) (euc-kr korean-ksc5601) (cn-gb-2312 chinese-gb2312) (cn-big5 chinese-big5-1 chinese-big5-2) @@ -220,7 +226,9 @@ See also `with-temp-file' and `with-output-to-string'." (get-buffer-create (generate-new-buffer-name " *temp*"))) (unwind-protect (with-current-buffer ,temp-buffer - (let ((buffer-file-coding-system 'binary)) + (let ((buffer-file-coding-system mm-binary-coding-system) + (coding-system-for-read mm-binary-coding-system) + (coding-system-for-write mm-binary-coding-system)) ,@forms)) (and (buffer-name ,temp-buffer) (kill-buffer ,temp-buffer)))) diff --git a/lisp/mm-uu.el b/lisp/mm-uu.el index ebcc923..50b5310 100644 --- a/lisp/mm-uu.el +++ b/lisp/mm-uu.el @@ -2,7 +2,7 @@ ;; Copyright (c) 1998 by Shenghuo Zhu ;; Author: Shenghuo Zhu -;; $Revision: 1.1.1.3 $ +;; $Revision: 1.1.1.4 $ ;; Keywords: news postscript uudecode binhex shar ;; This file is not part of GNU Emacs, but the same permissions diff --git a/lisp/mm-view.el b/lisp/mm-view.el index d7a94b1..d366bdc 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -39,17 +39,21 @@ (set-extent-property annot 'mm t) (set-extent-property annot 'duplicable t))) +(defvar mm-w3-setup nil) +(defun mm-setup-w3 () + (unless mm-w3-setup + (w3-do-setup) + (require 'url) + (require 'w3-vars) + (url-register-protocol 'cid nil 'url-identity-expander) + (setq mm-w3-setup t))) + (defun mm-inline-text (handle) (let ((type (cadr (split-string (car (mm-handle-type handle)) "/"))) text buffer-read-only) (cond ((equal type "plain") - (with-temp-buffer - (insert-buffer-substring (mm-handle-buffer handle)) - (mm-decode-content-transfer-encoding - (mm-handle-encoding handle) - (car (mm-handle-type handle))) - (setq text (buffer-string))) + (setq text (mm-get-part handle)) (let ((b (point))) (insert text) (save-restriction @@ -65,21 +69,24 @@ ,(set-marker (make-marker) (point-min)) ,(set-marker (make-marker) (point-max))))))))) ((equal type "html") - (let ((width (window-width))) + (mm-setup-w3) + (setq text (mm-get-part handle)) + (let ((b (point)) + (width (window-width))) (save-excursion - (w3-do-setup) - (mm-with-unibyte-buffer - (insert-buffer-substring (mm-handle-buffer handle)) - (mm-decode-content-transfer-encoding - (mm-handle-encoding handle) - (car (mm-handle-type handle))) - (require 'url) + (insert text) + (save-restriction + (narrow-to-region b (point)) (save-window-excursion - (require 'w3-vars) (let ((w3-strict-width width)) - (w3-region (point-min) (point-max))) - (setq text (buffer-string)))))) - (mm-insert-inline handle text)) + (w3-region (point-min) (point-max))))) + (mm-handle-set-undisplayer + handle + `(lambda () + (let (buffer-read-only) + (delete-region + ,(set-marker (make-marker) (point-min)) + ,(set-marker (make-marker) (point-max))))))))) ((or (equal type "enriched") (equal type "richtext")) (save-excursion diff --git a/lisp/nneething.el b/lisp/nneething.el index 8048849..61e8276 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -45,6 +45,11 @@ "Regexp saying what files to exclude from the group. If this variable is nil, no files will be excluded.") +(defvoo nneething-include-files nil + "Regexp saying what files to include in the group. +If this variable is non-nil, only files matching this regexp will be +included.") + ;;; Internal variables. @@ -211,6 +216,16 @@ If this variable is nil, no files will be excluded.") (setq files (cdr files))) (setq prev f)) (setq f (cdr f))))) + ;; Remove files not matching the inclusion regexp. + (when nneething-include-files + (let ((f files) + prev) + (while f + (if (not (string-match nneething-include-files (car f))) + (if prev (setcdr prev (cdr f)) + (setq files (cdr files))) + (setq prev f)) + (setq f (cdr f))))) ;; Remove deleted files from the map. (let ((map nneething-map) prev) diff --git a/lisp/nntp.el b/lisp/nntp.el index 40319c1..237c04a 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -937,11 +937,12 @@ password contained in '~/.nntp-authinfo'." (nntp-inside-change-function t)) (setq nntp-process-callback nil) (save-excursion - (funcall callback (buffer-name - (get-buffer nntp-process-to-buffer))))))))) + (funcall callback + (buffer-name (get-buffer + nntp-process-to-buffer))))))))) - ;; any throw from after-change-functions will leave it - ;; set to nil. so we reset it here, if necessary. + ;; Any throw from after-change-functions will leave it + ;; set to nil. So we reset it here, if necessary. (when quit-flag (setq after-change-functions (list 'nntp-after-change-function-callback))))) @@ -986,10 +987,7 @@ password contained in '~/.nntp-authinfo'." (save-excursion (set-buffer (process-buffer (car entry))) (erase-buffer) - (nntp-send-string (car entry) (concat "GROUP " group)) - ;; allow for unexpected responses, since this can be called - ;; from a timer with quit inhibited - (nntp-wait-for-string "^[245].*\n") + (nntp-send-command "^[245].*\n" "GROUP" group) (setcar (cddr entry) group) (erase-buffer)))))) diff --git a/lisp/nnvirtual.el b/lisp/nnvirtual.el index b1d4119..1a676ea 100644 --- a/lisp/nnvirtual.el +++ b/lisp/nnvirtual.el @@ -287,6 +287,7 @@ to virtual article number.") ;; The component group might be a virtual group. (nmark (gnus-request-update-mark cgroup (cdr nart) mark))) (when (and nart + (memq mark gnus-auto-expirable-marks) (= mark nmark) (gnus-group-auto-expirable-p cgroup)) (setq mark gnus-expirable-mark))) diff --git a/lisp/pop3.el b/lisp/pop3.el index 3d5cdf5..8a47fb3 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -163,7 +163,7 @@ Return the response string if optional second argument is non-nil." (setq match-end (point)) (goto-char pop3-read-point) (if (looking-at "-ERR") - (error (buffer-substring (point) (- match-end 2))) + (signal 'error (list (buffer-substring (point) (- match-end 2)))) (if (not (looking-at "+OK")) (progn (setq pop3-read-point match-end) nil) (setq pop3-read-point match-end) diff --git a/make.bat b/make.bat index b203277..c3c9e2e 100755 --- a/make.bat +++ b/make.bat @@ -1,64 +1,64 @@ -@echo off - -rem Written by David Charlap - -rem There are two catches, however. The emacs.bat batch file may not exist -rem in all distributions. It is part of the Voelker build of Emacs 19.34 -rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html). If the user -rem installs Gnus with some other build, he may have to replace calls to -rem %1\emacs.bat with something else. -rem -rem Also, the emacs.bat file that Voelker ships does not accept more than 9 -rem parameters, so the attempts to compile the .texi files will fail. To -rem fix that (at least on NT. I don't know about Win95), the following -rem change should be made to emacs.bat: -rem -rem %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 -rem -rem should become -rem -rem %emacs_dir%\bin\emacs.exe %* -rem -rem which will allow the batch file to accept an unlimited number of -rem parameters. - -rem Clear PWD so emacs doesn't get confused -set GNUS_PWD_SAVE=%PWD% -set PWD= - -if "%1" == "" goto usage - -cd lisp -call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile -if not "%2" == "copy" goto info -copy *.el* %1\lisp - -:info -cd ..\texi -call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer -call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer -if not "%2" == "copy" goto done -copy gnus %1\info -copy gnus-?? %1\info -copy message %1\info - -:etc -cd ..\etc -copy gnus-tut.txt %1\etc - -:done -cd .. -goto end - -:usage -echo Usage: make ^ [copy] -echo. -echo where: ^ is the directory you installed emacs in -echo eg. d:\emacs\19.34 -echo copy indicates that the compiled files should be copied to your -echo emacs lisp, info, and etc directories - -rem Restore PWD so whoever called this batch file doesn't get confused -set PWD=%GNUS_PWD_SAVE% -set GNUS_PWD_SAVE= -:end +@echo off + +rem Written by David Charlap + +rem There are two catches, however. The emacs.bat batch file may not exist +rem in all distributions. It is part of the Voelker build of Emacs 19.34 +rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html). If the user +rem installs Gnus with some other build, he may have to replace calls to +rem %1\emacs.bat with something else. +rem +rem Also, the emacs.bat file that Voelker ships does not accept more than 9 +rem parameters, so the attempts to compile the .texi files will fail. To +rem fix that (at least on NT. I don't know about Win95), the following +rem change should be made to emacs.bat: +rem +rem %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 +rem +rem should become +rem +rem %emacs_dir%\bin\emacs.exe %* +rem +rem which will allow the batch file to accept an unlimited number of +rem parameters. + +rem Clear PWD so emacs doesn't get confused +set GNUS_PWD_SAVE=%PWD% +set PWD= + +if "%1" == "" goto usage + +cd lisp +call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile +if not "%2" == "copy" goto info +copy *.el* %1\lisp + +:info +cd ..\texi +call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +if not "%2" == "copy" goto done +copy gnus %1\info +copy gnus-?? %1\info +copy message %1\info + +:etc +cd ..\etc +copy gnus-tut.txt %1\etc + +:done +cd .. +goto end + +:usage +echo Usage: make ^ [copy] +echo. +echo where: ^ is the directory you installed emacs in +echo eg. d:\emacs\19.34 +echo copy indicates that the compiled files should be copied to your +echo emacs lisp, info, and etc directories + +rem Restore PWD so whoever called this batch file doesn't get confused +set PWD=%GNUS_PWD_SAVE% +set GNUS_PWD_SAVE= +:end diff --git a/texi/ChangeLog b/texi/ChangeLog index a16f6bf..60671c8 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,10 @@ +1998-11-25 10:56:08 Lars Magne Ingebrigtsen + + * gnus.texi (To From Newsgroups): Addition. + (Anything Groups): Addition. + (Article Washing): Addition. + (MIME Commands): Addition. + 1998-11-19 04:05:15 Lars Magne Ingebrigtsen * gnus.texi (Really Various Summary Commands): Addition. diff --git a/texi/gnus.texi b/texi/gnus.texi index 3fd40b9..3ec9b51 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Pterodactyl Gnus 0.54 Manual +@settitle Pterodactyl Gnus 0.55 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Gnus 0.54 Manual +@title Pterodactyl Gnus 0.55 Manual @author by Lars Magne Ingebrigtsen @page @@ -354,7 +354,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local spool or your mbox file. All at the same time, if you want to push your luck. -This manual corresponds to Pterodactyl Gnus 0.54. +This manual corresponds to Pterodactyl Gnus 0.55. @end ifinfo @@ -3471,6 +3471,17 @@ In summary, you'd typically do something like the following: "Your Name Here") @end lisp +Now, this is mostly useful for mail groups, where you have control over +the @sc{nov} files that are created. However, if you can persuade your +nntp admin to add: + +@example +Newsgroups:full +@end example + +to the end of her @file{overview.fmt} file, then you can use that just +as you would the extra headers from the mail groups. + @node Summary Buffer Mode Line @subsection Summary Buffer Mode Line @@ -6677,6 +6688,12 @@ Remove all blank lines Remove all white space from the beginning of all lines of the article body (@code{gnus-article-strip-leading-space}). +@item W E e +@kindex W E e (Summary) +@findex gnus-article-strip-trailing-space +Remove all white space from the end of all lines of the article +body (@code{gnus-article-strip-trailing-space}). + @end table @xref{Customizing Articles} for how to wash articles automatically. @@ -6905,6 +6922,12 @@ signature after all. @cindex MIME decoding @table @kbd +@item M-tgnus-summary-display-buttonized +@kindex M-t (Summary) +@findex gnus-summary-display-buttonized +Toggle the buttonized display of the article buffer +(@code{gnus-summary-toggle-display-buttonized}). + @item W M w @kindex W M w (Summary) Decode RFC2047-encoded words in the article headers @@ -8301,6 +8324,8 @@ extension: The @dfn{wash status} of the article. This is a short string with one character for each possible article wash operation that may have been performed. +@item m +The number of @sc{mime} parts in the article. @end table @vindex gnus-break-pages @@ -10787,6 +10812,11 @@ in this directory, which defaults to @file{~/.nneething/}. All files that match this regexp will be ignored. Nice to use to exclude auto-save files and the like, which is what it does by default. +@item nneething-include-files +@vindex nneething-include-files +Regexp saying what files to include in the group. If this variable is +non-@code{nil}, only files matching this regexp will be included. + @item nneething-map-file @vindex nneething-map-file Name of the map files. diff --git a/texi/message.texi b/texi/message.texi index dc741aa..b33c0be 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.54 Manual +@settitle Pterodactyl Message 0.55 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Message 0.54 Manual +@title Pterodactyl Message 0.55 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Pterodactyl Message 0.54. Message is +This manual corresponds to Pterodactyl Message 0.55. Message is distributed with the Gnus distribution bearing the same version number as this manual.