From e9d7814ea172db1a3bc6387004bf2e89c55213ba Mon Sep 17 00:00:00 2001 From: yamaoka Date: Tue, 4 Jun 2002 00:26:25 +0000 Subject: [PATCH] T-gnus 6.15.7 revision 01. * lisp/gnus-vers.el (gnus-revision-number): Increment to 01. * contrib/gpg-ring.el: Remove RCS magic cookie. * lisp/nnir.el: Ditto. * texi/ptexinfmt.el (texinfo-discard-command-and-arg): New function. ;; Simon Josefsson * lisp/nnmail.el (nnmail-mail-splitting-decodes): New variable. (nnmail-article-group): Use it. ;; TAKAHASHI Kaoru * texi/ptexinfmt.el: discard @cartouche. @anchor discard for Mule 2.3. Support @., @:, @-. (texinfo-format-inforef): New function. --- ChangeLog | 16 ++++ contrib/gpg-ring.el | 2 - lisp/ChangeLog | 5 ++ lisp/gnus-vers.el | 6 +- lisp/nnir.el | 4 +- lisp/nnmail.el | 10 ++- texi/ChangeLog | 4 + texi/gnus-ja.texi | 13 +++ texi/gnus.texi | 9 ++ texi/ptexinfmt.el | 241 ++++++++++++++++++++++++++++++--------------------- 10 files changed, 202 insertions(+), 108 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6bb319a..ff5e819 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2002-06-04 Katsumi Yamaoka + + * lisp/gnus-vers.el (gnus-revision-number): Increment to 01. + + * contrib/gpg-ring.el: Remove RCS magic cookie. + * lisp/nnir.el: Ditto. + + * texi/ptexinfmt.el (texinfo-discard-command-and-arg): New + function. + +2002-06-03 TAKAHASHI Kaoru + + * texi/ptexinfmt.el: discard @cartouche. @anchor discard for Mule + 2.3. Support @., @:, @-. + (texinfo-format-inforef): New function. + 2002-05-30 Katsumi Yamaoka * lisp/nnheader.el (nnheader-unfold-fws): New function copied from diff --git a/contrib/gpg-ring.el b/contrib/gpg-ring.el index d402886..dd223bf 100644 --- a/contrib/gpg-ring.el +++ b/contrib/gpg-ring.el @@ -7,8 +7,6 @@ ;; Keywords: crypto ;; Created: 2000-04-28 -;; $Id: gpg-ring.el,v 1.1.4.2 2001-07-15 23:22:50 yamaoka Exp $ - ;; This file is NOT (yet?) part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 09aba95..6a26bb0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2002-06-03 Simon Josefsson + + * nnmail.el (nnmail-mail-splitting-decodes): New variable. + (nnmail-article-group): Use it. + 2002-05-30 Kai Gro,b_(Bjohann * gnus-msg.el (gnus-inews-yank-articles): Merge split header lines diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index c341989..ab2b8c0 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -1,6 +1,6 @@ -;;; gnus-vers.el --- Declare gnus version. +;;; gnus-vers.el --- Declare gnus version -;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. ;; Author: Keiichi Suzuki ;; Katsumi Yamaoka @@ -34,7 +34,7 @@ (require 'product) (provide 'gnus-vers) -(defconst gnus-revision-number "00" +(defconst gnus-revision-number "02" "Revision number for this version of gnus.") ;; Product information of this gnus. diff --git a/lisp/nnir.el b/lisp/nnir.el index 7006fe7..846db89 100644 --- a/lisp/nnir.el +++ b/lisp/nnir.el @@ -1,8 +1,6 @@ ;;; nnir.el --- search mail with various search engines ;; Copyright (C) 1998 Kai Großjohann -;; $Id: nnir.el,v 1.72 2001/08/17 11:15:13 grossjoh Exp $ - ;; Author: Kai Großjohann ;; Keywords: news, mail, searching, ir, glimpse, wais @@ -287,7 +285,7 @@ ;;; Setup Code: -(defconst nnir-version "$Id: nnir.el,v 1.72 2001/08/17 11:15:13 grossjoh Exp $" +(defconst nnir-version "1.72" "Version of NNIR.") (require 'cl) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 311dc75..9548dad 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -483,6 +483,11 @@ parameter. It should return nil, `warn' or `delete'." :group 'nnmail :type 'symbol) +(defcustom nnmail-mail-splitting-decodes t + "Whether the nnmail splitting functionality should MIME decode headers." + :group 'nnmail + :type 'boolean) + ;;; Internal variables. (defvar nnmail-article-buffer " *nnmail incoming*" @@ -1001,8 +1006,9 @@ FUNC will be called with the group name to determine the article number." ;; Copy the headers into the work buffer. (insert-buffer-substring obuf beg end) ;; Decode MIME headers and charsets. - (mime-decode-header-in-region (point-min) (point-max) - nnmail-mail-splitting-charset) + (when nnmail-mail-splitting-decodes + (mime-decode-header-in-region (point-min) (point-max) + nnmail-mail-splitting-charset)) ;; Fold continuation lines. (goto-char (point-min)) (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t) diff --git a/texi/ChangeLog b/texi/ChangeLog index 93ff83a..a29f48f 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +2002-06-03 Simon Josefsson + + * gnus.texi (Splitting Mail): Add. + 2002-05-23 Simon Josefsson * gnus.texi (Web Searches): Fix. Trivial change from Niklas diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index c94d073..8240292 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -11843,6 +11843,19 @@ nnmail-split-history} $B$r;H$&;v$,$G$-$^$9!#$3$l$+$i%9%W!<%k$7D>$=$&$H$9$k(B @code{nnmail-split-header-length-limit} $B$N@)8B$h$jD9$$%X%C%@!<9T$O!"J,3d(B $B4X?t$N=hM}BP>]$+$i=|30$5$l$^$9!#(B +@vindex nnmail-mail-splitting-charset +@vindex nnmail-mail-splitting-decodes +($BLuCm(B: $B%*%j%8%J%k$N(B Gnus $B$H$O;EMM$,HyL/$K0[$J$k$3$H$KCm0U$7$F2<$5$$(B) $B%G%#(B +$B%U%)%k%H$G$OJ,3d%3!<%I$O(B @sc{mime} $B%(%s%3!<%I$5$l$?%X%C%@!<$r%G%3!<%I$9(B +$B$k$N$G!"Hs(B-ASCII $BJ8;zNs$K%^%C%A$5$;$k$3$H$,$G$-$^$9!#JQ(B +$B?t(B @code{nnmail-mail-splitting-charset} $B$,(B @sc{mime} $BJ8;z=8(B +$B9g(B (mime-charset) $B$G$"$C$?$i$=$l!"(B@sc{mime} $BJ8;z=89g$G$O$J$$(B +$BHs(B-@code{nil} $B$JCM$@$C$?$i$=$N$H$-$N(B @code{default-mime-charset} $B$NCM$G!"(B +(@sc{mime} $B%(%s%3!<%I$5$l$?$b$N$G$O$J$$(B) $BHs(B-ASCII $B%S%C%H%Q%?!<%s$b%G%3!<(B +$B%I$7$^$9!#$3$NF0:n$O(B @code{nnmail-mail-splitting-decodes} $B$r(B nil $B$K$9$k(B +$B$3$H$K$h$C$F40A4$K;_$a$k$3$H$,$G$-!"@8$N%X%C%@!<$N%G!<%?$r85$K5-;v$K%^%C(B +$B%A$5$;$?$$>l9g$K$OM-8z$G$7$g$&!#(B + Gnus $B$O$"$J$?$K<+J,<+?H$KD7$MJV$C$F$/$k$h$&$J2DG=@-$N$"$kA4$F$N5!2q$rDs(B $B6!$7$^$9!#Nc$($P!"$"$J$?$N>e;J$+$i$/$kA4$F$N%a!<%k$r4^$s$@%0%k!<%W$r:n$C(B $B$?$H$7$^$7$g$&!#$=$l$+$i!"6vH/E*$K$=$N%0%k!<%W$N9XFI -;; Copyright (C) 2000, 2001 TAKAHASHI Kaoru +;; Copyright (C) 2000, 2001, 2002 TAKAHASHI Kaoru ;; Author: TAKAHASHI Kaoru ;; Yoshiki Hayashi @@ -47,7 +47,7 @@ This is NO-NOTICE argument in `broken-facility'.") (broken-facility texinfo-format-printindex "Can't sort on Mule for Windows." (if (and (memq system-type '(windows-nt ms-dos)) -;;; I don't know version threshold. +;;; I don't know version threshold. ;;; (string< texinfmt-version "2.37 of 24 May 1997") (boundp 'MULE) (not (featurep 'meadow))) ; Mule for Windows nil @@ -158,7 +158,6 @@ This is NO-NOTICE argument in `broken-facility'.") ;; misc (put 'page 'texinfo-format 'texinfo-discard-line) -(put 'hyphenation 'texinfo-format 'texinfo-discard-command-and-arg) @@ -221,8 +220,12 @@ This is NO-NOTICE argument in `broken-facility'.") (put 'endhtml 'texinfo-format 'texinfo-discard-line) (defun-maybe texinfo-format-html () (delete-region texinfo-command-start - (progn (re-search-forward "@end html[ \t]*\n") - (point)))) + (progn (re-search-forward "@end html[ \t]*\n") + (point)))) + +;; @cartouche ... @end cartouche +(put 'cartouche 'texinfo-format 'texinfo-discard-line) +(put 'cartouche 'texinfo-end 'texinfo-discard-command) @@ -254,7 +257,7 @@ This is NO-NOTICE argument in `broken-facility'.") "Format EMAIL-ADDRESS and optional DISPLAYED-TXT. Insert < ... > around EMAIL-ADDRESS." (let ((args (texinfo-format-parse-args))) - (texinfo-discard-command) + (texinfo-discard-command) ;; if displayed-text (if (nth 1 args) (insert (nth 1 args) " <" (nth 0 args) ">") @@ -421,6 +424,21 @@ Insert < ... > around EMAIL-ADDRESS." (insert (texinfo-parse-arg-discard)) (goto-char texinfo-command-start)) +;; @. +(put '\. 'texinfo-format 'texinfo-format-\.) +(defun-maybe texinfo-format-\. () + (texinfo-discard-command) + (insert ".")) + +;; @: +(put '\: 'texinfo-format 'texinfo-format-\:) +(defun-maybe texinfo-format-\: () + (texinfo-discard-command)) + +;; @- +(put '\- 'texinfo-format 'texinfo-format-soft-hyphen) +(defun-maybe texinfo-format-soft-hyphen () + (texinfo-discard-command)) ;;; Cross References @@ -454,9 +472,27 @@ otherwise, insert URL-TITLE followed by URL in parentheses." (texinfo-discard-command) ;; if url-title (if (nth 1 args) - (insert (nth 1 args) " (" (nth 0 args) ")") + (insert (nth 1 args) " (" (nth 0 args) ")") (insert "`" (nth 0 args) "'")))) +;; @inforef +(put 'inforef 'texinfo-format 'texinfo-format-inforef) +(defun-maybe texinfo-format-inforef () + (let ((args (texinfo-format-parse-args))) + (texinfo-discard-command) + (if (nth 1 args) + (insert "*Note " (nth 1 args) ": (" (nth 2 args) ")" (car args)) + (insert "*Note " "(" (nth 2 args) ")" (car args) "::")))) + + +;; @anchor +;; don't emulation +;; If support @anchor for Mule 2.3, We must fix informat.el and info.el: +;; - Info-tagify suport @anthor-*-refill. +;; - info.el support Ref in Tag table. +(unless (get 'anchor 'texinfo-format) + (put 'anchor 'texinfo-format 'texinfo-discard-command-and-arg)) + ;;; New command definition @@ -498,6 +534,15 @@ otherwise, insert URL-TITLE followed by URL in parentheses." (goto-char (+ (point) (cadr (insert-file-contents filename)))) (message "Reading included file: %s...done" filename))) +;; @hyphenation command discards an argument within braces +(put 'hyphenation 'texinfo-format 'texinfo-discard-command-and-arg) +(defun-maybe texinfo-discard-command-and-arg () + "Discard both @-command and its argument in braces." + (goto-char texinfo-command-end) + (forward-list 1) + (setq texinfo-command-end (point)) + (delete-region texinfo-command-start texinfo-command-end)) + ;; @exampleindent @@ -561,37 +606,37 @@ otherwise, insert URL-TITLE followed by URL in parentheses." ((looking-at "@columnfractions") (forward-word 1) (while (not (eolp)) - (setq texinfo-multitable-width-list - (cons - (truncate - (1- - (* fill-column (read (get-buffer (current-buffer)))))) - texinfo-multitable-width-list)))) + (setq texinfo-multitable-width-list + (cons + (truncate + (1- + (* fill-column (read (get-buffer (current-buffer)))))) + texinfo-multitable-width-list)))) ;; ;; Case 2: {Column 1 template} {Column 2} {Column 3 example} ((looking-at "{") (let ((start-of-templates (point))) - (while (not (eolp)) - (skip-chars-forward " \t") - (let* ((start-of-template (1+ (point))) - (end-of-template - ;; forward-sexp works with braces in Texinfo mode - (progn (forward-sexp 1) (1- (point))))) - (setq texinfo-multitable-width-list + (while (not (eolp)) + (skip-chars-forward " \t") + (let* ((start-of-template (1+ (point))) + (end-of-template + ;; forward-sexp works with braces in Texinfo mode + (progn (forward-sexp 1) (1- (point))))) + (setq texinfo-multitable-width-list (cons (- (progn (goto-char end-of-template) (current-column)) (progn (goto-char start-of-template) (current-column))) - texinfo-multitable-width-list)) - ;; Remove carriage return from within a template, if any. - ;; This helps those those who want to use more than - ;; one line's worth of words in @multitable line. - (narrow-to-region start-of-template end-of-template) - (goto-char (point-min)) - (while (search-forward " + texinfo-multitable-width-list)) + ;; Remove carriage return from within a template, if any. + ;; This helps those those who want to use more than + ;; one line's worth of words in @multitable line. + (narrow-to-region start-of-template end-of-template) + (goto-char (point-min)) + (while (search-forward " " nil t) - (delete-char -1)) - (goto-char (point-max)) - (widen) - (forward-char 1))))) + (delete-char -1)) + (goto-char (point-max)) + (widen) + (forward-char 1))))) ;; ;; Case 3: Trouble (t @@ -599,18 +644,18 @@ otherwise, insert URL-TITLE followed by URL in parentheses." "You probably need to specify column widths for @multitable correctly"))) ;; Check whether columns fit on page. (let ((desired-columns - (+ - ;; between column spaces - (length texinfo-multitable-width-list) - ;; additional between column spaces, if any - texinfo-extra-inter-column-width - ;; sum of spaces for each entry - (apply '+ texinfo-multitable-width-list)))) + (+ + ;; between column spaces + (length texinfo-multitable-width-list) + ;; additional between column spaces, if any + texinfo-extra-inter-column-width + ;; sum of spaces for each entry + (apply '+ texinfo-multitable-width-list)))) (if (> desired-columns fill-column) - (error - (format - "Multi-column table width, %d chars, is greater than page width, %d chars." - desired-columns fill-column)))) + (error + (format + "Multi-column table width, %d chars, is greater than page width, %d chars." + desired-columns fill-column)))) texinfo-multitable-width-list)) ;; @item A1 @tab A2 @tab A3 @@ -620,14 +665,14 @@ End of row is beginning of next @item or beginning of @end. Cells within rows are separated by @tab." (skip-chars-forward " \t") (let* ((start (point)) - (end (progn - (re-search-forward "@item\\|@end") - (match-beginning 0))) - (row (progn (goto-char end) - (skip-chars-backward " ") - ;; remove whitespace at end of argument - (delete-region (point) end) - (buffer-substring start (point))))) + (end (progn + (re-search-forward "@item\\|@end") + (match-beginning 0))) + (row (progn (goto-char end) + (skip-chars-backward " ") + ;; remove whitespace at end of argument + (delete-region (point) end) + (buffer-substring start (point))))) (delete-region texinfo-command-start end) row)) @@ -642,15 +687,15 @@ Widths of cells are specified by the arguments in the @multitable line. All cells are made to be the same height. This command is executed when texinfmt sees @item inside @multitable." (let ((original-buffer (current-buffer)) - (table-widths (reverse (car (cdr (car texinfo-stack))))) - (existing-fill-column fill-column) - start - end - (table-column 0) - (table-entry-height 0) - ;; unformatted row looks like: A1 @tab A2 @tab A3 - ;; extract-row command deletes the source line in the table. - (unformated-row (texinfo-multitable-extract-row))) + (table-widths (reverse (car (cdr (car texinfo-stack))))) + (existing-fill-column fill-column) + start + end + (table-column 0) + (table-entry-height 0) + ;; unformatted row looks like: A1 @tab A2 @tab A3 + ;; extract-row command deletes the source line in the table. + (unformated-row (texinfo-multitable-extract-row))) ;; Use a temporary buffer (set-buffer (get-buffer-create texinfo-multitable-buffer-name)) (delete-region (point-min) (point-max)) @@ -659,9 +704,9 @@ This command is executed when texinfmt sees @item inside @multitable." ;; 1. Check for correct number of @tab in line. (let ((tab-number 1)) ; one @tab between two columns (while (search-forward "@tab" nil t) - (setq tab-number (1+ tab-number))) + (setq tab-number (1+ tab-number))) (if (/= tab-number (length table-widths)) - (error "Wrong number of @tab's in a @multitable row"))) + (error "Wrong number of @tab's in a @multitable row"))) (goto-char (point-min)) ;; 2. Format each cell, and copy to a rectangle ;; buffer looks like this: A1 @tab A2 @tab A3 @@ -671,16 +716,16 @@ This command is executed when texinfmt sees @item inside @multitable." (while (not (eobp)) (setq start (point)) (setq end (save-excursion - (if (search-forward "@tab" nil 'move) - ;; Delete the @tab command, including the @-sign - (delete-region - (point) - (progn (forward-word -1) (1- (point))))) - (point))) + (if (search-forward "@tab" nil 'move) + ;; Delete the @tab command, including the @-sign + (delete-region + (point) + (progn (forward-word -1) (1- (point))))) + (point))) ;; Set fill-column *wider* than needed to produce inter-column space (setq fill-column (+ 1 - texinfo-extra-inter-column-width - (nth table-column table-widths))) + texinfo-extra-inter-column-width + (nth table-column table-widths))) (narrow-to-region start end) ;; Remove whitespace before and after entry. (skip-chars-forward " ") @@ -691,52 +736,52 @@ This command is executed when texinfmt sees @item inside @multitable." ;; Temorarily set texinfo-stack to nil so texinfo-format-scan ;; does not see an unterminated @multitable. (let (texinfo-stack) ; nil - (texinfo-format-scan)) + (texinfo-format-scan)) (let (fill-prefix) ; no fill prefix - (fill-region (point-min) (point-max))) + (fill-region (point-min) (point-max))) (setq table-entry-height - (max table-entry-height (count-lines (point-min) (point-max)))) + (max table-entry-height (count-lines (point-min) (point-max)))) ;; 3. Move point to end of bottom line, and pad that line to fill column. (goto-char (point-min)) (forward-line (1- table-entry-height)) (let* ((beg (point)) ; beginning of line - ;; add one more space for inter-column spacing - (needed-whitespace - (1+ + ;; add one more space for inter-column spacing + (needed-whitespace + (1+ (- fill-column (progn (end-of-line) (current-column)))))) ; end of existing line - (insert (make-string - (if (> needed-whitespace 0) needed-whitespace 1) - ? ))) + (insert (make-string + (if (> needed-whitespace 0) needed-whitespace 1) + ? ))) ;; now, put formatted cell into a rectangle (set (intern (concat texinfo-multitable-rectangle-name - (int-to-string table-column))) - (extract-rectangle (point-min) (point))) + (int-to-string table-column))) + (extract-rectangle (point-min) (point))) (delete-region (point-min) (point)) (goto-char (point-max)) (setq table-column (1+ table-column)) (widen)) ;; 4. Add extra lines to rectangles so all are of same height (let ((total-number-of-columns table-column) - (column-number 0) - here) + (column-number 0) + here) (while (> table-column 0) - (let ((this-rectangle (int-to-string table-column))) - (while (< (length this-rectangle) table-entry-height) - (setq this-rectangle (append this-rectangle '(""))))) - (setq table-column (1- table-column))) + (let ((this-rectangle (int-to-string table-column))) + (while (< (length this-rectangle) table-entry-height) + (setq this-rectangle (append this-rectangle '(""))))) + (setq table-column (1- table-column))) ;; 5. Insert formatted rectangles in original buffer (switch-to-buffer original-buffer) (open-line table-entry-height) (while (< column-number total-number-of-columns) - (setq here (point)) - (insert-rectangle - (eval (intern - (concat texinfo-multitable-rectangle-name - (int-to-string column-number))))) - (goto-char here) - (end-of-line) - (setq column-number (1+ column-number)))) + (setq here (point)) + (insert-rectangle + (eval (intern + (concat texinfo-multitable-rectangle-name + (int-to-string column-number))))) + (goto-char here) + (end-of-line) + (setq column-number (1+ column-number)))) (kill-buffer texinfo-multitable-buffer-name) (setq fill-column existing-fill-column))) @@ -746,15 +791,15 @@ This command is executed when texinfmt sees @item inside @multitable." (defun-maybe texinfo-format-printindex () (let ((indexelts (symbol-value - (cdr (assoc (texinfo-parse-arg-discard) - texinfo-indexvar-alist)))) - opoint) + (cdr (assoc (texinfo-parse-arg-discard) + texinfo-indexvar-alist)))) + opoint) (insert "\n* Menu:\n\n") (setq opoint (point)) (texinfo-print-index nil indexelts) (if (memq system-type '(vax-vms windows-nt ms-dos)) - (texinfo-sort-region opoint (point)) + (texinfo-sort-region opoint (point)) (shell-command-on-region opoint (point) "sort -fd" 1)))) (provide 'ptexinfmt) -- 1.7.10.4