+Fri Nov 27 12:26:10 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.55 is released.
+
+1998-11-27 12:38:52 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <colin@xemacs.org>
+
+ * message.el (message-generate-new-buffers): Fix tag.
+
+1998-11-25 10:43:28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * 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 <larsi@menja.ifi.uio.no>
* gnus.el: Pterodactyl Gnus v0.54 is released.
(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)
(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)
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
(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)))
(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."
(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)
(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)
(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))
(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))
(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."
(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)
"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
"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
["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]
;;; 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)
: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)
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
(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))
(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 ";"))
: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
(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
"")
(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
(error nil)))
description))))
(when id
+ (when (string-match " *<\\(.*\\)> *" id)
+ (setq id (match-string 1 id)))
(push (cons id result) mm-content-id-alist))
result))))
(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)))
(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
(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)) "/")))
(< (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
;;; 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.")
(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)
(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))))
;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $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
(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
,(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
"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.")
+
\f
;;; Internal variables.
(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)
(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)))))
(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))))))
;; 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)))
(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)
-@echo off\r
-\r
-rem Written by David Charlap <shamino@writeme.com>\r
-\r
-rem There are two catches, however. The emacs.bat batch file may not exist\r
-rem in all distributions. It is part of the Voelker build of Emacs 19.34\r
-rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html). If the user\r
-rem installs Gnus with some other build, he may have to replace calls to\r
-rem %1\emacs.bat with something else.\r
-rem \r
-rem Also, the emacs.bat file that Voelker ships does not accept more than 9\r
-rem parameters, so the attempts to compile the .texi files will fail. To\r
-rem fix that (at least on NT. I don't know about Win95), the following\r
-rem change should be made to emacs.bat:\r
-rem \r
-rem %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9\r
-rem \r
-rem should become\r
-rem \r
-rem %emacs_dir%\bin\emacs.exe %*\r
-rem \r
-rem which will allow the batch file to accept an unlimited number of\r
-rem parameters.\r
-\r
-rem Clear PWD so emacs doesn't get confused\r
-set GNUS_PWD_SAVE=%PWD%\r
-set PWD=\r
-\r
-if "%1" == "" goto usage\r
-\r
-cd lisp\r
-call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile\r
-if not "%2" == "copy" goto info\r
-copy *.el* %1\lisp\r
-\r
-:info\r
-cd ..\texi\r
-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\r
-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\r
-if not "%2" == "copy" goto done\r
-copy gnus %1\info\r
-copy gnus-?? %1\info\r
-copy message %1\info\r
-\r
-:etc\r
-cd ..\etc\r
-copy gnus-tut.txt %1\etc\r
-\r
-:done\r
-cd ..\r
-goto end\r
-\r
-:usage\r
-echo Usage: make ^<emacs-dir^> [copy]\r
-echo.\r
-echo where: ^<emacs-dir^> is the directory you installed emacs in\r
-echo eg. d:\emacs\19.34\r
-echo copy indicates that the compiled files should be copied to your\r
-echo emacs lisp, info, and etc directories\r
-\r
-rem Restore PWD so whoever called this batch file doesn't get confused\r
-set PWD=%GNUS_PWD_SAVE%\r
-set GNUS_PWD_SAVE=\r
-:end\r
+@echo off
+
+rem Written by David Charlap <shamino@writeme.com>
+
+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 ^<emacs-dir^> [copy]
+echo.
+echo where: ^<emacs-dir^> 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
+1998-11-25 10:56:08 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (To From Newsgroups): Addition.
+ (Anything Groups): Addition.
+ (Article Washing): Addition.
+ (MIME Commands): Addition.
+
1998-11-19 04:05:15 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Really Various Summary Commands): Addition.
\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
@tex
@titlepage
-@title Pterodactyl Gnus 0.54 Manual
+@title Pterodactyl Gnus 0.55 Manual
@author by Lars Magne Ingebrigtsen
@page
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
"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
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.
@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
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
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.
\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
@tex
@titlepage
-@title Pterodactyl Message 0.54 Manual
+@title Pterodactyl Message 0.55 Manual
@author by Lars Magne Ingebrigtsen
@page
* 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.