+Fri Jan 15 20:50:38 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.70 is released.
+
+1999-01-15 00:06:04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-decode.el (mm-save-part): Use mm-get-part.
+ (mm-insert-part): New function.
+ (mm-get-part): Use it.
+ (mm-get-image): Ditto.
+ (mm-display-external): Ditto.
+
+ * mm-view.el (mm-inline-text): Ditto.
+
+ * gnus-move.el (gnus-move-group-to-server): Protect against nil
+ ranges.
+
+ * mm-decode.el (mm-display-external): Save the buffer.
+ (mm-remove-part): Kill it.
+
+ * qp.el (quoted-printable-decode-region): Do the right thing at eobp.
+
+ * nnagent.el (nnagent-request-set-mark): Defined stub.
+
+1999-01-14 23:05:31 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-score.el (gnus-score-load-score-alist): Bind
+ coding-system-for-read.
+
+ * gnus-sum.el (gnus-summary-exit): Do adaptive scoring before
+ prepare-exit-hook.
+
+ * mm-view.el (mm-setup-w3): Require w3.
+
+1999-01-13 Kiyokazu SUTO <suto@merry.xmath.ous.ac.jp>
+
+ * lisp/nnspool.el (nnspool-retrieve-headers): Protect against empty
+ body.
+
+1999-01-14 21:17:35 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-encode.el: Ditto.
+
+ * mm-bodies.el (mm-decode-content-transfer-encoding): Message the
+ error.
+
+ * mailcap.el (mailcap-mime-data): SAFER ps.
+
+ * message.el (message-encode-message-body): Always insert a
+ Content-Type header.
+
+ * mm-decode.el (mm-inline-media-tests): Default all text/* to be
+ shown inline.
+
+ * mm-view.el (mm-inline-text): Handle all sorts of text.
+
+ * mailcap.el (mailcap-mime-data): non-viewer for viewers that
+ don't view.
+
+ * mm-decode.el (mm-display-external): Use it.
+
+ * gnus-art.el (gnus-visible-headers): Added bcc, gcc, fcc.
+
+ * mm-decode.el (mm-save-part): Removed double code.
+
+1999-01-12 Dave Love <fx@gnu.org>
+
+ * mm-decode.el (mm-save-part): Avoid doubly-compressed
+ application/octet-stream .gz & al files with jka-compr.
+
+1999-01-12 Dave Love <fx@gnu.org>
+
+ * gnus-ems.el (gnus-down-mouse-3): New variable.
+ * gnus-art.el (gnus-mime-button-map): Use it.
+ (gnus-mime-button-menu): Set the clicked-on buffer initially.
+
+1999-01-13 19:41:57 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mailcap.el (mailcap-mime-data): Added ImageMagic and ee.
+
+1999-01-12 17:34:43 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-picon.el (gnus-picons-kill-buffer): Don't kill article
+ buffers.
+
+ * gnus-sum.el (gnus-summary-exit): Destroy all MIME.
+
+ * gnus-cache.el (gnus-cache-read-active): Reversed check.
+
+1999-01-12 17:18:25 Matt Armstrong <matta@geoworks.com>
+
+ * mml.el (mml-parameter-string): Strip directory component.
+
+1999-01-12 17:02:58 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.el (gnus-use-demon): Removed.
+
+1999-01-12 05:53:23 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * nnmail.el (nnmail-article-group): Don't infloop.
+
+1999-01-11 Colin Rafferty <colin@xemacs.org>
+
+ * gnus-art.el (article-update-date-lapsed): Made it work with
+ picons, and make it update on all visible frames.
+ (article-date-ut): Get summary-buffer's current-headers.
+
+1999-01-12 07:20:31 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-picon.el (gnus-picons-setup-buffer): Don't set major mode.
+ (gnus-picons-setup-p): New variable.
+
+1999-01-11 02:13:12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nnmail.el (nnmail-split-header-length-limit): Lowered to 512.
+
+1999-01-04 12:58:13 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-sum.el (gnus-summary-exit-no-update): Don't use run-hooks.
+ (gnus-summary-exit-no-update): Use mapcar.
+
+1999-01-02 14:36:32 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-agent.el (gnus-category-write): Make directory.
+
+1998-09-26 19:39:31 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-sum.el (gnus-update-read-articles):
+ (gnus-update-marks): Request backend update of mark.
+
+1999-01-03 15:29:52 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-bodies.el (mm-body-encoding): Use mm-find.
+
+1999-01-03 15:28:27 Kim-Minh Kaplan <kmkaplan@western.fr>
+
+ * gnus-picon.el (gnus-article-display-picons): Fix.
+
Sun Jan 3 13:32:02 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Pterodactyl Gnus v0.69 is released.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Create Date: Oct 1, 1998
-;; $Revision: 1.1.1.5 $
+;; $Revision: 1.1.1.6 $
;; Time-stamp: <Tue Oct 6 23:48:38 EDT 1998 zsh>
;; Keywords: binhex
;;; dgnushack.el --- a hack to set the load path for byte-compiling
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Version: 4.19
;;; gnus-agent.el --- unplugged support for Gnus
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
"Write the category alist."
(setq gnus-category-predicate-cache nil
gnus-category-group-cache nil)
+ (gnus-make-directory (nnheader-concat gnus-agent-directory "lib"))
(with-temp-file (nnheader-concat gnus-agent-directory "lib/categories")
(prin1 gnus-category-alist (current-buffer))))
;;; gnus-art.el --- article mode commands for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
:group 'gnus-article-hiding)
(defcustom gnus-visible-headers
- "From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From:\\|X-Sent:"
+ "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^[BGF]?Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From:\\|^X-Sent:"
"*All headers that do not match this regexp will be hidden.
This variable can also be a list of regexp of headers to remain visible.
If this variable is non-nil, `gnus-ignored-headers' will be ignored."
how much time has lapsed since DATE."
(interactive (list 'ut t))
(let* ((header (or header
- (mail-header-date gnus-current-headers)
+ (mail-header-date (save-excursion
+ (set-buffer gnus-summary-buffer)
+ gnus-current-headers))
(message-fetch-field "date")
""))
(date (if (vectorp header) (mail-header-date header)
(when (eq major-mode 'gnus-article-mode)
(goto-char (point-min))
(when (re-search-forward "^X-Sent:" nil t)
- (article-date-lapsed t)))))))))
+ (article-date-lapsed t))))
+ nil 'visible)))))
(defun gnus-start-date-timer (&optional n)
"Start a timer to update the X-Sent header in the article buffers.
(setq gnus-mime-button-map (make-sparse-keymap))
(set-keymap-parent gnus-mime-button-map gnus-article-mode-map)
(define-key gnus-mime-button-map gnus-mouse-2 'gnus-article-push-button)
- (define-key gnus-mime-button-map gnus-mouse-3 'gnus-mime-button-menu)
+ (define-key gnus-mime-button-map gnus-down-mouse-3 'gnus-mime-button-menu)
(mapcar (lambda (c)
(define-key gnus-mime-button-map (cadr c) (car c)))
gnus-mime-button-commands))
(defun gnus-mime-button-menu (event)
"Construct a context-sensitive menu of MIME commands."
(interactive "e")
- (gnus-article-check-buffer)
- (let ((response (x-popup-menu
- t `("MIME Part"
- ("" ,@(mapcar (lambda (c)
- (cons (caddr c) (car c)))
- gnus-mime-button-commands)))))
- (pos (event-start event)))
- (when response
+ (save-excursion
+ (let ((pos (event-start event)))
(set-buffer (window-buffer (posn-window pos)))
(goto-char (posn-point pos))
- (funcall response))))
+ (gnus-article-check-buffer)
+ (let ((response (x-popup-menu
+ t `("MIME Part"
+ ("" ,@(mapcar (lambda (c)
+ (cons (caddr c) (car c)))
+ gnus-mime-button-commands))))))
+ (if response
+ (funcall response))))))
(defun gnus-mime-view-all-parts (&optional handles)
"View all the MIME parts."
(not (gnus-unbuttonized-mime-type-p type)))
(gnus-article-insert-newline)
(gnus-insert-mime-button
- handle id (list (or display
- (and not-attachment text))))
+ handle id (list (or display (and not-attachment text))))
(gnus-article-insert-newline)
(gnus-article-insert-newline)
(setq move t)))
;;; gnus-async.el --- asynchronous support for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-bcklg.el --- backlog functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-cache.el --- cache interface for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
"Read the cache active file."
(gnus-make-directory gnus-cache-directory)
(if (or (not (file-exists-p gnus-cache-active-file))
- (not (zerop (nth 7 (file-attributes gnus-cache-active-file))))
+ (zerop (nth 7 (file-attributes gnus-cache-active-file)))
force)
;; There is no active file, so we generate one.
(gnus-cache-generate-active)
;;; gnus-cite.el --- parse citations in articles for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Per Abhiddenware; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;;; gnus-demon.el --- daemonic Gnus behaviour
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
(nth 2 handler)))
gnus-demon-handlers))
(setq gnus-demon-idle-time 0)
- (setq gnus-demon-idle-has-been-called nil)
- (setq gnus-use-demon t)))
+ (setq gnus-demon-idle-has-been-called nil)))
(gnus-add-shutdown 'gnus-demon-cancel 'gnus)
(when gnus-demon-timer
(nnheader-cancel-timer gnus-demon-timer))
(setq gnus-demon-timer nil
- gnus-use-demon nil
gnus-demon-idle-has-been-called nil)
(condition-case ()
(nnheader-cancel-function-timers 'gnus-demon)
;;; gnus-draft.el --- draft message support for Gnus
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-dup.el --- suppression of duplicate articles in Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-eform.el --- a mode for editing forms for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
"Non-nil if running under XEmacs.")
(defvar gnus-mouse-2 [mouse-2])
-(defvar gnus-mouse-3 [mouse-3])
+(defvar gnus-down-mouse-3 [down-mouse-3])
(defvar gnus-down-mouse-2 [down-mouse-2])
(defvar gnus-widget-button-keymap nil)
(defvar gnus-mode-line-modified
;;; gnus-gl.el --- an interface to GroupLens for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Brad Miller <bmiller@cs.umn.edu>
;; Keywords: news, score
;;; gnus-group.el --- group mode commands for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-int.el --- backend interface functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
"Set marks on articles in the backend."
(let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
- 'request-set-mark (car gnus-command-method)))
- action
+ 'request-set-mark (car gnus-command-method)))
+ action
(funcall (gnus-get-function gnus-command-method 'request-set-mark)
- (gnus-group-real-name group) action
- (nth 1 gnus-command-method)))))
+ (gnus-group-real-name group) action
+ (nth 1 gnus-command-method)))))
(defun gnus-request-update-mark (group article mark)
"Allow the backend to change the mark the user tries to put on an article."
;;; gnus-kill.el --- kill commands for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; gnus-logic.el --- advanced scoring code for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-mh.el --- mh-e interface for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; gnus-move.el --- commands for moving Gnus from one server to another
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;; Then we read the headers from the `from-server'.
(when (and (gnus-request-group group nil from-server)
(gnus-active group)
+ (gnus-uncompress-range
+ (gnus-active group))
(setq type (gnus-retrieve-headers
(gnus-uncompress-range
(gnus-active group))
;;; gnus-msg.el --- mail and post interface for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-picon.el --- displaying pretty icons in Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Wes Hardaker <hardaker@ece.ucdavis.edu>
;; Keywords: news xpm annotation glyph faces
;;; Internal variables:
+(defvar gnus-picons-setup-p nil)
(defvar gnus-picons-processes-alist nil
"Picons processes currently running and their environment.")
(defvar gnus-picons-glyph-alist nil
(defun gnus-picons-kill-buffer ()
(let ((buf (get-buffer (gnus-picons-buffer-name))))
- (when (buffer-live-p buf)
+ (when (and (buffer-live-p buf)
+ (string-match "Picons" (buffer-name buf)))
(kill-buffer buf))))
(defun gnus-picons-setup-buffer ()
(save-excursion
(if (and (get-buffer name)
(with-current-buffer name
- (eq major-mode 'gnus-picons-mode)))
+ gnus-picons-setup-p))
(set-buffer name)
(set-buffer (gnus-get-buffer-create name))
(buffer-disable-undo)
(setq buffer-read-only t)
(run-hooks 'gnus-picons-setup-hook)
- (setq major-mode 'gnus-picons-mode)
+ (set (make-local-variable 'gnus-picons-setup-p) t)
(add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
(current-buffer))))
(gnus-picons-prepare-for-annotations)
(gnus-group-display-picons)
(unless gnus-picons-display-article-move-p
- (save-restriction
- (let ((buffer-read-only nil))
- (when (re-search-forward "^From: " nil t)
- (narrow-to-region (point) (gnus-point-at-eol))
- (when (search-forward from nil t)
- (gnus-put-text-property
- (match-beginning 0) (match-end 0)
- 'invisible t))))))
+ (let ((buffer-read-only nil)
+ (case-fold-search t))
+ (when (re-search-forward "^From *: *" nil t)
+ (when (search-forward from (gnus-point-at-eol) t)
+ (gnus-put-text-property
+ (match-beginning 0) (match-end 0)
+ 'invisible t)))))
(if (null gnus-picons-piconsearch-url)
(progn
(gnus-picons-display-pairs (gnus-picons-lookup-pairs
(gnus-picons-lookup-user username addrs)
username t))
(push (list 'gnus-article-annotations 'search username addrs
- gnus-picons-domain-directories t)
+ gnus-picons-domain-directories t (point-marker))
gnus-picons-jobs-alist)
(gnus-picons-next-job)))))))
(let* ((newsgroups (mail-fetch-field "newsgroups"))
(groups
(if (or gnus-picons-display-article-move-p
- (not newsgroups))(mail-fetch-field "newsgroups")
+ (not newsgroups))
(list (gnus-group-real-name gnus-newsgroup-name))
(split-string newsgroups ",")))
group)
(gnus-picons-prepare-for-annotations)
(while (setq group (pop groups))
(unless gnus-picons-display-article-move-p
- (save-restriction
- (let ((buffer-read-only nil))
+ (let ((buffer-read-only nil)
+ (case-fold-search t))
+ (goto-char (point-min))
+ (if (and (re-search-forward "^Newsgroups *: *" nil t)
+ (search-forward group (gnus-point-at-eol) t))
+ (gnus-put-text-property
+ (match-beginning 0) (match-end 0)
+ 'invisible t)
(goto-char (point-min))
- (when (re-search-forward "^Newsgroups:" nil t)
- (narrow-to-region (point) (gnus-point-at-eol))
- (when (search-forward group nil t)
- (gnus-put-text-property
- (match-beginning 0) (match-end 0)
- 'invisible t))))))
+ (search-forward "\n\n")
+ (backward-char 1))))
(if (null gnus-picons-piconsearch-url)
(gnus-picons-display-pairs
(gnus-picons-lookup-pairs
(if (listp gnus-picons-news-directories)
gnus-picons-news-directories
(list gnus-picons-news-directories))
- nil)
+ nil (point-marker))
gnus-picons-jobs-alist)
(gnus-picons-next-job))
(defun gnus-picons-parse-value (name)
(goto-char (point-min))
- (re-search-forward (concat "<strong>"
+ (if (re-search-forward (concat "<strong>"
(regexp-quote name)
- "</strong> *= *<kbd> *\\([^ <][^<]*\\) *</kbd>"))
- (buffer-substring (match-beginning 1) (match-end 1)))
+ "</strong> *= *<kbd> *\\([^ <][^<]*\\) *</kbd>")
+ nil t)
+ (buffer-substring (match-beginning 1) (match-end 1))))
(defun gnus-picons-parse-filenames ()
;; returns an alist of ((USER ADDRS DB) . URL)
- (let* ((case-fold-search t)
- (user (gnus-picons-parse-value "user"))
- (host (gnus-picons-parse-value "host"))
- (dbs (message-tokenize-header (gnus-picons-parse-value "db") " "))
- (start-re
- (concat
- ;; dbs
- "^\\(" (mapconcat 'identity dbs "\\|") "\\)/"
- ;; host
- "\\(\\(" (replace-in-string host "\\." "/\\|" t) "/\\|MISC/\\)*\\)"
- ;; user
- "\\(" (regexp-quote user) "\\|unknown\\)/"
- "face\\."))
- cur-db cur-host cur-user types res)
+ (let ((case-fold-search t)
+ (user (gnus-picons-parse-value "user"))
+ (host (gnus-picons-parse-value "host"))
+ (dbs (message-tokenize-header (gnus-picons-parse-value "db") " "))
+ start-re cur-db cur-host cur-user types res)
;; now point will be somewhere in the header. Find beginning of
;; entries
- (re-search-forward "<p>[ \t\n]*")
- (while (re-search-forward start-re nil t)
- (setq cur-db (buffer-substring (match-beginning 1) (match-end 1))
- cur-host (buffer-substring (match-beginning 2) (match-end 2))
- cur-user (buffer-substring (match-beginning 4) (match-end 4))
- cur-host (nreverse (message-tokenize-header cur-host "/")))
- ;; XXX - KLUDGE: there is a blank picon in news/MISC/unknown
- (unless (and (string-equal cur-db "news")
- (string-equal cur-user "unknown")
- (equal cur-host '("MISC")))
- ;; ok now we have found an entry (USER HOST DB), find the
- ;; corresponding picon URL
- (save-restriction
- ;; restrict region to this entry
- (narrow-to-region (point) (search-forward "<br>"))
- (goto-char (point-min))
- (setq types gnus-picons-file-suffixes)
- (while (and types
- (not (re-search-forward
- (concat "<a[ \t\n]+href=\"\\([^\"]*\\."
- (regexp-quote (car types)) "\\)\"")
- nil t)))
- (pop types))
- (push (cons (list cur-user cur-host cur-db)
- (buffer-substring (match-beginning 1) (match-end 1)))
- res))))
- (nreverse res)))
+ (when (and user host dbs)
+ (setq start-re
+ (concat
+ ;; dbs
+ "^\\(" (mapconcat 'identity dbs "\\|") "\\)/"
+ ;; host
+ "\\(\\(" (replace-in-string host "\\." "/\\|" t) "/\\|MISC/\\)*\\)"
+ ;; user
+ "\\(" (regexp-quote user) "\\|unknown\\)/"
+ "face\\."))
+ (re-search-forward "<p>[ \t\n]*")
+ (while (re-search-forward start-re nil t)
+ (setq cur-db (buffer-substring (match-beginning 1) (match-end 1))
+ cur-host (buffer-substring (match-beginning 2) (match-end 2))
+ cur-user (buffer-substring (match-beginning 4) (match-end 4))
+ cur-host (nreverse (message-tokenize-header cur-host "/")))
+ ;; XXX - KLUDGE: there is a blank picon in news/MISC/unknown
+ (unless (and (string-equal cur-db "news")
+ (string-equal cur-user "unknown")
+ (equal cur-host '("MISC")))
+ ;; ok now we have found an entry (USER HOST DB), find the
+ ;; corresponding picon URL
+ (save-restriction
+ ;; restrict region to this entry
+ (narrow-to-region (point) (search-forward "<br>"))
+ (goto-char (point-min))
+ (setq types gnus-picons-file-suffixes)
+ (while (and types
+ (not (re-search-forward
+ (concat "<a[ \t\n]+href=\"\\([^\"]*\\."
+ (regexp-quote (car types)) "\\)\"")
+ nil t)))
+ (pop types))
+ (push (cons (list cur-user cur-host cur-db)
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ res))))
+ (nreverse res))))
;;; picon network display functions :
-(defun gnus-picons-network-display-internal (sym-ann glyph part right-p)
- (gnus-picons-display-picon-or-name glyph part right-p)
+(defun gnus-picons-network-display-internal (sym-ann glyph part right-p marker)
+ (let ((buf (marker-buffer marker))
+ (pos (marker-position marker)))
+ (if (and buf pos)
+ (save-excursion
+ (set-buffer buf)
+ (goto-char pos)
+ (gnus-picons-display-picon-or-name glyph part right-p))))
(gnus-picons-next-job-internal))
-(defun gnus-picons-network-display-callback (url part sym-ann right-p)
+(defun gnus-picons-network-display-callback (url part sym-ann right-p marker)
(let ((glyph (gnus-picons-make-glyph (cdr (assoc url-current-mime-type
w3-image-mappings)))))
(kill-buffer (current-buffer))
(push (cons url glyph) gnus-picons-glyph-alist)
;; only do the job if it has not been preempted.
(if (equal gnus-picons-job-already-running
- (list sym-ann 'picon url part right-p))
- (gnus-picons-network-display-internal sym-ann glyph part right-p)
+ (list sym-ann 'picon url part right-p marker))
+ (gnus-picons-network-display-internal sym-ann glyph part right-p marker)
(gnus-picons-next-job-internal))))
-(defun gnus-picons-network-display (url part sym-ann right-p)
+(defun gnus-picons-network-display (url part sym-ann right-p marker)
(let ((cache (assoc url gnus-picons-glyph-alist)))
(if (or cache (null url))
- (gnus-picons-network-display-internal sym-ann (cdr cache) part right-p)
+ (gnus-picons-network-display-internal
+ sym-ann (cdr cache) part right-p marker)
(gnus-picons-url-retrieve url 'gnus-picons-network-display-callback
- (list url part sym-ann right-p)))))
+ (list url part sym-ann right-p marker)))))
;;; search job functions
+(defun gnus-picons-display-bar-p ()
+ (and (not (eq gnus-picons-display-where 'article))
+ gnus-picons-display-as-address))
+
(defun gnus-picons-network-search-internal (user addrs dbs sym-ann right-p
- &optional fnames)
+ marker &optional fnames)
(let (curkey dom pfx url dbs-tmp cache new-jobs)
;; First do the domain search
(dolist (part (if right-p
(push (setq cache (cons curkey url)) gnus-picons-url-alist))
;; Put this glyph in the job list
(if (and (not (eq dom part)) gnus-picons-display-as-address)
- (push (list sym-ann "." right-p) new-jobs))
- (push (list sym-ann 'picon (cdr cache) part right-p) new-jobs))
+ (push (list sym-ann "." right-p marker) new-jobs))
+ (push (list sym-ann 'picon (cdr cache) part right-p marker) new-jobs))
;; next, the user search
(when user
(setq curkey (list user dom gnus-picons-user-directories))
(push (setq cache (cons curkey (cdr picon)))
gnus-picons-url-alist)))
(if (and gnus-picons-display-as-address new-jobs)
- (push (list sym-ann "@" right-p) new-jobs))
- (push (list sym-ann 'picon (cdr cache) user right-p) new-jobs))
- (if (and gnus-picons-display-as-address (not right-p))
- (push (list sym-ann 'bar right-p) new-jobs))
+ (push (list sym-ann "@" right-p marker) new-jobs))
+ (push (list sym-ann 'picon (cdr cache) user right-p marker) new-jobs))
+ (if (and (gnus-picons-display-bar-p) (not right-p))
+ (push (list sym-ann 'bar right-p marker) new-jobs))
;; only put the jobs in the queue if this job has not been preempted.
(if (equal gnus-picons-job-already-running
- (list sym-ann 'search user addrs dbs right-p))
+ (list sym-ann 'search user addrs dbs right-p marker))
(setq gnus-picons-jobs-alist
- (nconc (if (and gnus-picons-display-as-address right-p)
- (list (list sym-ann 'bar right-p)))
+ (nconc (if (and (gnus-picons-display-bar-p) right-p)
+ (list (list sym-ann 'bar right-p marker)))
(nreverse new-jobs)
gnus-picons-jobs-alist)))
(gnus-picons-next-job-internal)))
-(defun gnus-picons-network-search-callback (user addrs dbs sym-ann right-p)
- (gnus-picons-network-search-internal user addrs dbs sym-ann right-p
- (prog1 (gnus-picons-parse-filenames)
- (kill-buffer (current-buffer)))))
+(defun gnus-picons-network-search-callback (user addrs dbs sym-ann right-p
+ marker)
+ (gnus-picons-network-search-internal
+ user addrs dbs sym-ann right-p marker
+ (prog1
+ (gnus-picons-parse-filenames)
+ (kill-buffer (current-buffer)))))
;; Initiate a query on the picon database
-(defun gnus-picons-network-search (user addrs dbs sym-ann right-p)
+(defun gnus-picons-network-search (user addrs dbs sym-ann right-p marker)
(let* ((host (mapconcat 'identity addrs "."))
(key (list (or user "unknown") host (if user
gnus-picons-user-directories
dbs)
"+"))
'gnus-picons-network-search-callback
- (list user addrs dbs sym-ann right-p))
- (gnus-picons-network-search-internal user addrs dbs sym-ann right-p))))
+ (list user addrs dbs sym-ann right-p marker))
+ (gnus-picons-network-search-internal
+ user addrs dbs sym-ann right-p marker))))
;;; Main jobs dispatcher function
(tag (pop job)))
(when tag
(cond
- ((stringp tag);; (SYM-ANN "..." RIGHT-P)
+ ((stringp tag);; (SYM-ANN "..." RIGHT-P MARKER)
(gnus-picons-network-display-internal
- sym-ann nil tag (pop job)))
- ((eq 'bar tag)
+ sym-ann nil tag (pop job) (pop job)))
+ ((eq 'bar tag);; (SYM-ANN 'bar RIGHT-P MARKER)
(gnus-picons-network-display-internal
sym-ann
(let ((gnus-picons-file-suffixes '("xbm")))
(gnus-picons-try-face
gnus-xmas-glyph-directory "bar."))
- nil (pop job)))
- ((eq 'search tag);; (SYM-ANN 'search USER ADDRS DBS RIGHT-P)
+ nil (pop job) (pop job)))
+ ((eq 'search tag);; (SYM-ANN 'search USER ADDRS DBS RIGHT-P MARKER)
(gnus-picons-network-search
- (pop job) (pop job) (pop job) sym-ann (pop job)))
- ((eq 'picon tag);; (SYM-ANN 'picon URL PART RIGHT-P)
+ (pop job) (pop job) (pop job) sym-ann (pop job) (pop job)))
+ ((eq 'picon tag);; (SYM-ANN 'picon URL PART RIGHT-P MARKER)
(gnus-picons-network-display
- (pop job) (pop job) sym-ann (pop job)))
+ (pop job) (pop job) sym-ann (pop job) (pop job)))
(t
(setq gnus-picons-job-already-running nil)
(error "Unknown picon job tag %s" tag)))))))
;;; gnus-range.el --- range and sequence functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-score.el --- scoring code for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <amanda@iesd.auc.dk>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
(setq gnus-score-alist nil)
;; Read file.
(with-temp-buffer
- (let ((coding-system-for-write score-mode-coding-system))
+ (let ((coding-system-for-read score-mode-coding-system))
(insert-file-contents file))
(goto-char (point-min))
;; Only do the loading if the score file isn't empty.
;;; gnus-soup.el --- SOUP packet writing support for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; gnus-spec.el --- format spec functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-srvr.el --- virtual server support for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-sum.el --- summary mode commands for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
(setq arts (cdr arts)))
(setq list (cdr all))))
+ (when (gnus-check-backend-function 'request-set-mark
+ gnus-newsgroup-name)
+ ;; score & bookmark are not proper flags (they are cons cells)
+ ;; cache is a internal gnus flag
+ (unless (memq (cdr type) '(cache score bookmark))
+ (let* ((old (cdr (assq (cdr type) (gnus-info-marks info))))
+ (del (gnus-remove-from-range old list))
+ (add (gnus-remove-from-range list old)))
+ (if add
+ (push (list add 'add (list (cdr type))) delta-marks))
+ (if del
+ (push (list del 'del (list (cdr type))) delta-marks)))))
+
(push (cons (cdr type)
(if (memq (cdr type) uncompressed) list
(gnus-compress-sequence
(set symbol (sort list '<)) t)))
newmarked)))
+ (if delta-marks
+ (gnus-request-set-mark gnus-newsgroup-name delta-marks))
+
;; Enter these new marks into the info of the group.
(if (nthcdr 3 info)
(setcar (nthcdr 3 info) newmarked)
gnus-exit-group-hook is called with no arguments if that value is non-nil."
(interactive)
(gnus-set-global-variables)
+ (when (gnus-buffer-live-p gnus-article-buffer)
+ (save-excursion
+ (set-buffer gnus-article-buffer)
+ (mm-destroy-parts gnus-article-mime-handles)))
(gnus-kill-save-kill-buffer)
(gnus-async-halt-prefetch)
(let* ((group gnus-newsgroup-name)
(mode major-mode)
(group-point nil)
(buf (current-buffer)))
+ (unless quit-config
+ ;; Do adaptive scoring, and possibly save score files.
+ (when gnus-newsgroup-adaptive
+ (gnus-score-adaptive))
+ (when gnus-use-scoring
+ (gnus-score-save)))
(gnus-run-hooks 'gnus-summary-prepare-exit-hook)
;; If we have several article buffers, we kill them at exit.
(unless gnus-single-article-buffer
;; Make all changes in this group permanent.
(unless quit-config
(gnus-run-hooks 'gnus-exit-group-hook)
- (gnus-summary-update-info)
- ;; Do adaptive scoring, and possibly save score files.
- (when gnus-newsgroup-adaptive
- (gnus-score-adaptive))
- (when gnus-use-scoring
- (gnus-score-save)))
+ (gnus-summary-update-info))
(gnus-close-group group)
;; Make sure where we were, and go to next newsgroup.
(set-buffer gnus-group-buffer)
(setq group-point (point))
(if temporary
nil ;Nothing to do.
- (when (gnus-buffer-live-p gnus-article-buffer)
- (save-excursion
- (set-buffer gnus-article-buffer)
- (mm-destroy-parts gnus-article-mime-handles)))
;; If we have several article buffers, we kill them at exit.
(unless gnus-single-article-buffer
(gnus-kill-buffer gnus-article-buffer)
gnus-expert-user
(gnus-y-or-n-p "Discard changes to this group and exit? "))
(gnus-async-halt-prefetch)
- (gnus-run-hooks (delq 'gnus-summary-expire-articles
- (copy-list gnus-summary-prepare-exit-hook)))
+ (mapcar 'funcall
+ (delq 'gnus-summary-expire-articles
+ (copy-list gnus-summary-prepare-exit-hook)))
(when (gnus-buffer-live-p gnus-article-buffer)
(save-excursion
(set-buffer gnus-article-buffer)
(gnus-info-set-read ',info ',(gnus-info-read info))
(gnus-get-unread-articles-in-group ',info (gnus-active ,group))
(gnus-group-update-group ,group t))))
+ ;; Propagate the read marks to the backend.
+ (if (gnus-check-backend-function 'request-set-mark group)
+ (let ((del (gnus-remove-from-range (gnus-info-read info) read))
+ (add (gnus-remove-from-range read (gnus-info-read info))))
+ (when (or add del)
+ (gnus-request-set-mark
+ group (delq nil (list (if add (list add 'add '(read)))
+ (if del (list del 'del '(read)))))))))
;; Enter this list into the group info.
(gnus-info-set-read info read)
;; Set the number of unread articles in gnus-newsrc-hashtb.
;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Ilja Weis <kult@uni-paderborn.de>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; gnus-undo.el --- minor mode for undoing in Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-util.el --- utility functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-uu.el --- extract (uu)encoded files in Gnus
-;; Copyright (C) 1985,86,87,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,995,86,87,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Created: 2 Oct 1993
;;; gnus-vm.el --- vm interface for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
;; Author: Per Persson <pp@gnu.ai.mit.edu>
;; Keywords: news, mail
;;; gnus-win.el --- window configuration functions for Gnus
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus-xmas.el --- Gnus functions for XEmacs
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; gnus.el --- a newsreader for GNU Emacs
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98,99 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.69"
+(defconst gnus-version-number "0.70"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
:group 'gnus-meta
:type 'boolean)
-(defcustom gnus-use-demon nil
- "If non-nil, Gnus might use some demons."
- :group 'gnus-meta
- :type 'boolean)
-
(defcustom gnus-use-scoring t
"*If non-nil, enable scoring."
:group 'gnus-meta
;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
;;; mail-parse.el --- Interface functions for parsing mail
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
;;; mailcap.el --- Functions for displaying MIME parts
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: William M. Perry <wmperry@aventail.com>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
(type . "application/x-x509-user-cert"))
("octet-stream"
(viewer . mailcap-save-binary-file)
+ (non-viewer . t)
(type ."application/octet-stream"))
("dvi"
(viewer . "open %s")
(type . "application/emacs-lisp"))
("x-tar"
(viewer . mailcap-save-binary-file)
+ (non-viewer . t)
(type . "application/x-tar"))
("x-latex"
(viewer . tex-mode)
(type . "application/tex"))
("zip"
(viewer . mailcap-save-binary-file)
+ (non-viewer . t)
(type . "application/zip")
("copiousoutput"))
("pdf"
(type . "application/postscript")
(test . (eq (mm-device-type) 'ns)))
("postscript"
- (viewer . "ghostview %s")
+ (viewer . "ghostview -dSAFER %s")
(type . "application/postscript")
(test . (eq (mm-device-type) 'x))
("needsx11"))
(type . "audio/x-mpeg"))
(".*"
(viewer . mailcap-save-binary-file)
+ (non-viewer . t)
(test . (or (featurep 'nas-sound)
(featurep 'native-sound)))
(type . "audio/*"))
(type . "image/*")
(test . (eq (mm-device-type) 'ns)))
(".*"
+ (viewer . "display %s")
+ (type . "image/*")
+ (test . (eq (mm-device-type) 'x))
+ ("needsx11"))
+ (".*"
+ (viewer . "ee %s")
+ (type . "image/*")
+ (test . (eq (mm-device-type) 'x))
+ ("needsx11"))
+ (".*"
(viewer . "xv -perfect %s")
(type . "image/*")
(test . (eq (mm-device-type) 'x))
;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, news
;;;###autoload
(defcustom message-yank-prefix "> "
- "*Prefix inserted on the lines of yanked messages.
-nil means use indentation."
+ "*Prefix inserted on the lines of yanked messages."
:type 'string
:group 'message-insertion)
(defun message-encode-message-body ()
(let ((mm-default-charset message-default-charset)
- lines multipart-p)
+ lines multipart-p content-type-p)
(message-goto-body)
(save-restriction
(narrow-to-region (point) (point-max))
(when lines
(insert lines))
(setq multipart-p
+ (re-search-backward "^Content-Type: multipart/" nil t))
+ (goto-char (point-max))
+ (setq content-type-p
(re-search-backward "^Content-Type: multipart/" nil t)))
(save-restriction
(message-narrow-to-headers-or-head)
(when multipart-p
(message-goto-body)
(insert "This is a MIME multipart message. If you are reading\n")
- (insert "this, you shouldn't.\n"))))
+ (insert "this, you shouldn't.\n"))
+ ;; We always make sure that the message has a Content-Type header.
+ ;; This is because some broken MTAs and MUAs get awfully confused
+ ;; when confronted with a message with a MIME-Version header and
+ ;; without a Content-Type header. For instance, Solaris'
+ ;; /usr/bin/mail.
+ (unless content-type-p
+ (goto-char (point-min))
+ (re-search-forward "^MIME-Version:")
+ (forward-line 1)
+ (insert "Content-Type: text/plain; charset=us-ascii\n"))))
(provide 'message)
;;; messagexmas.el --- XEmacs extensions to message
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, news
;;; messcompat.el --- making message mode compatible with mail mode
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, news
;;; mm-bodies.el --- Functions for decoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
'7bit))
(t
;; Mule version
- (if (and (null (delq 'ascii (find-charset-region (point-min) (point-max))))
+ (if (and (null (delq 'ascii
+ (mm-find-charset-region (point-min) (point-max))))
;;!!!The following is necessary because the function
;;!!!above seems to return the wrong result under
;;!!!Emacs 20.3. Sometimes.
(defun mm-decode-content-transfer-encoding (encoding &optional type)
(prog1
- (condition-case ()
+ (condition-case error
(cond
((eq encoding 'quoted-printable)
(quoted-printable-decode-region (point-min) (point-max)))
(funcall encoding (point-min) (point-max)))
(t
(message "Unknown encoding %s; defaulting to 8bit" encoding)))
- (error nil))
+ (error
+ (message "Error while decoding: %s" error)
+ nil))
(when (and
(memq encoding '(base64 x-uuencode x-binhex))
(equal type "text/plain"))
;;; mm-decode.el --- Functions for decoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
("text/richtext" mm-inline-text t)
("text/html" mm-inline-text (locate-library "w3"))
("message/delivery-status" mm-inline-text t)
+ ("text/.*" mm-inline-text t)
("audio/wav" mm-inline-audio
(and (or (featurep 'nas-sound) (featurep 'native-sound))
(device-sound-enabled-p)))
(progn
(set-buffer (generate-new-buffer "*mm*"))
(setq method nil))
- (insert-buffer-substring (mm-handle-buffer handle))
- (mm-decode-content-transfer-encoding
- (mm-handle-encoding handle) (car (mm-handle-type handle)))
+ (mm-insert-part handle)
(let ((win (get-buffer-window cur t)))
(when win
(select-window win)))
(mm-set-buffer-file-coding-system mm-binary-coding-system)
(insert-buffer-substring cur)
(message "Viewing with %s" method)
- (let ((mm (current-buffer)))
+ (let ((mm (current-buffer))
+ (non-viewer (assoc "non-viewer"
+ (mailcap-mime-info
+ (car (mm-handle-type handle)) t))))
(unwind-protect
(if method
(funcall method)
(mm-save-part handle))
- (mm-handle-set-undisplayer handle mm))))
+ (unless non-viewer
+ (mm-handle-set-undisplayer handle mm)))))
;; The function is a string to be executed.
- (insert-buffer-substring (mm-handle-buffer handle))
- (mm-decode-content-transfer-encoding
- (mm-handle-encoding handle) (car (mm-handle-type handle)))
+ (mm-insert-part handle)
(let* ((dir (make-temp-name (expand-file-name "emm." mm-tmp-directory)))
(filename (mail-content-type-get
(mm-handle-disposition handle) 'filename))
(needsterm (assoc "needsterm"
(mailcap-mime-info
(car (mm-handle-type handle)) t)))
- process file)
+ process file buffer)
;; We create a private sub-directory where we store our files.
(make-directory dir)
(set-file-modes dir 448)
"-e" shell-file-name "-c"
(format method
(mm-quote-arg file)))
- (start-process "*display*" (generate-new-buffer "*mm*")
+ (start-process "*display*"
+ (setq buffer (generate-new-buffer "*mm*"))
shell-file-name
"-c" (format method
(mm-quote-arg file)))))
- (mm-handle-set-undisplayer handle (cons file process)))
+ (mm-handle-set-undisplayer handle (cons file buffer)))
(message "Displaying %s..." (format method file))))))
(defun mm-remove-parts (handles)
(delete-directory (file-name-directory (car object)))
(error nil))
(condition-case ()
- (kill-process (cdr object))
+ (kill-buffer (cdr object))
(error nil)))
((bufferp object)
(when (buffer-live-p object)
(defun mm-get-part (handle)
"Return the contents of HANDLE as a string."
(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)))
+ (mm-insert-part handle)
(buffer-string)))
+(defun mm-insert-part (handle)
+ "Insert the contents of HANDLE in the current buffer."
+ (let ((cur (current-buffer)))
+ (save-excursion
+ (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)))
+ (let ((temp (current-buffer)))
+ (set-buffer cur)
+ (insert-buffer temp))))))
+
(defvar mm-default-directory nil)
(defun mm-save-part (handle)
(or mm-default-directory default-directory))))
(setq mm-default-directory (file-name-directory file))
(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)))
+ (mm-insert-part handle)
(when (or (not (file-exists-p file))
(yes-or-no-p (format "File %s already exists; overwrite? "
file)))
(if (equal "text" (car (split-string
(car (mm-handle-type handle)) "/")))
buffer-file-coding-system
- 'binary)))
+ 'binary))
+ ;; Don't re-compress .gz & al. Arguably we should make
+ ;; `file-name-handler-alist' nil, but that would chop
+ ;; ange-ftp which it's reasonable to use here.
+ (inhibit-file-name-operation 'write-region)
+ (inhibit-file-name-handlers
+ (if (equal (car (mm-handle-type handle))
+ "application/octet-stream")
+ (cons 'jka-compr-handler inhibit-file-name-handlers)
+ inhibit-file-name-handlers)))
(write-region (point-min) (point-max) file))))))
(defun mm-pipe-part (handle)
(command
(read-string "Shell command on MIME part: " mm-last-shell-command)))
(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)))
+ (mm-insert-part handle)
(shell-command-on-region (point-min) (point-max) command nil))))
(defun mm-interactively-view-part (handle)
(t type)))
(or (mm-handle-cache handle)
(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)))
+ (mm-insert-part handle)
(prog1
(setq spec
(make-glyph `[,(intern type) :data ,(buffer-string)]))
;;; mm-encode.el --- Functions for encoding MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
(goto-char (point-min))
(while (search-forward "\n" nil t)
(replace-match "\r\n" t t)))
- (condition-case ()
+ (condition-case error
(base64-encode-region (point-min) (point-max))
- (error nil)))
+ (error
+ (message "Error while decoding: %s" error)
+ nil)))
((memq encoding '(7bit 8bit binary))
)
((null encoding)
;;; mm-util.el --- Utility functions for MIME things
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 1.1.1.8 $
+;; $Revision: 1.1.1.9 $
;; Keywords: news postscript uudecode binhex shar
;; This file is not part of GNU Emacs, but the same permissions
;;; mm-view.el --- Functions for viewing MIME objects
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
(defvar mm-w3-setup nil)
(defun mm-setup-w3 ()
(unless mm-w3-setup
+ (require 'w3)
(w3-do-setup)
(require 'url)
(require 'w3-vars)
(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))
- (charset (mail-content-type-get
- (mm-handle-type handle) 'charset)))
- (insert (mm-decode-string text charset))
- (save-restriction
- (narrow-to-region b (point))
- (mm-handle-set-undisplayer
- handle
- `(lambda ()
- (let (buffer-read-only)
- (delete-region ,(point-min-marker) ,(point-max-marker))))))))
((equal type "html")
(mm-setup-w3)
(setq text (mm-get-part handle))
(equal type "richtext"))
(save-excursion
(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)))
+ (mm-insert-part handle)
(save-window-excursion
(enriched-decode (point-min) (point-max))
(setq text (buffer-string)))))
(mm-insert-inline handle text))
(t
- (save-excursion
- (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)))
- (setq text (buffer-string))))
- (mm-insert-inline handle text)))))
+ (setq text (mm-get-part handle))
+ (let ((b (point))
+ (charset (mail-content-type-get
+ (mm-handle-type handle) 'charset)))
+ (insert (mm-decode-string text charset))
+ (save-restriction
+ (narrow-to-region b (point))
+ (mm-handle-set-undisplayer
+ handle
+ `(lambda ()
+ (let (buffer-read-only)
+ (delete-region ,(point-min-marker)
+ ,(point-max-marker)))))))))))
(defun mm-insert-inline (handle text)
"Insert TEXT inline from HANDLE."
;;; mml.el --- A package for parsing and validating MML documents
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
(defun mml-insert-mime-headers (cont type charset encoding)
(let (parameters disposition description)
+ (setq parameters
+ (mml-parameter-string
+ cont '(name access-type expiration size permission)))
(when (or charset
- (setq parameters
- (mml-parameter-string
- cont '(name access-type expiration size permission)))
+ parameters
(not (equal type "text/plain")))
(when (consp charset)
(error
(when parameters
(insert parameters))
(insert "\n"))
+ (setq parameters
+ (mml-parameter-string
+ cont '(filename creation-date modification-date read-date)))
(when (or (setq disposition (cdr (assq 'disposition cont)))
- (setq parameters
- (mml-parameter-string
- cont '(filename creation-date modification-date
- read-date))))
+ parameters)
(insert "Content-Disposition: " (or disposition "inline"))
(when parameters
(insert parameters))
value type)
(while (setq type (pop types))
(when (setq value (cdr (assq type cont)))
+ ;; Strip directory component from the filename parameter.
+ (when (eq type 'filename)
+ (setq value (file-name-nondirectory value)))
(setq string (concat string ";\n "
(mail-header-encode-parameter
(symbol-name type) value)))))
;;; nnagent.el --- offline backend for Gnus
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
(gnus-agent-insert-meta-information 'news gnus-command-method)
(gnus-request-accept-article "nndraft:queue" nil t t))
+(deffoo nnagent-request-set-mark (group action server)
+ action)
+
;; Use nnml functions for just about everything.
(nnoo-import nnagent
(nnml))
;;; nnbabyl.el --- rmail mbox access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nndir.el --- single directory newsgroup access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; nndoc.el --- single file access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nndraft.el --- draft article access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; nneething.el --- arbitrary file access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Scott Byer <byer@mv.us.adobe.com>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; nngateway.el --- posting news via mail gateways
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
;;; nnheader.el --- header access macros for Gnus and its backends
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,997,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; nnheaderxm.el --- making Gnus backends work under XEmacs
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; nnkiboze.el --- select virtual news access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; nnlistserv.el --- retrieving articles via web mailing list archives
-;; Copyright (C) 1997,98 Free Software Foundation, Inc.
+;; Copyright (C) 1997,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
;;; nnmail.el --- mail support functions for the Gnus mail backends
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
:group 'nnmail
:type '(repeat symbol))
-(defcustom nnmail-split-header-length-limit 1024
+(defcustom nnmail-split-header-length-limit 512
"Header lines longer than this limit are excluded from the split function."
:group 'nnmail
:type 'integer)
;; existence to process.
(goto-char (point-min))
(while (not (eobp))
- (end-of-line)
- (if (> (current-column) nnmail-split-header-length-limit)
- (delete-region (point) (progn (end-of-line) (point)))
- (forward-line 1)))
+ (unless (< (move-to-column nnmail-split-header-length-limit)
+ nnmail-split-header-length-limit)
+ (delete-region (point) (progn (end-of-line) (point))))
+ (forward-line 1))
;; Allow washing.
(goto-char (point-min))
(run-hooks 'nnmail-split-hook)
;;; nnmbox.el --- mail mbox access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnmh.el --- mhspool access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnml.el --- mail spool access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnoo.el --- OO Gnus Backends
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; nnsoup.el --- SOUP access for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;;; nnspool.el --- spool access for GNU Emacs
-;; Copyright (C) 1988,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 198,998,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
(setq beg (point))
(inline (nnheader-insert-head file))
(goto-char beg)
- (search-forward "\n\n" nil t)
- (forward-char -1)
- (insert ".\n")
+ (if (search-forward "\n\n" nil t)
+ (progn
+ (forward-char -1)
+ (insert ".\n"))
+ (goto-char (point-max))
+ (if (bolp)
+ (insert ".\n")
+ (insert "\n.\n")))
(delete-region (point) (point-max)))
(and do-message
;;; nntp.el --- nntp access for Gnus
-;;; Copyright (C) 1987-90,92-98 Free Software Foundation, Inc.
+;;; Copyright (C) 1987-90,92-99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; nnvirtual.el --- virtual newsgroups access for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
;; Author: David Moore <dmoore@ucsd.edu>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
;;; nnweb.el --- retrieving articles via web search engines
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;;; qp.el --- Quoted-Printable functions
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
(save-excursion
(goto-char from)
(while (search-forward "=" to t)
- (cond ((eq (char-after) ?\n)
- (delete-char -1)
- (delete-char 1))
- ((and
- (memq (char-after) quoted-printable-encoding-characters)
- (memq (char-after (1+ (point)))
- quoted-printable-encoding-characters))
- (subst-char-in-region
- (1- (point)) (point) ?=
- (string-to-number
- (buffer-substring (point) (+ 2 (point)))
- 16))
- (delete-char 2))
- ((looking-at "=")
- (delete-char 1))
- ((message "Malformed MIME quoted-printable message"))))))
+ (cond
+ ;; End of the line.
+ ((eq (char-after) ?\n)
+ (delete-char -1)
+ (delete-char 1))
+ ;; Encoded character.
+ ((and
+ (memq (char-after) quoted-printable-encoding-characters)
+ (memq (char-after (1+ (point)))
+ quoted-printable-encoding-characters))
+ (subst-char-in-region
+ (1- (point)) (point) ?=
+ (string-to-number
+ (buffer-substring (point) (+ 2 (point)))
+ 16))
+ (delete-char 2))
+ ;; Quoted equal sign.
+ ((eq (char-after) ?=)
+ (delete-char 1))
+ ;; End of buffer.
+ ((eobp)
+ (delete-char -1))
+ ;; Invalid.
+ (t
+ (message "Malformed MIME quoted-printable message"))))))
(defun quoted-printable-decode-string (string)
"Decode the quoted-printable-encoded STRING and return the results."
;;; rfc2045.el --- Functions for decoding rfc2045 headers
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
;;; rfc2047.el --- Functions for encoding and decoding rfc2047 messages
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
;;; rfc2231.el --- Functions for decoding rfc2231 headers
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
(mail-header-remove-comments string)))
(let ((table (copy-syntax-table ietf-drums-syntax-table)))
(modify-syntax-entry ?\' "w" table)
+ ;; The following isn't valid, but one should be liberal
+ ;; in what one receives.
+ (modify-syntax-entry ?\: "w" table)
(set-syntax-table table))
(setq c (char-after))
(when (and (memq c ttoken)
;;; smiley.el --- displaying smiley faces
-;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Wes Hardaker <hardaker@ece.ucdavis.edu>
;; Keywords: fun
;;; time-date.el --- Date and time handling functions
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu Umeda <umerin@mse.kyutech.ac.jp>
;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 5.3 $
+;; $Revision: 5.4 $
;; Keywords: uudecode
;; This file is not part of GNU Emacs, but the same permissions
+1999-01-12 07:14:12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (To From Newsgroups): Addition.
+
1999-01-03 13:54:51 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Group Agent Commands): Addition.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Pterodactyl Gnus 0.69 Manual
+@settitle Pterodactyl Gnus 0.70 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Pterodactyl Gnus 0.69 Manual
+@title Pterodactyl Gnus 0.70 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.69.
+This manual corresponds to Pterodactyl Gnus 0.70.
@end ifinfo
@vindex nnmail-extra-headers
A related variable is @code{nnmail-extra-headers}, which controls when
-to include extra headers when generating overview (@sc{nov}) files.
+to include extra headers when generating overview (@sc{nov}) files. If
+you have old overview files, you should regenerate them after changing
+this variable.
+
+@vindex gnus-summary-line-format
+You also have to instruct Gnus to display the data by changing the
+@code{%n} spec to the @code{%f} spec in the
+@code{gnus-summary-line-format} variable.
In summary, you'd typically do something like the following:
Reference Manual}. Under XEmacs, a frame property list will be
accepted, too---for instance, @code{(height 5 width 15 left -1 top 1)}
is such a plist.
-
-Here's a list of all possible keys for
-@code{gnus-buffer-configuration}:
-
-@code{group}, @code{summary}, @code{article}, @code{server},
-@code{browse}, @code{message}, @code{pick}, @code{info},
-@code{summary-faq}, @code{edit-group}, @code{edit-server},
-@code{edit-score}, @code{post}, @code{reply}, @code{forward},
-@code{reply-yank}, @code{mail-bounce}, @code{draft}, @code{pipe},
-@code{bug}, @code{compose-bounce}, and @code{score-trace}.
+The list of all possible keys for @code{gnus-buffer-configuration} can
+be found in its default value.
Note that the @code{message} key is used for both
@code{gnus-group-mail} and @code{gnus-summary-mail-other-window}. If
(group 1.0)))))
@end lisp
+One common desire for a multiple frame split is to have a separate frame
+for composing mail and news while leaving the original frame intact. To
+accomplish that, something like the following can be done:
+
+@lisp
+(message (frame 1.0
+ (if (not (buffer-live-p gnus-summary-buffer))
+ (car (cdr (assoc 'group gnus-buffer-configuration)))
+ (car (cdr (assoc 'summary gnus-buffer-configuration))))
+ (vertical ((user-position . t) (top . 1) (left . 1)
+ (name . "Message"))
+ (message 1.0 point))))
+@end lisp
+
@findex gnus-add-configuration
Since the @code{gnus-buffer-configuration} variable is so long and
complicated, there's a function you can use to ease changing the config
seconds. This is 60 by default. If you change that variable,
all the timings in the handlers will be affected.)
-@vindex gnus-use-demon
-To set the whole thing in motion, though, you have to set
-@code{gnus-use-demon} to @code{t}.
-
So, if you want to add a handler, you could put something like this in
your @file{.gnus} file:
Peter Arius,
Matt Armstrong,
Marc Auslander,
+Miles Bader,
Frank Bennett,
Robert Bihlmeyer,
Chris Bone,
Michael Welsh Duggan,
Dave Edmondson,
Paul Eggert,
+Karl Eichwalder,
Enami Tsugutomo, @c Enami
Michael Ernst,
Luc Van Eycken,
Arne Georg Gleditsch,
David S. Goldberg,
Michelangelo Grigni,
+Dale Hagglund,
D. Hall,
Magnus Hammerin,
Kenichi Handa, @c Handa
Jens Lautenbacher,
Martin Larose,
Seokchan Lee, @c Lee
+Joerg Lenneis,
Carsten Leonhardt,
James LewisMoss,
Christian Limpach,
Jens-Ulrik Holger Petersen,
Ulrich Pfeifer,
Matt Pharr,
+Andy Piper,
John McClary Prevost,
Bill Pringlemeir,
Mike Pullen,
Roland B. Roberts,
Bart Robinson,
Christian von Roques,
+Markus Rost,
Jason Rumney,
Wolfgang Rupprecht,
Jay Sachs,
Richard Stallman,
Greg Stark,
Sam Steingold,
+Jonas Steverud,
Paul Stodghill,
Kurt Swanson,
Samuel Tardieu,
Pete Ware,
Barry A. Warsaw,
Christoph Wedler,
-Joe Wells
+Joe Wells,
+Lee Willis,
+Katsumi Yamaoka @c Yamaoka
and
-Katsumi Yamaoka, @c Yamaoka.
+Lloyd Zusman.
+
For a full overview of what each person has done, the ChangeLogs
included in the Gnus alpha distributions should give ample reading
<URL:http://search.dejanews.com/msgid.xp?MID=%3C62h9l9$hm4@@basement.replay.com%3E&fmt=raw>
@item
+A spec for the group line format to display the number of
+agent-downloaded articles in the group.
+
+@item
Solve the halting problem.
@c TODO
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Pterodactyl Message 0.69 Manual
+@settitle Pterodactyl Message 0.70 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Pterodactyl Message 0.69 Manual
+@title Pterodactyl Message 0.70 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Pterodactyl Message 0.69. Message is
+This manual corresponds to Pterodactyl Message 0.70. Message is
distributed with the Gnus distribution bearing the same version number
as this manual.
to quote the person you are answering. Inserting quoted text is done by
@dfn{yanking}, and each quoted line you yank will have
@code{message-yank-prefix} prepended to it. The default is @samp{> }.
-If it is @code{nil}, just indent the message.
@item message-indentation-spaces
@vindex message-indentation-spaces