From: yamaoka Date: Fri, 5 Jan 2001 07:08:17 +0000 (+0000) Subject: Synch with Oort Gnus. X-Git-Tag: t-gnus-6_15_0-02-quimby X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=361fe574ceb300e11ab838842c0f3c675c07b10b;p=elisp%2Fgnus.git- Synch with Oort Gnus. * lisp/gnus-vers.el (gnus-revision-number): Increment to 02. * lisp/dgnushack.el (dgnushack-texi-format): Remove "@anchor" if it is not supported. --- diff --git a/ChangeLog b/ChangeLog index 7a65488..e45d977 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-01-05 Katsumi Yamaoka + + * lisp/gnus-vers.el (gnus-revision-number): Increment to 02. + + * lisp/dgnushack.el (dgnushack-texi-format): Remove "@anchor" if it + is not supported. + 2000-12-26 Katsumi Yamaoka * lisp/gnus.el: Bind `:parameter-type', `:parameter-document', diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 698e453..3f08584 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,175 @@ +2001-01-05 06:49:37 Lars Magne Ingebrigtsen + + * time-date.el (time-to-number-of-days): New function. + +2001-01-04 11:06:14 Gregory Chernov + + * nnslashdot.el (nnslashdot-request-list): Always get the right + sid. + +2001-01-05 00:00:00 ShengHuo ZHU + + * message.el (message-minibuffer-local-map): New keymap. + (message-read-from-minibuffer): Use it. + * gnus-msg.el (gnus-summary-resend-message): Use it + +2001-01-04 22:00:00 ShengHuo ZHU + + * gnus-start.el (gnus-display-time-event-handler): New function. + (gnus-after-getting-new-news-hook): Use it. + +2001-01-03 07:26:58 Lars Magne Ingebrigtsen + + * message.el (message-ignored-mail-headers): Add draft header. + +2001-01-02 06:28:28 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-expire-articles): Don't save + excursion. + + * nnslashdot.el (nnslashdot-request-list): Get the right year. + +2001-01-01 00:52:44 Ed L. Cashin + + * gnus-sum.el (gnus-summary-expire-articles): Save excursion. + +2000-12-31 11:00:00 ShengHuo ZHU + + * qp.el (quoted-printable-decode-region): Don't backward-char. + +2000-12-31 03:57:31 Lars Magne Ingebrigtsen + + * gnus-draft.el: Mark articles as replied. + + * gnus-sum.el (gnus-summary-add-mark): New function. + + * gnus-group.el (gnus-add-mark): New function. + + * gnus-sum.el (gnus-summary-buffer-name): New function. + (gnus-summary-setup-buffer): Use it. + + * gnus-draft.el: Set things up with the right post method and + stuff. + + * message.el (message-ignored-news-headers): Remove X-Draft-From. + + * gnus-msg.el (gnus-inews-insert-draft-meta-information): New function. + + * gnus.el (gnus-draft-meta-information-header): New variable. + +2000-12-30 00:17:38 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-treatment-function-alist): Move the date + functions before the header sorting functions. + + * mm-uu.el (mm-uu-pgp-signed-extract-1): Unquote "- " quotes. + + * dgnushack.el (dgnushack-compile): Message whether there is w3. + Don't (push "/usr/share/emacs/site-lisp" load-path). + + * gnus-cite.el (gnus-article-fill-cited-article): Don't add space + to empty fill prefixes. + +2000-12-30 10:00:00 ShengHuo ZHU + + * nntp.el (nntp-open-connection): Kill pbuffer if process is nil. + Suggested by Christoph Conrad . + +2000-12-30 09:00:00 ShengHuo ZHU + + * nnheader.el (autoload): Autoload gnus-sorted-intersection. + + * nnml.el (autoload): Move to nnheader.el. + + * nnfolder.el (nnfolder-existing-articles): Reversed, i.e. sorted. + (nnfolder-request-expire-articles): Use gnus-sorted-intersection. + (nnfolder-retrieve-headers): Use intersection. Suggested by Jonas + Kvarnstr,Av(Bm . + +2000-12-30 00:17:38 Lars Magne Ingebrigtsen + + * gnus-art.el (article-make-date-line): Get the hours right. + (gnus-ignored-headers): More hiding. + + * nnmail.el (nnmail-expiry-wait): Not an integer. + + * message.el (message-goto-body): Only expand abbrev when called + interactively. + (message-make-lines): Use it. + +2000-12-29 20:00:00 ShengHuo ZHU + + * gnus-msg.el (gnus-inews-yank-articles): Reparse headers. + +2000-12-30 00:17:38 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-limit-include-expunged): Really + include the expunged articles. + + * gnus-group.el (gnus-group-sort-by-server): New function. + + * gnus.el (gnus-method-to-server-name): New function. + (gnus-group-prefixed-name): Use it. + + * gnus-group.el (gnus-group-sort-function): Doc fix. + (gnus-group-sort-groups-by-server): New command. + +2000-12-29 13:25:10 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-treat-date-english): New variable. + (article-date-english): New command. + (gnus-english-month-names): New variable. + (article-make-date-line): Do 'english. + + * gnus-cite.el (gnus-article-fill-cited-article): Add a space + after the fill prefix. + + * gnus-sum.el (gnus-summary-make-menu-bar): Removed "Enter + score...". + + * gnus-art.el (gnus-ignored-headers): Hide more headers. + + * message.el (message-mode-map): Bind comment-region. + + * gnus-art.el (gnus-mime-display-part): Let w3 display + multipart/related. + + * mm-bodies.el (mm-long-lines-p): New function. + (mm-body-encoding): Use it. + (mm-body-encoding): Encode articles with lines longer than 1000 + characters. + +2000-12-29 01:00:00 ShengHuo ZHU + + * mm-util.el (mm-enable-multibyte): Use + default-enable-multibyte-characters. + (mm-enable-multibyte-mule4): Ditto. + (mm-disable-multibyte): Test XEmacs. + (mm-disable-multibyte-mule4): Ditto. + (mm-with-unibyte-current-buffer): Simplified. + (mm-with-unibyte-current-buffer-mule4): Ditto. + +2000-12-28 19:44:56 Lars Magne Ingebrigtsen + + * nnheaderxm.el (nnheader-string-as-multibyte): New alias. + + * nnheader.el (nnheader-string-as-multibyte): New alias. + + * mm-view.el (mm-inline-text): Warn when bugging out in w3. + + * gnus-uu.el (gnus-message-process-mark): New function. + (gnus-uu-mark-by-regexp): Use it. + (gnus-new-processable): New function. + +2000-12-28 19:21:57 Inge Frick + + * gnus-sum.el (gnus-no-mark): New variable. + +2000-11-01 01:12:29 Lars Magne Ingebrigtsen + + * nnwfm.el (nnwfm-create-mapping): Remove quote marks and + backslashes. + 2000-12-26 Katsumi Yamaoka * gnus-art.el (gnus-article-banner-alist): Remove duplicate diff --git a/lisp/binhex.el b/lisp/binhex.el index 9215f25..0147921 100644 --- a/lisp/binhex.el +++ b/lisp/binhex.el @@ -1,8 +1,7 @@ ;;; binhex.el -- elisp native binhex decode -;; Copyright (c) 1998 Free Software Foundation, Inc. +;; Copyright (c) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu -;; Create Date: Oct 1, 1998 ;; Keywords: binhex news ;; This file is part of GNU Emacs. diff --git a/lisp/dgnushack.el b/lisp/dgnushack.el index e34deae..6016405 100644 --- a/lisp/dgnushack.el +++ b/lisp/dgnushack.el @@ -262,17 +262,23 @@ Try to re-configure with --with-addpath=FLIM_PATH and run make again. (defconst dgnushack-unexporting-files (append '("dgnushack.el" "dgnuspath.el" "lpath.el" "ptexinfmt.el") - (unless (or (condition-case nil + (unless (or (condition-case code (require 'w3-forms) - (error nil)) + (error + (message "No w3: %s %s retrying..." code + (locate-library "w3-forms")) + nil)) ;; Maybe mis-configured Makefile is used (e.g. ;; configured for FSFmacs but XEmacs is running). (let ((lp (delete dgnushack-w3-dir (copy-sequence load-path)))) - (when (condition-case nil - (let ((load-path lp)) - (require 'w3-forms)) - (error nil)) + (when (let ((load-path lp)) + (condition-case code + (require 'w3-forms) + (error + (message "No w3: %s %s" code + (locate-library "w3-forms")) + nil))) ;; If success, fix `load-path' for compiling. (setq load-path lp)))) '("nnweb.el" "nnlistserv.el" "nnultimate.el" @@ -390,6 +396,13 @@ Modify to suit your needs.")) (1+ (match-end 0)) (point-max)))) (goto-char (point-min)) + ;; Remove "@anchor" if it is not supported. + (unless (fboundp 'texinfo-anchor) + (while (re-search-forward "^@anchor" nil t) + (delete-region (match-beginning 0) (progn + (forward-line 1) + (point)))) + (goto-char (point-min))) ;; Add suffix if it is needed. (when (and addsuffix (re-search-forward diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index b71c302..fd5f269 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -382,7 +382,7 @@ agent minor mode in all Gnus buffers." (defun gnus-agent-insert-meta-information (type &optional method) "Insert meta-information into the message that says how it's to be posted. -TYPE can be either `mail' or `news'. If the latter METHOD can +TYPE can be either `mail' or `news'. If the latter, then METHOD can be a select method." (save-excursion (message-remove-header gnus-agent-meta-information-header) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 8740a7b..fef33f3 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -136,7 +136,10 @@ "^List-[A-Za-z]+:" "^X-Listprocessor-Version:" "^X-Received:" "^X-Distribute:" "^X-Sequence:" "^X-Juno-Line-Breaks:" "^X-Notes-Item:" "^X-MS-TNEF-Correlator:" "^x-uunet-gateway:" - "^X-Received:" "^Content-length:" "X-precedence:") + "^X-Received:" "^Content-length:" "X-precedence:" + "^X-Authenticated-User:" "^X-Comment" "^X-Report:" "^X-Abuse-Info:" + "^X-HTTP-Proxy:" "^X-Mydeja-Info:" "^X-Copyright" "^X-No-Markup:" + "^X-Abuse-Info:") "*All headers that start with this regexp will be hidden. This variable can also be a list of regexps of headers to be ignored. If `gnus-visible-headers' is non-nil, this variable will be ignored." @@ -933,6 +936,13 @@ See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-head-custom) +(defcustom gnus-treat-date-english nil + "Display the Date in a format that can be read aloud in English. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." + :group 'gnus-article-treat + :type gnus-article-treat-head-custom) + (defcustom gnus-treat-date-lapsed nil "Display the Date header in a way that says how much time has elapsed. Valid values are nil, t, `head', `last', an integer or a predicate. @@ -1103,6 +1113,10 @@ It is a string, such as \"PGP\". If nil, ask user." ;;; Internal variables +(defvar gnus-english-month-names + '("January" "February" "March" "April" "May" "June" "July" "August" + "September" "October" "November" "December")) + (defvar article-goto-body-goes-to-point-min-p nil) (defvar gnus-article-wash-types nil) (defvar gnus-article-emphasis-alist nil) @@ -1119,6 +1133,13 @@ It is a string, such as \"PGP\". If nil, ask user." (gnus-treat-fill-long-lines gnus-article-fill-long-lines) (gnus-treat-strip-cr gnus-article-remove-cr) (gnus-treat-display-xface gnus-article-display-x-face) + (gnus-treat-date-ut gnus-article-date-ut) + (gnus-treat-date-local gnus-article-date-local) + (gnus-treat-date-english gnus-article-date-english) + (gnus-treat-date-lapsed gnus-article-date-lapsed) + (gnus-treat-date-original gnus-article-date-original) + (gnus-treat-date-user-defined gnus-article-date-user) + (gnus-treat-date-iso8601 gnus-article-date-iso8601) (gnus-treat-hide-headers gnus-article-maybe-hide-headers) (gnus-treat-hide-boring-headers gnus-article-hide-boring-headers) (gnus-treat-hide-signature gnus-article-hide-signature) @@ -1131,12 +1152,6 @@ It is a string, such as \"PGP\". If nil, ask user." (gnus-treat-emphasize gnus-article-emphasize) (gnus-treat-highlight-citation gnus-article-highlight-citation) (gnus-treat-highlight-signature gnus-article-highlight-signature) - (gnus-treat-date-ut gnus-article-date-ut) - (gnus-treat-date-local gnus-article-date-local) - (gnus-treat-date-lapsed gnus-article-date-lapsed) - (gnus-treat-date-original gnus-article-date-original) - (gnus-treat-date-user-defined gnus-article-date-user) - (gnus-treat-date-iso8601 gnus-article-date-iso8601) (gnus-treat-strip-trailing-blank-lines gnus-article-remove-trailing-blank-lines) (gnus-treat-strip-leading-blank-lines @@ -2411,6 +2426,26 @@ should replace the \"Date:\" one, or should be added below it." (if (> real-sec 0) " ago" " in the future")))))) + ;; Display the date in proper English + ((eq type 'english) + (let ((dtime (decode-time time))) + (concat + "Date: the " + (number-to-string (nth 3 dtime)) + (let ((digit (% (nth 3 dtime) 10))) + (cond + ((= digit 1) "st") + ((= digit 2) "nd") + ((= digit 3) "rd") + (t "th"))) + " of " + (nth (1- (nth 4 dtime)) gnus-english-month-names) + " " + (number-to-string (nth 5 dtime)) + " at " + (format "%02d" (nth 2 dtime)) + ":" + (format "%02d" (nth 1 dtime))))) (t (error "Unknown conversion type: %s" type))))) @@ -2419,6 +2454,11 @@ should replace the \"Date:\" one, or should be added below it." (interactive (list t)) (article-date-ut 'local highlight)) +(defun article-date-english (&optional highlight) + "Convert the current article date to something that is proper English." + (interactive (list t)) + (article-date-ut 'english highlight)) + (defun article-date-original (&optional highlight) "Convert the current article date to what it was originally. This is only useful if you have used some other date conversion @@ -2947,6 +2987,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is article-strip-blank-lines article-strip-all-blank-lines article-date-local + article-date-english article-date-iso8601 article-date-original article-date-ut @@ -4041,7 +4082,9 @@ In no internal viewer is available, use an external viewer." ;;;!!! Most multipart/related is an HTML message plus images. ;;;!!! Unfortunately we are unable to let W3 display those ;;;!!! included images, so we just display it as a mixed multipart. - (gnus-mime-display-mixed (cdr handle))) + ;;(gnus-mime-display-mixed (cdr handle)) + ;;;!!! No, w3 can display everything just fine. + (gnus-mime-display-part (cadr handle))) ((equal (car handle) "multipart/signed") (or (memq 'signed gnus-article-wash-types) (push 'signed gnus-article-wash-types)) @@ -5915,11 +5958,10 @@ For example: (let ((gnus-mime-security-button-line-format gnus-mime-security-button-end-line-format)) (gnus-insert-mime-security-button handle)) - (mm-set-handle-multipart-parameter handle 'gnus-region - (cons (set-marker (make-marker) - (point-min)) - (set-marker (make-marker) - (point-max)))))) + (mm-set-handle-multipart-parameter + handle 'gnus-region + (cons (set-marker (make-marker) (point-min)) + (set-marker (make-marker) (point-max)))))) ;;; @ for mime-view diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 5f255b6..befdb5c 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -486,7 +486,8 @@ Returns the list of articles removed." ?. ?_))) ;; Translate the first colon into a slash. (when (string-match ":" group) - (aset group (match-beginning 0) ?/)) + (setq group (concat (substring group 0 (match-beginning 0)) + "/" (substring group (match-end 0))))) (nnheader-replace-chars-in-string group ?. ?/))) t) gnus-cache-directory)))) diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index 681745c..77176e5 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -440,7 +440,9 @@ If WIDTH (the numerical prefix), use that text width when filling." (narrow-to-region (caar marks) (caadr marks)) (let ((adaptive-fill-regexp (concat "^" (regexp-quote (cdar marks)) " *")) - (fill-prefix (cdar marks))) + (fill-prefix + (if (string= (cdar marks) "") "" + (concat (cdar marks) " ")))) (fill-region (point-min) (point-max))) (set-marker (caar marks) nil) (setq marks (cdr marks))) diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index 6a77b8e..d647928 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -1,5 +1,7 @@ ;;; gnus-demon.el --- daemonic Gnus behaviour -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 849dc9b..7106b0f 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -213,20 +213,30 @@ ;;;!!!but for the time being, we'll just run this tiny function uncompiled. (defun gnus-draft-setup-for-editing (narticle group) - (gnus-setup-message 'forward - (let ((article narticle)) - (message-mail) - (erase-buffer) - (if (not (gnus-request-restore-buffer article group)) - (error "Couldn't restore the article") - (funcall gnus-draft-decoding-function) - ;; Insert the separator. - (goto-char (point-min)) - (search-forward "\n\n") - (forward-char -1) - (insert mail-header-separator) - (forward-line 1) - (message-set-auto-save-file-name))))) + (let (ga) + (gnus-setup-message 'forward + (let ((article narticle)) + (message-mail) + (erase-buffer) + (if (not (gnus-request-restore-buffer article group)) + (error "Couldn't restore the article") + (funcall gnus-draft-decoding-function) + ;; Insert the separator. + (goto-char (point-min)) + (search-forward "\n\n") + (forward-char -1) + (insert mail-header-separator) + (forward-line 1) + (setq ga (message-fetch-field gnus-draft-meta-information-header)) + (message-set-auto-save-file-name)))) + (when (and ga + (ignore-errors (setq ga (car (read-from-string ga))))) + (setq message-post-method + `(lambda (arg) + (gnus-post-method arg ,(car ga)))) + (message-add-action + `(gnus-add-mark ,(car ga) 'replied ,(cadr ga)) + 'send)))) (defvar gnus-draft-send-draft-buffer " *send draft*") (defun gnus-draft-setup-for-sending (narticle group) diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 2bd19f4..f10f27d 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -37,6 +37,7 @@ (require 'gnus-win) (require 'gnus-undo) (require 'time-date) +(require 'gnus-ems) (defcustom gnus-group-archive-directory "*ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list/" @@ -117,8 +118,8 @@ This function will be called with group info entries as the arguments for the groups to be sorted. Pre-made functions include `gnus-group-sort-by-alphabet', `gnus-group-sort-by-real-name', `gnus-group-sort-by-unread', `gnus-group-sort-by-level', -`gnus-group-sort-by-score', `gnus-group-sort-by-method', and -`gnus-group-sort-by-rank'. +`gnus-group-sort-by-score', `gnus-group-sort-by-method', +`gnus-group-sort-by-server', and `gnus-group-sort-by-rank'. This variable can also be a list of sorting functions. In that case, the most significant sort function should be the last function in the @@ -131,6 +132,7 @@ list." (function-item gnus-group-sort-by-level) (function-item gnus-group-sort-by-score) (function-item gnus-group-sort-by-method) + (function-item gnus-group-sort-by-server) (function-item gnus-group-sort-by-rank) (function :tag "other" nil))) @@ -2677,6 +2679,12 @@ If REVERSE, sort in reverse order." (interactive "P") (gnus-group-sort-groups 'gnus-group-sort-by-method reverse)) +(defun gnus-group-sort-groups-by-server (&optional reverse) + "Sort the group buffer alphabetically by server name. +If REVERSE, sort in reverse order." + (interactive "P") + (gnus-group-sort-groups 'gnus-group-sort-by-server reverse)) + ;;; Selected group sorting. (defun gnus-group-sort-selected-groups (n func &optional reverse) @@ -2781,6 +2789,15 @@ sort in reverse order." (symbol-name (car (gnus-find-method-for-group (gnus-info-group info2) info2))))) +(defun gnus-group-sort-by-server (info1 info2) + "Sort alphabetically by server name." + (string< (gnus-method-to-server-name + (gnus-find-method-for-group + (gnus-info-group info1) info1)) + (gnus-method-to-server-name + (gnus-find-method-for-group + (gnus-info-group info2) info2)))) + (defun gnus-group-sort-by-score (info1 info2) "Sort by group score." (< (gnus-info-score info1) (gnus-info-score info2))) @@ -3766,7 +3783,8 @@ and the second element is the address." (setcar (nthcdr 2 entry) info) (when (and (not (eq (car entry) t)) (gnus-active (gnus-info-group info))) - (setcar entry (length (gnus-list-of-unread-articles (car info)))))) + (setcar entry (length + (gnus-list-of-unread-articles (car info)))))) (error "No such group: %s" (gnus-info-group info)))))) (defun gnus-group-set-method-info (group select-method) @@ -3801,6 +3819,16 @@ and the second element is the address." (sort (nconc (gnus-uncompress-range (cdr m)) (copy-sequence articles)) '<) t)))))) +(defun gnus-add-mark (group mark article) + "Mark ARTICLE in GROUP with MARK, whether the group is displayed or not." + (let ((buffer (gnus-summary-buffer-name group))) + (if (gnus-buffer-live-p buffer) + (save-excursion + (set-buffer (get-buffer buffer)) + (gnus-summary-add-mark article mark)) + (gnus-add-marked-articles group (cdr (assq mark gnus-article-mark-lists)) + (list article))))) + ;;; ;;; Group timestamps ;;; diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 486229f..06625a9 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -247,6 +247,7 @@ Thank you for your help in stamping out bugs. (progn ,@forms) (gnus-inews-add-send-actions ,winconf ,buffer ,article) + (gnus-inews-insert-draft-meta-information ,group ,article) (setq gnus-message-buffer (current-buffer)) (set (make-local-variable 'gnus-message-group-art) (cons ,group ,article)) @@ -256,6 +257,15 @@ Thank you for your help in stamping out bugs. (gnus-configure-windows ,config t) (set-buffer-modified-p nil)))) +(defun gnus-inews-insert-draft-meta-information (group article) + (save-excursion + (when (and group + (not (string= group "")) + (not (message-fetch-field gnus-draft-meta-information-header))) + (goto-char (point-min)) + (insert gnus-draft-meta-information-header ": (\"" group "\" " + (if article (number-to-string article) "\"\"") ")\n")))) + ;;;###autoload (defun gnus-msg-mail (&rest args) "Start editing a mail message to be sent. @@ -269,8 +279,8 @@ Gcc: header for archiving purposes." ;;;###autoload (define-mail-user-agent 'gnus-user-agent - 'gnus-msg-mail 'message-send-and-exit - 'message-kill-buffer 'message-send-hook) + 'gnus-msg-mail 'message-send-and-exit + 'message-kill-buffer 'message-send-hook) (defun gnus-setup-posting-charset (group) (let ((alist gnus-group-posting-charset-alist) @@ -415,7 +425,10 @@ If prefix argument YANK is non-nil, original article is yanked automatically." (gnus-copy-article-buffer) (let ((message-reply-buffer gnus-article-copy) - (message-reply-headers gnus-current-headers)) + (message-reply-headers + (with-current-buffer gnus-article-copy + ;; The headers are decoded. + (nnheader-parse-head t)))) (message-yank-original) (setq beg (or beg (mark t)))) (when articles @@ -815,7 +828,9 @@ If FULL-HEADERS (the prefix), include full headers when forwarding." (defun gnus-summary-resend-message (address n) "Resend the current article to ADDRESS." - (interactive "sResend message(s) to: \nP") + (interactive + (list (message-read-from-minibuffer "Resend message(s) to: ") + current-prefix-arg)) (let ((articles (gnus-summary-work-articles n)) article) (while (setq article (pop articles)) @@ -1202,7 +1217,7 @@ this is a reply." (gnus-set-active group (cons (car active) (cdr group-art)))) (gnus-activate-group group))) - (let ((buffer (concat "*Summary " group "*")) + (let ((buffer (gnus-summary-buffer-name group)) (mark gnus-read-mark) (article (cdr group-art))) (unless diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index e527523..9a4c9ba 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -1,5 +1,7 @@ ;;; gnus-picon.el --- displaying pretty icons in Gnus -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Wes Hardaker ;; Keywords: news xpm annotation glyph faces diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 56d9ef7..dc617df 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -1810,7 +1810,7 @@ score in GNUS-NEWSGROUP-SCORED by SCORE." (put-text-property (1- (point)) (point) 'articles alike)) (setq alike (list art) last this))) - (when last ; Bwadr, duplicate code. + (when last ; Bwadr, duplicate code. (insert last ?\n) (put-text-property (1- (point)) (point) 'articles alike)) @@ -1819,7 +1819,7 @@ score in GNUS-NEWSGROUP-SCORED by SCORE." (setq alist (car scores) scores (cdr scores) entries (assoc header alist)) - (while (cdr entries) ;First entry is the header index. + (while (cdr entries) ;First entry is the header index. (let* ((rest (cdr entries)) (kill (car rest)) (match (nth 0 kill)) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 27af8ee..3501554 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -373,8 +373,7 @@ This hook is called as the first thing when Gnus is started." :type 'hook) (defcustom gnus-after-getting-new-news-hook - (when (gnus-boundp 'display-time-timer) - '(display-time-event-handler)) + '(gnus-display-time-event-handler) "A hook run after Gnus checks for new news when Gnus is already running." :group 'gnus-group-new :type 'hook) @@ -2816,6 +2815,11 @@ If this variable is nil, don't do anything." (file-name-as-directory (expand-file-name gnus-default-directory)) default-directory))) +(defun gnus-display-time-event-handler () + "Like `display-time-event-handler', but test `display-time-timer'." + (when (gnus-boundp 'display-time-timer) + (display-time-event-handler))) + (provide 'gnus-start) ;;; gnus-start.el ends here diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index c32c19c..9c165f9 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -458,6 +458,11 @@ this variable specifies group names." :group 'gnus-summary-marks :type 'character) +(defcustom gnus-no-mark ? ;Whitespace + "*Mark used for articles that have no other secondary mark." + :group 'gnus-summary-marks + :type 'character) + (defcustom gnus-ancient-mark ?O "*Mark used for ancient articles." :group 'gnus-summary-marks @@ -1643,6 +1648,7 @@ increase the score of each group you read." "z" gnus-article-date-ut "u" gnus-article-date-ut "l" gnus-article-date-local + "p" gnus-article-date-english "e" gnus-article-date-lapsed "o" gnus-article-date-original "i" gnus-article-date-iso8601 @@ -1715,7 +1721,6 @@ increase the score of each group you read." "Score" (nconc (list - ["Enter score..." gnus-summary-score-entry t] ["Customize" gnus-score-customize t]) (gnus-make-score-map 'increase) (gnus-make-score-map 'lower) @@ -2614,9 +2619,13 @@ display only a single character." (aset table i [??])))) (setq buffer-display-table table))) +(defun gnus-summary-buffer-name (group) + "Return the summary buffer name of GROUP." + (concat "*Summary " group "*")) + (defun gnus-summary-setup-buffer (group) "Initialize summary buffer." - (let ((buffer (concat "*Summary " group "*"))) + (let ((buffer (gnus-summary-buffer-name group))) (if (get-buffer buffer) (progn (set-buffer buffer) @@ -2802,7 +2811,7 @@ buffer that was in action when the last article was fetched." (gnus-tmp-replied gnus-replied-mark) ((memq gnus-tmp-current gnus-newsgroup-saved) gnus-saved-mark) - (t gnus-unread-mark))) + (t gnus-no-mark))) (gnus-tmp-from (mail-header-from gnus-tmp-header)) (gnus-tmp-name (cond @@ -4190,7 +4199,7 @@ or a straight list of headers." gnus-replied-mark) ((memq number gnus-newsgroup-saved) gnus-saved-mark) - (t gnus-unread-mark)) + (t gnus-no-mark)) gnus-tmp-from (mail-header-from gnus-tmp-header) gnus-tmp-name (cond @@ -8402,6 +8411,20 @@ the actual number of articles unmarked is returned." (gnus-summary-remove-process-mark (car gnus-newsgroup-processable)))) (gnus-summary-position-point)) +(defun gnus-summary-add-mark (article type) + "Mark ARTICLE with a mark of TYPE." + (let ((vtype (car (assq type gnus-article-mark-lists))) + var) + (if (not vtype) + (error "No such mark type: %s" type) + (setq var (intern (format "gnus-newsgroup-%s" type))) + (set var (cons article (symbol-value var))) + (if (memq type '(processable cached replied saved)) + (gnus-summary-update-secondary-mark article) + ;;; !!! This is bobus. We should find out what primary + ;;; !!! mark we want to set. + (gnus-summary-update-mark gnus-del-mark 'unread))))) + (defun gnus-summary-mark-as-expirable (n) "Mark N articles forward as expirable. If N is negative, mark backward instead. The difference between N and @@ -8642,7 +8665,7 @@ Iff NO-EXPIRE, auto-expiry will be inhibited." gnus-replied-mark) ((memq article gnus-newsgroup-saved) gnus-saved-mark) - (t gnus-unread-mark)) + (t gnus-no-mark)) 'replied) (when (gnus-visual-p 'summary-highlight 'highlight) (gnus-run-hooks 'gnus-summary-update-hook)) @@ -8786,6 +8809,11 @@ The difference between N and the number of marks cleared is returned." (gnus-read-mark-p mark)) (gnus-summary-mark-article gnus-current-article gnus-read-mark)))) +(defun gnus-summary-mark-unread-as-ticked () + "Intended to be used by `gnus-summary-mark-article-hook'." + (when (memq gnus-current-article gnus-newsgroup-unreads) + (gnus-summary-mark-article gnus-current-article gnus-ticked-mark))) + (defun gnus-summary-mark-region-as-read (point mark all) "Mark all unread articles between point and mark as read. If given a prefix, mark all articles between point and mark as read, @@ -8859,7 +8887,7 @@ even ticked and dormant ones." (let ((scored gnus-newsgroup-scored) headers h) (while scored - (unless (gnus-summary-goto-subject (caar scored)) + (unless (gnus-number-to-header (caar scored)) (and (setq h (gnus-summary-article-header (caar scored))) (< (cdar scored) gnus-summary-expunge-below) (push h headers))) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 85ce328..38c253e 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -222,22 +222,17 @@ (delete-char 1)) (goto-char (next-single-property-change (point) prop nil (point-max)))))) +(require 'nnheader) (defun gnus-newsgroup-directory-form (newsgroup) "Make hierarchical directory name from NEWSGROUP name." - (let ((newsgroup (gnus-newsgroup-savable-name newsgroup)) - (len (length newsgroup)) - idx) - ;; If this is a foreign group, we don't want to translate the - ;; entire name. - (if (setq idx (string-match ":" newsgroup)) - (aset newsgroup idx ?/) - (setq idx 0)) - ;; Replace all occurrences of `.' with `/'. - (while (< idx len) - (when (= (aref newsgroup idx) ?.) - (aset newsgroup idx ?/)) - (setq idx (1+ idx))) - newsgroup)) + (let* ((newsgroup (gnus-newsgroup-savable-name newsgroup)) + (idx (string-match ":" newsgroup))) + (concat + (if idx (substring newsgroup 0 idx)) + (if idx "/") + (nnheader-replace-chars-in-string + (if idx (substring newsgroup (1+ idx)) newsgroup) + ?. ?/)))) (defun gnus-newsgroup-savable-name (group) ;; Replace any slashes in a group name (eg. an ange-ftp nndoc group) diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 993914b..6b8d330 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -571,17 +571,40 @@ didn't work, and overwrite existing files. Otherwise, ask each time." ;; Process marking. +(defun gnus-message-process-mark (unmarkp new-marked) + (let ((old (- (length gnus-newsgroup-processable) (length new-marked)))) + (message "%d mark%s %s%s" + (length new-marked) + (if (= (length new-marked) 1) "" "s") + (if unmarkp "removed" "added") + (cond + ((and (zerop old) + (not unmarkp)) + "") + (unmarkp + (format ", %d remain marked" + (length gnus-newsgroup-processable))) + (t + (format ", %d already marked" old)))))) + +(defun gnus-new-processable (unmarkp articles) + (if unmarkp + (gnus-intersection gnus-newsgroup-processable articles) + (gnus-set-difference articles gnus-newsgroup-processable))) + (defun gnus-uu-mark-by-regexp (regexp &optional unmark) "Set the process mark on articles whose subjects match REGEXP. When called interactively, prompt for REGEXP. Optional UNMARK non-nil means unmark instead of mark." (interactive "sMark (regexp): \nP") - (let ((articles (gnus-uu-find-articles-matching regexp))) - (while articles - (if unmark - (gnus-summary-remove-process-mark (pop articles)) - (gnus-summary-set-process-mark (pop articles)))) - (message "")) + (save-excursion + (let* ((articles (gnus-uu-find-articles-matching regexp)) + (new-marked (gnus-new-processable unmark articles))) + (while articles + (if unmark + (gnus-summary-remove-process-mark (pop articles)) + (gnus-summary-set-process-mark (pop articles)))) + (gnus-message-process-mark unmark new-marked))) (gnus-summary-position-point)) (defun gnus-uu-unmark-by-regexp (regexp) diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index 407890b..0a4ac35 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -31,7 +31,7 @@ (require 'product) (provide 'gnus-vers) -(defconst gnus-revision-number "01" +(defconst gnus-revision-number "02" "Revision number for this version of gnus.") ;; Product information of this gnus. diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index d21cfa7..84dc234 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -1,5 +1,7 @@ ;;; gnus-xmas.el --- Gnus functions for XEmacs -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Katsumi Yamaoka diff --git a/lisp/gnus.el b/lisp/gnus.el index d530de1..97ac96f 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -1650,6 +1650,7 @@ If nil, no default charset is assumed when posting." (defvar gnus-agent-gcc-header "X-Gnus-Agent-Gcc") (defvar gnus-agent-meta-information-header "X-Gnus-Agent-Meta-Information") +(defvar gnus-draft-meta-information-header "X-Draft-From") (defvar gnus-group-get-parameter-function 'gnus-group-get-parameter) (defvar gnus-original-article-buffer " *Original Article*") (defvar gnus-newsgroup-name nil) @@ -1661,9 +1662,6 @@ If nil, no default charset is assumed when posting." (defvar gnus-agent-fetching nil "Whether Gnus agent is in fetching mode.") -(defvar gnus-agent-fetching nil - "Whether Gnus agent is in fetching mode.") - (defvar gnus-command-method nil "Dynamically bound variable that says what the current backend is.") @@ -2616,21 +2614,24 @@ that that variable is buffer-local to the summary buffers." (and active (file-exists-p active)))))) +(defsubst gnus-method-to-server-name (method) + (concat + (format "%s" (car method)) + (when (and + (or (assoc (format "%s" (car method)) + (gnus-methods-using 'address)) + (gnus-server-equal method gnus-message-archive-method)) + (nth 1 method) + (not (string= (nth 1 method) ""))) + (concat "+" (nth 1 method))))) + (defun gnus-group-prefixed-name (group method) "Return the whole name from GROUP and METHOD." (and (stringp method) (setq method (gnus-server-to-method method))) (if (or (not method) (gnus-server-equal method "native")) group - (concat (format "%s" (car method)) - (when (and - (or (assoc (format "%s" (car method)) - (gnus-methods-using 'address)) - (gnus-server-equal method gnus-message-archive-method)) - (nth 1 method) - (not (string= (nth 1 method) ""))) - (concat "+" (nth 1 method))) - ":" group))) + (concat (gnus-method-to-server-name method) ":" group))) (defun gnus-group-real-prefix (group) "Return the prefix of the current group name." diff --git a/lisp/lpath.el b/lisp/lpath.el index ff93cba..93b8433 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -13,6 +13,7 @@ (maybe-fbind '(babel-fetch babel-wash create-image decode-coding-string display-graphic-p + display-time-event-handler find-image font-create-object gnus-mule-get-coding-system font-lock-set-defaults image-size image-type-available-p insert-image @@ -61,7 +62,8 @@ set-buffer-multibyte set-char-table-range set-face-stipple set-frame-face-alist track-mouse url-retrieve w3-form-encode-xwfu window-at - window-edges x-color-values x-popup-menu)) + window-edges x-color-values x-popup-menu browse-url + frame-char-height frame-char-width)) (maybe-bind '(buffer-display-table buffer-file-coding-system font-lock-defaults global-face-data gnus-article-x-face-too-ugly diff --git a/lisp/message.el b/lisp/message.el index 6d03623..21de9a8 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -232,13 +232,14 @@ included. Organization, Lines and User-Agent are optional." :type 'sexp) (defcustom message-ignored-news-headers - "^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:" + "^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:\\|X-Draft-From:" "*Regexp of headers to be removed unconditionally before posting." :group 'message-news :group 'message-headers :type 'regexp) -(defcustom message-ignored-mail-headers "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:" +(defcustom message-ignored-mail-headers + "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|X-Draft-From:" "*Regexp of headers to be removed unconditionally before mailing." :group 'message-mail :group 'message-headers @@ -644,6 +645,12 @@ The function `message-supersede' runs this hook." :group 'message-various :type 'hook) +(defcustom message-minibuffer-local-map + (let ((map (make-sparse-keymap 'message-minibuffer-local-map))) + (set-keymap-parent map minibuffer-local-map) + map) + "Keymap for `message-read-from-minibuffer'.") + ;;;###autoload (defcustom message-citation-line-function 'message-insert-citation-line "*Function called to insert the \"Whomever writes:\" line." @@ -1661,7 +1668,7 @@ Return the number of headers removed." (goto-char (point-min))) (defun message-narrow-to-head-1 () - "Like `message-narrow-to-head'. Don't widen." + "Like `message-narrow-to-head'. Don't widen." (narrow-to-region (goto-char (point-min)) (if (search-forward "\n\n" nil 1) @@ -1810,6 +1817,7 @@ Point is left at the beginning of the narrowed-to region." (define-key message-mode-map "\M-q" 'message-fill-paragraph) (define-key message-mode-map "\t" 'message-tab) + (define-key message-mode-map "\M-;" 'comment-region) (define-key message-mode-map "\C-x\C-s" 'message-save-drafts) (define-key message-mode-map "\C-xk" 'message-mimic-kill-buffer)) @@ -1935,8 +1943,6 @@ M-RET message-newline-and-reformat (break the line and reformat)." (message-setup-fill-variables) ;; Allow using comment commands to add/remove quoting. (set (make-local-variable 'comment-start) message-yank-prefix) - ;;(when (fboundp 'mail-hist-define-keys) - ;; (mail-hist-define-keys)) (if (featurep 'xemacs) (message-setup-toolbar) (set (make-local-variable 'font-lock-defaults) @@ -2083,10 +2089,12 @@ a string \"never\" is inserted in default." (interactive) (message-position-on-field "Summary" "Subject")) -(defun message-goto-body () +(defun message-goto-body (&optional interactivep) "Move point to the beginning of the message body." - (interactive) - (if (looking-at "[ \t]*\n") (expand-abbrev)) + (interactive (list t)) + (when (and interactivep + (looking-at "[ \t]*\n")) + (expand-abbrev)) (goto-char (point-min)) (or (search-forward (concat "\n" mail-header-separator "\n") nil t) (search-forward "\n\n" nil t))) @@ -3917,10 +3925,7 @@ If NOW, use that time instead." (save-excursion (save-restriction (widen) - (goto-char (point-min)) - (re-search-forward - (concat "^" (regexp-quote mail-header-separator) "$")) - (forward-line 1) + (message-goto-body) (int-to-string (count-lines (point) (point-max)))))) (defun message-make-in-reply-to () @@ -4805,20 +4810,21 @@ responses here are directed to other addresses."))) ;; Allow customizations to have their say. (if (not wide) ;; This is a regular reply. - (if (message-functionp message-reply-to-function) - (setq follow-to (funcall message-reply-to-function))) - ;; This is a followup. - (if (message-functionp message-wide-reply-to-function) + (when (message-functionp message-reply-to-function) (save-excursion - (setq follow-to - (funcall message-wide-reply-to-function))))) + (setq follow-to (funcall message-reply-to-function)))) + ;; This is a followup. + (when (message-functionp message-wide-reply-to-function) + (save-excursion + (setq follow-to + (funcall message-wide-reply-to-function))))) (setq message-id (message-fetch-field "message-id" t) references (message-fetch-field "references") date (message-fetch-field "date") from (message-fetch-field "from") subject (or (message-fetch-field "subject") "none")) - (if gnus-list-identifiers - (setq subject (message-strip-list-identifiers subject))) + (when gnus-list-identifiers + (setq subject (message-strip-list-identifiers subject))) (setq subject (message-make-followup-subject subject)) (when (and (setq gnus-warning (message-fetch-field "gnus-warning")) @@ -5712,9 +5718,11 @@ regexp varstr." "Read from the minibuffer while providing abbrev expansion." (if (fboundp 'mail-abbrevs-setup) (let ((mail-abbrev-mode-regexp "") - (minibuffer-setup-hook 'mail-abbrevs-setup)) + (minibuffer-setup-hook 'mail-abbrevs-setup) + (minibuffer-local-map message-minibuffer-local-map)) (read-from-minibuffer prompt)) - (let ((minibuffer-setup-hook 'mail-abbrev-minibuffer-setup-hook)) + (let ((minibuffer-setup-hook 'mail-abbrev-minibuffer-setup-hook) + (minibuffer-local-map message-minibuffer-local-map)) (read-string prompt)))) (defun message-use-alternative-email-as-from () diff --git a/lisp/messagexmas.el b/lisp/messagexmas.el index 62f2cd4..b3be4ee 100644 --- a/lisp/messagexmas.el +++ b/lisp/messagexmas.el @@ -1,5 +1,7 @@ ;;; messagexmas.el --- XEmacs extensions to message -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: mail, news diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el index 9983a8f..28d202e 100644 --- a/lisp/mm-bodies.el +++ b/lisp/mm-bodies.el @@ -112,16 +112,32 @@ If no encoding was done, nil is returned." (setq start nil)) charset))))))) -(eval-when-compile (defvar message-posting-charset)) +(defun mm-long-lines-p (length) + "Say whether any of the lines in the buffer is longer than LINES." + (save-excursion + (goto-char (point-min)) + (end-of-line) + (while (and (not (eobp)) + (not (> (current-column) length))) + (forward-line 1) + (end-of-line)) + (and (> (current-column) length) + (current-column)))) + +(defvar message-posting-charset) (defun mm-body-encoding (charset &optional encoding) "Do Content-Transfer-Encoding and return the encoding of the current buffer." - (let ((bits (mm-body-7-or-8))) + (let ((bits (mm-body-7-or-8)) + (longp (mm-long-lines-p 1000))) (require 'message) (cond - ((and (not mm-use-ultra-safe-encoding) (eq bits '7bit)) + ((and (not mm-use-ultra-safe-encoding) + (not longp) + (eq bits '7bit)) bits) ((and (not mm-use-ultra-safe-encoding) + (not longp) (or (eq t (cdr message-posting-charset)) (memq charset (cdr message-posting-charset)) (eq charset mail-parse-charset))) diff --git a/lisp/mm-util.el b/lisp/mm-util.el index dea9759..c1e1c53 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -230,23 +230,26 @@ used as the line break code type of the coding system." "Set the multibyte flag of the current buffer. Only do this if the default value of `enable-multibyte-characters' is non-nil. This is a no-op in XEmacs." - (when (and (fboundp 'set-buffer-multibyte) - (boundp 'enable-multibyte-characters) - (default-value 'enable-multibyte-characters)) + (when (and (not (featurep 'xemacs)) + (boundp 'default-enable-multibyte-characters) + default-enable-multibyte-characters + (fboundp 'set-buffer-multibyte)) (set-buffer-multibyte t))) (defsubst mm-disable-multibyte () "Unset the multibyte flag of in the current buffer. This is a no-op in XEmacs." - (when (fboundp 'set-buffer-multibyte) + (when (and (not (featurep 'xemacs)) + (fboundp 'set-buffer-multibyte)) (set-buffer-multibyte nil))) (defsubst mm-enable-multibyte-mule4 () "Enable multibyte in the current buffer. Only used in Emacs Mule 4." - (when (and (fboundp 'set-buffer-multibyte) - (boundp 'enable-multibyte-characters) - (default-value 'enable-multibyte-characters) + (when (and (not (featurep 'xemacs)) + (boundp 'default-enable-multibyte-characters) + default-enable-multibyte-characters + (fboundp 'set-buffer-multibyte) (fboundp 'charsetp) (not (charsetp 'eight-bit-control))) (set-buffer-multibyte t))) @@ -254,7 +257,8 @@ Only used in Emacs Mule 4." (defsubst mm-disable-multibyte-mule4 () "Disable multibyte in the current buffer. Only used in Emacs Mule 4." - (when (and (fboundp 'set-buffer-multibyte) + (when (and (not (featurep 'xemacs)) + (fboundp 'set-buffer-multibyte) (fboundp 'charsetp) (not (charsetp 'eight-bit-control))) (set-buffer-multibyte nil))) @@ -356,15 +360,19 @@ Use unibyte mode for this." "Evaluate FORMS with current current buffer temporarily made unibyte. Also bind `default-enable-multibyte-characters' to nil. Equivalent to `progn' in XEmacs" - (let ((multibyte (make-symbol "multibyte"))) - `(if (fboundp 'set-buffer-multibyte) - (let ((,multibyte enable-multibyte-characters)) + (let ((buffer (make-symbol "buffer"))) + `(if (and (not (featurep 'xemacs)) + (boundp 'enable-multibyte-characters) + enable-multibyte-characters + (fboundp 'set-buffer-multibyte)) + (let ((,buffer (current-buffer))) (unwind-protect (let (default-enable-multibyte-characters) (set-buffer-multibyte nil) ,@forms) - (set-buffer-multibyte ,multibyte))) - (progn + (set-buffer ,buffer) + (set-buffer-multibyte t))) + (let (default-enable-multibyte-characters) ,@forms)))) (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) @@ -372,23 +380,22 @@ Equivalent to `progn' in XEmacs" (defmacro mm-with-unibyte-current-buffer-mule4 (&rest forms) "Evaluate FORMS there like `progn' in current buffer. Mule4 only." - (let ((multibyte (make-symbol "multibyte"))) - `(if (or (featurep 'xemacs) - (not (fboundp 'set-buffer-multibyte)) - (not (fboundp 'charsetp)) - (charsetp 'eight-bit-control)) ;; For Emacs Mule 4 only. - (progn - ,@forms) - (let ((,multibyte (default-value 'enable-multibyte-characters))) + (let ((buffer (make-symbol "buffer"))) + `(if (and (not (featurep 'xemacs)) + (boundp 'enable-multibyte-characters) + enable-multibyte-characters + (fboundp 'set-buffer-multibyte) + (fboundp 'charsetp) + (not (charsetp 'eight-bit-control))) ;; For Emacs Mule 4 only. + (let ((,buffer (current-buffer))) (unwind-protect - (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)) + (let (default-enable-multibyte-characters) (set-buffer-multibyte nil) - (setq-default enable-multibyte-characters nil) ,@forms) - (setq-default enable-multibyte-characters ,multibyte) - (set-buffer-multibyte ,multibyte)))))) + (set-buffer ,buffer) + (set-buffer-multibyte t))) + (let (default-enable-multibyte-characters) + ,@forms)))) (put 'mm-with-unibyte-current-buffer-mule4 'lisp-indent-function 0) (put 'mm-with-unibyte-current-buffer-mule4 'edebug-form-spec '(body)) diff --git a/lisp/mm-uu.el b/lisp/mm-uu.el index a2352df..f6f43ac 100644 --- a/lisp/mm-uu.el +++ b/lisp/mm-uu.el @@ -275,10 +275,12 @@ Return that buffer." (if (search-forward "\n\n" nil t) (delete-region (point-min) (point))) (if (re-search-forward mm-uu-pgp-beginning-signature nil t) - (delete-region (match-beginning 0) (point-max)))) - (list - (mm-make-handle buf - '("text/plain" (charset . gnus-decoded)))))) + (delete-region (match-beginning 0) (point-max))) + (goto-char (point-min)) + (while (re-search-forward "^- " nil t) + (replace-match "" t t) + (forward-line 1))) + (list (mm-make-handle buf '("text/plain" (charset . gnus-decoded)))))) (defun mm-uu-pgp-signed-extract () (let ((mm-security-handle (list (format "multipart/signed")))) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index d55eb79..d2a67a0 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -119,7 +119,9 @@ (url-standalone-mode t)) (condition-case var (w3-region (point-min) (point-max)) - (error))))) + (error + (message + "Error while rendering html; showing as text/plain")))))) (mm-handle-set-undisplayer handle `(lambda () diff --git a/lisp/mml.el b/lisp/mml.el index 200dea0..eb7c7f5 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -299,7 +299,8 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (with-temp-buffer (setq charset (mm-charset-to-coding-system (cdr (assq 'charset cont)))) - (if (eq charset 'ascii) (setq charset nil)) + (when (eq charset 'ascii) + (setq charset nil)) (cond ((cdr (assq 'buffer cont)) (insert-buffer-substring (cdr (assq 'buffer cont)))) @@ -316,7 +317,8 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." ;; Remove quotes from quoted tags. (goto-char (point-min)) (while (re-search-forward - "<#!+/?\\(part\\|multipart\\|external\\|mml\\)" nil t) + "<#!+/?\\(part\\|multipart\\|external\\|mml\\)" + nil t) (delete-region (+ (match-beginning 0) 2) (+ (match-beginning 0) 3)))))) (cond diff --git a/lisp/nndb.el b/lisp/nndb.el index 4868f01..30eb2e2 100644 --- a/lisp/nndb.el +++ b/lisp/nndb.el @@ -1,5 +1,6 @@ ;;; nndb.el --- nndb access for Gnus -;; Copyright (C) 1997,98 Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA ;; Kai Grossjohann diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index fb18a1c..ba9dc38 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -37,6 +37,9 @@ (require 'gnus-util) (require 'gnus-range) +(eval-and-compile + (autoload 'gnus-intersection "gnus-range")) + (nnoo-declare nnfolder) (defvoo nnfolder-directory (expand-file-name message-directory) @@ -141,6 +144,10 @@ all. This may very well take some time.") 'headers (if (nnfolder-retrieve-headers-with-nov articles fetch-old) 'nov + (setq articles (gnus-sorted-intersection + ;; Is ARTICLES sorted? + (sort articles '<) + (nnfolder-existing-articles))) (while (setq article (pop articles)) (set-buffer nnfolder-current-buffer) (when (nnfolder-goto-article article) @@ -337,13 +344,13 @@ all. This may very well take some time.") (let ((marker (concat "\n" nnfolder-article-marker)) (number "[0-9]+") numbers) - (while (and (search-forward marker nil t) (re-search-forward number nil t)) (let ((newnum (string-to-number (match-string 0)))) (if (nnmail-within-headers-p) (push newnum numbers)))) - numbers)))) + ;; The article numbers are increasing, so this result is sorted. + (nreverse numbers))))) (deffoo nnfolder-request-expire-articles (articles newsgroup &optional server force) @@ -354,7 +361,7 @@ all. This may very well take some time.") ;; The articles that really exist and will ;; be expired if they are old enough. (maybe-expirable - (gnus-intersection articles (nnfolder-existing-articles)))) + (gnus-sorted-intersection articles (nnfolder-existing-articles)))) (nnmail-activate 'nnfolder) (save-excursion diff --git a/lisp/nnheader.el b/lisp/nnheader.el index 046d4b4..7d216c1 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -37,6 +37,7 @@ (require 'mail-utils) (require 'mime) (eval-and-compile + (autoload 'gnus-sorted-intersection "gnus-range") (autoload 'gnus-intersection "gnus-range") (autoload 'gnus-sorted-complement "gnus-range")) @@ -1133,6 +1134,7 @@ find-file-hooks, etc. (defalias 'nnheader-run-at-time 'run-at-time) (defalias 'nnheader-cancel-timer 'cancel-timer) (defalias 'nnheader-cancel-function-timers 'cancel-function-timers) +(defalias 'nnheader-string-as-multibyte 'string-as-multibyte) (defun nnheader-Y-or-n-p (prompt) "Ask user a \"Y/n\" question. Return t if answer is neither \"n\", \"N\" nor \"C-g\"." diff --git a/lisp/nnheaderxm.el b/lisp/nnheaderxm.el index 7ec301a..22d44b5 100644 --- a/lisp/nnheaderxm.el +++ b/lisp/nnheaderxm.el @@ -1,5 +1,7 @@ ;;; nnheaderxm.el --- making Gnus backends work under XEmacs -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Katsumi Yamaoka @@ -56,6 +58,7 @@ (defalias 'nnheader-run-at-time 'nnheader-xmas-run-at-time) (defalias 'nnheader-cancel-timer 'delete-itimer) (defalias 'nnheader-cancel-function-timers 'ignore) +(defalias 'nnheader-string-as-multibyte 'identity) (defalias 'nnheader-Y-or-n-p 'nnheader-xmas-Y-or-n-p) (provide 'nnheaderxm) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index f2bf49d..197866f 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -153,7 +153,7 @@ number of days) -- this doesn't have to be an integer. This variable can also be `immediate' and `never'." :group 'nnmail-expire :type '(choice (const immediate) - (integer :tag "days") + (number :tag "days") (const never))) (defcustom nnmail-expiry-wait-function nil diff --git a/lisp/nnml.el b/lisp/nnml.el index 481d678..6f1bd6b 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -37,8 +37,6 @@ (require 'nnheader) (require 'nnmail) (require 'nnoo) -(eval-and-compile - (autoload 'gnus-sorted-intersection "gnus-range")) (nnoo-declare nnml) diff --git a/lisp/nnslashdot.el b/lisp/nnslashdot.el index 1a9ac54..4fcb011 100644 --- a/lisp/nnslashdot.el +++ b/lisp/nnslashdot.el @@ -398,8 +398,8 @@ (nnweb-decode-entities-string (match-string 1))) (re-search-forward "\\([^<]+\\)") (setq sid (match-string 1)) - (string-match "/\\([0-9/]+\\)\\(.shtml\\|$\\)" sid) - (setq sid (concat "00/" (match-string 1 sid))) + (string-match "sid=\\([0-9/]+\\)\\(.shtml\\|$\\)" sid) + (setq sid (match-string 1 sid)) (re-search-forward "\\([^<]+\\)") (setq articles (string-to-number (match-string 1))) (setq gname (concat description " (" sid ")")) diff --git a/lisp/nntp.el b/lisp/nntp.el index 542e59c..05147ed 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -979,6 +979,8 @@ password contained in '~/.nntp-authinfo'." nil)))) (when timer (nnheader-cancel-timer timer)) + (unless process + (nntp-kill-buffer pbuffer)) (when (and (buffer-name pbuffer) process) (process-kill-without-query process) diff --git a/lisp/nnweb.el b/lisp/nnweb.el index dcdf4d4..628b0c8 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -691,7 +691,7 @@ and `altavista'.") (defun nnweb-insert-html (parse) "Insert HTML based on a w3 parse tree." (if (stringp parse) - (insert parse) + (insert (nnheader-string-as-multibyte parse)) (insert "<" (symbol-name (car parse)) " ") (insert (mapconcat (lambda (param) diff --git a/lisp/nnwfm.el b/lisp/nnwfm.el index 5ec1a06..130c689 100644 --- a/lisp/nnwfm.el +++ b/lisp/nnwfm.el @@ -121,19 +121,23 @@ (format "Item.asp?GroupID=%d&ThreadID=%d" sid thread-id))) (goto-char (point-min)) - (setq contents - (ignore-errors (w3-parse-buffer (current-buffer)))) - (setq tables (caddar (caddar (cdr (caddar (caddar contents)))))) + (setq tables (caddar + (caddar + (cdr (caddar + (caddar + (ignore-errors + (w3-parse-buffer (current-buffer))))))))) (setq tables (cdr (caddar (memq (assq 'div tables) tables)))) (setq contents nil) (dolist (table tables) - (setq table (caddar (caddar (caddr table))) - hstuff (delete ":link" (nnweb-text (car table))) - bstuff (car (caddar (cdr table))) - from (car hstuff)) - (when (nth 2 hstuff) - (setq time (nnwfm-date-to-time (nth 2 hstuff))) - (push (list from time bstuff) contents))) + (when (eq (car table) 'table) + (setq table (caddar (caddar (caddr table))) + hstuff (delete ":link" (nnweb-text (car table))) + bstuff (car (caddar (cdr table))) + from (car hstuff)) + (when (nth 2 hstuff) + (setq time (nnwfm-date-to-time (nth 2 hstuff))) + (push (list from time bstuff) contents)))) (setq contents (nreverse contents)) (dolist (art (cdr elem)) (push (list (car art) @@ -280,11 +284,13 @@ (while (re-search-forward " wr(" nil t) (forward-char -1) (setq elem (message-tokenize-header - (buffer-substring - (1+ (point)) - (progn - (forward-sexp 1) - (1- (point)))))) + (nnweb-replace-in-string + (buffer-substring + (1+ (point)) + (progn + (forward-sexp 1) + (1- (point)))) + "\\\\[\"\\\\]" ""))) (push (list (string-to-number (nth 1 elem)) (nnweb-replace-in-string (nth 2 elem) "\"" "") diff --git a/lisp/qp.el b/lisp/qp.el index 3470a9b..2f63abf 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -53,7 +53,7 @@ coding-system." (if coding-system (mm-encode-coding-region (point-min) (point-max) coding-system)) (goto-char (point-min)) - (while (and (skip-chars-forward "^=" to) + (while (and (skip-chars-forward "^=") (not (eobp))) (cond ((eq (char-after (1+ (point))) ?\n) (delete-char 2)) @@ -63,8 +63,10 @@ coding-system." 16))) (insert byte) (delete-char 3) - (unless (eq byte ?=) - (backward-char)))) + ;; Why backward-char??? + ;;(unless (eq byte 61) ;; 61 is not ?= in XEmacs + ;; (backward-char)) + )) (t (error "Malformed quoted-printable text") (forward-char))))) diff --git a/lisp/time-date.el b/lisp/time-date.el index 7d934e6..4c0fa38 100644 --- a/lisp/time-date.el +++ b/lisp/time-date.el @@ -131,6 +131,11 @@ The Gregorian date Sunday, December 31, 1bce is imaginary." (- (/ (1- year) 100)) ; - century years (/ (1- year) 400)))) ; + Gregorian leap years +(defun time-to-number-of-days (time) + "Return the number of days represented by TIME. +The number of days will be returned as a floating point number." + (/ (+ (* 1.0 65536 (car time)) (cadr time)) (* 60 60 24))) + ;;;###autoload (defun safe-date-to-time (date) "Parse DATE and return a time structure. diff --git a/texi/ChangeLog b/texi/ChangeLog index 6583f0b..3f9c590 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,77 @@ +2001-01-05 06:53:13 Lars Magne Ingebrigtsen + + * emacs-mime.texi (time-date): Addition. + (time-date): Addition. + +2001-01-04 22:00:00 ShengHuo ZHU + + * gnus.texi (Newest Features): uref, not url. + + * texi2latex.el (latexi-translate-file): Ignore anchor. + +2001-01-04 Kai Gro,A_(Bjohann + + * gnus.texi (Article Washing): Refer to `Customizing Articles' for + permanent changes. Suggested by Russell Marks (russel dot marks + at ntlworld dot com). + +2001-01-03 Kai Gro,A_(Bjohann + + * gnus.texi (Article Washing): Mention `C-u g' as a sort of + anti-washing. + +2001-01-01 11:40:34 Lars Magne Ingebrigtsen + + * gnus.texi (extensions): Removed. + +2000-12-31 10:00:00 ShengHuo ZHU + + * texi2latex.el (latexi-translate-file): Understand uref. + +2000-12-30 Kai Gro,A_(Bjohann + + * gnus.texi (Selecting a Group): Explain in more detail, what a + prefix arg means for SPC. Refer people to M-g command from + summary buffer. Kudos to Paul Repacholi + and Dan Jacobson for suggesting this. + +2000-12-29 21:43:20 Lars Magne Ingebrigtsen + + * message.texi (Spelling): New. + +2000-12-29 10:00:00 ShengHuo ZHU + + * texi2latex.el (latexi-translate-file): Support srcdir. + (latexi-translate-file): Understand ifnottex, dircategory, and + direntry. Set coding-system-for-write to iso-8859-1. + + * Makefile.in: Fix for srcdir. + + * gnus.texi (NoCeM): Use file instead of uref. + (Mail Source Specifiers): Use subsubsection instead of + subsubheading. + +2000-12-29 01:00:00 ShengHuo ZHU + + * gnus.texi (Top): Set version to Oort Gnus v0.01. + + * Makefile.in (install): The info files are in the current + directory. + +2000-12-29 Christopher Splinter + + * gnus.texi (Customizing Articles): Added documentation for + `gnus-treat-hide-citation-maybe', `gnus-treat-date-iso8601' and + `gnus-treat-date-user-defined'. + +2000-12-29 00:38:59 Lars Magne Ingebrigtsen + + * gnus.texi (Posting Styles): Addition. + +2000-12-28 20:04:26 Lars Magne Ingebrigtsen + + * message.texi (Buffer Entry): New section. + 2000-12-22 Christopher Splinter * gnus.texi (Group Parameters): Add documentation for the `banner' diff --git a/texi/Makefile.in b/texi/Makefile.in index 3d447b3..5e2441c 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -73,23 +73,23 @@ pdf: gnus.pdf message.pdf refcard.pdf emacs-mime.pdf .texi.dvi : sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi - $(TEXI2DVI) gnustmp.texi + $(TEXI2DVI) -I $(srcdir) gnustmp.texi cp gnustmp.dvi $*.dvi rm gnustmp.* .texi.pdf : sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi - $(TEXI2PDF) gnustmp.texi + $(TEXI2PDF) -I $(srcdir) gnustmp.texi cp gnustmp.pdf $*.pdf rm gnustmp.* refcard.dvi: refcard.tex gnuslogo.refcard gnusref.tex - $(LATEX) refcard.tex + TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) refcard.tex refcard.pdf: refcard.tex gnuslogo.refcard gnusref.tex - epstopdf gnuslogo.refcard --outfile=gnuslogo.refcard.pdf - $(PDFLATEX) refcard.tex + epstopdf $(srcdir)/gnuslogo.refcard --outfile=gnuslogo.refcard.pdf + TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) refcard.tex clean: rm -f *.orig *.rej *.elc *~ gnus-[0-9] gnus-[0-9][0-9] @@ -110,16 +110,16 @@ makeinfo: makeinfo -o message message.texi texi2latex.elc: texi2latex.el - $(EMACSINFO) -batch -l bytecomp --eval '(byte-compile-file "texi2latex.el")' + srcdir=$(srcdir)/../lisp $(EMACSINFO) -l $(srcdir)/../lisp/dgnushack.el --eval '(byte-compile-file "$(srcdir)/texi2latex.el")' -latex: gnus.texi texi2latex.elc - $(EMACSINFO) -batch -q -no-site-file gnus.texi -l ./texi2latex.elc -f latexi-translate +latex gnus.latexi gnus-faq.latexi: $(srcdir)/gnus.texi $(srcdir)/gnus-faq.texi texi2latex.elc + srcdir=$(srcdir) $(EMACSINFO) -l ./texi2latex.elc -f latexi-translate -latexps: +latexps: gnus.latexi $(MAKE) texi2latex.elc rm -f gnus.aux egrep -v "label.*Index|chapter.*Index" gnus.latexi > gnus.tmplatexi1 - $(LATEX) gnus.tmplatexi1 + TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) gnus.tmplatexi1 ./splitindex makeindex -o gnus.kind gnus.kidx makeindex -o gnus.cind gnus.cidx @@ -170,11 +170,10 @@ install: $(INFO_DEPS) $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir) @list='$(INFO_DEPS)'; \ for file in $$list; do \ - d=$(srcdir); \ - for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ - if test -f $$d/$$ifile; then \ - echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \ - $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile; \ + for ifile in `echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + if test -f $$ifile; then \ + echo " $(INSTALL_DATA) $$ifile $(infodir)/$$ifile"; \ + $(INSTALL_DATA) $$ifile $(infodir)/$$ifile; \ else : ; fi; \ done; \ done diff --git a/texi/emacs-mime.texi b/texi/emacs-mime.texi index a0c96b4..f0f5be4 100644 --- a/texi/emacs-mime.texi +++ b/texi/emacs-mime.texi @@ -18,7 +18,7 @@ This file documents the Emacs MIME interface functionality. -Copyright (C) 1998,99,2000 Free Software Foundation, Inc. +Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -47,7 +47,7 @@ license to the document, as described in section 6 of the license. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1998,99,2000 Free Software Foundation, Inc. +Copyright @copyright{} 1998, 1999, 2000 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -512,8 +512,7 @@ say.) These functions convert between five formats: A date string, an Emacs time structure, a decoded time list, a second number, and a day number. -The functions have quite self-explanatory names, so the following just -gives an overview of which functions are available. +Here's a bunch of time/date/second/day examples: @example (parse-time-string "Sat Sep 12 12:21:54 1998 +0200") @@ -528,7 +527,7 @@ gives an overview of which functions are available. (seconds-to-time 905595714.0) @result{} (13818 19266 0) -(time-to-day '(13818 19266)) +(time-to-days '(13818 19266)) @result{} 729644 (days-to-time 729644) @@ -553,12 +552,91 @@ gives an overview of which functions are available. (time-to-day-in-year '(13818 19266)) @result{} 255 +(time-to-number-of-days + (time-since + (date-to-time "Mon, 01 Jan 2001 02:22:26 GMT"))) +@result{} 4.146122685185185 @end example And finally, we have @code{safe-date-to-time}, which does the same as @code{date-to-time}, but returns a zero time if the date is syntactically malformed. +The five data representations used are the following: + +@table @var +@item date +An RFC822 (or similar) date string. For instance: @code{"Sat Sep 12 +12:21:54 1998 +0200"}. + +@item time +An internal Emacs time. For instance: @code{(13818 26466)}. + +@item seconds +A floating point representation of the internal Emacs time. For +instance: @code{905595714.0}. + +@item days +An integer number representing the number of days since 00000101. For +instance: @code{729644}. + +@item decoded time +A list of decoded time. For instance: @code{(54 21 12 12 9 1998 6 t +7200)}. +@end table + +All the examples above represent the same moment. + +These are the functions available: + +@table @code +@item date-to-time +Take a date and return a time. + +@item time-to-seconds +Take a time and return seconds. + +@item seconds-to-time +Take seconds and return a time. + +@item time-to-days +Take a time and return days. + +@item days-to-time +Take days and return a time. + +@item date-to-day +Take a date and return days. + +@item time-to-number-of-days +Take a time and return the number of days that represents. + +@item safe-date-to-time +Take a date and return a time. If the date is not syntactically valid, +return a "zero" date. + +@item time-less-p +Take two times and say whether the first time is less (i. e., earlier) +than the second time. + +@item time-since +Take a time and return a time saying how long it was since that time. + +@item subtract-time +Take two times and subtract the second from the first. I. e., return +the time between the two times. + +@item days-between +Take two days and return the number of days between those two days. + +@item date-leap-year-p +Take a year number and say whether it's a leap year. + +@item time-to-day-in-year +Take a time and return the day number within the year that the time is +in. + +@end table @node qp diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 4e8f179..7501e41 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -5,7 +5,7 @@ @synindex fn cp @synindex vr cp @synindex pg cp -@dircategory Editors +@dircategory Emacs @direntry * Gnus-ja: (gnus-ja). The newsreader gnus (Japanese). @end direntry @@ -272,7 +272,8 @@ \thispagestyle{empty} -Copyright \copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc. +Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000 +Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document @@ -319,7 +320,7 @@ This file documents gnus, the GNU Emacs newsreader. $B$3$N%U%!%$%k$O(B GNU Emacs $B$N%K%e!<%9%j!<%@$G$"$k(B gnus $B$K4X$9$k@bL@=q$G$9!#(B -Copyright (C) 1995,96,97,98,99,2000 Free Software Foundation, Inc. +Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -366,7 +367,7 @@ license to the document, as described in section 6 of the license. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc. +Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -657,7 +658,6 @@ The Article Buffer Composing Messages * Mail:: $B%a!<%k$HJVEz(B -* Post:: $BEj9F$H%U%)%m!<%"%C%W(B * Posting Server:: $B$I$N%5!<%P!<$rDL$7$FEj9F$9$k$Y$-$+(B? * Mail and Post:: $BF1;~$K%a!<%k$r=P$7JVEz$9$k(B * Archived Messages:: $BAw$C$?%a%C%;!<%8$r(B gnus $B$,Cy$a$F$*$/$H$3$m(B @@ -1998,6 +1998,13 @@ Gnus $B$O(B @code{gnus-user-format-function-}@samp{X} $B4X?t$r8F$S=P$7$^$9!#$ $B$"$l$P(B gnus $B$O?7$7$$J}$+$i(B @var{N} $B8D$N5-;v$rA0$H!"(Bkiboze $B%0%k!<%W$K!V4^$ $B%U%)%m!<%"%C%W$H%K%e!<%9$X$NEj9F$r$9$k$H$-$K;HMQ$5$l$k%"%I%l%9!#(B @example -(to-address . "some@@where.com") +(to-address . "some@@where.com") @end example $B$3$l$O$N%"%k%U%!%Y%C%H=g$GJB$YBX$($^$9!#(B + @end table @code{gnus-group-sort-function} $B$OJB$YBX$(4X?t$N%j%9%H$G$"$C$F$b9=$$$^$;(B @@ -7095,8 +7106,8 @@ Fonts})$B!#F1$8%a%C%;!<%8$NCf$KJ#?t$N5-;v$+$i$N0zMQ$,$"$k$H!"(Bgnus $B$O$=$l$ @findex gnus-article-strip-banner @cindex banner @cindex OneList -@cindex stripping advertisments -@cindex advertisments +@cindex stripping advertisements +@cindex advertisements @code{banner} $B%0%k!<%W%Q%i%a!<%?$G;XDj$5$l$?%P%J!<$rO$N(B $B$^$9$,!"IaDL$O$b$C$HNI$/8+$($k2?$+$KMn$ACe$-$^$9!#$=$l$K$b$C$H$-$l$$$G$9!"(B $B$?$V$s!#(B +gnus $B$,5-;v$rI=<($9$k4{Dj$N$d$jJ}$rJQ$($?$$$H$-(B +$B$O(B @xref{Customizing Articles} $B$r;2>H$7$F2<$5$$!#(B + @table @kbd +@item C-u g +$B$3$l$O5-;v@vBu$G$O$J$/$F!"$=$N5U$G$9!#$3$l$r%?%$%W$9$k$H!"%G%#%9%/$d%5!<(B +$B%P!<$K$"$k$,$^$^$N5-;v$,8+$($^$9!#(B + @item W l @kindex W l ($B35N,(B) @findex gnus-summary-stop-page-breaking @@ -7320,6 +7338,7 @@ HZ $B$^$?$O(B HZP $B$r=hM}$7$^$9!#(BHZ ($B$^$?$O(B HZP) $B$OCf9q8l$N5-;v$ \include{xface} @end iflatex @end iftex +@anchor{X-Face} $B$9$Y$F$N(B X-Face $BMs$rC5$7$FI=<($7$^$9(B(@code{gnus-article-display-x-face})$B!#(B $B$3$NL?Na$OJQ?t(B @code{gnus-article-x-face-command} $B$K$h$C$FM?$($i$l$?4X?t(B $B$K$h$C$F(B GMT, ZULU) $B$GF|IU$rI=<($7$^$9(B (@code{gnus-article-date-ut}) @findex gnus-article-date-local $BF|IU$r$=$NCO0h$N;~4VBS$GI=<($7$^$9(B (@code{gnus-article-date-local})$B!#(B +@item W T p +@kindex W T p (Summary) +@findex gnus-article-date-english +$BF|IU$r1Q8l$GH/2;$G$-$k7A<0$GI=<($7$^(B +$B$9(B (@code{gnus-article-date-english})$B!#(B + @item W T s @kindex W T s ($B35N,(B) @vindex gnus-article-time-format @@ -8925,6 +8950,7 @@ GNUS $B$d(B Gnus $B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N, @item gnus-treat-hide-boring-headers (head) @item gnus-treat-hide-signature (t, last) @item gnus-treat-hide-citation (t, integer) +@item gnus-treat-hide-citation-maybe (t, integer) @item gnus-treat-strip-pgp (t, last, integer) @item gnus-treat-strip-pem (t, last, integer) @item gnus-treat-highlight-headers (head) @@ -8932,8 +8958,11 @@ GNUS $B$d(B Gnus $B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N, @item gnus-treat-highlight-signature (t, last, integer) @item gnus-treat-date-ut (head) @item gnus-treat-date-local (head) +@item gnus-treat-date-english (head) @item gnus-treat-date-lapsed (head) @item gnus-treat-date-original (head) +@item gnus-treat-date-iso8601 (head) +@item gnus-treat-date-user-defined (head) @item gnus-treat-strip-headers-in-body (t, integer) @item gnus-treat-strip-trailing-blank-lines (t, last, integer) @item gnus-treat-strip-leading-blank-lines (t, integer) @@ -9098,7 +9127,6 @@ GNUS $B$d(B Gnus $B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N, @menu * Mail:: $B%a!<%k$HJVEz(B -* Post:: $BEj9F$H%U%)%m!<%"%C%W(B * Posting Server:: $B$I$N%5!<%P!<$rDL$7$FEj9F$9$k$Y$-$+(B? * Mail and Post:: $BF1;~$K%a!<%k$r=P$7JVEz$9$k(B * Archived Messages:: $BAw$C$?%a%C%;!<%8$r(B gnus $B$,Cy$a$F$*$/$H$3$m(B @@ -9135,30 +9163,6 @@ Superseding} $B$r;2>H$7$F$/$@$5$$!#(B @end table -@node Post -@section $BEj9F(B - -$B%K%e!<%95-;v:n@.$N$?$a$NJQ?t(B: - -@table @code -@item gnus-sent-message-ids-file -@vindex gnus-sent-message-ids-file -Gnus $B$OAw?.$7$?A4$F$N%a!<%k$N(B @code{Message-ID} $BMzNr%U%!%$(B -$B%k(B (history file) $B$rJ]B8$7$^$9!#$b$7%a!<%k$r4{$KAw$C$?;v$,H/8+$5$l$?$J$i!"(B -$BMxMQ$^$J$$$N$G$"$l$P!"$3$NJQ?t$r(B @code{nil} $B$K@_Dj$9(B -$B$k;v$,$G$-$^$9!#(B - -@item gnus-sent-message-ids-length -@vindex gnus-sent-messages-ids-length -$B$3$NJQ?t$O$I$l$/$i$$B?$/$N(B @code{Message-ID} $B$rMzNr%U%!%$%k$KJ];}$9$k$+(B -$B$r;XDj$7$^$9!#%G%#%U%)%k%H$G$O(B 1000 $B$G$9!#(B - -@end table - @node Posting Server @section $BEj9F$9$k%5!<%P!<(B @@ -9468,16 +9472,24 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0(B ((message-news-p) (signature my-news-signature)) (header "From\\|To" "larsi.*org" - (Organization "Somewhere, Inc.")) + (Organization "Somewhere, Inc.")) ((posting-from-work-p) (signature-file "~/.work-signature") (address "user@@bar.foo") (body "You are fired.\n\nSincerely, your boss.") (organization "Important Work, Inc")) + ("nnml:.*" + (From (save-excursion + (set-buffer gnus-article-buffer) + (message-fetch-field "to")))) ("^nn.+:" (signature-file "~/.mail-signature")))) @end lisp +@samp{nnml:.*} $B$N5,B'$O!"$"$J$?$,=P$9$9$Y$F$NJV;v$N(B @code{To} $B%"%I%l%9(B +$B$r(B @code{From} $B%"%I%l%9$H$7$F;H$&$3$H$r0UL#$7$^$9!#$3$l$O!"$"$J$?$,$?$/(B +$B$5$s$N%a!<%j%s%0%j%9%H$K;22C$7$F$$$k>l9g$KJXMx$G$7$g$&!#(B + @node Drafts @section $B2<=q$-(B @cindex drafts @@ -9655,7 +9667,26 @@ message, if you've typed it correctly. @section $B%5!<%P!<%P%C%U%!(B $BEAE}E*$K!"(B@dfn{$B%5!<%P!<(B} $B$O$=$l$K@\B3$7$F!"$=$l$+$i>pJs$rMW5a$9$k%^%7%s(B -$B$+%=%U%H%&%'%"$G$9!#(B +$B$+%=%U%H%&%'%"$G$9!#(Bgnus $B$OK\Ev$N$I$s$J%5!<%P!<$K$bD>@\$K$O@\B3$;$:!"%P%C(B +$B%/%(%s%I$+B>$N$b$N$rDL$7$F$9$Y$F$N=hM}$r9T$J$$$^$9!#$7$+$7!"$=$l$Oe$N3,AX$rCV$/$3$H$G$"$C$F!"$=$l$>$l$N(B +$B%P%C%/%(%s%I$,$^$5$K5?;wE*$J%5!<%P!<$KAjEv$9$k$H8@$C$F$bNI$$$G$7$g$&!#(B + +$BNc$($P(B @code{nntp} $B%P%C%/%(%s%I$O!"0[$J$k$$$/$D$+$Nc(B +$B$,$A$J(B @sc{nntp} $B%5!<%P!<(B @samp{news.funet.fi} $B$N%]!<%H(B 13 $B$rFI$_$?$$>l(B +$B9g$H$+!#$&$*$C$[$s!#$H$K$+$/$G$9$M!"$3$N%5!<%P!<$r;H$&$=$l$>$l$N%0%k!<%W(B +$B$K$D$$$F$=$&$$$&$3$H$r@_Dj$7$J$1$l$P$J$i$J$$$H$7$?$i!"BgJQ$J:n6H$K$J$C$F(B +$B$7$^$&$G$7$g$&!#$=$3$G(B gnus $B$O!"$=$&$$$&:n6H$r%5!<%P!<%P%C%U%!$G9T$J$&$?(B +$B$a$K!"A*BrJ}K!$KL>A0$rIU$1$kC5n$7$^(B @item $B$=$l$>$l$N9T$OG$0U$N?t$N(B $B6h@Z$j0u(B/$BCM(B $B$NBP$r4^$`;v$,$G$-$^$9!#(B -@end enumerate $BM-8z$J6h@Z$j0u$O(B @samp{machine}, @samp{login}, @samp{password}, -@samp{default} $B$G$9!#(Bgnus $B$O(B @file{.netrc}/@code{ftp} $B$N9=J8$N867?$K$O8=(B -$B$l$J$$Fs$D$N?7$7$$6h@Z$j0u!"L>IU$1$F(B @samp{port} $B$H(B @samp{force} $B$rF3F~(B -$B$7$^$9!#(B($B$3$l$,(B @file{.authinfo} $B%U%!%$%k$NMM<0$,(B @file{.netrc} $B%U%!%$%k(B -$B$NMM<0$+$i0o$l$kM#0l$NJ}K!$G$9!#(B) @samp{port} $B$O%5!<%P!<$N$I$N%]!<%H$rG'(B -$B>Z$KMQ$$$k$+$r<($7!"(B@samp{force} $B$O0J2<$G@bL@$7$^$9!#(B +@samp{default} $B$G$9!#2C$($F!"(Bgnus $B$O(B @file{.netrc}/@code{ftp} $B$N9=J8$N86(B +$B7?$K$O8=$l$J$$Fs$D$N?7$7$$6h@Z$j0u!"L>IU$1(B +$B$F(B @samp{port} $B$H(B @samp{force} $B$rF3F~$7$^$9!#(B +($B$3$l$,(B @file{.authinfo} $B%U%!%$%k$NMM<0$,(B @file{.netrc} $B%U%!%$%k$NMM<0$+(B +$B$i0o$l$kM#0l$NJ}K!$G$9!#(B) @samp{port} $B$O%5!<%P!<$N$I$N%]!<%H$rG'>Z$KMQ$$(B +$B$k$+$r<($7!"(B@samp{force} $B$O0J2<$G@bL@$7$^$9!#(B + +@end enumerate $B$3$l$,$=$N%U%!%$%k$NNc$G$9(B: @@ -10242,7 +10275,7 @@ default force yes @item nntp-open-ssl-stream $B%5!<%P!<$K(B @dfn{$B0BA4$J(B} $B%A%c%s%M%k$r;H$C$F%5!<%P!<$K@\B3$7$^$9!#$3$l$r;H(B $B$&$?$a$K$O!"(BSSLay $B$,%$%s%9%H!<%k$5$l$F$$$J$1$l$P$J$j$^$;(B -$B$s(B (@file{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL} $B$H!"(B@file{ssl.el} ($BNc$((B +$B$s(B (@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL} $B$H!"(B@file{ssl.el} ($BNc$((B $B$P!"(BW3 $B$NG[I[$+$i(B) $B$,I,MW$K$J$j$^$9(B)$B!#$=$l$+$i%5!<%P!<$rA0$G$9!#=i4|CM$O(B @code{MAILHOST} $B4D6-JQ?t$+$i$G$J$1$l$P$J$j$^$;$s!#=i(B -$B4|CM$O(B @samp{pop3} $B$G$9!#(B +$B4|CM$O(B @samp{pop3} $B$G$9!#%7%9%F%`$K$h$C$F$O(B @samp{"pop-3"} $B$H$7$J$1$l$P(B +$B$J$i$J$$$+$b$7$l$^$;$s!#(B @item :user POP $B%5!<%P!<$KM?$($kMxMQ$G$9!#=i4|CM$O%m%0%$%sL>$G$9!#(B @@ -11026,7 +11060,7 @@ www.my-deja.com $B$J$I$N%&%'%V%a!<%k%5!<%P!<$+$i%a!<%k$re5-$N$$$/$D$+$N%-!<%o!<%I$O!"$l$N%-!<%o!<%I(B @code{:foo} $B$NCM$H$7$F(B Lisp @@ -11350,10 +11384,12 @@ table) $B$K=>$C$F40A4$K9gCW$7$J$1$l$P$J$j$^$;$s!#@55,I=8=$G%U%#!<%k%IL>$+(B @code{nnmail-message-id-cache-length} $B$NCM$r4{DjCM$h$j$b4v$i$+Bg$-$JCM$K(B $B@_Dj$9$k$3$H$r$*4+$a$7$^$9!#$=$&$9$k$H!":#D4$Y$i$l$?%a%C%;!<%8(B ID $BC#$O:#(B $B$7$P$i$/%-%c%C%7%e$NCf$KB8B3$G$-$^$9(B (5000 $B$K@_Dj$9$k$H%-%c%C%7%e%U%!%$(B -$B%k$NBg$-$5$O$@$$$?$$(B 300 $B%-%m%P%$%H$0$i$$$K$J$k$_$?$$$G$9(B)$B!#$5$i$K!"(B -$BJQ?t(B @code{nnmail-cache-accepted-message-ids} $B$NCM$rHs(B nil $B$K@_Dj$9$l$P!"(B -Gnus $B$O0\F0$5$l$?5-;v$N%a%C%;!<%8(B ID $B$r$b5-O?$9$k$N$G!"%U%)%m!<%"%C%W5-(B -$B;v$O?F5-;v$N0\F0@h$HF1$8%0%k!<%W$KF~$k$h$&$K$J$j$^$9!#(B +$B%k$NBg$-$5$O$@$$$?$$(B 300 $B%-%m%P%$%H$0$i$$$K$J$k$_$?$$$G$9(B)$B!#(B +@vindex nnmail-cache-accepted-message-ids +$B$5$i$K!"JQ?t(B @code{nnmail-cache-accepted-message-ids} $B$NCM$r(B +$BHs(B @code{nil} $B$K@_Dj$9$l$P!"(Bgnus $B$O0\F0$5$l$?5-;v$N%a%C%;!<%8(B ID $B$r$b5-(B +$BO?$9$k$N$G!"%U%)%m!<%"%C%W5-;v$O?F5-;v$N0\F0@h$HF1$8%0%k!<%W$KF~$k$h$&$K(B +$B$J$j$^$9!#(B @node Group Mail Splitting @subsection $B%0%k!<%W%a!<%kJ,3d(B @@ -11477,8 +11513,10 @@ nnml:mail.others: @var{auto-update} $B$,(B @code{nil} $B$GL5$$$H!"(B @code{gnus-group-split-update} $B$,(B @code{nnmail-pre-get-new-mail-hook} $B$K(B $BDI2C$5$l!"FsEY$H(B @code{nnmail-split-fancy} $B$N99?7$r?4G[$9$kI,MW$O$"$j$^(B -$B$;$s!#(B@var{catch-all} $B$r>JN,$7$J$$>l9g$O(B ($B$=$l$O%*%W%7%g%s$G(B nil $B$HF1$8(B)$B!"(B -@code{gnus-group-split-default-catch-all-group} $B$O$=$NCM$K@_Dj$5$l$^$9!#(B +$B$;$s!#(B@var{catch-all} $B$r>JN,$7$J$$>l9g$O(B ($B$=$l$O%*%W%7%g%s(B +$B$G(B @code{nil} $B$HEy(B +$B2A(B)$B!"(B@code{gnus-group-split-default-catch-all-group} $B$O$=$NCM$K@_Dj$5$l(B +$B$^$9!#(B @vindex gnus-group-split-updated-hook @code{nnmail-split-fancy} $B$,(B @code{gnus-group-split-update} $B$G@_Dj$5$l$?(B @@ -12341,7 +12379,7 @@ Gnus $B$O$3$l$i$N%=!<%9$X$N3&LL$rDs6!$9$k%P%C%/%(%s%I72$r>/$7Hw$($D$D$"$j(B @cindex Slashdot @cindex nnslashdot -Slashdot (@file{http://slashdot.org/}) $B$O?M5$$N$"$k%K%e!<%9%5%$%H$G!"%K%e!<(B +Slashdot (@uref{http://slashdot.org/}) $B$O?M5$$N$"$k%K%e!<%9%5%$%H$G!"%K%e!<(B $B%95-;v$N8e$K3hH/$J5DO@$,$J$5$l$F$$$^$9!#(B@code{nnslashdot} $B$G$OJXMx$JJ}K!(B $B$G$3$N2q5D<<$rFI$`$3$H$,$G$-$^$9!#(B @@ -12425,7 +12463,7 @@ Slashdot (@file{http://slashdot.org/}) $B$O?M5$$N$"$k%K%e!<%9%5%$%H$G!"%K%e!<( @cindex nnultimate @cindex Ultimate Bulletin Board -Ultimate Bulletin Board (@file{http://www.ultimatebb.com/}) $B$O$*$=$i$/0l(B +Ultimate Bulletin Board (@uref{http://www.ultimatebb.com/}) $B$O$*$=$i$/0l(B $BHVNI$/;H$o$l$F$$$k%&%'%V7G<(HD%7%9%F%`$G$7$g$&!#$H$F$b@0A3$H$7$FNI$$3&LL(B $B$G!"(Bgnus $B$,%0%k!<%W$r:G?7$N>uBV$KJ]$C$F$*$/$?$a$K>pJs$rF@$k$3$H$,2DG=$G(B $B$9!#(B @@ -12453,7 +12491,7 @@ http://www.tcj.com/messboard.ubbcgi/ RET}$B!#(B($B6=L#$N$"$k2q5D<<(B @cindex Web Archive $B%a!<%j%s%0%j%9%H$NCf$K$ONc$($P!"(B -@file{http://www.egroups.com/} $B$d(B @file{http://www.mail-archive.com/} $B$N(B +@uref{http://www.egroups.com/} $B$d(B @uref{http://www.mail-archive.com/} $B$N(B $B$h$&$K%&%'%V%5!<%P!<$K$7$+%"!<%+%$%V$,L5$$$b$N$b$"$j$^$9!#$H$F$b@0A3$H$7(B $B$FNI$$3&LL$G!"(Bgnus $B$,%0%k!<%W$r:G?7$N>uBV$KJ]$C$F$*$/$?$a$K>pJs$rF@$k$3(B $B$H$,2DG=$G$9!#(B @@ -13351,7 +13389,7 @@ nnimap $B$O(B @samp{imtest} $B%P!<%8%g%s(B 1.5.x $B$H(B 1.6.x $B$NN>J}$r% $B$r4^$_$^$9!#(B @vindex imap-ssl-program -SSL $B@\B3$N$?$a$N(B OpenSSL $B%W%m%0%i%`$O(B @file{http://www.openssl.org/} $B$+(B +SSL $B@\B3$N$?$a$N(B OpenSSL $B%W%m%0%i%`$O(B @uref{http://www.openssl.org/} $B$+(B $B$iF~l9g$K(B $B$O!"(B@code{MIEE} $B$N@_Dj$O$$$C$5$$$7$J$/$F$b$+$^$$$^$;$s!#(B @@ -16007,7 +16045,7 @@ GNUS $B>C5n%U%!%$%k$rJT=8$9$k$?$a$NFs$D$N35N,%P%C%U%!4X?t$,$"$j$^$9!#(B $B>C5n%U%!%$%k$+$i%9%3%"%U%!%$%k$X$NJQ49%Q%C%1!<%8$O!"I8=`$G$O(Bgnus $B$K$O4^(B $B$^$l$^$;$s!#(B -@file{http://www.stud.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el} $B$+(B +@uref{http://www.stud.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el} $B$+(B $B$iF~C5n%U%!%$%k$,Hs>o$KJ#;($J$b$N$G$"$l$P(B --- $B$=$l(B @@ -16044,7 +16082,7 @@ GoupLens $B$O!"KhF|:n@.$5$l$kB?$/$NNL$N%K%e!<%95-;v$+$i$N(B GroupLens $B$r;H$&$?$a$K$O!"%m!<%+%k$N(B Better Bit Berau (BBB) $B$KI.(B $BL>(B (pseudonym) $B$rEPO?$7$J$1$l$P$J$j$^$;$s!#(B -@samp{http://www.cs.umn.edu/Research/GroupLens/bbb.html} $B$,8=:_!"$A$^$?(B +@uref{http://www.cs.umn.edu/Research/GroupLens/bbb.html} $B$,8=:_!"$A$^$?(B $B$KB8:_$9$kM#0l$N(B better bit $B$G$9!#(B $BEPO?$7$?8e$G!"$$$/$D$+$NJQ?t$r@_Dj$9$kI,MW$,$"$j$^$9!#(B @@ -17606,13 +17644,13 @@ Picon $B$H$O$J$s$G$7$g$&(B? Picons $B%&%'%V%5%$%H$+$iD>@\0zMQ$7$^$7$g$&!#(B @vindex gnus-picons-piconsearch-url $B$"$J$?$,%$%s%?!<%M%C%H$X>o;~@\B3$7$F$$$k$N$J$i$P!"(B @code{gnus-picons-piconsearch-url} $B$KJ8;z(B -$BNs(B @file{http://www.cs.indiana.edu/picons/search.html} $B$r@_Dj$9$k$3$H$G!"(B +$BNs(B @uref{http://www.cs.indiana.edu/picons/search.html} $B$r@_Dj$9$k$3$H$G!"(B Steve Kinzler $B$N(B picon $B8!:w%(%s%8%s$r;H$&$3$H$,$G$-$^$9!#(B @vindex gnus-picons-database $B$=$&$G$J$1$l$P!"H`$N%G!<%?%Y!<%9$rl=j$K%$(B $B%s%9%H!<%k$7$F$"$k$b$N$H4|BT$7$^$9!#(B @@ -17682,7 +17720,7 @@ picon $B%G!<%?%Y!<%9$N>l=j!#(B@file{news}, @file{domains}, @file{users} ($B$J @item gnus-picons-piconsearch-url @vindex gnus-picons-piconsearch-url Web $B>e$N(B picon $B8!:w%(%s%8%s$N(B URL$B!#8=:_CN$i$l$F$$$kM#0l$N%(%s%8%s(B -$B$O(B @file{http://www.cs.indiana.edu:800/piconsearch} $B$G$9!#%M%C%H%o!<%/CY(B +$B$O(B @uref{http://www.cs.indiana.edu:800/piconsearch} $B$G$9!#%M%C%H%o!<%/CY(B $B1d$r2sHr$9$k$?$a$K(B icon $B$O%P%C%/%0%i%&%s%I$Gp$r$$$&J}$,NI$$$H;W$&$+(B $B$b$7$l$^$;$s!#$3$l(B -$B$O(B @file{} $B$+(B +$B$O(B @* @uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html} $B$+(B $B$i!VL5NA$G!WMxMQ$G$-$^$9!#$[$H$s$I$N(B spam $B%a!<%k$O<+F0E*$KAw$i$l$F$$$k$N(B $B$G!"$A$g$C$H$@$11'Ch$N%P%i%s%9$,$H$l$k$+$b$7$l$^$;$s!#(B @@ -18250,7 +18288,7 @@ but at the common table.@* $B$?!#(B $B$3$NL5Ni$r9T$C$??MJ*$rD4$Y$F$_$?$$$N$J$i!"$"$J$?$N(B ($B$/$=(B!) $B%&%'%V%V%i%&(B -$B%6!<$r(B @file{http://quimby.gnus.org/~larsi/} $B$K8~$1$k;v$,$G$-$^$9!#(B +$B%6!<$r(B @uref{http://quimby.gnus.org/} $B$K8~$1$k;v$,$G$-$^$9!#(B $B$3$l$O?7$7$/$F?h$JHG$N(B gnus $B$NBh0lG[I[>l=j$G!"(BNewsrc $B$r$V$C2u$7$F?M!9$r(B $B7cE\$5$l$k%5%$%H$H$7$FCN$i$l$F$$$^$9!#(B @@ -19534,7 +19572,7 @@ latest version of gnus or some explanation on where to find it. A way to continue editing the latest Message composition. @item - http://www.sonicnet.com/feature/ari3/ +@uref{http://www.sonicnet.com/feature/ari3/} @item facep is not declared. @@ -19800,9 +19838,9 @@ Message-ID, delete the "original". when replying to several messages at once, put the "other" message-ids into a See-Also header. @item - support setext: URL:http://www.bsdi.com/setext/ + support setext: @uref{http://www.bsdi.com/setext/} @item - support ProleText: + support ProleText: @uref{http://proletext.clari.net/prole/proletext.html} @item when browsing a foreign server, the groups that are already subscribed should be listed as such and not as "K". @@ -20116,7 +20154,7 @@ problem is that archives are spread all over the net, unlike FAQs. What would be best I suppose is to find the one closest to your site. In any case, there is a list of general news group archives at @* -ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html +@uref{ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html} @item @example @@ -20402,7 +20440,7 @@ in the summary buffer. version branches as threading, checkin date as the date, etc. @item - http://www.dejanews.com/forms/dnsetfilter_exp.html ? +@uref{http://www.dejanews.com/forms/dnsetfilter_exp.html}? This filter allows one to construct advance queries on the Dejanews database such as specifying start and end dates, subject, author, and/or newsgroup name. @@ -20496,7 +20534,7 @@ Mac, MS (etc) characters into ISO 8859-1. @item @example (add-hook 'gnus-exit-query-functions -'(lambda () + (lambda () (if (and (file-exists-p nnmail-spool-file) (> (nnheader-file-size nnmail-spool-file) 0)) (yes-or-no-p "New mail has arrived. Quit Gnus anyways? ") @@ -22759,3 +22797,8 @@ Gnus $B$O(B Emacs Lisp $B$K$h$C$F=q$+$l$F$$$F!"$=$l$O$?$/$5$s$NC`}. +at @* @uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}. Since most e-mail spam is sent automatically, this may reconcile the cosmic balance somewhat. @@ -18842,7 +18859,7 @@ but at the common table.@* If you want to investigate the person responsible for this outrage, you can point your (feh!) web browser to -@file{http://quimby.gnus.org/~larsi/}. This is also the primary +@uref{http://quimby.gnus.org/}. This is also the primary distribution point for the new and spiffy versions of Gnus, and is known as The Site That Destroys Newsrcs And Drives People Mad. @@ -19130,7 +19147,7 @@ importantly, talking about new experimental features that have been introduced may confuse casual users. New features are frequently introduced, fiddled with, and judged to be found wanting, and then either discarded or totally rewritten. People reading the mailing list -usually keep up with these rapid changes, whille people on the newsgroup +usually keep up with these rapid changes, while people on the newsgroup can't be assumed to do so. @@ -20138,7 +20155,7 @@ latest version of gnus or some explanation on where to find it. A way to continue editing the latest Message composition. @item - http://www.sonicnet.com/feature/ari3/ +@uref{http://www.sonicnet.com/feature/ari3/} @item facep is not declared. @@ -20404,9 +20421,9 @@ Message-ID, delete the "original". when replying to several messages at once, put the "other" message-ids into a See-Also header. @item - support setext: URL:http://www.bsdi.com/setext/ + support setext: @uref{http://www.bsdi.com/setext/} @item - support ProleText: + support ProleText: @uref{http://proletext.clari.net/prole/proletext.html} @item when browsing a foreign server, the groups that are already subscribed should be listed as such and not as "K". @@ -20722,7 +20739,7 @@ problem is that archives are spread all over the net, unlike FAQs. What would be best I suppose is to find the one closest to your site. In any case, there is a list of general news group archives at @* -ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html +@uref{ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html} @@ -21019,7 +21036,7 @@ in the summary buffer. version branches as threading, checkin date as the date, etc. @item - http://www.dejanews.com/forms/dnsetfilter_exp.html ? +@uref{http://www.dejanews.com/forms/dnsetfilter_exp.html}? This filter allows one to construct advance queries on the Dejanews database such as specifying start and end dates, subject, author, and/or newsgroup name. @@ -21113,7 +21130,7 @@ Mac, MS (etc) characters into ISO 8859-1. @item @example (add-hook 'gnus-exit-query-functions -'(lambda () + (lambda () (if (and (file-exists-p nnmail-spool-file) (> (nnheader-file-size nnmail-spool-file) 0)) (yes-or-no-p "New mail has arrived. Quit Gnus anyways? ") @@ -23461,3 +23478,8 @@ former). The manual is unambiguous, but it can be confusing. @end iftex @c End: +% LocalWords: Backend BNF mucho Backends backends detailmenu cindex kindex kbd +% LocalWords: findex Gnusae vindex dfn dfn samp nntp setq nnspool nntpserver +% LocalWords: nnmbox backend newusers Blllrph NEWGROUPS dingnusdingnusdingnus +% LocalWords: pre fab rec comp nnslashdot regex ga ga sci nnml nnbabyl nnmh +% LocalWords: nnfolder emph looong eld newsreaders defun init elc pxref diff --git a/texi/message-ja.texi b/texi/message-ja.texi index 4a725cd..56c807d 100644 --- a/texi/message-ja.texi +++ b/texi/message-ja.texi @@ -5,7 +5,7 @@ @synindex fn cp @synindex vr cp @synindex pg cp -@dircategory Editors +@dircategory Emacs @direntry * Message-ja: (message-ja). Mail and news composition mode that goes with Gnus (Japanese). @@ -22,7 +22,7 @@ This file documents Message, the Emacs message composition mode. $B$3$N%U%!%$%k$O(B Emacs $B$N%a%C%;!<%8:n@.%b!<%I$G$"$k(B Message $B$K4X$9$k@bL@J8(B $B=q$G$9!#(B -Copyright (C) 1996,97,98,99,2000 Free Software Foundation, Inc. +Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -69,7 +69,8 @@ license to the document, as described in section 6 of the license. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1996,97,98,99,2000 Free Software Foundation, Inc. +Copyright @copyright{} 1996, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -116,41 +117,39 @@ Gnus $B$NA4$F$N%a%C%;!<%8$N:n@.(B ($B%a!<%k$H%K%e!<%9$NN>J}(B) $B$O%a%C%;!< $B%I%P%C%U%!$G9T$o$l$^$9!#(B @menu -* Interface:: $B%a%C%;!<%8%P%C%U%!$r@_Dj$9$k!#(B -* Commands:: $B%a%C%;!<%8%b!<%I%P%C%U%!$GAw!"C$7(B -- $B$=$N%W%m%0%i%`(B ($B$b$7$/$O?M(B) $B$O%a%C%;!<%8$,$"$k%P%C(B -$B%U%!$K%]%$%s%H$rF~$l$FI,MW$JL?Na$r8F$S=P$9$@$1$GNI$$$Y$-$G$9!#$=$&$9$k$H(B -@code{Message} $B$O?7$7$$(B @code{message} $B%b!<%I%P%C%U%!$rE,@Z$J%X%C%@!<$r(B -$BF~$l$F:n$j=P$7!"MxMQC$9!#(B -* Superseding:: $B%a%C%;!<%8$NBeBX!#(B -* Forwarding:: $B%a%C%;!<%8$r%K%e!<%9$b$7$/$O%a!<%k$GE>Aw$9$k!#(B -* Resending:: $B%a!<%k%a%C%;!<%8$r:FAw$9$k!#(B -* Bouncing:: $B%a!<%k%a%C%;!<%8$N<:GT$r:FAw$9$k!#(B +* New News Message:: $BA4$/?7$7$$%K%e!<%9%a%C%;!<%8$rJT=8$9$k(B +* Reply:: $B%a!<%k$GJVEz$9$k(B +* Wide Reply:: $BA4$F$N?M$K%a!<%k$G1~Ez$9$k(B +* Followup:: $B%K%e!<%9$G%U%)%m!<%"%C%W$9$k(B +* Canceling News:: $B?7$7$$5-;v$rC$9(B +* Superseding:: $B%a%C%;!<%8$NBeBX(B +* Forwarding:: $B%a%C%;!<%8$r%K%e!<%9$b$7$/$O%a!<%k$GE>Aw$9$k(B +* Resending:: $B%a!<%k%a%C%;!<%8$r:FAw$9$k(B +* Bouncing:: $B%a!<%k%a%C%;!<%8$N<:GT$r:FAw$9$k(B @end menu - @node New Mail Message @section $B?7$7$$%a!<%k%a%C%;!<%8(B @@ -158,9 +157,8 @@ Gnus $B$NA4$F$N%a%C%;!<%8$N:n@.(B ($B%a!<%k$H%K%e!<%9$NN>J}(B) $B$O%a%C%;!< @code{message-mail} $BL?Na$O?7$7$$%P%C%U%!$r:n$jI=<($7$^$9!#(B 2$B$D$NA*Br<+M3$J0z?t$,J}(B) $B$O%a%C%;!< @findex message-news $BL?Na(B @code{message-news} $B$O?7$7$$%a%C%;!<%8%P%C%U%!$r:n$j!"I=<($7$^$9!#(B -$B$3$N4X?t$O(B2$B$D$NA*Br<+M3$J0z?t$rl9g$O!"$=$l$>$l$NMWAG$O(B -cons $B%;%k$G$"$k$Y$-$G!"$=$l$N(B car $B$O%X%C%@!<$NL>A0(B ($BNc(B @code{Cc}) $B$G!"(B +$B$3$N4X?t$O%j%9%H$rJV$9;v$b$G$-$^$9!#$=$N$h$&$J>l9g$O!"$=$l$>$l$NMWAG(B +$B$O(B cons $B%;%k$G$"$k$Y$-$G!"$=$l$N(B car $B$O%X%C%@!<$NL>A0(B ($BNc(B @code{Cc}) $B$G!"(B cdr $B$,%X%C%@!<$NCM(B ($BNc(B @samp{larsi@@ifi.uio.no}) $B$G$"$k$Y$-$G$9!#A4$F$N(B $B$3$l$i$N%X%C%@!<$O=P$F9T$/%a!<%k$N%X%C%@!<$KA^F~$5$l$^$9!#(B - @node Wide Reply @section $B9-$/JVEz(B @@ -227,12 +223,10 @@ Message $B$OJVEz$,2?=h$K9T$/$+$r7hDj$9$k$?$a$KIaDL$NJ}K!$r;H$$$^$9$,!"(B $BJQ99$9$k;v$,$G$-$^$9!#$=$l$O(B @code{message-reply-to-function} $B$HF1$8$h$&(B $B$K;H$o$l$^$9(B (@pxref{Reply})$B!#(B - @findex message-dont-reply-to-names -$B@55,I=8=(B @code{rmail-dont-reply-to-names} $B$K9gCW$9$k%"%I%l%9$O(B @code{Cc} +$B@55,I=8=(B @code{rmail-dont-reply-to-names} $B$K9gCW$9$k%"%I%l%9$O(B @code{Cc} $B%X%C%@!<$+$iC$9(B @findex message-cancel-news $BL?Na(B @code{message-cancel-news} $B$O8=:_$N%P%C%U%!$N5-;v$rC$7$^$9!#(B - @node Superseding @section $BBeBX(B @@ -270,11 +262,10 @@ Message $B$O%U%)%m!<%"%C%W$,$I$3$K9T$/$+$rIaDL$NJ}K!$r;H$C$F7hDj$7$^$9$,!"(B @vindex message-ignored-supersede-headers @code{message-ignored-supersedes-headers} $B$K9gCW$9$k%X%C%@!<$O?7$7$$%a%C(B -$B%;!<%8%P%C%U%!$r:n$j>e$2$kA0$Ke$2$kA0$KAw(B @@ -291,7 +282,6 @@ Message $B$O%U%)%m!<%"%C%W$,$I$3$K9T$/$+$rIaDL$NJ}K!$r;H$C$F7hDj$7$^$9$,!"(B @end table - @node Resending @section $B:FAw(B @@ -303,7 +293,6 @@ Message $B$O%U%)%m!<%"%C%W$,$I$3$K9T$/$+$rIaDL$NJ}K!$r;H$C$F7hDj$7$^$9$,!"(B $B@55,I=8=(B @code{message-ignored-resent-headers} $B$K9gCW$9$k%X%C%@!<$O%a%C(B $B%;!<%8$rAw$kA0$Ke$2$kA0$Ke$2$kA0$K$r;H$&$+!#(B +* Various Commands:: $B$$$m$$$m$J;v(B +* Sending:: $B$r;H$&$+(B +* Spelling:: Emacs $B$K%9%Z%k%A%'%C%/$5$;$k(B @end menu +@node Buffer Entry +@section $B%P%C%U%!$KF~$k(B +@cindex undo +@kindex C-_ + +$B2?$+B>$N%a%C%;!<%8$KJVEz$9$k$H$-!"$"$J$?$O$?$$$F$$%a%C%;!<%8%P%C%U%!$G=q(B +$B$->e$2$^$9$h$M!#(BMessage $B$OB?$/$N0zMQJ8$r07$$!"=pL>$N:o=|$dJ8>O$N@07A$r$7(B +$B$?$j!"$"$k$$$O$"$?$J$,;H$C$F$$$k@_Dj$K0MB8$7$F$$$^$9!#(BMessage $B$OIaDL$O$&(B +$B$^$/F0:n$7$^$9$,!"$H$-$I$-4V0c$($b$7$^$9!#$=$l$i$N4V0c$$$r%f!<%6$,@5$9$3(B +$B$H$,$G$-$k$h$&$K!"(BMessage $B$O$=$l$>$lo(B @kbd{C-_}) $B$r2!$;$P!"L$(B +$BJT=8$N%a%C%;!<%8$KLa$9$3$H$,$G$-$^$9!#(B @node Header Commands @section $B%X%C%@!O$r$R$I$/$0$A$c$0$A$c$K$7$F$7$^$&$+$b$7$l$^$;$s!#$=(B -$B$l$,0BA4$G$"$k$HCN$k$H!"$9$0$K?M?4CO$D$/$G$7$g$&$,!#$H$K$+$/!"(B@kbd{C-x -u} (@code{undo}) $B$,;HMQ2DG=$G!"Bg>fIW$G$"$k$H8@$&;v$r3P$($F$*$$$F2<$5$$!#(B - +$BE=$jIU$1$i$l$?%a%C%;!<%8$r@^$jJV$7$^(B +$B$9(B (@code{message-fill-yanked-message})$B!#7Y9p(B: $B$b$7!"0zMQ$N=,47$,JQ$G$"(B +$B$k$J$i!"E=$jIU$1$i$l$?J8>O$r$R$I$/$0$A$c$0$A$c$K$7$F$7$^$&$+$b$7$l$^$;$s!#(B +$B$=$l$,0BA4$G$"$k$HCN$k$H!"$9$0$K?M?4CO$D$/$G$7$g$&$,!#$H$K$+$/!"(B +@kbd{C-x u} (@code{undo}) $B$,;HMQ2DG=$G!"Bg>fIW$G$"$k$H8@$&;v$r3P$($F$*$$(B +$B$F2<$5$$!#(B @item C-c C-w @kindex C-c C-w @@ -474,8 +474,9 @@ u} (@code{undo}) $B$,;HMQ2DG=$G!"Bg>fIW$G$"$k$H8@$&;v$r3P$($F$*$$$F2<$5$$!#(B @item message-citation-line-function @vindex message-citation-line-function -$B0zMQ9T$rA^F~$9$k$?$a$K8F$P$l$k4X?t$G$9!#=i4|CM$O(B -@code{message-insert-citation-line} $B$G!"$3$l$O0zMQ9T$r writes: @@ -488,26 +489,26 @@ Hallvard B Furuseth writes: @cindex yanking @cindex quoting $B$"$J$?$,5-;v$KJVEz$+%U%)%m!<%"%C%W$r$7$F$$$k$H$-$O!"IaDL$O$"$J$?$,1~Ez$7(B -$B$F$$$k?M$N$b$N$K0zMQId$rIU$1$?$$$G$7$g$&!#0zMQJ8$NA^F~$O(B @dfn{$BE=$jIU$1(B} -$B$K$h$C$F$J$5$l!"$=$l$>$l$NE=$jIU$1$i$l$?0zMQ9T$O$=$NA0$K(B -@code{message-yank-prefix} $B$rIU$1$i$l$^$9!#=i4|CM$O(B @samp{> } $B$G$9!#(B +$B$F$$$k?M$N$b$N$K0zMQId$rIU$1$?$$$G$7$g$&!#0zMQJ8$NA^F~$O(B @dfn{$BE=$jIU$1(B} +$B$K$h$C$F$J$5$l!"$=$l$>$l$NE=$jIU$1$i$l$?0zMQ9T$O$=$NA0(B +$B$K(B @code{message-yank-prefix} $B$rIU$1$i$l$^$9!#=i4|CM$O(B @samp{> } $B$G$9!#(B @item message-yank-add-new-references @vindex message-yank-add-new-references @cindex yanking -$B%3%^%s%I(B @code{message-yank-original} $B$rBPOCE*$K;H$C$?$H$-$K!"$3$NCM$,(B -@code{nil} $B$G$J$+$C$?$i!"(BReferences $B%U%#!<%k%I$K(B ID $B$,DI2C$5$l$^$9!#$b(B -$B$7CM$,%7%s%\%k(B @code{message-id-only} $B$@$C$?$i(B Message-ID $B%U%#!<%k%I$N(B -ID $B$@$1$,;H$o$l$^$9$,!"$=$&$G$J$1$l$P(B References$B!"(BIn-Reply-To $B$*$h$S(B -Message-ID $B%U%#!<%k%I$+$iCj=P$5$l$?(B ID $B$,;H$o$l$^$9!#(B +$B%3%^%s%I(B @code{message-yank-original} $B$rBPOCE*$K;H$C$?$H$-$K!"$3$NCM(B +$B$,(B @code{nil} $B$G$J$+$C$?$i!"(BReferences $B%U%#!<%k%I$K(B ID $B$,DI2C$5$l$^$9!#(B +$B$b$7CM$,%7%s%\%k(B @code{message-id-only} $B$@$C$?$i(B Message-ID $B%U%#!<%k%I(B +$B$N(B ID $B$@$1$,;H$o$l$^$9$,!"$=$&$G$J$1$l$P(B References$B!"(BIn-Reply-To $B$*$h(B +$B$S(B Message-ID $B%U%#!<%k%I$+$iCj=P$5$l$?(B ID $B$,;H$o$l$^$9!#(B @item message-list-references-add-position @vindex message-list-references-add-position @cindex yanking $B%3%^%s%I(B @code{message-yank-original} $B$rBPOCE*$K;H$C$?$H$-$K!"$3$NCM$,(B -$B@5$N@0?t$@$C$?$i!"$9$G$K$"$k(B References $B%U%#!<%k%I$N:G8e$+$i$=$N8D?t$N(B -ID $B$@$1N%$l$?>l=j$K?7$7$$(B ID $B$,A^F~$5$l$^$9!#$=$l0J30$N>l9g$O:G8e$KA^F~(B -$B$5$l$^$9!#(B +$B@5$N@0?t$@$C$?$i!"$9$G$K$"$k(B References $B%U%#!<%k%I$N:G8e$+$i$=$N8D?t(B +$B$N(B ID $B$@$1N%$l$?>l=j$K?7$7$$(B ID $B$,A^F~$5$l$^$9!#$=$l0J30$N>l9g$O:G8e$KA^(B +$BF~$5$l$^$9!#(B @item message-indentation-spaces @vindex message-indentation-spaces @@ -522,16 +523,16 @@ ID $B$@$1N%$l$?>l=j$K?7$7$$(B ID $B$,A^F~$5$l$^$9!#$=$l0J30$N>l9g$O:G8e$KA^F~ $BK\5-;v$r0zMQ$9$k$?$a$N4X?t$G$9!#=i4|CM$O(B @code{message-cite-original} $B$G!"(B $B$3$l$OC1=c$K$b$H$N%a%C%;!<%8$rA^F~$7!"$=$l$>$l$N9T$NF,$K(B @samp{> } $B$r$/$C(B $B$D$1$^$9!#(B@code{message-cite-original-without-signature} $B$OF1MM$N;v$r$7(B -$B$^$9$,!"=pL>$O>J$-$^$9!#(BSupercite $B$r;H$&$?$a$K!"$=$l$r(B -@code{sc-cite-original} $B$K@_Dj$9$k;v$b$G$-$^$9!#(B +$B$^$9$,!"=pL>$O>J$-$^$9!#(BSupercite $B$r;H$&$?$a$K!"$=$l(B +$B$r(B @code{sc-cite-original} $B$K@_Dj$9$k;v$b$G$-$^$9!#(B @item message-indent-citation-function @vindex message-indent-citation-function $B$A$g$&$I%a!<%k%P%C%U%!$KA^F~$5$l$?0zMQJ8$r=$@5$9$k$?$a$N4X?t$G$9!#$3$l$O(B -$B4X?t$N%j%9%H$G$"$k;v$b$G$-$^$9!#$=$l$>$l$N4X?t$O(B @code{(point)} $B$H(B -@code{(mark t)} $B$N4V$G0zMQ$rH/8+$9$k;v$,$G$-$^$9!#$=$7$F!"$=$l$>$l$N4X?t(B -$B$O0zMQJ8$,=$@5$5$l$k$H!"$=$N<~$j$K%]%$%s%H$H%^!<%/$r;D$5$J$1$l$P$J$j$^$;(B -$B$s!#(B +$B4X?t$N%j%9%H$G$"$k;v$b$G$-$^$9!#$=$l$>$l$N4X?t(B +$B$O(B @code{(point)} $B$H(B @code{(mark t)} $B$N4V$G0zMQ$rH/8+$9$k;v$,$G$-$^$9!#(B +$B$=$7$F!"$=$l$>$l$N4X?t$O0zMQJ8$,=$@5$5$l$k$H!"$=$N<~$j$K%]%$%s%H$H%^!<%/(B +$B$r;D$5$J$1$l$P$J$j$^$;$s!#(B @item message-signature @vindex message-signature @@ -543,8 +544,8 @@ ID $B$@$1N%$l$?>l=j$K?7$7$$(B ID $B$,A^F~$5$l$^$9!#$=$l0J30$N>l9g$O:G8e$KA^F~ @item messsage-signature-file @vindex message-signature-file -$B%P%C%U%!$N:G8e$KA^F~$5$l$k=pL>$NF~$C$F$$$k%U%!%$%k$G$9!#=i4|CM$O(B -@samp{~/.signature} $B$G$9!#(B +$B%P%C%U%!$N:G8e$KA^F~$5$l$k=pL>$NF~$C$F$$$k%U%!%$%k$G$9!#=i4|CM(B +$B$O(B @samp{~/.signature} $B$G$9!#(B @end table @@ -717,10 +718,10 @@ RFC1036bis $B$O!"=pL>$O$=$NA0$K(B @samp{-- } $B$N(B3$BJ8;z$@$1$N9T$,$"$k$Y$ @item C-c C-r @kindex C-c C-r @findex message-caesar-buffer-body -$B8=:_$N%a%C%;!<%8$r%7!<%6!(B rot13) $B$7$^$9(B -(@code{message-caesar-buffer-body})$B!#$b$7HO0O8BDj$,$5$;$k(B -$B$+$r;XDj$7$^$9!#=i4|CM$O(B 13 $B$G$9!#(B +$B8=:_$N%a%C%;!<%8$r%7!<%6!(B rot13) $B$7$^(B +$B$9(B (@code{message-caesar-buffer-body})$B!#$b$7HO0O8BDj$,$5(B +$B$;$k$+$r;XDj$7$^$9!#=i4|CM$O(B 13 $B$G$9!#(B @item C-c C-e @kindex C-c C-e @@ -732,14 +733,14 @@ RFC1036bis $B$O!"=pL>$O$=$NA0$K(B @samp{-- } $B$N(B3$BJ8;z$@$1$N9T$,$"$k$Y$ @item C-c C-z @kindex C-c C-x @findex message-kill-to-signature -$B=pL>$^$G$+!"$=$l$,L5$1$l$P5-;v$N:G8e$^$G$NA4$F$NJ8$r@Z$j$^$9(B -(@code{message-kill-to-signature})$B!#(B +$B=pL>$^$G$+!"$=$l$,L5$1$l$P5-;v$N:G8e$^$G$NA4$F$NJ8$r@Z$j$^(B +$B$9(B (@code{message-kill-to-signature})$B!#(B @item C-c C-v @kindex C-c C-v @findex message-delete-not-region -$B%a%C%;!<%8$NK\BN$N%j!<%8%g%s$N30$NA4$F$NJ8$r>C5n$7$^$9(B -(@code{message-delete-not-region})$B!#(B +$B%a%C%;!<%8$NK\BN$N%j!<%8%g%s$N30$NA4$F$NJ8$r>C5n$7$^(B +$B$9(B (@code{message-delete-not-region})$B!#(B @item M-RET @kindex M-RET @@ -769,16 +770,16 @@ RFC1036bis $B$O!"=pL>$O$=$NA0$K(B @samp{-- } $B$N(B3$BJ8;z$@$1$N9T$,$"$k$Y$ @item C-c C-t @kindex C-c C-t @findex message-insert-to -$B%U%)%m!<%"%C%W$7$h$&$H$9$k%a%C%;!<%8$N(B @code{Reply-To} $B$b$7$/$O(B -@code{From} $B%X%C%@!<$r4^$`(B @code{To} $B%X%C%@!<$rA^F~$7$^$9(B -(@code{message-insert-to})$B!#(B +$B%U%)%m!<%"%C%W$7$h$&$H$9$k%a%C%;!<%8$N(B @code{Reply-To} $B$b$7$/(B +$B$O(B @code{From} $B%X%C%@!<$r4^$`(B @code{To} $B%X%C%@!<$rA^F~$7$^(B +$B$9(B (@code{message-insert-to})$B!#(B @item C-c C-n @kindex C-c C-n @findex message-insert-newsgroups $BJVEz$7$F$$$k5-;v$N(B @code{Followup-To} $B$b$7$/$O!"(B@code{Nesgroups} $B%X%C%@!<(B -$B$rH?1G$7$?(B @code{Newsgroups} $B%X%C%@!<$rA^F~$7$^$9(B -(@code{message-insert-newsgroups})$B!#(B +$B$rH?1G$7$?(B @code{Newsgroups} $B%X%C%@!<$rA^F~$7$^(B +$B$9(B (@code{message-insert-newsgroups})$B!#(B @item C-c M-r @kindex C-c M-r @@ -788,7 +789,6 @@ RFC1036bis $B$O!"=pL>$O$=$NA0$K(B @samp{-- } $B$N(B3$BJ8;z$@$1$N9T$,$"$k$Y$ @end table - @node Sending @section $BAw?.(B @@ -796,8 +796,8 @@ RFC1036bis $B$O!"=pL>$O$=$NA0$K(B @samp{-- } $B$N(B3$BJ8;z$@$1$N9T$,$"$k$Y$ @item C-c C-c @kindex C-c C-c @findex message-send-and-exit -$B%a%C%;!<%8$rAw?.$7!"8=:_$N%P%C%U%!$rKd$a$^$9(B -(@code{message-send-and-exit})$B!#(B +$B%a%C%;!<%8$rAw?.$7!"8=:_$N%P%C%U%!$rKd$a$^(B +$B$9(B (@code{message-send-and-exit})$B!#(B @item C-c C-s @kindex C-c C-s @@ -816,8 +816,6 @@ RFC1036bis $B$O!"=pL>$O$=$NA0$K(B @samp{-- } $B$N(B3$BJ8;z$@$1$N9T$,$"$k$Y$ @end table - - @node Mail Aliases @section $B%a!<%kJLL>(B @cindex mail aliases @@ -844,24 +842,66 @@ alias ding "ding@@ifi.uio.no (ding mailing list)" $B%a%C%;!<%8$rAw$k$H$-$K$O?-D%$O9T$o$l$^$;$s(B---$BA4$F$N?-D%$OL@<(E*$K9T$o$l(B $B$J$/$F$O$J$j$^$;$s!#(B +@node Spelling +@section Emacs $B$K%9%Z%k%A%'%C%/$5$;$k(B +@cindex spelling +@findex ispell-message +Emacs $B$G%9%Z%k%A%'%C%/$9$k$?$a$KIa5Z$7$F$$$kFs$D$NJ}K!!"(B +@code{ispell} $B$H(B @code{flyspell} $B$,$"$j$^$9!#(B@code{ispell} $B$NJ}$O@N$+$i(B +$B$"$C$F!"$?$V$s$h$j0lHLE*$J%Q%C%1!<%8$G$9!#$"$J$?$ONc$K$h$C$F:G=i$K%a%C%;!<(B +$B%8$r=q$$$F$+$iA4BN$r(B @code{ispell} $B$KDL$7!"$9$Y$F$N=q$-B;$8$r=$@5$7$^$9!#(B +$B%a%C%;!<%8$rAw?.$9$k$H$-$K$=$l$r<+F0E*$K9T$J$&$?$a$K$O!"(B.emacs $B%U%!%$%k(B +$B$K0J2<$N$h$&$J$b$N$rF~$l$F2<$5$$!#(B + +@lisp +(add-hook 'message-send-hook 'ispell-message) +@end lisp + +@vindex ispell-message-dictionary-alist +$B$b$7$"$J$?$,0c$&8@8l$G=q$/=,47$J$i$P!"$=$l$OJQ(B +$B?t(B @code{ispell-message-dictionary-alist} $B$G@)8f$G$-$^$9!#(B + +@lisp +(setq ispell-message-dictionary-alist + '(("^Newsgroups:.*\\bde\\." . "deutsch8") + (".*" . "default"))) +@end lisp + +@code{ispell} $B$O%$%s%9%H!<%k$5$l$?(B @samp{ispell} $B%3%^%s%I$K0MB8$7$F$$$^(B +$B$9!#(B + +$B$b$&0lJ}$NIa5Z$7$F$$$kJ}K!$O(B @code{flyspell} $B$r;H$&$3$H$G$9!#$3$N%Q%C%1!<(B +$B%8$O$"$J$?$,=q$$$F$$$k:GCf$K%9%Z%k%A%'%C%/$r9T$J$$!"$$$m$s$JJ}K!$G4V0c$C(B +$B$?%9%Z%k$N8l$r;XE&$7$F$/$l$^$9!#(B + +@code{flyspell} $B$r;H$&$K$O!"0J2<$N$h$&$J$b$N$r(B .emacs $B%U%!%$%k$KF~$l$F2<(B +$B$5$$!#(B + +@lisp +(defun my-message-setup-routine () + (flyspell-mode 1)) +(add-hook 'message-setup-hook 'my-message-setup-routine) +@end lisp + +@code{flyspell} $B$O%$%s%9%H!<%k$5$l$?(B @samp{ispell} $B%3%^%s%I$K0MB8$7$F$$$^(B +$B$9!#(B @node Variables @chapter $BJQ?t(B @menu -* Message Headers:: $B0lHLE*$J%a%C%;!<%8%X%C%@!<$N$h$&$J$b$N!#(B -* Mail Headers:: $B%a!<%k%X%C%@!<$r%+%9%?%^%$%:$9$k!#(B -* Mail Variables:: $BB>$N%a!<%kJQ?t!#(B -* News Headers:: $B%K%e!<%9%X%C%@!<$r%+%9%?%^%$%:$9$k!#(B -* News Variables:: $BB>$N%K%e!<%9JQ?t!#(B -* Various Message Variables:: $BB>$N%a%C%;!<%8JQ?t!#(B -* Sending Variables:: $BAw?.$9$k$?$a$NJQ?t!#(B -* Message Buffers:: Message $B$,$=$N%P%C%U%!$NL>A0$rIU$1$kJ}K!!#(B -* Message Actions:: $B=*N;$9$k$H$-$K$N%a!<%kJQ?t(B +* News Headers:: $B%K%e!<%9%X%C%@!<$r%+%9%?%^%$%:$9$k(B +* News Variables:: $BB>$N%K%e!<%9JQ?t(B +* Various Message Variables:: $BB>$N%a%C%;!<%8JQ?t(B +* Sending Variables:: $BAw?.$9$k$?$a$NJQ?t(B +* Message Buffers:: Message $B$,$=$N%P%C%U%!$NL>A0$rIU$1$kJ}K!(B +* Message Actions:: $B=*N;$9$k$H$-$Ko$K@Q6KE*$G$9!#$=$l$O$N%0%k!<%W$K:F$SEj9F$9$k;v$K7hDj$7$?$N$G!"(B @code{*post-buf*} $B%P%C%U%!$KLa$j!"(B@code{Newsgroups} $B9T$rJT=8$7!":F$SAw$j(B -$B=P$7$?$H$7$^$9!#=i4|@_Dj$G$O!"$3$NJQ?t$OA0$K:n@.$5$l$?8E$$(B -@code{Message-ID} $B$,o$K@Q6KE*$G$9!#$=$l$Ol9g$O$3$NJQ?t$r$3$l$i$N@\F,8l(B -$B$K9g$&$h$&$J@55,I=8=$K@_Dj$9$k$G$7$g$&!#;d<+?H$O!"$=$N$h$&$J5,3J$K=>$o$J(B -$B$$%a!<%k$O$?$@l9g$O$3$NJQ?t$r$3$l$i$N@\F,8l$K9g$&$h$&$J@55,I=8=$K@_Dj$9$k$G$7$g$&!#(B +$B;d<+?H$O!"$=$N$h$&$J5,3J$K=>$o$J$$%a!<%k$O$?$@l9g$O$=$NJ8;zNs$,;H$o$l$^$9(B)$B!"4X?t$G$"$k;v$b$G$-$^$9(B -($B$=$N4X?t$O0z?tL5$7$G8F$P$l!";H$o$l$kJ8;zNs$rJV$9I,MW$,$"$j$^$9(B)$B!#(B +$B$k;v$b$G$-(B ($B$=$N>l9g$O$=$NJ8;zNs$,;H$o$l$^$9(B)$B!"4X?t$G$"$k;v$b$G$-$^(B +$B$9(B ($B$=$N4X?t$O0z?tL5$7$G8F$P$l!";H$o$l$kJ8;zNs$rJV$9I,MW$,$"$j$^$9(B)$B!#(B @item Lines @cindex Lines @@ -1029,10 +1064,11 @@ Lines (optional . X-Mailer))} $B$G$9!#(B @findex system-name @cindex Sun $B$3$NI,MW$J%X%C%@!<$O(B Message $B$K$h$j:n@.$5$l$^$9!#F|IU!";~4V!"MxMQ!"(B -$B%7%9%F%`L>$K4p$E$$$?B>$KL5$$(B ID $B$,:n@.$5$l$^$9!#(BMessage $B$O(B -@code{system-name} $B$r%7%9%F%`L>$r7h$a$k$?$a$K;H$$$^$9!#$b$7$3$l$,(B fully -qualified domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>(B) $B$G$J$$$J$i(B -$B$P!"(BMessage $B$O(B @code{mail-host-address} $B$r(B FQDN $B$H$7$F;H$$$^$9!#(B +$B%7%9%F%`L>$K4p$E$$$?B>$KL5$$(B ID $B$,:n@.$5$l$^$9!#(B +Message $B$O(B @code{system-name} $B$r%7%9%F%`L>$r7h$a$k$?$a$K;H$$$^$9!#$b$7$3(B +$B$l$,(B fully qualified domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%s(B +$BL>(B) $B$G$J$$$J$i(B $B$P!"(BMessage $B$O(B @code{mail-host-address} $B$r(B FQDN $B$H$7$F;H(B +$B$$$^$9!#(B @item X-Newsreader @cindex X-Nesreader @@ -1157,15 +1193,14 @@ qualified domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>(B) $B$G$J$$$J$ @end table - @node News Variables @section $B?7$7$$JQ?t(B @table @code @item message-send-news-function @vindex message-send-news-function -$B8=:_$N%P%C%U%!$r%K%e!<%9$H$7$FAw$k$?$a$K;H$o$l$k4X?t$G$9!#=i4|CM$O(B -@code{mesage-send-news} $B$G$9!#(B +$B8=:_$N%P%C%U%!$r%K%e!<%9$H$7$FAw$k$?$a$K;H$o$l$k4X?t$G$9!#=i4|CM(B +$B$O(B @code{mesage-send-news} $B$G$9!#(B @item message-post-method @vindex message-post-method @@ -1174,7 +1209,6 @@ qualified domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>(B) $B$G$J$$$J$ @end table - @node Various Message Variables @section $B$$$m$$$m$J%a%C%;!<%8JQ?t(B @@ -1185,8 +1219,8 @@ qualified domain name (FQDN) ($B40A4$K>r7o$rK~$?$7$?%I%a%$%sL>(B) $B$G$J$$$J$ @c Symbol naming a @sc{mime} charset. Non-ASCII characters in messages are @c assumed to be encoded using this charset. The default is @code{nil}, @c which means ask the user. (This variable is used only on non-@sc{mule} -@c Emacsen. -@c @xref{Charset Translation, , Charset Translation, emacs-mime, +@c Emacsen. +@c @xref{Charset Translation, , Charset Translation, emacs-mime, @c Emacs MIME Manual}, for details on the @sc{mule}-to-@sc{mime} @c translation process. @c @@ -1201,8 +1235,8 @@ follows this line--} $B$G$9!#(B @item message-directory @vindex message-directory -$BB?$/$N%a!<%k$N$b$N$+$i;H$o$l$k%G%#%l%/%H%j!<$G$9!#=i4|CM$O(B -@file{~/Mail/} $B$G$9!#(B +$BB?$/$N%a!<%k$N$b$N$+$i;H$o$l$k%G%#%l%/%H%j!<$G$9!#=i4|CM(B +$B$O(B @file{~/Mail/} $B$G$9!#(B @item message-signature-setup-hook @vindex message-signature-setup-hook @@ -1238,8 +1272,8 @@ follows this line--} $B$G$9!#(B @vindex message-send-hook $B%a%C%;!<%8$rAw$kA0$K$H6&$K8F$P$l$^$9!#=i4|@_Dj$N4X?t$O(B @code{message-output} +$B$a$N%U%!%$%kL>$H6&$K8F$P$l$^$9!#=i4|@_Dj$N4X?t$O(B @code{message-output} $B$G!"$=$l$O(B Unix mailbox $BMM<0$GJ]B8$7$^$9!#(B @item message-courtesy-message @vindex messsage-courtesy-messsage $BJ#9g%a%C%;!<%8$rAw$k$H$-$O!"$3$NJ8;zNs$O%a!<%k$GAw$i$l$?J#@=$NJ}$N:G=i$K(B $BA^F~$5$l$^$9!#$b$7$=$NJ8;zNs$,=qK!;EMM;XDj(B @samp{%s} $B$r4^$s$G$$$l$P!"5-(B -$B;v$,Ej9F$5$l$?%K%e!<%9%0%k!<%W$,$=$3$KA^F~$5$l$^$9!#$b$7$3$NJQ?t$,(B -@code{nil} $B$G$"$l$P!"$=$N$h$&$J?F@Z%a%C%;!<%8$O2C$($i$l$^$;$s!#=i4|CM$O(B -@samp{"The following message is a courtesy copy of an article\nthat has +$B;v$,Ej9F$5$l$?%K%e!<%9%0%k!<%W$,$=$3$KA^F~$5$l$^$9!#$b$7$3$NJQ?t(B +$B$,(B @code{nil} $B$G$"$l$P!"$=$N$h$&$J?F@Z%a%C%;!<%8$O2C$($i$l$^$;$s!#=i4|CM(B +$B$O(B @samp{"The following message is a courtesy copy of an article\nthat has been posted to %s as well.\n\n"} $B$G$9!#(B @end table - @node Message Buffers @section $B%a%C%;!<%8%P%C%U%!(B @@ -1343,7 +1372,7 @@ Message $B$O$"$J$?$,%a%C%;!<%8%P%C%U%!$rMW5a$7$?$H$-$K!"B>$KL5$$M#0l$N%P%C(B @item message-use-multi-frames @vindex message-use-multi-frames -@code{nil} $B$G$J$1$l$P!"?7$7$$%U%l!<%`$r:n@.$7$^$9!#=i4|CM$O(B @code{nil} +@code{nil} $B$G$J$1$l$P!"?7$7$$%U%l!<%`$r:n@.$7$^$9!#=i4|CM$O(B @code{nil} $B$G$9!#(B @item message-delete-frame-on-exit @@ -1355,14 +1384,14 @@ Message $B$O$"$J$?$,%a%C%;!<%8%P%C%U%!$rMW5a$7$?$H$-$K!"B>$KL5$$M#0l$N%P%C(B @item message-max-buffers @vindex message-max-buffers -$B#k$NJQ?t$O$I$N$/$i$$8E$$%a%C%;!<%8%P%C%U%!$rJ]$C$F$*$/$+$r;XDj$7$^$9!#$3(B +$B$3$NJQ?t$O$I$N$/$i$$8E$$%a%C%;!<%8%P%C%U%!$rJ]$C$F$*$/$+$r;XDj$7$^$9!#$3(B $B$l$h$jB?$$%a%C%;!<%8%P%C%U%!$,$"$l$P!"0lHV8E$$%P%C%U%!$,:o=|$5$l$^$9!#=i(B $B4|CM$O(B10$B$G$9!#$3$NJQ?t$,(B @code{nil} $B$G$"$k$H!"8E$$%a%C%;!<%8%P%C%U%!$O:o(B $B=|$5$l$^$;$s!#(B @item message-send-rename-function @vindex message-send-rename-function -$B%a%C%;!<%8$rAw$C$?8e$G!"%P%C%U%!$NL>A0$O!"Nc$($P!"(B@samp{*reply to Lars*} +$B%a%C%;!<%8$rAw$C$?8e$G!"%P%C%U%!$NL>A0$O!"Nc$($P!"(B@samp{*reply to Lars*} $B$+$i(B @samp{*sent reply to Lars*} $B$KJQ99$5$l$^$9!#$b$7$3$l$r9%$^$J$$$J$i!"(B $B$3$NJQ?t$r$"$J$?$N9%$-$JJ}K!$G%P%C%U%!$NL>A0$rJQ99$9$k4X?t$K@_Dj$7$F2<$5(B $B$$!#$=$b$=$b%P%C%U%!L>$rJQ99$9$k;v$r9%$^$J$$$N$G$"$l$P!"$KL5$$M#0l$N%P%C(B @end table - @node Message Actions @section $B%a%C%;!<%8$NF0:n(B @@ -1416,7 +1444,6 @@ Message $B$O$3$l$i$N%j%9%H$H:nMQ$9$k4X?t$rDs6!$7$F$$$^$9(B: @dfn{$BF0:n(B} $B$O2A(B} $B$5$l$k<0$G$9!#(B - @node Compatibility @chapter $B8_49@-(B @cindex compatibility @@ -1431,13 +1458,12 @@ Message $B$O;ve!"$=$l<+?H$NJQ?t$7$+;H$$$^$;$s(B---$B8E$$(B @code{mail-}  $B$3$l$OB?$/$N(B Message $BJQ?t$rBP1~$9$k%a!<%kJQ?t$+$i=i4|2=$7$^$9!#(B - @node Appendices @chapter $BIU5-(B @menu * Responses:: $B1~Ez$,2?=h$K9T$/$+$r7hDj$9$kI8=`$NK!B'!#(B -@end menu +@end menu @node Responses @section $B1~Ez(B @@ -1457,7 +1483,6 @@ Message $B$O;ve!"$=$l<+?H$NJQ?t$7$+;H$$$^$;$s(B---$B8E$$(B @code{mail-}  @item From @end table - @item wide reply @dfn{$B9-$$JVEz(B} (wide reply) $B$O$"$J$?$,1~Ez$7$h$&$H$7$F$$$k%a%C%;!<%8$K=q(B $B$+$l$F$$$?(B @emph{$BA4$F$N(B} $Be!"$=$l<+?H$NJQ?t$7$+;H$$$^$;$s(B---$B8E$$(B @code{mail-}  @end table @code{Mail-Copies-To} $B%X%C%@!<$,B8:_$7$F$$$k$H!"$=$l$b%a!<%k%\%C%/%9$N%j(B -$B%9%H$K2C$($i$l$k$G$7$g$&!#$3$N%X%C%@!<$,(B @samp{never} $B$G$"$l$P!"$=$l$O(B -@code{From} ($B$b$7$/$O(B @code{Reply-To}) $B%a!<%k%\%C%/%9$,M^@)$5$l$k$H8@$&(B -$B;v$G$9!#(B - +$B%9%H$K2C$($i$l$k$G$7$g$&!#$3$N%X%C%@!<$,(B @samp{never} $B$G$"$l$P!"$=$l(B +$B$O(B @code{From} ($B$b$7$/$O(B @code{Reply-To}) $B%a!<%k%\%C%/%9$,M^@)$5$l$k$H8@(B +$B$&;v$G$9!#(B @item followup -@dfn{$B%U%)%m!<%"%C%W(B} (followup) $B$O%K%e!<%9$K$h$k1~Ez$G$9!#0J2<$N%X%C%@!<(B -($BM%@h=g0L$N9b$$$b$N$+$i5s$2$i$l$F$$$^$9(B) $B$,2?=h$K1~Ez$,Aw$i$l$k$+$r7hDj(B -$B$7$^$9(B: +@dfn{$B%U%)%m!<%"%C%W(B} (followup) $B$O%K%e!<%9$K$h$k1~Ez$G$9!#0J2<$N%X%C(B +$B%@!<(B ($BM%@h=g0L$N9b$$$b$N$+$i5s$2$i$l$F$$$^$9(B) $B$,2?=h$K1~Ez$,Aw$i$l$k$+$r(B +$B7hDj$7$^$9(B: @table @code @@ -1498,8 +1522,6 @@ Message $B$O;ve!"$=$l<+?H$NJQ?t$7$+;H$$$^$;$s(B---$B8E$$(B @code{mail-}  @end table - - @node Index @chapter Index @printindex cp @@ -1513,4 +1535,3 @@ Message $B$O;ve!"$=$l<+?H$NJQ?t$7$+;H$$$^$;$s(B---$B8E$$(B @code{mail-}  @bye @c End: - diff --git a/texi/message.texi b/texi/message.texi index 67f6c12..75899f6 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -5,7 +5,7 @@ @synindex fn cp @synindex vr cp @synindex pg cp -@dircategory Editors +@dircategory Emacs @direntry * Message: (message). Mail and news composition mode that goes with Gnus. @end direntry @@ -18,7 +18,7 @@ This file documents Message, the Emacs message composition mode. -Copyright (C) 1996,97,98,99,2000 Free Software Foundation, Inc. +Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -47,7 +47,8 @@ license to the document, as described in section 6 of the license. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1996,97,98,99,2000 Free Software Foundation, Inc. +Copyright @copyright{} 1996, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -86,9 +87,9 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to T-gnus 6.15 Message. Message is -distributed with the Gnus distribution bearing the same version number -as this manual. +This manual corresponds to T-gnus 6.15 Message. Message is distributed +with the Gnus distribution bearing the same version number as this +manual. @node Interface @@ -320,6 +321,7 @@ will be removed before popping up the buffer. The default is @chapter Commands @menu +* Buffer Entry:: Commands after entering a Message buffer. * Header Commands:: Commands for moving to headers. * Movement:: Moving around in message buffers. * Insertion:: Inserting things into message buffers. @@ -328,9 +330,25 @@ will be removed before popping up the buffer. The default is * Various Commands:: Various things. * Sending:: Actually sending the message. * Mail Aliases:: How to use mail aliases. +* Spelling:: Having Emacs check your spelling. @end menu +@node Buffer Entry +@section Buffer Entry +@cindex undo +@kindex C-_ + +You most often end up in a Message buffer when responding to some other +message of some sort. Message does lots of handling of quoted text, and +may remove signatures, reformat the text, or the like---depending on +which used settings you're using. Message usually gets things right, +but sometimes it stumbles. To help the user unwind these stumblings, +Message sets the undo boundary before each major automatic action it +takes. If you press the undo key (usually located at @kbd{C-_}) a few +times, you will get back the un-edited message you're responding to. + + @node Header Commands @section Header Commands @@ -845,6 +863,51 @@ No expansion will be performed upon sending of the message---all expansions have to be done explicitly. +@node Spelling +@section Spelling +@cindex spelling +@findex ispell-message + +There are two popular ways to have Emacs spell-check your messages: +@code{ispell} and @code{flyspell}. @code{ispell} is the older and +probably more popular package. You typically first write the message, +and then run the entire thing through @code{ispell} and fix all the +typos. To have this happen automatically when you send a message, put +something like the following in your @file{.emacs} file: + +@lisp +(add-hook 'message-send-hook 'ispell-message) +@end lisp + +@vindex ispell-message-dictionary-alist +If you're in the habit of writing in different languages, this can be +controlled by the @code{ispell-message-dictionary-alist} variable: + +@lisp +(setq ispell-message-dictionary-alist + '(("^Newsgroups:.*\\bde\\." . "deutsch8") + (".*" . "default"))) +@end lisp + +@code{ispell} depends on having the external @samp{ispell} command +installed. + +The other popular method is using @code{flyspell}. This package checks +your spelling while you're writing, and marks any mis-spelled words in +various ways. + +To use @code{flyspell}, put something like the following in your +@file{.emacs} file: + +@lisp +(defun my-message-setup-routine () + (flyspell-mode 1)) +(add-hook 'message-setup-hook 'my-message-setup-routine) +@end lisp + +@code{flyspell} depends on having the external @samp{ispell} command +installed. + @node Variables @chapter Variables @@ -920,7 +983,7 @@ buffers. @item message-subject-re-regexp @vindex message-subject-re-regexp Responses to messages have subjects that start with @samp{Re: }. This -is @emph{not} an abbreviation of the English word ``response'', but in +is @emph{not} an abbreviation of the English word ``response'', but is Latin, and means ``in response to''. Some illiterate nincompoops have failed to grasp this fact, and have ``internationalized'' their software to use abonimations like @samp{Aw: } (``antwort'') or @samp{Sv: } diff --git a/texi/texi2latex.el b/texi/texi2latex.el new file mode 100644 index 0000000..f5cb162 --- /dev/null +++ b/texi/texi2latex.el @@ -0,0 +1,324 @@ +;;; texi2latex.el --- convert a texi file into a LaTeX file. +;; Copyright (C) 1996 Lars Magne Ingebrigtsen + +(require 'cl) + +(defun latexi-discard-until (string) + (let ((beg (match-beginning 0))) + (unless (re-search-forward (concat "^@end +" string "[ \t]*\n") nil t) + (error "No end: %s" string)) + (delete-region beg (match-end 0)))) + +(defun latexi-strip-line () + (delete-region (progn (beginning-of-line) (point)) + (progn (forward-line 1) (point)))) + +(defun latexi-switch-line (command arg) + (latexi-strip-line) + (insert (format "\\%s{%s}\n" command arg))) + +(defun latexi-index-command (command arg) + (latexi-strip-line) + (insert (format "\\gnus%sindex{%s}\n" + (if (equal command "kindex") "k" "") + arg))) + +(defun latexi-begin-command (command) + (latexi-strip-line) + (insert (format "\\begin{%s}\n" command))) + +(defun latexi-exchange-command (command arg) + (delete-region (match-beginning 0) (match-end 0)) + (insert (format "\\%s{%s}" command arg))) + +(defun latexi-translate () + "Translate." + (interactive) + (latexi-translate-file "gnus") + (latexi-translate-file "gnus-faq")) + +(defun latexi-translate-file (file) + "Translate file a LaTeX file." + (let ((item-string "") + (item-stack nil) + (list-stack nil) + (latexi-buffer (get-buffer-create "*LaTeXi*")) + verbatim + (regexp + (concat + "@\\([^{} \t\n]+\\)" + "\\(\\( +\\(.*$\\)\\|[ \t]*$\\)\\|{\\([^}]*\\)}\\)")) + (cur (find-file-noselect (concat (or (getenv "srcdir") ".") + "/" file ".texi"))) + (times 3) + (chapter 0) + command arg) + (pop-to-buffer latexi-buffer) + (buffer-disable-undo) + (erase-buffer) + (insert-buffer-substring cur) + (goto-char (point-min)) + (latexi-strip-line) + (latexi-translate-string "%@{" "\\gnuspercent{}\\gnusbraceleft{}") + (latexi-translate-string "%@}" "\\gnuspercent{}\\gnusbraceright{}") + (latexi-translate-string "%1@{" "\\gnuspercent{}1\\gnusbraceright{}") +; (while (re-search-forward "{\"[^\"]*\\(\\\\\\)[^\"]*\"}\\\\" nil t) +; (replace-match "\\verb+\\\\+ " t t)) + (while (not (zerop (decf times))) + (goto-char (point-min)) + (while (re-search-forward regexp nil t) + (setq command (match-string 1)) + (if (match-beginning 3) + (progn + (setq arg (or (match-string 4) "")) + (save-match-data + (when (string-match "[ \t]+$" arg) + (setq arg (substring arg 0 (match-beginning 0))))) + (cond + ((member command '("c" "comment")) + (if (string-match "@icon" (or arg "")) + (progn + (beginning-of-line) + (delete-region (point) (+ (point) 4)) + (insert "\\gnus")) + (delete-region (match-beginning 0) + (progn (end-of-line) (point)))) + (if (equal arg "@head") + (insert "\\gnusinteresting"))) + ((member command '("setfilename" + "synindex" "setchapternewpage" + "summarycontents" "bye" + "top" "iftex" "cartouche" + "iflatex" "finalout" "vskip" + "dircategory")) + (latexi-strip-line)) + ((member command '("menu" "tex" "ifinfo" "ignore" + "ifnottex" "direntry")) + (latexi-discard-until command)) + ((member command '("subsection" "subsubsection")) + (latexi-switch-line command arg)) + ((member command '("chapter")) + (latexi-switch-line + (format + "gnus%s{\\epsfig{figure=tmp/new-herd-%d.ps,scale=.5}}" + command (incf chapter)) + arg)) + ((member command '("section")) + (latexi-switch-line (format "gnus%s" command) arg)) + ((member command '("cindex" "findex" "kindex" "vindex")) + (latexi-index-command command arg)) + ((member command '("*")) + (delete-char -2) + (insert "\\\\")) + ((equal command "sp") + (replace-match "" t t)) + ((equal command "node") + (latexi-strip-line) + (insert (format "\\label{%s}\n" arg))) + ((equal command "contents") + (latexi-strip-line) + ;;(insert (format "\\tableofcontents\n" arg)) + ) + ((member command '("titlepage")) + (latexi-begin-command command)) + ((member command '("lisp" "example")) + (latexi-strip-line) + (insert (format "\\begin{verbatim}\n")) + (setq verbatim (point))) + ((member command '("center")) + (latexi-strip-line) + (insert (format "\\begin{%s}%s\\end{%s}\n" + command arg command))) + ((member command '("end")) + (cond + ((member arg '("titlepage")) + (latexi-strip-line) + (insert (format "\\end{%s}\n" arg))) + ((equal arg "quotation") + (latexi-strip-line) + (insert (format "\\end{verse}\n"))) + ((member arg '("lisp" "example")) + (latexi-strip-line) + (save-excursion + (save-restriction + (narrow-to-region verbatim (point)) + (goto-char (point-min)) + (while (search-forward "@{" nil t) + (replace-match "{" t t)) + (goto-char (point-min)) + (while (search-forward "@}" nil t) + (replace-match "}" t t)))) + (setq verbatim nil) + (insert "\\end{verbatim}\n")) + ((member arg '("table")) + (setq item-string (pop item-stack)) + (latexi-strip-line) + (insert (format "\\end{%slist}\n" (pop list-stack)))) + ((member arg '("itemize" "enumerate")) + (setq item-string (pop item-stack)) + (latexi-strip-line) + (insert (format "\\end{%s}\n" arg))) + ((member arg '("iflatex" "iftex" "cartouche")) + (latexi-strip-line)) + (t + (error "Unknown end arg: %s" arg)))) + ((member command '("table")) + (push item-string item-stack) + (push (substring arg 1) list-stack) + (setq item-string + (format "[@%s{%%s}]" (car list-stack))) + (latexi-strip-line) + (insert (format "\\begin{%slist}\n" (car list-stack)))) + ((member command '("itemize" "enumerate")) + (push item-string item-stack) + (cond + ((member arg '("@bullet")) + (setq item-string "[\\gnusbullet]")) + (t + (setq item-string ""))) + (latexi-strip-line) + (insert (format "\\begin{%s}\n" command))) + ((member command '("item")) + (latexi-strip-line) + (insert (format "\\%s%s\n" command (format item-string arg)))) + ((equal command "itemx") + (latexi-strip-line) + (insert (format "\\gnusitemx{%s}\n" (format item-string arg)))) + ((eq (aref command 0) ?@) + (goto-char (match-beginning 0)) + (delete-char 2) + (insert "duppat{}")) + ((equal command "settitle") + (latexi-strip-line) + (insert (format "\\newcommand{\\gnustitlename}{%s}\n" arg))) + ((equal command "title") + (latexi-strip-line) + (insert (format "\\gnustitlename{%s}\n" arg))) + ((equal command "author") + (latexi-strip-line) + (insert (format "\\gnusauthor{%s}\n" arg))) + ((equal command "quotation") + (latexi-begin-command "verse")) + ((equal command "page") + (latexi-strip-line) + (insert (format "\\newpage\n" arg))) + ((equal command "'s") + (goto-char (match-beginning 0)) + (delete-char 1)) + ((equal command "include") + (latexi-strip-line) + (insert "\\input{gnus-faq.latexi}\n")) + ((equal command "printindex") + (latexi-strip-line) + ;;(insert + ;; (format + ;; "\\begin{theindex}\\input{gnus.%s}\\end{theindex}\n" arg)) + ) + (t + (error "Unknown command: %s" command)))) + ;; These are commands with {}. + (setq arg (match-string 5)) + (cond + ((member command '("anchor")) + (latexi-strip-line)) + ((member command '("xref" "pxref")) + (latexi-exchange-command (concat "gnus" command) arg)) + ((member command '("sc" "file" "dfn" "emph" "kbd" "uref" + "code" "samp" "var" "strong" "i" + "result")) + (goto-char (match-beginning 0)) + (delete-char 1) + (insert "\\gnus")) + ((member command '("copyright" "footnote")) + (goto-char (match-beginning 0)) + (delete-char 1) + (insert "\\")) + ((member command '("dots")) + (goto-char (match-beginning 0)) + (delete-region (match-beginning 0) (match-end 0)) + (insert "...")) + ((eq (aref command 0) ?@) + (goto-char (match-beginning 0)) + (delete-char 2) + (insert "duppat{}")) + (t + (error "Unknown command: %s" command)))))) + (latexi-translate-string "$" "\\gnusdollar{}") + (latexi-translate-string "&" "\\gnusampersand{}") + (latexi-translate-string "%" "\\gnuspercent{}") + (latexi-translate-string "#" "\\gnushash{}") + (latexi-translate-string "^" "\\gnushat{}") + (latexi-translate-string "~" "\\gnustilde{}") + (latexi-translate-string "_" "\\gnusunderline{}") + (latexi-translate-string "¬" "\\gnusnot{}") + (goto-char (point-min)) + (while (search-forward "duppat{}" nil t) + (replace-match "@" t t)) + (latexi-translate-string "@@" "@") + (latexi-translate-string "<" "\\gnusless{}") + (latexi-translate-string ">" "\\gnusgreater{}") + (goto-char (point-min)) + (search-forward "label{Top}" nil t) + (while (re-search-forward "\\\\[ntr]\\b" nil t) + (when (save-match-data + (or (not (save-excursion + (search-backward "begin{verbatim}" nil t))) + (> (save-excursion + (search-backward "end{verbatim")) + (save-excursion + (search-backward "begin{verbatim}"))))) + (goto-char (match-beginning 0)) + (delete-char 1) + (insert "\\gnusbackslash{}"))) + (latexi-translate-string "\\\\" "\\gnusbackslash{}") + (goto-char (point-min)) + (while (re-search-forward "\\\\[][{}]" nil t) + (goto-char (match-beginning 0)) + (delete-char 1)) + (latexi-contributors) + (let ((coding-system-for-write 'iso-8859-1)) + (write-region (point-min) (point-max) (concat file ".latexi"))))) + +(defun latexi-translate-string (in out) + (let (yes) + (goto-char (point-min)) + (search-forward "label{Top}" nil t) + (while (search-forward in nil t) + (when (save-match-data + (or (not (save-excursion + (search-backward "begin{verbatim}" nil t))) + (> (save-excursion + (re-search-backward "end{verbatim}\\|end{verse}")) + (save-excursion + (re-search-backward + "begin{verbatim}\\|begin{verse}"))))) + (replace-match out t t))))) + +(defun latexi-contributors () + (goto-char (point-min)) + (when (re-search-forward "^Also thanks to the following" nil t) + (forward-line 2) + (narrow-to-region + (point) + (1- (search-forward "\n\n"))) + (when (re-search-backward "^and" nil t) + (latexi-strip-line)) + (goto-char (point-min)) + (while (re-search-forward "[.,] *$" nil t) + (replace-match "" t t)) + (goto-char (point-min)) + (let (names) + (while (not (eobp)) + (push (buffer-substring (point) (progn (end-of-line) (point))) + names) + (forward-line 1)) + (delete-region (point-min) (point-max)) + (insert "\\begin{tabular}{lll}\n") + (setq names (nreverse (delete "" names))) + (while names + (insert (pop names) " & " (or (pop names) "\\mbox{}") + " & " (or (pop names) "\\mbox{}") + "\\\\\n")) + (insert "\\end{tabular}\n") + (widen)))) +