*** pub/pgnus/lisp/gnus-art.el Tue Nov 24 11:37:09 1998 --- pgnus/lisp/gnus-art.el Fri Nov 27 13:18:56 1998 *************** *** 388,394 **** (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." :type 'string :group 'gnus-article-various) --- 388,399 ---- (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. ! ! 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,1220 **** --- 1220,1235 ---- (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,1924 **** --- 1934,1940 ---- 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,2218 **** (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))) ;; Perform the article display hooks. (gnus-run-hooks 'gnus-article-display-hook))) --- 2227,2236 ---- (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) ! ) ! ;) ;; Perform the article display hooks. (gnus-run-hooks 'gnus-article-display-hook))) *************** *** 2280,2291 **** (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))))) (defun gnus-mime-save-part () "Save the MIME part under point." --- 2298,2310 ---- (defun gnus-mime-view-all-parts () "View all the MIME parts." (interactive) ! (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,2312 **** (interactive) (gnus-article-check-buffer) (let ((data (get-text-property (point) 'gnus-data)) ! (url-standalone-mode (not gnus-plugged))) (mm-interactively-view-part data))) (defun gnus-mime-copy-part (&optional handle) --- 2325,2332 ---- (interactive) (gnus-article-check-buffer) (let ((data (get-text-property (point) 'gnus-data)) ! ;(url-standalone-mode (not gnus-plugged)) ! ) (mm-interactively-view-part data))) (defun gnus-mime-copy-part (&optional handle) *************** *** 2333,2339 **** (gnus-article-check-buffer) (let* ((data (get-text-property (point) 'gnus-data)) (contents (mm-get-part data)) ! (url-standalone-mode (not gnus-plugged)) (b (point)) buffer-read-only) (if (mm-handle-undisplayer data) --- 2353,2359 ---- (gnus-article-check-buffer) (let* ((data (get-text-property (point) 'gnus-data)) (contents (mm-get-part data)) ! ;(url-standalone-mode (not gnus-plugged)) (b (point)) buffer-read-only) (if (mm-handle-undisplayer data) *************** *** 2351,2357 **** (interactive) (gnus-article-check-buffer) (let* ((handle (or handle (get-text-property (point) 'gnus-data))) ! (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)) --- 2371,2377 ---- (interactive) (gnus-article-check-buffer) (let* ((handle (or handle (get-text-property (point) 'gnus-data))) ! ;(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,2506 **** (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))) (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)) --- 2497,2530 ---- (defun gnus-display-mime (&optional ihandles) "Insert MIME buttons in the buffer." ! (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 ! ;; 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,2574 **** (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)))))) (defun gnus-article-insert-newline () "Insert a newline, but mark it as undeletable." --- 2588,2599 ---- (defun gnus-unbuttonized-mime-type-p (type) "Say whether TYPE is to be unbuttonized." ! (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." *** pub/pgnus/lisp/gnus-sum.el Tue Nov 24 11:37:10 1998 --- pgnus/lisp/gnus-sum.el Fri Nov 27 13:18:56 1998 *************** *** 819,824 **** --- 819,825 ---- (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,1323 **** --- 1318,1326 ---- "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,1502 **** "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) (gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map) "v" gnus-version --- 1499,1506 ---- "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 ! "e" gnus-article-strip-trailing-space) (gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map) "v" gnus-version *************** *** 1608,1614 **** ["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]) ["Overstrike" gnus-article-treat-overstrike t] ["Dumb quotes" gnus-article-treat-dumbquotes t] ["Emphasis" gnus-article-emphasize t] --- 1612,1619 ---- ["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] ! ["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,9201 **** ;;; MIME Commands ;;; ! (defun gnus-summary-display-buttonized (&optional arg) ! "Display the current buffer fully MIME-buttonized." ! (interactive "P") (require 'gnus-art) (let ((gnus-unbuttonized-mime-types nil)) ! (gnus-summary-show-article arg))) (gnus-ems-redefine) --- 9195,9216 ---- ;;; MIME Commands ;;; ! (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))) ! ! (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) *** pub/pgnus/lisp/gnus.el Tue Nov 24 11:37:11 1998 --- pgnus/lisp/gnus.el Fri Nov 27 13:18:57 1998 *************** *** 254,260 **** :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "0.54" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) --- 254,260 ---- :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "0.55" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) *** pub/pgnus/lisp/lpath.el Tue Nov 24 11:37:11 1998 --- pgnus/lisp/lpath.el Fri Nov 27 13:18:57 1998 *************** *** 55,60 **** --- 55,62 ---- 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 *** pub/pgnus/lisp/mailcap.el Sun Oct 25 06:24:41 1998 --- pgnus/lisp/mailcap.el Fri Nov 27 13:18:57 1998 *************** *** 412,418 **** (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 (setq value nil) (skip-chars-forward " \t\n=") (setq val-pos (point)) --- 412,418 ---- (downcase-region name-pos (point)) (setq name (buffer-substring name-pos (point))) (skip-chars-forward " \t\n") ! (if (not (eq (char-after (point)) ?=)) ; There is no value (setq value nil) (skip-chars-forward " \t\n=") (setq val-pos (point)) *************** *** 426,432 **** (error (goto-char (point-max))))) (while (not done) (skip-chars-forward "^;") ! (if (eq (or (char-after (1- (point))) 0) ?\\ ) (progn (subst-char-in-region (1- (point)) (point) ?\\ ? ) (skip-chars-forward ";")) --- 426,432 ---- (error (goto-char (point-max))))) (while (not done) (skip-chars-forward "^;") ! (if (eq (char-after (1- (point))) ?\\ ) (progn (subst-char-in-region (1- (point)) (point) ?\\ ? ) (skip-chars-forward ";")) *** pub/pgnus/lisp/message.el Tue Nov 24 11:37:11 1998 --- pgnus/lisp/message.el Fri Nov 27 13:18:58 1998 *************** *** 251,257 **** :group 'message-buffers :type '(choice (const :tag "off" nil) (const :tag "unique" unique) ! (const :tag "unsuniqueent" unsent) (function fun))) (defcustom message-kill-buffer-on-exit nil --- 251,257 ---- :group 'message-buffers :type '(choice (const :tag "off" nil) (const :tag "unique" unique) ! (const :tag "unsent" unsent) (function fun))) (defcustom message-kill-buffer-on-exit nil *************** *** 3177,3186 **** (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 --- 3177,3182 ---- *************** *** 3192,3197 **** --- 3188,3197 ---- "") (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 *** pub/pgnus/lisp/mm-decode.el Tue Nov 24 11:37:11 1998 --- pgnus/lisp/mm-decode.el Fri Nov 27 13:18:58 1998 *************** *** 137,142 **** --- 137,144 ---- (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,247 **** (select-window win))) (switch-to-buffer (generate-new-buffer "*mm*"))) (buffer-disable-undo) ! (mm-set-buffer-file-coding-system 'binary) (insert-buffer-substring cur) (message "Viewing with %s" method) (let ((mm (current-buffer))) --- 243,249 ---- (select-window win))) (switch-to-buffer (generate-new-buffer "*mm*"))) (buffer-disable-undo) ! (mm-set-buffer-file-coding-system mm-binary-coding-system) (insert-buffer-substring cur) (message "Viewing with %s" method) (let ((mm (current-buffer))) *************** *** 264,271 **** (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) (message "Viewing with %s" method) (unwind-protect (setq process --- 266,272 ---- (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) (message "Viewing with %s" method) (unwind-protect (setq process *************** *** 451,456 **** --- 452,459 ---- (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)) "/"))) *************** *** 525,530 **** --- 528,557 ---- (window-pixel-width)) (< (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) *** pub/pgnus/lisp/mm-util.el Tue Nov 24 11:37:12 1998 --- pgnus/lisp/mm-util.el Fri Nov 27 13:18:58 1998 *************** *** 24,29 **** --- 24,34 ---- ;;; 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,49 **** (iso-8859-7 greek-iso8859-7) (iso-8859-8 hebrew-iso8859-8) (iso-8859-9 latin-iso8859-9) (iso-2022-jp latin-jisx0201 ! japanese-jisx0208-1978 japanese-jisx0208) (euc-kr korean-ksc5601) (cn-gb-2312 chinese-gb2312) (cn-big5 chinese-big5-1 chinese-big5-2) --- 47,55 ---- (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) (euc-kr korean-ksc5601) (cn-gb-2312 chinese-gb2312) (cn-big5 chinese-big5-1 chinese-big5-2) *************** *** 220,226 **** (get-buffer-create (generate-new-buffer-name " *temp*"))) (unwind-protect (with-current-buffer ,temp-buffer ! (let ((buffer-file-coding-system 'binary)) ,@forms)) (and (buffer-name ,temp-buffer) (kill-buffer ,temp-buffer)))) --- 226,234 ---- (get-buffer-create (generate-new-buffer-name " *temp*"))) (unwind-protect (with-current-buffer ,temp-buffer ! (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)))) *** pub/pgnus/lisp/mm-uu.el Tue Nov 24 11:37:12 1998 --- pgnus/lisp/mm-uu.el Fri Nov 27 13:18:58 1998 *************** *** 2,8 **** ;; Copyright (c) 1998 by Shenghuo Zhu ;; Author: Shenghuo Zhu ! ;; $Revision: 5.3 $ ;; Keywords: news postscript uudecode binhex shar ;; This file is not part of GNU Emacs, but the same permissions --- 2,8 ---- ;; Copyright (c) 1998 by Shenghuo Zhu ;; Author: Shenghuo Zhu ! ;; $Revision: 5.4 $ ;; Keywords: news postscript uudecode binhex shar ;; This file is not part of GNU Emacs, but the same permissions *** pub/pgnus/lisp/mm-view.el Sat Nov 21 09:51:18 1998 --- pgnus/lisp/mm-view.el Fri Nov 27 13:18:58 1998 *************** *** 39,55 **** (set-extent-property annot 'mm t) (set-extent-property annot 'duplicable 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))) (let ((b (point))) (insert text) (save-restriction --- 39,59 ---- (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") ! (setq text (mm-get-part handle)) (let ((b (point))) (insert text) (save-restriction *************** *** 65,85 **** ,(set-marker (make-marker) (point-min)) ,(set-marker (make-marker) (point-max))))))))) ((equal type "html") ! (let ((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) (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)) ((or (equal type "enriched") (equal type "richtext")) (save-excursion --- 69,92 ---- ,(set-marker (make-marker) (point-min)) ,(set-marker (make-marker) (point-max))))))))) ((equal type "html") ! (mm-setup-w3) ! (setq text (mm-get-part handle)) ! (let ((b (point)) ! (width (window-width))) (save-excursion ! (insert text) ! (save-restriction ! (narrow-to-region b (point)) (save-window-excursion (let ((w3-strict-width width)) ! (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 *** pub/pgnus/lisp/nneething.el Sun Oct 25 23:13:19 1998 --- pgnus/lisp/nneething.el Fri Nov 27 13:18:58 1998 *************** *** 45,50 **** --- 45,55 ---- "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. *************** *** 207,212 **** --- 212,227 ---- prev) (while f (if (string-match nneething-exclude-files (car f)) + (if prev (setcdr prev (cdr f)) + (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)) *** pub/pgnus/lisp/nntp.el Fri Nov 20 05:25:09 1998 --- pgnus/lisp/nntp.el Fri Nov 27 13:18:59 1998 *************** *** 937,947 **** (nntp-inside-change-function t)) (setq nntp-process-callback nil) (save-excursion ! (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. (when quit-flag (setq after-change-functions (list 'nntp-after-change-function-callback))))) --- 937,948 ---- (nntp-inside-change-function t)) (setq nntp-process-callback nil) (save-excursion ! (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. (when quit-flag (setq after-change-functions (list 'nntp-after-change-function-callback))))) *************** *** 986,995 **** (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") (setcar (cddr entry) group) (erase-buffer)))))) --- 987,993 ---- (save-excursion (set-buffer (process-buffer (car entry))) (erase-buffer) ! (nntp-send-command "^[245].*\n" "GROUP" group) (setcar (cddr entry) group) (erase-buffer)))))) *** pub/pgnus/lisp/nnvirtual.el Sat Oct 24 07:45:07 1998 --- pgnus/lisp/nnvirtual.el Fri Nov 27 13:18:59 1998 *************** *** 287,292 **** --- 287,293 ---- ;; 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))) *** pub/pgnus/lisp/pop3.el Sun Nov 8 01:04:38 1998 --- pgnus/lisp/pop3.el Fri Nov 27 13:18:59 1998 *************** *** 163,169 **** (setq match-end (point)) (goto-char pop3-read-point) (if (looking-at "-ERR") ! (error (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) --- 163,169 ---- (setq match-end (point)) (goto-char pop3-read-point) (if (looking-at "-ERR") ! (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) *** pub/pgnus/lisp/ChangeLog Tue Nov 24 11:37:08 1998 --- pgnus/lisp/ChangeLog Fri Nov 27 13:18:55 1998 *************** *** 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. *** pub/pgnus/texi/gnus.texi Tue Nov 24 11:37:14 1998 --- pgnus/texi/gnus.texi Fri Nov 27 13:19:01 1998 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Pterodactyl Gnus 0.54 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Pterodactyl Gnus 0.55 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 318,324 **** @tex @titlepage ! @title Pterodactyl Gnus 0.54 Manual @author by Lars Magne Ingebrigtsen @page --- 318,324 ---- @tex @titlepage ! @title Pterodactyl Gnus 0.55 Manual @author by Lars Magne Ingebrigtsen @page *************** *** 354,360 **** 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. @end ifinfo --- 354,360 ---- spool or your mbox file. All at the same time, if you want to push your luck. ! This manual corresponds to Pterodactyl Gnus 0.55. @end ifinfo *************** *** 3471,3476 **** --- 3471,3487 ---- "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,6682 **** --- 6688,6699 ---- 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,6910 **** --- 6922,6933 ---- @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,8306 **** --- 8324,8331 ---- 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 *************** *** 10786,10791 **** --- 10811,10821 ---- @vindex nneething-exclude-files 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 *** pub/pgnus/texi/message.texi Tue Nov 24 11:37:15 1998 --- pgnus/texi/message.texi Fri Nov 27 13:19:01 1998 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @setfilename message ! @settitle Pterodactyl Message 0.54 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @setfilename message ! @settitle Pterodactyl Message 0.55 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 42,48 **** @tex @titlepage ! @title Pterodactyl Message 0.54 Manual @author by Lars Magne Ingebrigtsen @page --- 42,48 ---- @tex @titlepage ! @title Pterodactyl Message 0.55 Manual @author by Lars Magne Ingebrigtsen @page *************** *** 83,89 **** * Key Index:: List of Message mode keys. @end menu ! This manual corresponds to Pterodactyl Message 0.54. Message is distributed with the Gnus distribution bearing the same version number as this manual. --- 83,89 ---- * Key Index:: List of Message mode keys. @end menu ! This manual corresponds to Pterodactyl Message 0.55. Message is distributed with the Gnus distribution bearing the same version number as this manual. *** pub/pgnus/texi/ChangeLog Thu Nov 19 04:44:27 1998 --- pgnus/texi/ChangeLog Fri Nov 27 13:19:01 1998 *************** *** 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.