From c6a1593ab5f79edeb3bdb71271d8f985fe7ec0e3 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Sun, 26 Jan 2003 12:27:48 +0000 Subject: [PATCH] Synch with Oort Gnus. --- lisp/ChangeLog | 26 ++++++++++++++++++++++++++ lisp/gnus-group.el | 4 +++- lisp/gnus-sum.el | 2 ++ lisp/mm-decode.el | 13 ++----------- lisp/mm-encode.el | 33 ++++++++++++++++++--------------- lisp/nnimap.el | 4 +++- lisp/nnmail.el | 18 +++++++++++------- lisp/sieve-manage.el | 8 +++++++- lisp/sieve.el | 6 ++++-- texi/ChangeLog | 4 ++++ texi/gnus-ja.texi | 2 +- texi/gnus.texi | 2 +- 12 files changed, 82 insertions(+), 40 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index aa854b4..f1c7875 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,29 @@ +2003-01-26 Jesper Harder + + * mm-decode.el (mm-dissection-list): Remove. + (mm-dissect-singlepart): Don't push to mm-dissection-list, it's + only used in mm-remove-all-parts. + (mm-remove-all-parts): Remove it, it's never called. + +2003-01-25 Simon Josefsson + + * gnus-group.el (gnus-group-make-group): Report errors. + + * nnimap.el (nnimap-request-create-group): Ditto. + + * sieve-manage.el (sieve-manage-is-okno): Parse literal strings. + + * sieve.el (sieve-upload): Fix error printing. + + * mm-encode.el (mm-qp-or-base64): Always QP iff + mm-use-ultra-safe-encoding and cleartext PGP. + + * gnus-sum.el (gnus-summary-select-article): Inhibit + redisplay (mainly for secured messages). + + * nnmail.el (nnmail-article-group): Copy body too (but don't + process it). + 2003-01-25 Jesper Harder * gnus-art.el (gnus-article-setup-buffer): Reset diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 2c662a3..de23c64 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -2262,7 +2262,9 @@ ADDRESS." (require backend)) (gnus-check-server meth) (when (gnus-check-backend-function 'request-create-group nname) - (gnus-request-create-group nname nil args)) + (unless (gnus-request-create-group nname nil args) + (error "Could not create group on server: %s" + (nnheader-get-report backend)))) t)) (defun gnus-group-delete-groups (&optional arg) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 3cdf51e..9d3fa9c 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -6906,6 +6906,8 @@ be displayed." (set-buffer gnus-summary-buffer)) (let ((article (or article (gnus-summary-article-number))) (all-headers (not (not all-headers))) ;Must be T or NIL. + ;; prevent redisplay to cause flashy displays + (inhibit-redisplay t) gnus-summary-display-article-function) (and (not pseudo) (gnus-summary-article-pseudo-p article) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 9e127a0..b8471c4 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -355,7 +355,6 @@ If not set, `default-directory' will be used." ;;; Internal variables. -(defvar mm-dissection-list nil) (defvar mm-last-shell-command "") (defvar mm-content-id-alist nil) (defvar mm-postponed-undisplay-list nil) @@ -552,16 +551,8 @@ for types in mm-keep-viewer-alive-types." (if (equal "text/plain" (car ctl)) (assoc 'format ctl) t)) - (let ((res (mm-make-handle - (mm-copy-to-buffer) ctl cte nil cdl description nil id))) - (push (car res) mm-dissection-list) - res))) - -(defun mm-remove-all-parts () - "Remove all MIME handles." - (interactive) - (mapcar 'mm-remove-part mm-dissection-list) - (setq mm-dissection-list nil)) + (mm-make-handle + (mm-copy-to-buffer) ctl cte nil cdl description nil id))) (defun mm-dissect-multipart (ctl) (goto-char (point-min)) diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index 4338eb9..9784871 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -164,21 +164,24 @@ The encoding used is returned." (pop rules))))) (defun mm-qp-or-base64 () - (save-excursion - (let ((limit (min (point-max) (+ 2000 (point-min)))) - (n8bit 0)) - (goto-char (point-min)) - (skip-chars-forward "\x20-\x7f\r\n\t" limit) - (while (< (point) limit) - (incf n8bit) - (forward-char 1) - (skip-chars-forward "\x20-\x7f\r\n\t" limit)) - (if (or (< (* 6 n8bit) (- limit (point-min))) - ;; Don't base64, say, a short line with a single - ;; non-ASCII char when splitting parts by charset. - (= n8bit 1)) - 'quoted-printable - 'base64)))) + (if (equal mm-use-ultra-safe-encoding '(sign . "pgp")) + ;; perhaps not always accurate? + 'quoted-printable + (save-excursion + (let ((limit (min (point-max) (+ 2000 (point-min)))) + (n8bit 0)) + (goto-char (point-min)) + (skip-chars-forward "\x20-\x7f\r\n\t" limit) + (while (< (point) limit) + (incf n8bit) + (forward-char 1) + (skip-chars-forward "\x20-\x7f\r\n\t" limit)) + (if (or (< (* 6 n8bit) (- limit (point-min))) + ;; Don't base64, say, a short line with a single + ;; non-ASCII char when splitting parts by charset. + (= n8bit 1)) + 'quoted-printable + 'base64))))) (provide 'mm-encode) diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 182f34f..e8e732f 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -1328,7 +1328,9 @@ function is generally only called when Gnus is shutting down." (deffoo nnimap-request-create-group (group &optional server args) (when (nnimap-possibly-change-server server) (or (imap-mailbox-status group 'uidvalidity nnimap-server-buffer) - (imap-mailbox-create group nnimap-server-buffer)))) + (imap-mailbox-create group nnimap-server-buffer) + (nnheader-report 'nnimap "%S" + (imap-error-text nnimap-server-buffer))))) (defun nnimap-time-substract (time1 time2) "Return TIME for TIME1 - TIME2." diff --git a/lisp/nnmail.el b/lisp/nnmail.el index b8d4de3..3607014 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -999,8 +999,7 @@ FUNC will be called with the buffer narrowed to each mail." FUNC will be called with the group name to determine the article number." (let ((methods (or nnmail-split-methods '(("bogus" "")))) (obuf (current-buffer)) - (beg (point-min)) - end group-art method grp) + group-art method grp) (if (and (sequencep methods) (= (length methods) 1)) ;; If there is only just one group to put everything in, we @@ -1009,13 +1008,17 @@ FUNC will be called with the group name to determine the article number." (list (cons (caar methods) (funcall func (caar methods))))) ;; We do actual comparison. (save-excursion - ;; Find headers. - (goto-char beg) - (setq end (if (search-forward "\n\n" nil t) (point) (point-max))) + ;; Copy the article into the work buffer. (set-buffer nntp-server-buffer) (erase-buffer) - ;; Copy the headers into the work buffer. - (insert-buffer-substring obuf beg end) + (insert-buffer-substring obuf) + ;; Narrow to headers. + (narrow-to-region + (goto-char (point-min)) + (if (search-forward "\n\n" nil t) + (point) + (point-max))) + (goto-char (point-min)) ;; Decode MIME headers and charsets. (when nnmail-mail-splitting-decodes (mime-decode-header-in-region (point-min) (point-max) @@ -1107,6 +1110,7 @@ FUNC will be called with the group name to determine the article number." (goto-char (point-min)) (gnus-configure-windows 'split-trace) (set-buffer restore))) + (widen) ;; See whether the split methods returned `junk'. (if (equal group-art '(junk)) nil diff --git a/lisp/sieve-manage.el b/lisp/sieve-manage.el index 967c721..0b17049 100644 --- a/lisp/sieve-manage.el +++ b/lisp/sieve-manage.el @@ -535,7 +535,13 @@ password is remembered in the buffer." (when (looking-at (concat "^\\(OK\\|NO\\)\\( (\\([^)]+\\))\\)?\\( \\(.*\\)\\)?" sieve-manage-server-eol)) - (list (match-string 1) (match-string 3) (match-string 5)))) + (let ((status (match-string 1)) + (resp-code (match-string 3)) + (response (match-string 5))) + (when response + (goto-char (match-beginning 5)) + (setq response (sieve-manage-is-string))) + (list status resp-code response)))) (defun sieve-manage-parse-okno () (let (rsp) diff --git a/lisp/sieve.el b/lisp/sieve.el index edfd385..b967930 100644 --- a/lisp/sieve.el +++ b/lisp/sieve.el @@ -368,8 +368,10 @@ Server : " server ":" (or port "2000") " (with-current-buffer (get-buffer sieve-buffer) (setq err (sieve-manage-putscript name script sieve-manage-buffer)) (if (sieve-manage-ok-p err) - (message (concat "Sieve upload done. Use `C-c RET' to manage scripts.")) - (message "Sieve upload failed: %s" (nth 2 err))))))) + (message (concat + "Sieve upload done. Use `C-c RET' to manage scripts.")) + (message "Sieve upload failed: %s" + (replace-regexp-in-string "[\n\r\t]+" " " (nth 2 err)))))))) ;;;###autoload (defun sieve-upload-and-bury (&optional name) diff --git a/texi/ChangeLog b/texi/ChangeLog index efeb708..cacccb3 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +2003-01-26 Jesper Harder + + * gnus.texi (Article Backlog): Update. + 2003-01-23 Lars Magne Ingebrigtsen * gnus.texi (NNTP): Addition. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 28c5955..042441a 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -7052,7 +7052,7 @@ gnus は物事を正しくするために二つの関数をお勧めします。 るまで制限なく膨れ上がるということです。私はあなた方全てが元気でいられる ようにここに書き加えました。 -この変数はディフォルトでは @code{nil} です。 +ディフォルト値は 20 です。 @node Saving Articles @section 記事の保存 diff --git a/texi/gnus.texi b/texi/gnus.texi index 7c20e90..54a5230 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -7159,7 +7159,7 @@ variable is non-@code{nil} and is not a number, gnus will store bound before exploding and taking your machine down with you. I put that in there just to keep y'all on your toes. -This variable is @code{nil} by default. +The default value is 20. @node Saving Articles -- 1.7.10.4