From cd1e2a6b8c45abd9b701753cedffa6581c2ff35d Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 17 Sep 2001 02:07:43 +0000 Subject: [PATCH] Synch with Oort Gnus and Nana-gnus 7.1.0.26. --- ChangeLog | 5 +++ lisp/ChangeLog | 31 ++++++++++++++++ lisp/gnus-bbdb.el | 8 ++-- lisp/gnus-draft.el | 7 ++-- lisp/gnus-group.el | 7 +--- lisp/gnus-spec.el | 104 ++++++++++++++++++++-------------------------------- lisp/gnus-start.el | 6 +++ lisp/nnimap.el | 6 +++ lisp/nnml.el | 10 +++-- texi/ChangeLog | 4 ++ texi/gnus-ja.texi | 10 +++++ texi/gnus.texi | 10 +++++ 12 files changed, 126 insertions(+), 82 deletions(-) diff --git a/ChangeLog b/ChangeLog index 68669c6..fc289df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2001-09-17 Keiichi Suzuki + + * lisp/gnus-bbdb.el (gnus-bbdb/insert-address-regexp): + `regexp-quote' for each addresses. + 2001-09-16 Katsuhiro Hermit Endo * gnus-ja.texi (Drafts): Fix typo. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bdb626b..050749e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,34 @@ +2001-09-15 Simon Josefsson + + * gnus-group.el (gnus-group-line-format): Document %c. + + * nnml.el (nnml-parse-head): Handle CRLF files. + (nnml-generate-nov-file): Ditto. + (nnml-retrieve-headers): Ditto. + +2001-09-15 Michael Welsh Duggan + + * gnus-spec.el (gnus-parse-format): Don't treat %c as %C. + +2001-09-13 Martin Kretzschmar + + * gnus-spec.el (gnus-correct-substring): Still stopped one + character before we wanted (never included last character). + (gnus-tilde-max-form, gnus-tilde-cut-form) Made readable again, + add missing "," (once per function) + +2001-09-14 Simon Josefsson + + * gnus-start.el (gnus-group-mode-hook): Moved from gnus-group + (otherwise e.g. gnus-agentize in .gnus overrides the customized + default before gnus-group is loaded and the variable set.) + + * nnimap.el (nnimap-request-set-mark): Do not store bookmark, + killed or unsent marks. + + * gnus-draft.el (gnus-draft-setup): Don't set mark when there + isn't an article to set it on (e.g. when you `a' in a group). + 2001-09-12 Pavel Jan,Bm(Bk * mm-util.el (mm-charset-synonym-alist): add windows-1250 so we diff --git a/lisp/gnus-bbdb.el b/lisp/gnus-bbdb.el index e2dbeca..d8d6960 100644 --- a/lisp/gnus-bbdb.el +++ b/lisp/gnus-bbdb.el @@ -196,10 +196,10 @@ BBDB-FIELD values is returned. Otherwise, GROUP is returned." (unless (eq (point) (point-min)) (insert "\\|")) (let ((addr (nth 1 address))) - (insert (std11-addr-to-string - (if (eq (car addr) 'phrase-route-addr) - (nth 2 addr) - (cdr addr)))))))) + (insert (regexp-quote (std11-addr-to-string + (if (eq (car addr) 'phrase-route-addr) + (nth 2 addr) + (cdr addr))))))))) (defun gnus-bbdb/split-mail-1 (address-regexp bbdb-field regexp group) (let ((records (bbdb-search (bbdb-records) nil nil address-regexp)) diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index dd93227..4704739 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -254,9 +254,10 @@ (setq message-post-method `(lambda (arg) (gnus-post-method arg ,(car ga)))) - (message-add-action - `(gnus-add-mark ,(car ga) 'replied ,(cadr ga)) - 'send)))) + (unless (equal (cadr 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 65ce2f0..0442d94 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -153,6 +153,7 @@ with some simple extensions. %y Number of unread, unticked articles (integer) %G Group name (string) %g Qualified group name (string) +%c Short (collapsed) group name. See `gnus-group-uncollapsed-levels'. %D Group description (string) %s Select method (string) %o Moderated group (char, \"m\") @@ -201,12 +202,6 @@ with some simple extensions: :group 'gnus-group-visual :type 'string) -(defcustom gnus-group-mode-hook nil - "Hook for Gnus group mode." - :group 'gnus-group-various - :options '(gnus-topic-mode) - :type 'hook) - ;; Extracted from gnus-xmas-redefine in order to preserve user settings (when (featurep 'xemacs) (add-hook 'gnus-group-mode-hook 'gnus-xmas-group-menu-add) diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index 7e21fb9..f11775e 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -305,94 +305,67 @@ (defun gnus-correct-substring (string start &optional end) (let ((wstart 0) (wend 0) + (wseek 0) (seek 0) - (length (length string))) + (length (length string)) + (string (concat string "\0"))) ;; Find the start position. (while (and (< seek length) - (< wstart start)) - (incf wstart (gnus-char-width (aref string seek))) + (< wseek start)) + (incf wseek (gnus-char-width (aref string seek))) (incf seek)) - (setq wend wstart - wstart seek) + (setq wstart seek) ;; Find the end position. - (while (and (< seek length) + (while (and (<= seek length) (or (not end) - (<= wend end))) - (incf wend (gnus-char-width (aref string seek))) + (<= wseek end))) + (incf wseek (gnus-char-width (aref string seek))) (incf seek)) (setq wend seek) (substring string wstart (1- wend)))) (defun gnus-tilde-max-form (el max-width) "Return a form that limits EL to MAX-WIDTH." - (let ((max (abs max-width))) - (if (symbolp el) - `(if (> (,(if gnus-use-correct-string-widths + (let ((max (abs max-width)) + (length-fun (if gnus-use-correct-string-widths 'gnus-correct-length - 'length) ,el) - ,max) - ,(if (< max-width 0) - `(,(if gnus-use-correct-string-widths - 'gnus-correct-substring - 'substring) - ,el (- (,(if gnus-use-correct-string-widths - 'gnus-correct-length - 'length) - el) ,max)) - `(,(if gnus-use-correct-string-widths + 'length)) + (substring-fun (if gnus-use-correct-string-widths 'gnus-correct-substring - 'substring) - ,el 0 ,max)) + 'substring))) + (if (symbolp el) + `(if (> (,length-fun ,el) ,max) + ,(if (< max-width 0) + `(,substring-fun ,el (- (,length-fun ,el) ,max)) + `(,substring-fun ,el 0 ,max)) ,el) `(let ((val (eval ,el))) - (if (> (,(if gnus-use-correct-string-widths - 'gnus-correct-length - 'length) val) ,max) + (if (> (,length-fun val) ,max) ,(if (< max-width 0) - `(,(if gnus-use-correct-string-widths - 'gnus-correct-substring - 'substring) - val (- (,(if gnus-use-correct-string-widths - 'gnus-correct-length - 'length) val) ,max)) - `(,(if gnus-use-correct-string-widths - 'gnus-correct-substring - 'substring) - val 0 ,max)) + `(,substring-fun val (- (,length-fun val) ,max)) + `(,substring-fun val 0 ,max)) val))))) (defun gnus-tilde-cut-form (el cut-width) "Return a form that cuts CUT-WIDTH off of EL." - (let ((cut (abs cut-width))) - (if (symbolp el) - `(if (> (,(if gnus-use-correct-string-widths + (let ((cut (abs cut-width)) + (length-fun (if gnus-use-correct-string-widths 'gnus-correct-length - 'length) ,el) ,cut) - ,(if (< cut-width 0) - `(,(if gnus-use-correct-string-widths - 'gnus-correct-substring - 'substring) ,el 0 - (- (,(if gnus-use-correct-string-widths - 'gnus-correct-length - 'length) el) ,cut)) - `(,(if gnus-use-correct-string-widths + 'length)) + (substring-fun (if gnus-use-correct-string-widths 'gnus-correct-substring - 'substring) ,el ,cut)) + 'substring))) + (if (symbolp el) + `(if (> (,length-fun ,el) ,cut) + ,(if (< cut-width 0) + `(,substring-fun ,el 0 (- (,length-fun ,el) ,cut)) + `(,substring-fun ,el ,cut)) ,el) `(let ((val (eval ,el))) - (if (> (,(if gnus-use-correct-string-widths - 'gnus-correct-length - 'length) val) ,cut) + (if (> (,length-fun val) ,cut) ,(if (< cut-width 0) - `(,(if gnus-use-correct-string-widths - 'gnus-correct-substring - 'substring) val 0 - (- (,(if gnus-use-correct-string-widths - 'gnus-correct-length - 'length) val) ,cut)) - `(,(if gnus-use-correct-string-widths - 'gnus-correct-substring - 'substring) val ,cut)) + `(,substring-fun val 0 (- (,length-fun val) ,cut)) + `(,substring-fun val ,cut)) val))))) (defun gnus-tilde-ignore-form (el ignore-value) @@ -432,12 +405,13 @@ characters when given a pad value." ;; the text between them will have the mouse-face text property. ;; If the FORMAT string contains the specifiers %[ and %], the text between ;; them will have the balloon-help text property. - (if (string-match + (let ((case-fold-search nil)) + (if (string-match "\\`\\(.*\\)%[0-9]?[{(«]\\(.*\\)%[0-9]?[»})]\\(.*\n?\\)\\'" format) (gnus-parse-complex-format format spec-alist) - ;; This is a simple format. - (gnus-parse-simple-format format spec-alist insert))) + ;; This is a simple format. + (gnus-parse-simple-format format spec-alist insert)))) (defun gnus-parse-complex-format (format spec-alist) (save-excursion diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 7c39e65..a03b270 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -404,6 +404,12 @@ Can be used to turn version control on or off." :group 'gnus-newsrc :type 'hook) +(defcustom gnus-group-mode-hook nil + "Hook for Gnus group mode." + :group 'gnus-group-various + :options '(gnus-topic-mode) + :type 'hook) + (defcustom gnus-always-read-dribble-file nil "Unconditionally read the dribble file." :group 'gnus-newsrc diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 2dfcedf..18ab8b7 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -953,6 +953,12 @@ function is generally only called when Gnus is shutting down." (what (nth 1 action)) (cmdmarks (nth 2 action)) marks) + ;; bookmark can't be stored (not list/range + (setq cmdmarks (delq 'bookmark cmdmarks)) + ;; killed can't be stored (not list/range + (setq cmdmarks (delq 'killed cmdmarks)) + ;; unsent are for nndraft groups only + (setq cmdmarks (delq 'unsent cmdmarks)) ;; cache flags are pointless on the server (setq cmdmarks (delq 'cache cmdmarks)) ;; seen flags are local to each gnus diff --git a/lisp/nnml.el b/lisp/nnml.el index 710c882..e5927b2 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -160,7 +160,7 @@ This variable is a virtual server slot. See the Gnus manual for details.") (setq beg (point)) (nnheader-insert-head file) (goto-char beg) - (if (search-forward "\n\n" nil t) + (if (re-search-forward "\n\r?\n" nil t) (forward-char -1) (goto-char (point-max)) (insert "\n\n")) @@ -720,13 +720,15 @@ This variable is a virtual server slot. See the Gnus manual for details.") (unless (zerop (buffer-size)) (narrow-to-region (goto-char (point-min)) - (if (search-forward "\n\n" nil t) (1- (point)) (point-max)))) + (if (re-search-forward "\n\r?\n" nil t) (1- (point)) (point-max)))) ;; Fold continuation lines. (goto-char (point-min)) (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t) (replace-match " " t t)) ;; Remove any tabs; they are too confusing. (subst-char-in-region (point-min) (point-max) ?\t ? ) + ;; Remove any ^M's; they are too confusing. + (subst-char-in-region (point-min) (point-max) ?\r ? ) (let ((headers (nnheader-parse-head t))) (mail-header-set-chars headers chars) (mail-header-set-number headers number) @@ -845,7 +847,7 @@ This variable is a virtual server slot. See the Gnus manual for details.") (narrow-to-region (goto-char (point-min)) (progn - (search-forward "\n\n" nil t) + (re-search-forward "\n\r?\n" nil t) (setq chars (- (point-max) (point))) (max 1 (1- (point))))) (unless (zerop (buffer-size)) @@ -980,7 +982,7 @@ Use the nov database for the current group if available." (if (null (gnus-gethash file nnml-marks-modtime)) t ;; never looked at marks file, assume it has changed (not (eq (gnus-gethash file nnml-marks-modtime) - (nth 5 (file-attributes file))))))) + (nth 5 (file-attributes file))))))) (defun nnml-save-marks (group server) (let ((file-name-coding-system nnmail-pathname-coding-system) diff --git a/texi/ChangeLog b/texi/ChangeLog index 01a79ea..cfa09d2 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +2001-09-14 Simon Josefsson + + * gnus.texi (Mail Folders): Add. + 2001-09-11 Simon Josefsson * gnus.texi (Delayed Articles): Fix. Suggested by Paul Jarc diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 49174b2..4adb478 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -12688,6 +12688,11 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM(B @vindex nnfolder-nov-file-suffix @sc{nov} $B%U%!%$%k$N3HD%;R$G$9!#%G%#%U%)%k%H$O(B @file{.nov} $B$G$9!#(B +@item nnfolder-nov-directory +@vindex nnfolder-nov-directory +@sc{nov} $B%U%!%$%k$,3JG<$5$l$k%G%#%l%/%H%j$G$9!#(Bnil $B$@$C$?(B +$B$i(B @code{nnfolder-directory} $B$,;H$o$l$^$9!#(B + @item nnfolder-marks-is-evil @vindex nnfolder-marks-is-evil $BHs(B@code{nil} $B$G$"$k$H!"$3$N%P%C%/%(%s%I$O$$$+$J$k(B @sc{$B0u(B} $B%U%!%$%k$r$b(B @@ -12696,6 +12701,11 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM(B @item nnfolder-marks-file-suffix @vindex nnfolder-marks-file-suffix @sc{$B0u(B} $B%U%!%$%k$N3HD%;R$G$9!#%G%#%U%)%k%H$O(B @file{.mrk} $B$G$9!#(B + +@item nnfolder-marks-directory +@vindex nnfolder-marks-directory +@sc{$B0u(B} $B%U%!%$%k$,3JG<$5$l$k%G%#%l%/%H%j$G$9!#(Bnil $B$@$C$?(B +$B$i(B @code{nnfolder-directory} $B$,;H$o$l$^$9!#(B @end table @findex nnfolder-generate-active-file diff --git a/texi/gnus.texi b/texi/gnus.texi index a1ae283..5c2684d 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -13302,6 +13302,11 @@ default is @code{nil}. @vindex nnfolder-nov-file-suffix The extension for @sc{nov} files. The default is @file{.nov}. +@item nnfolder-nov-directory +@vindex nnfolder-nov-directory +The directory where the @sc{nov} files should be stored. If nil, +@code{nnfolder-directory} is used. + @item nnfolder-marks-is-evil @vindex nnfolder-marks-is-evil If non-@code{nil}, this backend will ignore any @sc{marks} files. The @@ -13311,6 +13316,11 @@ default is @code{nil}. @vindex nnfolder-marks-file-suffix The extension for @sc{marks} files. The default is @file{.mrk}. +@item nnfolder-marks-directory +@vindex nnfolder-marks-directory +The directory where the @sc{marks} files should be stored. If nil, +@code{nnfolder-directory} is used. + @end table -- 1.7.10.4