From: yamaoka Date: Wed, 18 Jun 2003 09:42:31 +0000 (+0000) Subject: T-gnus 6.16.3 r02; move nnshimbun.el to the emacs-w3m package. X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=628bfcb463923cd7b00659bc18f15a1d2f6b1bd2;p=elisp%2Fgnus.git- T-gnus 6.16.3 r02; move nnshimbun.el to the emacs-w3m package. --- diff --git a/ChangeLog b/ChangeLog index b41115f..d0c0c0b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2003-06-18 Katsumi Yamaoka + * lisp/gnus-vers.el (gnus-revision-number): Increment to 02. + + * lisp/nnshimbun.el: Moved to the emacs-w3m package. + +2003-06-18 Katsumi Yamaoka + * texi/infohack.el (infohack-texi-format): Encode messages to terminal while formatting info pages. diff --git a/Mule23@1934.en b/Mule23@1934.en index 9ed0acf..47b6416 100644 --- a/Mule23@1934.en +++ b/Mule23@1934.en @@ -161,28 +161,15 @@ There are three ways of making T-gnus with Mule 2.3 based on Emacs 19.34. USING emacs-w3m (and Emacs/W3) ============================== -The web based backend `nnshimbun' uses the shimbun modules which are -included in emacs-w3m package (and the other web based backends of T- -gnus requires Emacs/W3). emacs-w3m is an interface program to the -external command w3m, visit the following pages for more information. +The `nnshimbun' web based back end has been moved to the emacs-w3m +package at 18 June 2003. You need to install the latest version of +emacs-w3m if you want to browse web newspapers using T-gnus as before. +In that case, you *must* delete nnshimbun.el and nnshimbun.elc files +originated by T-gnus. Emacs-w3m is an Emacs interface to the external +command w3m, visit the following pages for more information: http://emacs-w3m.namazu.org/ - http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/ + http://w3m.sourceforge.net/ -If you wish to build T-gnus to be able to use emacs-w3m and nnshimbun, -you have to specify the path where emacs-w3m is installed using the -configure option `--with-addpath=' (for Emacs/W3, use the configure -option `--with-w3=' or editing the file `~/.lpath.el'). Here is an -example for that: - - % ./configure --with-emacs=mule\ - --with-addpath=~/elisp/emu/:~/elisp/apel/: ... :~/elisp/w3m/\ - --with-w3=/usr/local/share/mule/site-lisp/w3/ - % make install - -;; Don't mind if configure says "W3... not found". It is currently -;; malfunction when the configure option `--with-w3=' is not used even -;; if the path of Emacs/W3 is specified in the file `~/.lpath.el'. - -;; By the way, does anyone know where do we find Emacs/W3 package -;; which is suitable to Mule 2.3 based on Emacs 19.34? +Please give up the idea to use Emacs/W3 under Mule 2.3. There is no +information, sorry. diff --git a/Mule23@1934.ja b/Mule23@1934.ja index 3bcdc8a..852e4b8 100644 --- a/Mule23@1934.ja +++ b/Mule23@1934.ja @@ -165,29 +165,15 @@ Emacs 19.34 $B$r%Y!<%9$K$7$?(B Mule 2.3 $B$G(B gnus $B$r:n$k$K$O;0$D$NJ}K!$ USING emacs-w3m (and Emacs/W3) ============================== -$B%&%'%V$K4p$E$$$?%P%C%/%(%s%I$G$"$k(B `nnshimbun' $B$O!"(Bemacs-w3m $B%Q%C%1!<(B -$B%8$K4^$^$l$F$$$k(B shimbun $B%b%8%e!<%k$r;H$$$^$9(B ($BB>$N(B T-gnus $B$N%&%'%V$K(B -$B4p$E$$$?%P%C%/%(%s%I$O(B Emacs/W3 $B$rI,MW$H$7$^$9(B)$B!#(Bemacs-w3m $B$O30It%3%^(B -$B%s%I(B w3m $B$X$N%$%s%?!<%U%'!<%9$r9T$J$&%W%m%0%i%`$G!">\:Y>pJs$K$D$$$F$O(B -$B0J2<$N%Z!<%8$rK,$M$F$_$F2<$5$$!#(B +$B%&%'%V$K4p$E$$$?%P%C%/%(%s%I$G$"$k(B `nnshimbun' $B$O!"(B2003$BG/(B6$B7n(B18$BF|$r0J$F(B +emacs-w3m $B%Q%C%1!<%8$K0\@R$5$l$^$7$?!#:#$^$G$N$h$&$K(B T-gnus $B$G%&%'%V$N(B +$B?7J9$r1\Mw$7$?$$$N$G$"$l$P!":G?7HG$N(B emacs-w3m $B$r%$%s%9%H!<%k$9$kI,MW(B +$B$,$"$j$^$9!#$=$N:]!"(B*$BI,$:(B* T-gnus $BM3Mh$N(B nnshimbun.el $B$H(B nnshimbun.elc +$B%U%!%$%k$r>C$7$F2<$5$$!#(BEmacs-w3m $B$O30It%3%^%s%I(B w3m $B$X$N(B Emacs $B$N%$%s(B +$B%?!<%U%'!<%9$G$9!#>\:Y>pJs$K$D$$$F$O0J2<$N%Z!<%8$rK,$M$F$_$F2<$5$$!#(B http://emacs-w3m.namazu.org/ - http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/ + http://w3m.sourceforge.net/ -emacs-w3m $B$H(B nnshimbun $B$,;H$($k$h$&$K(B T-gnus $B$r:n$k$K$O!"(Bemacs-w3m $B$,(B -$B%$%s%9%H!<%k$5$l$F$$$k%Q%9$r(B configure $B%*%W%7%g%s$N(B `--with-addpath=' -$B$G;XDj$7$J$1$l$P$J$j$^$;$s(B (Emacs/W3 $BMQ$K$O(B `--with-w3=' $B$r;H$&$+!"$^(B -$B$?$O(B `~/.lpath.el' $B%U%!%$%k$rJT=8$7$F2<$5$$(B)$B!#0J2<$ONc$G$9!#(B - - % ./configure --with-emacs=mule\ - --with-addpath=~/elisp/emu/:~/elisp/apel/: ... :~/elisp/w3m/\ - --with-w3=/usr/local/share/mule/site-lisp/w3/ - % make install - -;; $B$b$7(B configure $B$,!V(BW3... not found$B!W$H8@$C$F$b5$$K$7$J$$$G2<$5$$!#(B -;; $B$?$H$((B `~/.lpath.el' $B%U%!%$%k$G(B Emacs/W3 $B$N(B path $B$,;XDj$5$l$F$$$F$b!"(B -;; configure $B%*%W%7%g%s$N(B `--with-w3=' $B$r;H$o$J$$$H!"8=:_$=$l$O@5>o$K(B -;; $BF/$-$^$;$s$N$G!#(B - -;; $B$H$3$m$G!"C/$+(B Emacs 19.34 $B$r%Y!<%9$K$7$?(B Mule 2.3 $B$KE,9g$9$k(B -;; Emacs/W3 $B$,$I$3$K$"$k$+CN$j$^$;$s$+(B? +Mule 2.3 $B$G(B Emacs/W3 $B$r;H$&$3$H$OD|$a$F2<$5$$!#$9$_$^$;$s$,>pJs$O$"$j(B +$B$^$;$s!#(B diff --git a/lisp/dgnushack.el b/lisp/dgnushack.el index 8711dc4..09f3fbd 100644 --- a/lisp/dgnushack.el +++ b/lisp/dgnushack.el @@ -537,9 +537,6 @@ Try to re-configure with --with-addpath=FLIM_PATH and run make again. (defconst dgnushack-unexporting-files (append '("dgnushack.el" "dgnuspath.el" "dgnuskwds.el" "lpath.el") - (condition-case nil - (progn (require 'shimbun) nil) - (error '("nnshimbun.el"))) (unless (or (condition-case code (require 'w3-parse) (error diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index 23e161c..2f1355f 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -34,7 +34,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/nnshimbun.el b/lisp/nnshimbun.el deleted file mode 100644 index 87675c9..0000000 --- a/lisp/nnshimbun.el +++ /dev/null @@ -1,762 +0,0 @@ -;;; nnshimbun.el --- interfacing with web newspapers - -;; Copyright (C) 2000,2001,2002 TSUCHIYA Masatoshi - -;; Authors: TSUCHIYA Masatoshi , -;; Akihiro Arisawa , -;; Katsumi Yamaoka , -;; Yuuichi Teranishi -;; Keywords: news - -;; This file is a part of Semi-Gnus. - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program; if not, you can either send email to this -;; program's maintainer or write to: The Free Software Foundation, -;; Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. - -;;; Commentary: - -;; Gnus (or gnus) backend to read newspapers on the World Wide Web. -;; This module requires the emacs-w3m and the external command w3m. -;; Visit the following pages for more information. -;; -;; http://emacs-w3m.namazu.org/ -;; http://w3m.sourceforge.net/ - -;; If you would like to use this module in Gnus (not T-gnus), put this -;; file into the lisp/ directory in the Gnus source tree and run `make -;; install'. And then, put the following expression into your ~/.gnus. -;; -;; (autoload 'gnus-group-make-shimbun-group "nnshimbun" nil t) - - -;;; Definitions: - -(eval-when-compile (require 'cl)) -(require 'nnoo) -(require 'nnheader) -(require 'nnmail) -(require 'gnus-bcklg) -(require 'shimbun) - - -;; Customize variables -(defgroup nnshimbun nil - "Reading Web Newspapers with Gnus." - :group 'gnus) - -(defvar nnshimbun-group-parameters-custom - '(list :format "%v" - (checklist :inline t - (list :inline t :format "%v" - (const :format "" index-range) - (choice :tag "Index range" - :value all - (const all) - (const last) - (integer :tag "days"))) - (list :inline t :format "%v" - (const :format "" prefetch-articles) - (choice :tag "Prefetch articles" - :value off - (const on) - (const off))) - (list :inline t :format "%v" - (const :format "" encapsulate-images) - (choice :tag "Encapsulate article" - :value on - (const on) - (const off))) - (list :inline t :format "%v" - (const :format "" expiry-wait) - (choice :tag "Expire wait" - :value never - (const never) - (const immediate) - (number :tag "days")))) - (repeat :inline t :tag "Others" - (list :inline t :format "%v" - (symbol :tag "Keyword") - (sexp :tag "Value")))) - "A type definition for customizing the nnshimbun group parameters.") - -;; The following definition provides the group parameter -;; `nnshimbun-group-parameters', the user option -;; `nnshimbun-group-parameters-alist' and the function -;; `nnshimbun-find-group-parameters'. -;; The group parameter `nnshimbun-group-parameters' will have a -;; property list like the following: -;; -;; '(index-range all prefetch-articles off encapsulate-images on -;; expiry-wait 6) - -(unless (fboundp 'gnus-define-group-parameter) - (defmacro gnus-define-group-parameter (&rest args) nil) - (defun nnshimbun-find-group-parameters (name) - "Return a nnshimbun GROUP's group parameters." - (when name - (or (gnus-group-find-parameter name 'nnshimbun-group-parameters t) - (assoc-default name - (and (boundp 'nnshimbun-group-parameters-alist) - (symbol-value 'nnshimbun-group-parameters-alist)) - (function string-match)))))) - -(gnus-define-group-parameter - nnshimbun-group-parameters - :type list - :function nnshimbun-find-group-parameters - :function-document "\ -Return a nnshimbun GROUP's group parameters." - :variable nnshimbun-group-parameters-alist - :variable-default nil - :variable-document "\ -Alist of nnshimbun group parameters. Each element should be a cons of -a group name regexp and a plist which consists of a keyword and a value -pairs like the following: - -'(\"^nnshimbun\\\\+asahi:\" index-range all prefetch-articles off - encapsulate-images on expiry-wait 6) - -`index-range' specifies a range of header indices as described below: - all: Retrieve all header indices. - last: Retrieve the last header index. -integer N: Retrieve N pages of header indices. - -`prefetch-articles' specifies whether to pre-fetch the unread articles -when scanning the group. - -`encapsulate-images' specifies whether inline images in the shimbun -article are encapsulated. - -`expiry-wait' is similar to the generic group parameter `expiry-wait', -but it has a preference." - :variable-group nnshimbun - :variable-type `(repeat (cons :format "%v" (regexp :tag "Group name regexp" - :value "^nnshimbun\\+") - ,nnshimbun-group-parameters-custom)) - :parameter-type nnshimbun-group-parameters-custom - :parameter-document "\ -Group parameters for the nnshimbun group. - -`Index range' specifies a range of header indices as described below: - all: Retrieve all header indices. - last: Retrieve the last header index. -integer N: Retrieve N pages of header indices. - -`Prefetch articles' specifies whether to pre-fetch the unread articles -when scanning the group. - -`Encapsulate article' specifies whether inline images in the shimbun -article are encapsulated. - -`Expire wait' is similar to the generic group parameter `expiry-wait', -but it has a preference.") - -(defcustom nnshimbun-keep-unparsable-dated-articles t "\ -*If non-nil, nnshimbun will never delete articles whose NOV date is unparsable." - :group 'nnshimbun - :type 'boolean) - - -;; Define backend -(gnus-declare-backend "nnshimbun" 'address) -(nnoo-declare nnshimbun) - -(defvoo nnshimbun-directory (nnheader-concat gnus-directory "shimbun/") - "Where nnshimbun will save its files.") - -(defvoo nnshimbun-nov-is-evil nil - "*Non-nil means that nnshimbun will never retrieve NOV headers.") - -(defvoo nnshimbun-nov-file-name ".overview") - -(defvoo nnshimbun-pre-fetch-article 'off - "*If it is neither `off' nor nil, nnshimbun fetch unread articles when -scanning groups. Note that this variable has just a default value for -all the nnshimbun groups. You can specify the nnshimbun group -parameter `prefecth-articles' for each nnshimbun group.") - -(defvoo nnshimbun-encapsulate-images shimbun-encapsulate-images - "*If it is neither `off' nor nil, inline images will be encapsulated in -the articles. Note that this variable has just a default value for -all the nnshimbun groups. You can specify the nnshimbun group -parameter `encapsulate-images' for each nnshimbun group.") - -(defvoo nnshimbun-index-range nil - "*Range of indices to detect new pages. Note that this variable has -just a default value for all the nnshimbun groups. You can specify -the nnshimbun group parameter `index-range' for each nnshimbun group.") - - -;; set by nnshimbun-open-server -(defvoo nnshimbun-shimbun nil) - -(defvoo nnshimbun-status-string "") -(defvoo nnshimbun-keep-backlog 300) -(defvoo nnshimbun-backlog-articles nil) -(defvoo nnshimbun-backlog-hashtb nil) - - -;;; backlog -(defmacro nnshimbun-current-server () - '(nnoo-current-server 'nnshimbun)) - -(defmacro nnshimbun-server-directory (&optional server) - `(nnmail-group-pathname ,(or server '(nnshimbun-current-server)) - nnshimbun-directory)) - -(defmacro nnshimbun-current-group () - '(shimbun-current-group-internal nnshimbun-shimbun)) - -(defmacro nnshimbun-current-directory (&optional group) - `(nnmail-group-pathname ,(or group '(nnshimbun-current-group)) - (nnshimbun-server-directory))) - -(defmacro nnshimbun-backlog (&rest form) - `(let ((gnus-keep-backlog nnshimbun-keep-backlog) - (gnus-backlog-buffer - (format " *nnshimbun backlog %s*" (nnshimbun-current-server))) - (gnus-backlog-articles nnshimbun-backlog-articles) - (gnus-backlog-hashtb nnshimbun-backlog-hashtb)) - (unwind-protect - (progn ,@form) - (setq nnshimbun-backlog-articles gnus-backlog-articles - nnshimbun-backlog-hashtb gnus-backlog-hashtb)))) -(put 'nnshimbun-backlog 'lisp-indent-function 0) -(put 'nnshimbun-backlog 'edebug-form-spec t) - - -;;; Group parameter -(defmacro nnshimbun-find-parameter (group symbol &optional full-name-p) - "Return the value of a nnshimbun group parameter for GROUP which is -associated with SYMBOL. If FULL-NAME-P is non-nil, it treats that -GROUP has a full name." - (let ((name (if full-name-p - group - `(concat "nnshimbun+" (nnshimbun-current-server) ":" ,group)))) - (cond ((eq 'index-range (eval symbol)) - `(or (plist-get (nnshimbun-find-group-parameters ,name) - 'index-range) - nnshimbun-index-range)) - ((eq 'prefetch-articles (eval symbol)) - `(let ((val (or (plist-get (nnshimbun-find-group-parameters ,name) - 'prefetch-articles) - nnshimbun-pre-fetch-article))) - (if (eq 'off val) - nil - val))) - ((eq 'encapsulate-images (eval symbol)) - `(let ((val (or (plist-get (nnshimbun-find-group-parameters ,name) - 'encapsulate-images) - nnshimbun-encapsulate-images))) - (if (eq 'off val) - nil - val))) - ((eq 'expiry-wait (eval symbol)) - (if full-name-p - `(or (plist-get (nnshimbun-find-group-parameters ,group) - 'expiry-wait) - (gnus-group-find-parameter ,group 'expiry-wait)) - `(let ((name ,name)) - (or (plist-get (nnshimbun-find-group-parameters name) - 'expiry-wait) - (gnus-group-find-parameter name 'expiry-wait))))) - (t - `(plist-get (nnshimbun-find-group-parameters ,name) ,symbol))))) - - -;;; Interface Functions -(nnoo-define-basics nnshimbun) - -(defun nnshimbun-possibly-change-group (group &optional server) - (when (if server - (nnshimbun-open-server server) - nnshimbun-shimbun) - (or (not group) - (when (condition-case err - (shimbun-open-group nnshimbun-shimbun group) - (error - (nnheader-report 'nnshimbun "%s" (error-message-string err)))) - (let ((file-name-coding-system nnmail-pathname-coding-system) - (pathname-coding-system nnmail-pathname-coding-system) - (dir (nnshimbun-current-directory group))) - (or (file-directory-p dir) - (ignore-errors - (make-directory dir) - (file-directory-p dir)) - (nnheader-report 'nnshimbun - (if (file-exists-p dir) - "Not a directory: %s" - "Couldn't create directory: %s") - dir))))))) - -(deffoo nnshimbun-open-server (server &optional defs) - (or (nnshimbun-server-opened server) - (let ((file-name-coding-system nnmail-pathname-coding-system) - (pathname-coding-system nnmail-pathname-coding-system) - (shimbun)) - (when (condition-case err - (setq shimbun - (shimbun-open server - (luna-make-entity 'shimbun-gnus-mua))) - (error - (nnheader-report 'nnshimbun "%s" (error-message-string err)))) - (nnoo-change-server 'nnshimbun server - (cons (list 'nnshimbun-shimbun shimbun) defs)) - (when (or (file-directory-p nnshimbun-directory) - (ignore-errors - (make-directory nnshimbun-directory) - (file-directory-p nnshimbun-directory)) - (progn - (nnshimbun-close-server) - (nnheader-report 'nnshimbun - (if (file-exists-p nnshimbun-directory) - "Not a directory: %s" - "Couldn't create directory: %s") - nnshimbun-directory))) - (let ((dir (nnshimbun-server-directory server))) - (when (or (file-directory-p dir) - (ignore-errors - (make-directory dir) - (file-directory-p dir)) - (progn - (nnshimbun-close-server) - (nnheader-report 'nnshimbun - (if (file-exists-p dir) - "Not a directory: %s" - "Couldn't create directory: %s") - dir))) - (nnheader-report 'nnshimbun - "Opened server %s using directory %s" - server dir) - t))))))) - -(deffoo nnshimbun-close-server (&optional server) - (when (nnshimbun-server-opened server) - (when nnshimbun-shimbun - (dolist (group (shimbun-groups nnshimbun-shimbun)) - (nnshimbun-write-nov group t)) - (shimbun-close nnshimbun-shimbun))) - (nnshimbun-backlog (gnus-backlog-shutdown)) - (nnoo-close-server 'nnshimbun server) - t) - -(eval-when-compile - (require 'gnus-sum)) ;; For the macro `gnus-summary-article-header'. - -(defun nnshimbun-request-article-1 (article &optional group server to-buffer) - (if (nnshimbun-backlog - (gnus-backlog-request-article - group article (or to-buffer nntp-server-buffer))) - (cons group article) - (let* ((header (with-current-buffer (nnshimbun-open-nov group) - (and (nnheader-find-nov-line article) - (nnshimbun-parse-nov)))) - (original-id (shimbun-header-id header))) - (when header - (with-current-buffer (or to-buffer nntp-server-buffer) - (erase-buffer) - (let ((shimbun-encapsulate-images - (nnshimbun-find-parameter group 'encapsulate-images))) - (shimbun-article nnshimbun-shimbun header)) - (when (> (buffer-size) 0) - ;; Kludge! replace a date string in `gnus-newsgroup-data' - ;; based on the newly retrieved article. - (let ((x (gnus-summary-article-header article))) - (when x - ;; Trick to suppress byte compile of mail-header-set-date(), - ;; in order to keep compatibility between T-gnus and Oort Gnus. - (eval - `(mail-header-set-date ,x ,(shimbun-header-date header))))) - (nnshimbun-replace-nov-entry group article header original-id) - (nnshimbun-backlog - (gnus-backlog-enter-article group article (current-buffer))) - (nnheader-report 'nnshimbun "Article %s retrieved" - (shimbun-header-id header)) - (cons group article))))))) - -(deffoo nnshimbun-request-article (article &optional group server to-buffer) - (when (nnshimbun-possibly-change-group group server) - (if (or (integerp article) - (when (stringp article) - (setq article - (or (when (or group (setq group (nnshimbun-current-group))) - (nnshimbun-search-id group article)) - (catch 'found - (dolist (x (shimbun-groups nnshimbun-shimbun)) - (and (nnshimbun-possibly-change-group x) - (setq x (nnshimbun-search-id x article)) - (throw 'found x)))))))) - (nnshimbun-request-article-1 article group server to-buffer) - (nnheader-report 'nnshimbun "Couldn't retrieve article: %s" - (prin1-to-string article))))) - -(deffoo nnshimbun-request-group (group &optional server dont-check) - (if (not (nnshimbun-possibly-change-group group server)) - (nnheader-report 'nnshimbun "Invalid group (no such directory)") - (let (beg end lines) - (with-current-buffer (nnshimbun-open-nov group) - (goto-char (point-min)) - (setq beg (ignore-errors (read (current-buffer)))) - (goto-char (point-max)) - (forward-line -1) - (setq end (ignore-errors (read (current-buffer))) - lines (count-lines (point-min) (point-max)))) - (nnheader-report 'nnshimbun "Selected group %s" group) - (nnheader-insert "211 %d %d %d %s\n" - lines (or beg 0) (or end 0) group)))) - -(deffoo nnshimbun-request-scan (&optional group server) - (when (nnshimbun-possibly-change-group nil server) - (if group - (nnshimbun-generate-nov-database group) - (dolist (group (shimbun-groups nnshimbun-shimbun)) - (nnshimbun-generate-nov-database group))))) - -(deffoo nnshimbun-close-group (group &optional server) - (nnshimbun-write-nov group) - t) - -(deffoo nnshimbun-request-list (&optional server) - (when (nnshimbun-possibly-change-group nil server) - (with-current-buffer nntp-server-buffer - (erase-buffer) - (dolist (group (shimbun-groups nnshimbun-shimbun)) - (when (nnshimbun-possibly-change-group group) - (let (beg end) - (with-current-buffer (nnshimbun-open-nov group) - (goto-char (point-min)) - (setq beg (ignore-errors (read (current-buffer)))) - (goto-char (point-max)) - (forward-line -1) - (setq end (ignore-errors (read (current-buffer))))) - (insert (format "%s %d %d n\n" group (or end 0) (or beg 0))))))) - t)) ; return value - -(deffoo nnshimbun-retrieve-headers (articles &optional group server fetch-old) - (when (nnshimbun-possibly-change-group group server) - (if (nnshimbun-retrieve-headers-with-nov articles group fetch-old) - 'nov - (with-current-buffer nntp-server-buffer - (erase-buffer) - (let (header) - (dolist (art articles) - (when (and (if (stringp art) - (setq art (nnshimbun-search-id group art)) - (integerp art)) - (setq header - (with-current-buffer (nnshimbun-open-nov group) - (and (nnheader-find-nov-line art) - (nnshimbun-parse-nov))))) - (insert (format "220 %d Article retrieved.\n" art)) - (shimbun-header-insert nnshimbun-shimbun header) - (insert ".\n") - (delete-region (point) (point-max))))) - 'header)))) - -(defun nnshimbun-retrieve-headers-with-nov (articles &optional group fetch-old) - (unless (or gnus-nov-is-evil nnshimbun-nov-is-evil) - (with-current-buffer nntp-server-buffer - (erase-buffer) - (insert-buffer (nnshimbun-open-nov group)) - (unless (and fetch-old (not (numberp fetch-old))) - (nnheader-nov-delete-outside-range - (if fetch-old - (max 1 (- (car articles) fetch-old)) - (car articles)) - (nth (1- (length articles)) articles))) - t))) - - -;;; Nov Database Operations -(defvar nnshimbun-tmp-string nil - "Internal variable used to just a rest for a temporary string. The -macro `nnshimbun-string-or' uses it exclusively.") - -(defmacro nnshimbun-string-or (&rest strings) - "Return the first element of STRINGS that is a non-blank string. It -should run fast, especially if two strings are given. Each string can -also be nil." - (cond ((null strings) - nil) - ((= 1 (length strings)) - ;; Return irregularly nil if one blank string is given. - `(unless (zerop (length (setq nnshimbun-tmp-string ,(car strings)))) - nnshimbun-tmp-string)) - ((= 2 (length strings)) - ;; Return the second string when the first string is blank. - `(if (zerop (length (setq nnshimbun-tmp-string ,(car strings)))) - ,(cadr strings) - nnshimbun-tmp-string)) - (t - `(let ((strings (list ,@strings))) - (while strings - (setq strings (if (zerop (length (setq nnshimbun-tmp-string - (car strings)))) - (cdr strings)))) - nnshimbun-tmp-string)))) - -(autoload 'message-make-date "message") - -(defsubst nnshimbun-insert-nov (number header &optional id) - (insert "\n") - (backward-char 1) - (let ((header-id (nnshimbun-string-or (shimbun-header-id header))) - ;; Force `princ' to work in the current buffer. - (standard-output (current-buffer)) - (xref (nnshimbun-string-or (shimbun-header-xref header))) - (start (point))) - (and (stringp id) - header-id - (string-equal id header-id) - (setq id nil)) - (princ number) - (insert - "\t" - (nnshimbun-string-or (shimbun-header-subject header) "(none)") "\t" - (nnshimbun-string-or (shimbun-header-from header) "(nobody)") "\t" - (nnshimbun-string-or (shimbun-header-date header) (message-make-date)) - "\t" - (or header-id (nnmail-message-id)) "\t" - (or (shimbun-header-references header) "") "\t") - (princ (or (shimbun-header-chars header) 0)) - (insert "\t") - (princ (or (shimbun-header-lines header) 0)) - (insert "\t") - (if xref - (progn - (insert "Xref: " xref "\t") - (when id - (insert "X-Nnshimbun-Id: " id "\t"))) - (when id - (insert "\tX-Nnshimbun-Id: " id "\t"))) - ;; Replace newlines with spaces in the current NOV line. - (while (progn - (forward-line 0) - (> (point) start)) - (backward-delete-char 1) - (insert " ")) - (forward-line 1))) - -(defun nnshimbun-generate-nov-database (group) - (when (nnshimbun-possibly-change-group group) - (with-current-buffer (nnshimbun-open-nov group) - (goto-char (point-max)) - (forward-line -1) - (let* ((i (or (ignore-errors (read (current-buffer))) 0)) - (name (concat "nnshimbun+" (nnshimbun-current-server) ":" group)) - (pre-fetch (nnshimbun-find-parameter name 'prefetch-articles t))) - (dolist (header - (shimbun-headers nnshimbun-shimbun - (nnshimbun-find-parameter name - 'index-range t))) - (unless (nnshimbun-search-id group (shimbun-header-id header)) - (goto-char (point-max)) - (nnshimbun-insert-nov (setq i (1+ i)) header) - (when pre-fetch - (with-temp-buffer - (nnshimbun-request-article-1 i group nil (current-buffer))))))) - (nnshimbun-write-nov group)))) - -(defun nnshimbun-replace-nov-entry (group article header &optional id) - (with-current-buffer (nnshimbun-open-nov group) - (when (nnheader-find-nov-line article) - (delete-region (point) (progn (forward-line 1) (point))) - (nnshimbun-insert-nov article header id)))) - -(defun nnshimbun-search-id (group id) - (with-current-buffer (nnshimbun-open-nov group) - (goto-char (point-min)) - (let (found) - (while (and (not found) - (search-forward id nil t)) ; We find the ID. - ;; And the id is in the fourth field. - (if (not (and (search-backward "\t" nil t 4) - (not (search-backward "\t" (gnus-point-at-bol) t)))) - (forward-line 1) - (forward-line 0) - (setq found t))) - (unless found - (goto-char (point-min)) - (setq id (concat "X-Nnshimbun-Id: " id)) - (while (and (not found) - (search-forward id nil t)) - (if (not (search-backward "\t" (gnus-point-at-bol) t 8)) - (forward-line 1) - (forward-line 0) - (setq found t)))) - (when found - (ignore-errors (read (current-buffer))))))) - -;; This function is defined as an alternative of `nnheader-parse-nov', -;; in order to keep compatibility between T-gnus and Oort Gnus. -(defun nnshimbun-parse-nov () - (let ((eol (gnus-point-at-eol))) - (let ((number (nnheader-nov-read-integer)) - (subject (nnheader-nov-field)) - (from (nnheader-nov-field)) - (date (nnheader-nov-field)) - (id (nnheader-nov-read-message-id)) - (refs (nnheader-nov-field)) - (chars (nnheader-nov-read-integer)) - (lines (nnheader-nov-read-integer)) - (xref (unless (eq (char-after) ?\n) - (when (looking-at "Xref: ") - (goto-char (match-end 0))) - (nnheader-nov-field))) - (extra (nnheader-nov-parse-extra))) - (shimbun-make-header number subject from date - (or (cdr (assq 'X-Nnshimbun-Id extra)) id) - refs chars lines xref)))) - -(defsubst nnshimbun-nov-buffer-name (&optional group) - (format " *nnshimbun overview %s %s*" - (nnshimbun-current-server) - (or group (nnshimbun-current-group)))) - -(defsubst nnshimbun-nov-file-name (&optional group) - (nnmail-group-pathname (or group (nnshimbun-current-group)) - (nnshimbun-server-directory) - nnshimbun-nov-file-name)) - -(defun nnshimbun-open-nov (group) - (let ((buffer (nnshimbun-nov-buffer-name group))) - (unless (gnus-buffer-live-p buffer) - (with-current-buffer (gnus-get-buffer-create buffer) - (erase-buffer) - (let ((file-name-coding-system nnmail-pathname-coding-system) - (pathname-coding-system nnmail-pathname-coding-system) - (nov (nnshimbun-nov-file-name group))) - (when (file-exists-p nov) - (nnheader-insert-file-contents nov))) - (set-buffer-modified-p nil))) - buffer)) - -(defun nnshimbun-write-nov (group &optional close) - (let ((buffer (nnshimbun-nov-buffer-name group))) - (when (gnus-buffer-live-p buffer) - (with-current-buffer buffer - (let ((file-name-coding-system nnmail-pathname-coding-system) - (pathname-coding-system nnmail-pathname-coding-system) - (nov (nnshimbun-nov-file-name group))) - (when (and (buffer-modified-p) - (or (> (buffer-size) 0) - (file-exists-p nov))) - (nnmail-write-region 1 (point-max) nov nil 'nomesg) - (set-buffer-modified-p nil)))) - (when close - (kill-buffer buffer))))) - -(deffoo nnshimbun-request-expire-articles (articles group - &optional server force) - "Do expiration for the specified ARTICLES in the nnshimbun GROUP. -Notice that nnshimbun does not actually delete any articles, it just -delete the corresponding entries in the NOV database locally. The -optional fourth argument FORCE is ignored." - (when (nnshimbun-possibly-change-group group server) - (let* ((expirable (copy-sequence articles)) - (name (concat "nnshimbun+" (nnshimbun-current-server) ":" group)) - ;; If the group's parameter `expiry-wait' is non-nil, the - ;; value of the option `nnmail-expiry-wait' will be bound - ;; to that value, and the value of the option - ;; `nnmail-expiry-wait-function' will be bound to nil. See - ;; the source code of `gnus-summary-expire-articles' how - ;; does it work. If the group's parameter is not specified - ;; by user, the shimbun's default value will be used. - (expiry-wait - (or (nnshimbun-find-parameter name 'expiry-wait t) - (shimbun-article-expiration-days nnshimbun-shimbun))) - (nnmail-expiry-wait (or expiry-wait nnmail-expiry-wait)) - (nnmail-expiry-wait-function (if expiry-wait - nil - nnmail-expiry-wait-function)) - article end time) - (with-current-buffer (nnshimbun-open-nov group) - (while expirable - (setq article (pop expirable)) - (when (and (nnheader-find-nov-line article) - (setq end (gnus-point-at-eol)) - (not (= (point-max) (1+ end)))) - (setq time (and (search-forward "\t" end t) - (search-forward "\t" end t) - (search-forward "\t" end t) - (parse-time-string - (buffer-substring - (point) - (if (search-forward "\t" end t) - (1- (point)) - end))))) - (when (if (setq time (condition-case nil - (apply 'encode-time time) - (error nil))) - (nnmail-expired-article-p name time nil) - ;; Inhibit expiration if there's no parsable date - ;; and the following option is non-nil. - (not nnshimbun-keep-unparsable-dated-articles)) - (forward-line 0) - (delete-region (point) (1+ end)) - (setq articles (delq article articles))))) - (nnshimbun-write-nov group)) - articles))) - - -;;; shimbun-gnus-mua -(luna-define-class shimbun-gnus-mua (shimbun-mua) ()) - -(luna-define-method shimbun-mua-search-id ((mua shimbun-gnus-mua) id) - (nnshimbun-search-id - (shimbun-current-group-internal (shimbun-mua-shimbun-internal mua)) - id)) - - -;;; Command to create nnshimbun group -(defvar nnshimbun-server-history nil) - -;;;###autoload -(defun gnus-group-make-shimbun-group () - "Create a nnshimbun group." - (interactive) - (let* ((minibuffer-setup-hook - (append minibuffer-setup-hook '(beginning-of-line))) - (alist - (apply 'nconc - (mapcar - (lambda (d) - (and (stringp d) - (file-directory-p d) - (delq nil - (mapcar - (lambda (f) - (and (string-match "^sb-\\(.*\\)\\.el$" f) - (list (match-string 1 f)))) - (directory-files d))))) - load-path))) - (server (completing-read - "Shimbun address: " - alist nil t - (or (car nnshimbun-server-history) - (caar alist)) - 'nnshimbun-server-history)) - (groups) - (nnshimbun-pre-fetch-article)) - (if (setq groups (shimbun-groups (shimbun-open server))) - (gnus-group-make-group - (completing-read "Group name: " (mapcar 'list groups) nil t nil) - (list 'nnshimbun server)) - (error "%s" "Can't find group")))) - - -(provide 'nnshimbun) - -;;; nnshimbun.el ends here diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 9107037..0d50379 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -2514,12 +2514,16 @@ Gnus $B$ODL>o!"(B@code{gnus-activate-level} $B$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<% @kindex G n ($B%0%k!<%W(B) @findex gnus-group-make-shimbun-group @cindex making groups +@cindex emacs-w3m @cindex nnshimbun @cindex web newspaper $B?7$7$$(B @code{nnshimbun} $B%0%k!<%W$r:n@.$7$^(B $B$9(B (@code{gnus-group-make-shimbun-group})$B!#(Bgnus $B$O%W%m%s%W%H$rI=<($7$F!"(B $B%5!<%P!<$N%"%I%l%9$r<($9%7%s%\%kL>$H5-;v%0%k!<%WL>$NF~NO$r5a$a$F$-$^$9!#(B -@code{nnshimbun} $B$K4X$9$k>\:Y$O(B @pxref{Web Newspaper} $B$r;2>H$7$F2<$5$$!#(B +$B$3$l$r;H$&$K$O(B @uref{http://emacs-w3m.namazu.org/, emacs-w3m} $B$,I,MW$G$9!#(B +@code{nnshimbun} $B$K4X$9$k>\:Y(B +$B$O(B (@pxref{Nnshimbun, , Nnshimbun, emacs-w3m-ja, Emacs-w3m-ja}) $B$r;2>H$7(B +$B$F2<$5$$!#(B @item G r @kindex G r ($B%0%k!<%W(B) @@ -2756,8 +2760,8 @@ kiboze $B%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$GL>A0$H!"(Bkiboze $B%0%k!<%W$K!V4^$ $B%s%0%j%9%H$G$"$k$H2rpJs$r(B gnus $B$KM?$($k$3$H$O!"$"$J$?$,$=(B $B$l$i$N%a!<%j%s%0%j%9%H$KEj9F$9$k$H$-$K@5$7$$(B Mail-Followup-To $B%X%C%@!<$r(B $B@8@.$9$k$?$a$N(B ($B$[$s$N(B) $BBh0lJb$G$9!#MxMQ$G$-$k(B MFT $BBP1~5!G=$r40A4$K07$&(B -$B$K$O!"$3$3(B @pxref{Mailing Lists, , Mailing Lists, message, The Message -Manual} $B$r8+$F2<$5$$!#(B +$B$K$O!"$3$3(B (@pxref{Mailing Lists, , Mailing Lists, message, The Message +Manual}) $B$r8+$F2<$5$$!#(B @code{gnus-find-subscribed-addresses} $B$b;2>H$7$F2<$5$$!#$3$N4X?t$O$3$N%0(B $B%k!<%W%Q%i%a!<%?$rD>@\$K;H$$$^$9!#(B @@ -2961,8 +2965,8 @@ if address \"sender\" \"sieve-admin@@extundo.com\" @{ @} @end example -Sieve $B8@8l$O(B RFC 3028 $B$G=R$Y$i$l$F$$$^$9!#(B@xref{Top, , Top, sieve, Emacs -Sieve}$B!#(B +Sieve $B8@8l$O(B RFC 3028 $B$G=R$Y$i$l$F$$$^(B +$B$9(B (@pxref{Top, , Top, sieve, Emacs Sieve})$B!#(B @item (@var{variable} @var{form}) $B%0%k!<%W$KF~$k$H$-$K!"$=$N%0%k!<%W%m!<%+%k$NJQ?t$r@_Dj$9$k%0%k!<%W%Q%i%a!<(B @@ -10525,9 +10529,9 @@ GNUS $B$d(B Gnus $B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N, @kindex C-c C-c ($BEj9F(B) $BEj9F$N$?$a$NL?Na$r$9$k$H!"$"$J$?$O%a%C%;!<%8%P%C%U%!$K0\F0$7$^$9!#(B $B$=$3$G$O!"5-;v$r9%$-$J$h$&$KJT=8$9$k;v$,$G$-$^$9!#(B -$B$=$N8e$G(B @kbd{C-c C-c} $B$r2!$9;v$K$h$C$F!"5-;v$rAw?.$7$^$9!#(B -@xref{Top, , Overview, message, Message Manual}$B!#5-;v$O$"$J$?$N@_Dj$K4p(B -$B$E$$$FAw?.$5$l$^$9(B (@pxref{Posting Server})$B!#(B +$B$=$N8e$G(B @kbd{C-c C-c} $B$r2!$9;v$K$h$C$F!"5-;v$rAw?.$7$^(B +$B$9(B (@pxref{Top, , Overview, message, Message Manual})$B!#5-;v$O$"$J$?$N@_(B +$BDj$K4p$E$$$FAw?.$5$l$^$9(B (@pxref{Posting Server})$B!#(B @menu * Mail:: $B%a!<%k$HJVEz(B @@ -14815,242 +14819,27 @@ http://www.tcj.com/messboard.ubbcgi/ RET}$B!#(B($B6=L#$N$"$k2q5D<<(B @node Web Newspaper @subsection Web Newspaper +@cindex emacs-w3m @cindex nnshimbun @cindex Web Newspaper -$B:G6a$G$O4v$D$+$N?7J9$,%&%'%V$G8x3+$5$l$F$$$^$9!#(BGnus $B$O$3$l$i$bE,@Z$K\$7$$$3$H$O0J2<$N%Z!<%8$GCN$k$3$H$,$G$-$^$9!#(B - -@example - @uref{http://emacs-w3m.namazu.org/} - @uref{http://w3m.sourceforge.net/} -@end example - -@findex gnus-group-make-shimbun-group -@kindex G n ($B%0%k!<%W(B) -@code{nnshimbun} $B$r;O$a$k$?$a$N0lHV4JC1$JJ}K!$O%0%k!<%W%P%C%U%!$NE,Ev$J(B -$B>l=j$G(B @kbd{G n asahi RET national RET} $B$J$I$H%?%$%W$9$k$3$H$G$9!#(B -@samp{asahi} $B$O@\B3$7$?$$%5!<%P!<$N%"%I%l%9$r<($9%7%s%\%k$K!"(B -@samp{national} $B$O1\Mw$7$?$$5-;v%0%k!<%W$K$=$l$>$lCV$-49$($F$/$@$5$$!#N>(B -$BJ}$H$bL>A0$NJd40$,$G$-$^$9!#(B -@c $B$^$?$O(B @kbd{B nnshimbun RET asahi RET} $B$G%P%C%/%(%s%I$r%V%i%&%:$9$k$3$H(B -@c $B$K$h$C$F$b5-;v$rFI$`$3$H$,$G$-$^$9!#(B -$B2C$($F!"(B@acronym{HTML} $B$N%I%-%e%a%s%H$r%$%s%i%$%sI=<($5$;$?$$>l9g$O!"(B -@file{~/.gnus.el} $B%U%!%$%k$K0J2<$N@_Dj$r$7$F2<$5$$!#(B - -@lisp -(require 'mime-w3m) -@end lisp - -Web Newspaper $B$K4X$9$k0J2<$N(B @code{nnshimbun} $BJQ?t$rJQ$($k$3$H$,2DG=$G$9(B: - -@table @code -@item nnshimbun-directory -@vindex nnshimbun-directory -@code{nnshimbun} $B$,%U%!%$%k$rJ]B8$9$k%G%#%l%/%H%j!<$G$9!#=i4|CM(B -$B$O(B @samp{~/News/shimbun} $B$G$9!#(B -@end table - -@cindex group parameters -@code{nnshimbun} $B$O(B Gnus $B$,Ds6!$9$kHFMQ$N%0%k!<%W%Q%i%a!<(B -$B%?(B @footnote{$B%0%k!<%W%Q%i%a!<%?$r@_Dj$9$k$?$a$N:G$bl=j$K%+!<%=%k$,$"$k>uBV(B -$B$G(B @kbd{G c} $B$r%?%$%W$9$k$3$H$G$9(B (@xref{Group Parameters})$B!#(B} $B$K2C$($F!"(B -@code{nnshimbun} $B@lMQ$N%0%k!<%W%Q%i%a!<%?$rMxMQ$9$k$3$H$,$G$-$^$9!#$=$l(B -$B$i$O(B @code{nnshimbun-group-parameters} $B$H$$$&C10l$N%0%k!<%W%Q%i%a!<%?$K(B -$B$^$H$a$i$l$F$$$^$9$,!"$=$l$,3F%0%k!<%WKh$K;}$D$3$H$,$G$-$kCM$O%W%m%Q%F%#(B -$B%j%9%H$G!"Nc$($P/$J$/$J$j$^$9!#%0%k!<%W%Q%i%a!<(B -$B%?(B @code{prefetch-articles} $B$,@_Dj$5$l$F$$$J$$$+!"$=$NCM$,(B @code{nil} $B$K(B -$B$J$C$F$$$k%0%k!<%W$G$O!"%0%k!<%W%Q%i%a!<%?(B @code{prefetch-articles} $B$NBe(B -$B$o$j$K%G%#%U%)%k%HCM$H$7$FJQ?t(B @code{nnshimbun-pre-fetch-article} $B$NCM$,(B -$B;H$o$l$^$9!#$3$NJQ?t(B @code{nnshimbun-pre-fetch-article} $B$N=i4|CM(B -$B$O(B @code{off} $B$G$9!#(B - -@item encapsulate-images -@vindex nnshimbun-encapsulate-images -$B$3$N%0%k!<%W%Q%i%a!<%?$,(B @code{off} $B$^$?$O(B @code{nil} $B0J30$NCM$K%;%C%H$5(B -$B$l$F$$$k%0%k!<%W$G$O!"(B@code{nnshimbun} $B$O85$N5-;v$KKd$a9~$^$l$F$$$k2hA|(B -$B%G!<%?$r(B @samp{multipart/related} $B$N7A<0$G5-;v$K$O$a9~$_$^$9!#%0%k!<%W%Q(B -$B%i%a!<%?(B @code{encapsulate-images} $B$,@_Dj$5$l$F$$$J$$$+!"$=$NCM$,(B -@code{nil} $B$K$J$C$F$$$k%0%k!<%W$G$O!"%0%k!<%W%Q%i%a!<(B -$B%?(B @code{encapsulate-images} $B$NBe$o$j$K%G%#%U%)%k%HCM$H$7$FJQ(B -$B?t(B @code{nnshimbun-encapsulate-images} $B$NCM$,;H$o$l$^$9!#$3$NJQ(B -$B?t(B @code{nnshimbun-encapsulate-images} $B$N%G%#%U%)%k%HCM$O!"(B -@code{shimbun} $B%i%$%V%i%j$NJQ?t(B @code{shimbun-encapsulate-images} $B$NCM$G(B -$B$9(B ($B$?$V$s$=$N=i4|CM$O(B @code{t} $B$G$9(B)$B!#(B - -@item index-range -@vindex nnshimbun-index-range -$B%0%k!<%W%Q%i%a!<%?(B @code{index-range} $B$G!"%&%'%V%5!<%P!<$+$ie$KB8:_$9$kL\l9g$,(B -$B$"$j$^$9!#Nc$($P!"%a!<%j%s%0%j%9%H$N5-;v$rDs6!$7$F$$$k%5!<%P!<$N>l9g$O!"(B -$B$=$N5-;v$,Ej9F$5$l$?F|IU$K$h$C$FJ,N`$5$l$?L\l9g$O(B @code{last} $B$r(B -$B;H$C$F2<$5$$!#$3$&$9$k$H:G?7$NL\H$7$F?7Ce5-;v$N8!::$r9T$&$h$&(B -$B$K$J$j$^$9!#(B - -$B%0%k!<%W%Q%i%a!<%?(B @code{index-range} $B$,@_Dj$5$l$F$$$J$$$+!"CM(B -$B$,(B @code{nil} $B$K$J$C$F$$$k%0%k!<%W$G$O!"JQ(B -$B?t(B @code{nnshimbun-index-range} $B$NCM$,%G%#%U%)%k%H$H$7$F;H$o$l$^$9!#(B -$B$J$*!"(B@code{nnshimbun-index-range} $B$N%G%#%U%)%k%HCM$O(B @code{nil} $B$G$9!#(B - -@item nnshimbun-group-parameters-alist -@vindex nnshimbun-group-parameters-alist -@code{nnshimbun-group-parameters-alist} $B$O%+%9%?%^%$%:2DG=$J%f!<%6%*%W%7%g(B -$B%s$G!"3FMWAG$K%0%k!<%WL>$N@55,I=8=$H(B @code{nnshimbun} $B@lMQ$N%0%k!<%W%Q%i(B -$B%a!<%?$HF1$8%W%m%Q%F%#%j%9%H$r;}$D$3$H$,$G$-$kO"A[%j%9%H$G$9!#O"A[%j%9%H(B -$B$N3FMWAG$O$l%0%k!<%W%Q%i%a!<%?$r@_Dj$9$kBe$o$j$K;H$&$3$H$,(B -$B$G$-$^$9!#$b$7@55,I=8=$K%^%C%A$9$k%0%k!<%W$G%0%k!<%W%Q%i%a!<%?$N@_Dj$,9T(B -$B$J$o$l$F$$$?>l9g$O!"$=$N@_DjCM$NJ}$,M%@h$5$l$^$9!#(B -@end table - -@cindex article expiry -@cindex auto-expire -@cindex expiry-wait -@vindex nnmail-expiry-wait-function -@vindex nnmail-expiry-wait -$B$H$3$m$G(B @code{nnshimbun} $B%P%C%/%(%s%I$G$O!"5-;v$N4|8B@Z$l>C5n$r9T$J$&$3(B -$B$H$,$G$-$^$9(B @footnote{@code{nnshimbun} $B%0%k!<%W$G<+F04|8B@Z$l>C5n$r9T$J(B -$B$&J}K!$K$O$N@55,I=8=$r(B @code{gnus-auto-expirable-newsgroups} $B$KDI2C$7$F!">C5n$9(B -$B$k$^$G$NF|?t$r3F%0%k!<%WKh$K(B @code{nnmail-expiry-wait-function} $B$G;XDj$9(B -$B$k$3$H!#$b$&0l$D$O(B @code{nnshimbun} $B$N3F%0%k!<%WKh$K%0%k!<%W%Q%i%a!<(B -$B%?(B @code{auto-expire} $B$r(B @code{t} $B$K$7$F!"F1$8$/%0%k!<%W%Q%i%a!<(B -$B%?(B @code{expiry-wait} $B$G>C5n$9$k$^$G$NF|?t$r;XDj$9$k$d$jJ}$G$9!#>\$7$$$3(B -$B$H$O(B @xref{Expiring Mail} $B$r;2>H$7$F2<$5$$!#$J$*K\JT$G$b?($l$F$$$^$9$,!"(B -$B8D!9$KF|?t$r@_Dj$7$J$$>l9g$O%G%#%U%)%k%H$NCM$,E,MQ$5$l$^$9!#(B}$B!#$"$"!"$b(B -$B$A$m$s$"$J$?$,;0F|A0$N?7J95-;v$r>C5n$9$k$h$&$K@_Dj$7$?$+$i$H$$$C$F!"?7J9(B -$BC$($F$7$^$&$o$1$G$O$"$j$^$;$s!#>C$($k$N(B -$B$O$"$J$?8D?M$,;}$C$F$$$k(B @code{nnshimbun} $BMQ$N(B @acronym{NOV} $B%U%!%$(B -$B%k(B @footnote{@code{nnshimbun} $BMQ$N(B @acronym{NOV} $B%U%!%$%k$H(B -$B$O(B ``~/News/shimbun/asahi/national/.overview'' $B$N$h$&$J$b$N$G$9!#(B} $B$N3:(B -$BEv$9$kItJ,$G!"$=$l$K$h$C$F$=$N5-;v$OFsEY$H35N,%P%C%U%!$K8=$l$J$/$J$j$^$9!#(B - -@code{nnshimbun} $B%P%C%/%(%s%I$G$O5-;v$N4|8B@Z$l>C5n$r9T$J$o$J$$(B -$B$H(B @acronym{NOV} $B%U%!%$%k$,:]8BL5$/B@$jB3$1!"?7J9l9g$K$O!"2a5n$NA45-;v$rJ](B -$BM-$7$F$$$k>l9g$,>/$J$/$J$$$G$7$g$&!#@N$"$J$?$,6=$8$?0lO"$N5-;v$rFI$_JV$7(B -$B$F2{$+$7$`$?$a$K!"$=$&$$$&%0%k!<%W$G$O4|8B@Z$l>C5n$O$5$;$?$/$J$$$H;W$&$+(B -$B$b$7$l$^$;$s!#(B - -$B$N%a!<%k%P%C%/%(%s%I$HF1MM$NJ}(B -$BK!$G%0%k!<%WKh$K<+F04|8B@Z$l>C5n2DG=$K$7$?$j!";D$7$F$*$/4|4V$r@_Dj$9$k$3(B -$B$H$,$G$-$k$N$G$9!#(B - -$B$?$@(B @code{nnshimbun} $B%P%C%/%(%s%I$N4|8B@Z$l>C5n$K$O!"B>$N%a!<%k%P%C%/%((B -$B%s%I$H>/$7$@$10c$&E@$,$"$j$^$9!#Bh0l$K!";D$7$F$*$/4|4V$N%G%#%U%)%k%HCM$K(B -@code{shimbun} $B%i%$%V%i%j$,Ds6!$9$kCM$,4X78$7!"0J2<$NM%@hEY$G4|4V$,7hDj(B -$B$5$l$k$3$H$G$9!#(B +$B%&%'%V$K4p$E$$$?%P%C%/%(%s%I$G$"$k(B @samp{nnshimbun} $B$O!"(B2003$BG/(B6$B7n(B18$BF|$r(B +$B0J$F(B emacs-w3m $B%Q%C%1!<%8$K0\@R$5$l$^$7$?!#:#$^$G$N$h$&$K(B T-gnus $B$G%&%'(B +$B%V$N?7J9$r1\Mw$7$?$$$N$G$"$l$P!":G?7HG$N(B emacs-w3m $B$r%$%s%9%H!<%k$9$kI,(B +$BMW$,$"$j$^$9!#$=$N:]!"(B@emph{$BI,$:(B} T-gnus $BM3Mh(B +$B$N(B @file{nnshimbun.el} $B$H(B @file{nnshimbun.elc} $B%U%!%$%k$r>C$7$F2<$5$$!#(B +Emacs-w3m $B$O30It%3%^%s%I(B w3m $B$X$N(B Emacs $B$N%$%s%?!<%U%'!<%9$G$9!#>\:Y>pJs(B +$B$K$D$$$F$O0J2<$N%Z!<%8$rK,$M$F$_$F2<$5$$!#(B @example -$B%0%k!<%W%Q%i%a!<%?$N(B @code{expiry-wait} -@code{nnmail-expiry-wait-function} $B$rI>2A$7$?CM(B -@code{shimbun} $B%i%$%V%i%j$,Ds6!$9$k%0%k!<%WKh$N%G%#%U%)%k%HCM(B -@code{nnmail-expiry-wait} $B$NCM(B +@uref{http://emacs-w3m.namazu.org/, emacs-w3m} +@uref{http://w3m.sourceforge.net/, w3m} @end example -$BBhFs$K!"(B@code{nnmail-expiry-wait-function} $B$,4X?t$@$C$?>l9g$K!"$=$N0z?t(B -$B$KM?$($i$l$kJ8;zNs$K(B ``nnshimbin+asahi:national'' $B$N$h$&$K%P%C%/%(%s%I$H(B -$B%5!<%P!<$NL>A0$,4^$^$l$k$3$H$G$9!#B>$N%a!<%k%P%C%/%(%s%I$N>l9g$K$O%0%k!<(B -$B%WL>$@$1$,M?$($i$l$k$N$K!"$G$9!#0l$DNc$r5s$2$^$7$g$&!#(B - -@lisp -(setq nnmail-expiry-wait-function - (lambda (group) - (cond ((string-equal group "wl") 7) - ((string-equal group "nnshimbun+airs:wl") 'never)))) -@end lisp - -$B$3$l$O!"Nc$($P(B @code{nnml} $B$d(B @code{nnmh} $B$GC5n$9$k$,!"(B@code{nnshimbun} $B$GFI$`F1(B -$B$8%a!<%j%s%0%j%9%H$N%"!<%+%$%V$O$9$Y$FFI$a$k>uBV$K$7$F$*$/!"$H$$$&$3$H$G(B -$B$9!#$I$&$G$9!"$J$+$J$+8-$$$G$7$g(B? - -$BBh;0$K!"$3$l$O$"$J$?$,IT?3$K;W$C$?$H$-$K;W$$=P$7$F$/$l$k$3$H$r4|BT$7$F=q(B -$B$$$F$*$-$^$9$,!"%0%k!<%W$N$9$Y$F$N5-;v$,4|8B@Z$l>C5n$NBP>]$K$J$C$F$7$^$C(B -$B$?$H$-$K!"(B@code{nnshimbun} $B$O:G8e$N0lDL$@$1$O>C$5$:$K;D$7$F$*$-$^$9!#$3(B -$B$l$O$"$J$?$NL$N}?4$rK~B-$5$;$k$?$a$G$O$J$/!"%5!<%P!<$+$i8E$$5-;v$r:F$S$N:v$J$N$G$9!#(B - -@code{nnshimbun} $B$N4|8B@Z$l>C5n$K4X78$9$k%0%k!<%W%Q%i%a!<%?$HJQ?t$O0J2<(B -$B$NDL$j$G$9!#(B - -@table @code -@item expiry-wait -@cindex expiry-wait -$B$I$&$+:.Mp$J$5$i$J$$$h$&$K!#(Bgnus $B$,Ds6!$7$F$$$kHFMQ$N%0%k!<%W%Q%i%a!<(B -$B%?(B @code{expiry-wait} $B$HF1$8L>A0$G0UL#$bF1$8$b$N$,(B @code{nnshimbun} $B@lMQ(B -$B$N%0%k!<%W%Q%i%a!<%?$K$bMQ0U$5$l$F$$$^$9!#$"$J$?$O$I$A$i$r;H$C$F$b9=$$$^(B -$B$;$s!#$b$7(B @code{nnshimbun} $B@lMQ$N%0%k!<%W%Q%i%a!<%?$NJ}$r(B @code{nil} $B0J(B -$B30$NCM$K@_Dj$9$k$H!"HFMQ$N%0%k!<%W%Q%i%a!<%?$NCM$h$j$bM%@h$7$F;H$o$l$^$9!#(B -$B$3$l$O!"%0%k!<%W%P%C%U%!$G(B @kbd{G c} $B$r%?%$%W$7$?$H$-$K8=$l$kJT=82hLL$K(B -$B$*$$$F!"(B@code{nnshimbun} $B$K4X78$9$k$b$N$r0l2U=j$K=8$a$k$?$a$H!"%f!<%6%*(B -$B%W%7%g%s(B @code{nnshimbun-group-parameters-alist} $B$G0l3g$7$F4IM}$G$-$k$h(B -$B$&$K$9$k$3$H$rL\E*$KMQ0U$7$?$b$N$G$9(B @footnote{$B$J(B -$B$<(B @code{auto-expire} $B$J$I$b(B @code{nnshimbun} $B@lMQ$N%0%k!<%W%Q%i%a!<%?$K(B -$B4^$a$F$*$$$F$/$l$J$$$N(B? $B$H$$$&Ld$$$KBP$9$kEz$($rMQ0U$7$F$$$^$9!#(B -@code{expiry-wait} $B$r;2>H$9$k$N$,(B @code{nnshimbun} $B%P%C%/%(%s%I$J$N$KBP(B -$B$7$F!"(B@code{auto-expire} $B$J$I$r;2>H$9$k$N$O(B Gnus $B$NK\BN$J$N$G$9$,!"K\BN(B -$B$N5!G=$rFCDj$N%P%C%/%(%s%I$NLLE]$r8+$k$h$&$K3HD%$9$k$N$O!"(BGnus $B$N@_7W;W(B -$BA[$KH?$7$F$$$k$+$i$G$9!#(B}$B!#@_Dj$G$-$kCM$OHFMQ$N%0%k!<%W%Q%i%a!<%?$HF1MM(B -$B$K!";~8B>C5n$NF|?t!"(B@code{never} $B$^$?$O(B @code{immediate} $B$G$9!#(B - -@item nnshimbun-keep-unparsable-dated-articles -@vindex nnshimbun-keep-unparsable-dated-articles -$B$3$NJQ?t$NCM$,(B @code{nil} $B$G$J$$>l9g$O!":n@.$5$l$?$jAw?.$5$l$?;~9o$,$h$/(B -$B$o$+$i$J$$5-;v$r4|8B@Z$l>C5n$7$^$;$s!#$J$K$7$m4|8B$,$o$+$i$J$$$s$G$9$+$i!#(B -$B=i4|CM$O(B @code{t} $B$G$9$,!"(B@code{nil} $B$K$9$k$H4|8B@Z$l>C5n$N=hM}$,9T$J$o(B -$B$l$k$H$-$K!"4|8B$,$o$+$i$J$$5-;v$G$bM-L5$r8@$o$:>C$7$F$7$^$$$^$9!#$^$"!"(B -$BG/$NJk$l$NBgA]=|$N$H$-$K$G$b;H$C$F2<$5$$!#(B -@end table +@c This comment line is needed to prevent texinfmt bug. :-( +$B$"$J$?$N%7%9%F%`$K$9$G$K(B emacs-w3m $B$,%$%s%9%H!<%k$5$l$F$$$k$N$J$i$P!"(B +(@pxref{Nnshimbun, , Nnshimbun, emacs-w3m-ja, Emacs-w3m-ja}) $B$r;2>H$7$F(B +$B2<$5$$!#(B @node RSS @subsection RSS @@ -20288,8 +20077,8 @@ buf-name = group | article | summary ... $B%&%#%s%I%&@_Dj$G!">.$5$JDI2C$N%U%l!<%`$,(B picon $B$rI=<($9$k$?$a$K:n$i$l$k(B $B$H$$$&;v$K$J$j$^$9!#$4Mw$NDL$j!"IaDL$N(B @code{1.0} $B:G>e0L;XDj$NBe$o$j$K!"(B $B$=$l$>$l$NDI2C$NJ,3d$,%U%l!<%`%Q%i%a!<%?O"A[%j%9%H$rBg$-$5;XDj$H$7$F;}$?(B -$B$J$1$l$P$J$j$^$;$s!#(B@xref{Frame Parameters, , Frame Parameters, elisp, -The GNU Emacs Lisp Reference Manual}$B!#(BXEmacs $B$G$O!"%U%l!<%`%W%m%Q%F%#%j(B +$B$J$1$l$P$J$j$^$;$s(B (@pxref{Frame Parameters, , Frame Parameters, elisp, +The GNU Emacs Lisp Reference Manual})$B!#(BXEmacs $B$G$O!"%U%l!<%`%W%m%Q%F%#%j(B $B%9%H$b;H$($^$9(B---$BNc$($P!"(B@code{(height 5 width 15 left -1 top 1)} $B$O$=$N(B $B$h$&$J%Q%i%a!<%?%j%9%H$G$9!#(B @code{gnus-buffer-configuration} $B$K;HMQ2DG=$JA4$F$N%-!<$N0lMw$O$=$N=i4|(B @@ -24713,7 +24502,7 @@ Sieve $B$N5,B'$O%0%k!<%W%Q%i%a!<%?$H$7$F2C$($k$3$H$,$G$-!"%0%k!<%W%P%C%U%!(B $B$G(B @kbd{D g} $B$r;H$&$H40A4$J(B Sieve $B%9%/%j%W%H$,@8@.$5$l$^$9!#$=$&$7$?$i!"(B $B@8@.$5$l$?(B Sieve $B%P%C%U%!$G(B @kbd{C-c C-l} $B$r;H$C$F!"%5!<%P!<$K%"%C%W%m!<(B $B%I$7$F2<$5$$!#(B@xref{Sieve Commands}$B!"$=$l$K?7$7$$(B Sieve $B$N%^%K%e%"(B -$B%k(B @ref{Top, , Top, sieve, Emacs Sieve} $B$r;2>H$7$F2<$5$$!#(B +$B%k(B (@pxref{Top, , Top, sieve, Emacs Sieve}) $B$r;2>H$7$F2<$5$$!#(B @item $B3HD%$5$l$?%U%)!<%^%C%H$N;EMM(B (format specs)$B!#(B diff --git a/texi/infohack.el b/texi/infohack.el index 982c9a5..2599024 100644 --- a/texi/infohack.el +++ b/texi/infohack.el @@ -162,16 +162,16 @@ Both characters must have the same length of multi-byte form." (fset 'message (byte-compile (if (boundp 'MULE) - (lambda (fmt &rest args) - (funcall si:message "%s" - (code-convert-string - (apply 'format fmt args) - '*internal* '*junet*))) - (lambda (fmt &rest args) - (funcall si:message "%s" - (encode-coding-string - (apply 'format fmt args) - 'iso-2022-7bit)))))) + `(lambda (fmt &rest args) + (funcall ,si:message "%s" + (code-convert-string + (apply 'format fmt args) + '*internal* '*junet*))) + `(lambda (fmt &rest args) + (funcall ,si:message "%s" + (encode-coding-string + (apply 'format fmt args) + 'iso-2022-7bit)))))) (unwind-protect (texinfo-format-buffer nil) (fset 'message si:message)))