Synch to Oort Gnus 200304241908.
authoryamaoka <yamaoka>
Thu, 24 Apr 2003 22:37:43 +0000 (22:37 +0000)
committeryamaoka <yamaoka>
Thu, 24 Apr 2003 22:37:43 +0000 (22:37 +0000)
17 files changed:
ChangeLog
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-ems.el
lisp/gnus-group.el
lisp/gnus-start.el
lisp/gnus-util.el
lisp/mm-decode.el
lisp/mm-util.el
lisp/mml-sec.el
lisp/nnheader.el
lisp/nnrss.el
lisp/qp.el
lisp/sieve.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 4832f07..d58004f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * lisp/nnheader.el (nnheader-coding-system-p): New function.
+       (mm-coding-system-p): Alias to `nnheader-coding-system-p'.
+
 2003-04-23  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * lisp/gnus-clfns.el (coerce, copy-list, merge, string, subseq):
index fc7e962..bd9aca0 100644 (file)
@@ -1,3 +1,46 @@
+2003-04-24  Dave Love  <fx@gnu.org>
+
+       * qp.el (quoted-printable-decode-region): Use mm-insert-byte.
+       Signal error on malformed text, as for base64.
+       (quoted-printable-encode-region): DTRT in Emacs 22.
+
+       * mm-util.el (mm-make-temp-file, mm-insert-byte): New.
+       (mm-auto-save-coding-system): Consider utf-8-emacs.
+       (mm-mime-mule-charset-alist, mm-mule-charset-to-mime-charset)
+       (mm-charset-to-coding-system, mm-mime-charset)
+       (mm-find-mime-charset-region): Check for :mime-charset coding
+       systems property.
+
+       * mml-sec.el (mml2015, mml1991): Don't require.
+       (mml2015-sign, mml2015-encrypt, mml1991-sign, mml1991-encrypt) 
+       (message-goto-body, mml-insert-tag): Autoload.
+
+       * mm-decode.el (mm-tmp-directory): Re-write to help avoid warnings.
+
+       * gnus-start.el (message-make-date): Autoload rather than
+       requiring message.
+
+       * gnus-group.el (gnus-group-name-charset-group-alist): Use
+       mm-coding-system-p.
+       (gnus-cache-active-altered): Defvar when compiling.
+       (gnus-group-delete-group): Re-write to help avoid warnings.
+
+       * gnus-art.el (gnus-use-idna): Use mm-coding-system-p.
+
+       * pgg.el: Split eval-when-compile forms.
+
+2003-04-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus-group.el (gnus-large-ephemeral-newsgroup) 
+       (gnus-fetch-old-ephemeral-headers): News variables.
+       (gnus-group-read-ephemeral-group): Use them.
+
+2003-04-24  Simon Josefsson  <jas@extundo.com>
+
+       * sieve.el (sieve-upload): Don't use replace-regexp-in-string.
+
+       * nnrss.el (nnrss-node-text): Ditto.
+
 2003-04-24  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-msg.el (gnus-inews-do-gcc): Make sure the obsolete variable
index 0f2d28c..8b3cd24 100644 (file)
@@ -1433,8 +1433,7 @@ It is a string, such as \"PGP\". If nil, ask user."
   "Function used for converting HTML into text.")
 
 (defcustom gnus-use-idna (and (condition-case nil (require 'idna) (file-error))
-                             (fboundp 'coding-system-p)
-                             (coding-system-p 'utf-8))
+                             (mm-coding-system-p 'utf-8))
   "Whether IDNA decoding of headers is used when viewing messages.
 This requires GNU Libidn, and by default only enabled if it is found."
   :group 'gnus-article-headers
index b470b3f..aa535b4 100644 (file)
 
     ;; [Note] Now there are three kinds of mule implementations,
     ;; original MULE, XEmacs/mule and Emacs 20+ including
-    ;; MULE features.  Unfortunately these API are different.  In
-    ;; particular, Emacs (including original MULE) and XEmacs are
+    ;; MULE features.  Unfortunately these APIs are different.  In
+    ;; particular, Emacs (including original Mule) and XEmacs are
     ;; quite different.  However, this version of Gnus doesn't support
     ;; anything other than XEmacs 20+ and Emacs 20.3+.
 
     ;; Predicates to check are following:
-    ;; (boundp 'MULE) is t only if MULE (original; anything older than
+    ;; (boundp 'MULE) is t only if Mule (original; anything older than
     ;;                     Mule 2.3) is running.
-    ;; (featurep 'mule) is t when every mule variants are running.
+    ;; (featurep 'mule) is t when other mule variants are running.
 
     ;; It is possible to detect XEmacs/mule by (featurep 'mule) and
-    ;; checking `emacs-version'.  In this case, the implementation for
+    ;; (featurep 'xemacs).  In this case, the implementation for
     ;; XEmacs/mule may be shareable between XEmacs and XEmacs/mule.
 
     (defvar gnus-summary-display-table nil
index 52c1fa9..a3ca7cf 100644 (file)
@@ -420,8 +420,7 @@ For example:
   :type '(repeat (cons (sexp :tag "Method") (symbol :tag "Charset"))))
 
 (defcustom gnus-group-name-charset-group-alist
-  (if (or (and (fboundp 'find-coding-system) (find-coding-system 'utf-8))
-         (and (fboundp 'coding-system-p) (coding-system-p 'utf-8)))
+  (if (mm-coding-system-p 'utf-8)
       '(("[^\000-\177]" . utf-8))
     nil)
   "Alist of group regexp and the charset for group names.
@@ -1103,6 +1102,7 @@ The following commands are available:
       result)))
 
 (defun gnus-group-name-decode (string charset)
+  ;; Fixme: Don't decode in unibyte mode.
   (if (and string charset (featurep 'mule))
       (decode-coding-string string charset)
     string))
@@ -1989,6 +1989,25 @@ Returns whether the fetching was successful or not."
 
 (defvar gnus-ephemeral-group-server 0)
 
+(defcustom gnus-large-ephemeral-newsgroup 200
+  "The number of articles which indicates a large ephemeral newsgroup.
+Same as `gnus-large-newsgroup', but only used for ephemeral newsgroups.
+
+If the number of articles in a newsgroup is greater than this value,
+confirmation is required for selecting the newsgroup.  If it is nil, no
+confirmation is required."
+  :group 'gnus-group-select
+  :type '(choice (const :tag "No limit" nil)
+                integer))
+
+(defcustom gnus-fetch-old-ephemeral-headers nil
+  "Same as `gnus-fetch-old-headers', but only used for ephemeral newsgroups."
+  :group 'gnus-thread
+  :type '(choice (const :tag "off" nil)
+                (const some)
+                number
+                (sexp :menu-tag "other" t)))
+
 ;; Enter a group that is not in the group buffer.  Non-nil is returned
 ;; if selection was successful.
 (defun gnus-group-read-ephemeral-group (group method &optional activate
@@ -2038,7 +2057,10 @@ Return the name of the group if selection was successful."
     (if request-only
        group
       (condition-case ()
-         (when (gnus-group-read-group t t group select-articles)
+         (when (let ((gnus-large-newsgroup gnus-large-ephemeral-newsgroup)
+                     (gnus-fetch-old-headers
+                      gnus-fetch-old-ephemeral-headers))
+                 (gnus-group-read-group t t group select-articles))
            group)
        ;;(error nil)
        (quit
@@ -2285,6 +2307,8 @@ ADDRESS."
        (lambda (group)
          (gnus-group-delete-group group nil t))))))
 
+(eval-when-compile (defvar gnus-cache-active-altered))
+
 (defun gnus-group-delete-group (group &optional force no-prompt)
   "Delete the current group.  Only meaningful with editable groups.
 If FORCE (the prefix) is non-nil, all the articles in the group will
@@ -2312,10 +2336,10 @@ doing the deletion."
          (gnus-group-goto-group group)
          (gnus-group-kill-group 1 t)
          (gnus-sethash group nil gnus-active-hashtb)
-         (when (and (boundp 'gnus-cache-active-hashtb)
-                    gnus-cache-active-hashtb)
-           (gnus-sethash group nil gnus-cache-active-hashtb)
-           (setq gnus-cache-active-altered t))
+         (if (boundp 'gnus-cache-active-hashtb)
+             (when gnus-cache-active-hashtb
+               (gnus-sethash group nil gnus-cache-active-hashtb)
+               (setq gnus-cache-active-altered t)))
          t))
     (gnus-group-position-point)))
 
index 524be2e..a687aaf 100644 (file)
@@ -35,7 +35,7 @@
 (require 'gnus-spec)
 (require 'gnus-range)
 (require 'gnus-util)
-(require 'message)
+(autoload 'message-make-date "message")
 
 (defcustom gnus-startup-file (nnheader-concat gnus-home-directory ".newsrc")
   "Your `.newsrc' file.
@@ -3042,6 +3042,7 @@ If FORCE is non-nil, the .newsrc file is read."
                      (or (gnus-group-name-charset method name)
                          (gnus-parameter-charset name)
                          gnus-default-charset)))
+               ;; Fixme: Don't decode in unibyte mode.
                (when (and str charset (featurep 'mule))
                  (setq str (decode-coding-string str charset)))
                (set group str)))
index e7a8ee1..9868aea 100644 (file)
 ;; Added by Geoffrey T. Dairiki <dairiki@u.washington.edu>.  A safe way
 ;; to limit the length of a string.  This function is necessary since
 ;; `(substr "abc" 0 30)' pukes with "Args out of range".
+;; Fixme: Why not `truncate-string-to-width'?
 (defsubst gnus-limit-string (str width)
   (if (> (length str) width)
       (substring str 0 width)
     str))
 
+;; Fixme: This is incomplete, but why not just use functionp?  In
+;; fact, that is used in various places.
 (defsubst gnus-functionp (form)
   "Return non-nil if FORM is funcallable."
   (or (and (symbolp form) (fboundp form))
@@ -1079,6 +1082,7 @@ Return the modified alist."
       (while (search-backward "\\." nil t)
        (delete-char 1)))))
 
+;; Fixme: Why not use `with-output-to-temp-buffer'?
 (defmacro gnus-with-output-to-file (file &rest body)
   (let ((buffer (make-symbol "output-buffer"))
         (size (make-symbol "output-buffer-size"))
@@ -1156,9 +1160,9 @@ Return the modified alist."
           (string-equal (downcase x) (downcase y)))))
 
 (defcustom gnus-use-byte-compile t
-  "If non-nil, byte-compile crucial run-time codes.
-Setting it to nil has no effect after first time running
-`gnus-byte-compile'."
+  "If non-nil, byte-compile crucial run-time code.
+Setting it to nil has no effect after the first time `gnus-byte-compile'
+is run."
   :type 'boolean
   :version "21.1"
   :group 'gnus-various)
@@ -1221,7 +1225,7 @@ If you find some problem with the directory separator character, try
     (- x ?0)))
 
 (defun gnus-url-unhex-string (str &optional allow-newlines)
-  "Remove %XXX embedded spaces, etc in a url.
+  "Remove %XX, embedded spaces, etc in a url.
 If optional second argument ALLOW-NEWLINES is non-nil, then allow the
 decoding of carriage returns and line feeds in the string, which is normally
 forbidden in URL encoding."
@@ -1418,6 +1422,7 @@ Return nil otherwise."
                                 display))
              display)))))
 
+;; Fixme: This has only one use (in gnus-agent), which isn't worthwhile.
 (defmacro gnus-mapcar (function seq1 &rest seqs2_n)
   "Apply FUNCTION to each element of the sequences, and make a list of the results.
 If there are several sequences, FUNCTION is called with that many arguments,
@@ -1457,6 +1462,7 @@ sequence, this is like `mapcar'.  With several, it is like the Common Lisp
   ;; Adapted from cl-seq.el
   (defun gnus-merge (type list1 list2 pred)
     "Destructively merge lists LIST1 and LIST2 to produce a new list.
+Argument TYPE is for compatibility and ignored.
 Ordering of the elements is preserved according to PRED, a `less-than'
 predicate on the elements."
     (let ((res nil))
index 8c47948..d7b1c73 100644 (file)
@@ -308,9 +308,11 @@ to:
   :group 'mime-display)
 
 (defcustom mm-tmp-directory
-  (cond ((fboundp 'temp-directory) (temp-directory))
-       ((boundp 'temporary-file-directory) temporary-file-directory)
-       ("/tmp/"))
+  (if (fboundp 'temp-directory)
+      (temp-directory)
+    (if (boundp 'temporary-file-directory)
+       temporary-file-directory
+      "/tmp/"))
   "Where mm will store its temporary files."
   :type 'directory
   :group 'mime-display)
index ac8b77b..85dc2b3 100644 (file)
@@ -74,7 +74,9 @@
      (string-as-unibyte . identity)
      (string-make-unibyte . identity)
      (string-as-multibyte . identity)
-     (multibyte-string-p . ignore))))
+     (multibyte-string-p . ignore)
+     (insert-byte . insert-char)
+     (multibyte-char-to-unibyte . identity))))
 
 (eval-and-compile
   (defalias 'mm-char-or-char-int-p
 
 (defvar mm-auto-save-coding-system
   (cond
+   ((mm-coding-system-p 'utf-8-emacs)  ; Mule 7
+    (if (memq system-type '(windows-nt ms-dos ms-windows))
+       (if (mm-coding-system-p 'utf-8-emacs-dos)
+           'utf-8-emacs-dos mm-binary-coding-system)
+      'utf-8-emacs))
    ((mm-coding-system-p 'emacs-mule)
     (if (memq system-type '(windows-nt ms-dos ms-windows))
        (if (mm-coding-system-p 'emacs-mule-dos)
         'nconc
         (mapcar
          (lambda (cs)
-           (when (and (coding-system-get cs 'mime-charset)
+           (when (and (or (coding-system-get cs :mime-charset) ; Emacs 22
+                          (coding-system-get cs 'mime-charset))
                       (not (eq t (coding-system-get cs 'safe-charsets))))
-             (list (cons (coding-system-get cs 'mime-charset)
+             (list (cons (or (coding-system-get cs :mime-charset)
+                             (coding-system-get cs 'mime-charset))
                          (delq 'ascii
                                (coding-system-get cs 'safe-charsets))))))
          (sort-coding-systems (coding-system-list 'base-only))))))
@@ -281,13 +290,14 @@ Valid elements include:
                             iso-latin-1 utf-8)))))
   "Preferred coding systems for encoding outgoing mails.
 
-More than one suitable coding systems may be found for some texts.  By
-default, a coding system with the highest priority is used to encode
+More than one suitable coding system may be found for some text.  By
+default, the coding system with the highest priority is used to encode
 outgoing mails (see `sort-coding-systems').  If this variable is set,
 it overrides the default priority."
   :type '(repeat (symbol :tag "Coding system"))
   :group 'mime)
 
+;; ??
 (defvar mm-use-find-coding-systems-region
   (fboundp 'find-coding-systems-region)
   "Use `find-coding-systems-region' to find proper coding systems.
@@ -309,7 +319,8 @@ mail with multiple parts is preferred to sending a Unicode one.")
                      (find-coding-systems-for-charsets (list charset)))))
          (unless mime
            (when cs
-             (setq mime (coding-system-get cs 'mime-charset)))))
+             (setq mime (or (coding-system-get cs :mime-charset)
+                            (coding-system-get cs 'mime-charset))))))
        mime)
     (let ((alist mm-mime-mule-charset-alist)
          out)
@@ -358,7 +369,8 @@ used as the line break code type of the coding system."
       ;; Do we need -lbt?
       (dolist (c (mm-get-coding-system-list))
        (if (and (null cs)
-                (eq charset (coding-system-get c 'mime-charset)))
+                (eq charset (or (coding-system-get c :mime-charset)
+                                (coding-system-get c 'mime-charset))))
            (setq cs c)))
       cs))))
 
@@ -457,8 +469,10 @@ If the charset is `composition', return the actual one."
       ;; This exists in Emacs 20.
       (or
        (and (mm-preferred-coding-system charset)
-           (coding-system-get
-            (mm-preferred-coding-system charset) 'mime-charset))
+           (or (coding-system-get
+                (mm-preferred-coding-system charset) :mime-charset)
+               (coding-system-get
+                (mm-preferred-coding-system charset) 'mime-charset)))
        (and (eq charset 'ascii)
            'us-ascii)
        (mm-preferred-coding-system charset)
@@ -528,18 +542,27 @@ charset, and a longer list means no appropriate charset."
               (when mm-coding-system-priorities
                 (setq systems
                       (sort systems 'mm-sort-coding-systems-predicate)))
-              ;; Fixme: The `mime-charset' (`x-ctext') of `compound-text'
-              ;; is not in the IANA list.
               (setq systems (delq 'compound-text systems))
               (unless (equal systems '(undecided))
                 (while systems
-                  (let ((cs (coding-system-get (pop systems) 'mime-charset)))
-                    (if cs
+                  (let* ((head (pop systems))
+                         (cs (or (coding-system-get head :mime-charset)
+                                 (coding-system-get head 'mime-charset))))
+                    ;; The mime-charset (`x-ctext') of
+                    ;; `compound-text' is not in the IANA list.  We
+                    ;; shouldn't normally use anything here with a
+                    ;; mime-charset having an `x-' prefix.
+                    ;; Fixme:  allow this to be overridden, since
+                    ;; there is existing use of x-ctext.
+                    ;; Also people apparently need the coding system
+                    ;; `iso-2022-jp-3', which Mule-UCS defines.
+                    (if (and cs
+                             (not (string-match "^[Xx]-" (symbol-name cs))))
                         (setq systems nil
                               charsets (list cs))))))
               charsets))
-       ;; Otherwise we're not multibyte, XEmacs or a single coding
-       ;; system won't cover it.
+       ;; Otherwise we're not multibyte, we're XEmacs or a single
+       ;; coding system won't cover it.
        (setq charsets
              (mm-delete-duplicates
               (mapcar 'mm-mime-charset
@@ -565,7 +588,7 @@ Use unibyte mode for this."
 (put 'mm-with-unibyte-buffer 'edebug-form-spec '(body))
 
 (defmacro mm-with-unibyte-current-buffer (&rest forms)
-  "Evaluate FORMS with current current buffer temporarily made unibyte.
+  "Evaluate FORMS with current buffer temporarily made unibyte.
 Also bind `default-enable-multibyte-characters' to nil.
 Equivalent to `progn' in XEmacs"
   (let ((multibyte (make-symbol "multibyte"))
@@ -679,7 +702,7 @@ Mule4 only."
 A buffer may be modified in several ways after reading into the buffer due
 to advanced Emacs features, such as file-name-handlers, format decoding,
 find-file-hooks, etc.
-If INHIBIT is non-nil, inhibit mm-inhibit-file-name-handlers.
+If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'.
   This function ensures that none of these modifications will take place."
   (let ((format-alist nil)
        (auto-mode-alist (if inhibit nil (mm-auto-mode-alist)))
index 942a312..c18cf2f 100644 (file)
 
 ;;; Code:
 
-(require 'mml2015)
-(require 'mml1991)
 (require 'mml-smime)
 (eval-when-compile (require 'cl))
+(autoload 'mml2015-sign "mml2015")
+(autoload 'mml2015-encrypt "mml2015")
+(autoload 'mml1991-sign "mml1991")
+(autoload 'mml1991-encrypt "mml1991")
+(autoload 'message-goto-body "message")
+(autoload 'mml-insert-tag "mml")
 
 (defvar mml-sign-alist
   '(("smime"     mml-smime-sign-buffer     mml-smime-sign-query)
index da24c44..b994e58 100644 (file)
@@ -300,7 +300,14 @@ nil, ."
                       temporary-file-directory))))
          (if dir-flag
              (make-directory file))
-         file)))))
+         file))))
+
+  ;; Should keep track of `mm-coding-system-p' in mm-util.el.
+  (defun nnheader-coding-system-p (sym)
+    "Return non-nil if SYM is a coding system."
+    (or (and (fboundp 'find-coding-system) (find-coding-system sym))
+       (and (fboundp 'coding-system-p) (coding-system-p sym))))
+  (defalias 'mm-coding-system-p 'nnheader-coding-system-p))
 
 ;; mail-parse stuff.
 (unless (featurep 'mail-parse)
index 12f2918..161d88b 100644 (file)
@@ -518,11 +518,12 @@ It is useful when `(setq nnrss-use-local t)'."
         (text (if (and node (listp node))
                   (nnrss-node-just-text node)
                 node))
-        (cleaned-text (if text
-                          (replace-regexp-in-string 
-                           " *$" "" (replace-regexp-in-string
-                                     "^ *" "" (replace-regexp-in-string
-                                               "^[[:cntrl:]]+" "" text))))))
+        (cleaned-text (if text (gnus-replace-regexp-in-string
+                                (gnus-replace-regexp-in-string
+                                 (gnus-replace-regexp-in-string
+                                  text "^[[:cntrl:]]+" "")
+                                 "^ *" "")
+                                " *$" ""))))
     (if (string-equal "" cleaned-text)
        nil
       cleaned-text)))
index 52f6999..62d7562 100644 (file)
@@ -1,6 +1,6 @@
 ;;; qp.el --- Quoted-Printable functions
 
-;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: mail, extensions
 (require 'mm-util)
 (eval-when-compile (defvar mm-use-ultra-safe-encoding))
 
+;;;###autoload
 (defun quoted-printable-decode-region (from to &optional coding-system)
   "Decode quoted-printable in the region between FROM and TO, per RFC 2045.
 If CODING-SYSTEM is non-nil, decode bytes into characters with that
 coding-system.
 
 Interactively, you can supply the CODING-SYSTEM argument
-with \\[universal-coding-system-argument]."
+with \\[universal-coding-system-argument].
+
+The CODING-SYSTEM argument is a historical hangover and is deprecated.
+QP encodes raw bytes and should be decoded into raw bytes.  Decoding
+them into characters should be done separately."
   (interactive
    ;; Let the user determine the coding system with "C-x RET c".
    (list (region-beginning) (region-end) coding-system-for-read))
@@ -66,14 +71,10 @@ with \\[universal-coding-system-argument]."
                 (let ((byte (string-to-int (buffer-substring (1+ (point))
                                                              (+ 3 (point)))
                                            16)))
-                  (insert byte)
-                  (delete-char 3)
-                  ;; Why backward-char???
-                  ;;(unless (eq byte 61) ;; 61 is not ?= in XEmacs
-                  ;;  (backward-char))
-                  ))
+                  (mm-insert-byte byte 1)
+                  (delete-char 3)))
                (t
-                (message "Malformed quoted-printable text")
+                (error "Malformed quoted-printable text")
                 (forward-char)))))
       (if coding-system
          (mm-decode-coding-region (point-min) (point-max) coding-system)))))
@@ -97,6 +98,15 @@ You should probably avoid non-ASCII characters in this arg.
 If `mm-use-ultra-safe-encoding' is set, fold lines unconditionally and
 encode lines starting with \"From\"."
   (interactive "r")
+  (save-excursion
+    (goto-char from)
+    (if (fboundp 'string-to-multibyte) ; Emacs 22
+       (if (re-search-forward (string-to-multibyte "[^\x0-\x7f\x80-\xff]")
+                              to t)
+           ;; Fixme: This is somewhat misleading.
+           (error "Multibyte character in QP encoding region"))
+      (if (re-search-forward (mm-string-as-multibyte "[^\0-\377]") to t)
+         (error "Multibyte character in QP encoding region"))))
   (unless class
     ;; Avoid using 8bit characters. = is \075.
     ;; Equivalent to "^\000-\007\013\015-\037\200-\377="
@@ -104,19 +114,14 @@ encode lines starting with \"From\"."
   (save-excursion
     (save-restriction
       (narrow-to-region from to)
-      ;; We can live with characters between 00-FF.
-      (goto-char (point-min))
-      (while (not (eobp))
-       (if (>= (char-after) 256)
-           (error "Multibyte character in QP encoding region"))
-       (forward-char))
       ;; Encode all the non-ascii and control characters.
       (goto-char (point-min))
       (while (and (skip-chars-forward class)
                  (not (eobp)))
        (insert
         (prog1
-            (format "=%02X" (char-after))
+            ;; To unibyte in case of Emacs 22 eight-bit.
+            (format "=%02X" (mm-multibyte-char-to-unibyte (char-after)))
           (delete-char 1))))
       ;; Encode white space at the end of lines.
       (goto-char (point-min))
@@ -131,7 +136,7 @@ encode lines starting with \"From\"."
             (and (boundp 'mm-use-ultra-safe-encoding)
                  mm-use-ultra-safe-encoding)))
        (when (or fold mm-use-ultra-safe-encoding)
-         (let ((tab-width 1))  ; HTAB is one character.
+         (let ((tab-width 1))          ; HTAB is one character.
            (goto-char (point-min))
            (while (not (eobp))
              ;; In ultra-safe mode, encode "From " at the beginning
index da2016b..8297f57 100644 (file)
@@ -370,8 +370,7 @@ Server  : " server ":" (or port "2000") "
        (if (sieve-manage-ok-p 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))))))))
+         (message "Sieve upload failed: %s" (nth 2 err)))))))
 
 ;;;###autoload
 (defun sieve-upload-and-bury (&optional name)
index b2e1ab4..638785c 100644 (file)
@@ -1,3 +1,9 @@
+2003-04-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus.texi (Selecting a Group): Add gnus-large-ephemeral-newsgroup.
+       (Filling In Threads): Add gnus-fetch-old-ephemeral-headers.
+       (Terminology): Index.
+
 2003-04-22  Jesper Harder  <harder@ifa.au.dk>
 
        * gnus.texi: nil -> @code{nil}.  Capitalize "Rmail" and "Babyl"
index 298dea4..c52af61 100644 (file)
@@ -2240,6 +2240,10 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 \e$B$r<hF@$7$^$9!#@5$N?t$G$"$l$P!"?7$7$/E~Ce$7$?J}$+$i\e(B @code{n} \e$B8D$N5-;v$r<h\e(B
 \e$BF@$7$^$9!#\e(B
 
+@vindex gnus-large-ephemeral-newsgroup
+@code{gnus-large-newsgroup} \e$B$HF1$8$G$9$,!"0l;~%K%e!<%9%0%k!<%W$N$?$a$K$@\e(B
+\e$B$1;H$o$l$^$9!#\e(B
+
 @vindex gnus-select-group-hook
 @vindex gnus-auto-select-first
 @vindex gnus-auto-select-subject
@@ -6529,6 +6533,11 @@ Gnus \e$B$O\e(B @code{Subject} \e$BMs$r8+$k$3$H$K$h$C$F%9%l%C%I$r=8$a$^$9!#$3$l$O!"
 \e$B$O2?$b$"$j$^$;$s$,!"L?Na\e(B @kbd{A T} \e$B$r$h$/;H$&$N$G$"$l$PLr$KN)$D$G$7$g\e(B
 \e$B$&\e(B (@pxref{Finding the Parent})\e$B!#\e(B
 
+@item gnus-fetch-old-ephemeral-headers
+@vindex gnus-fetch-old-ephemeral-headers
+@code{gnus-fetch-old-headers} \e$B$HF1$8$G$9$,!"0l;~%K%e!<%9%0%k!<%W$N$?$a$K\e(B
+\e$B$@$1;H$o$l$^$9!#\e(B
+
 @item gnus-build-sparse-threads
 @vindex gnus-build-sparse-threads
 \e$B8E$$%X%C%@!<$r<hF@$9$k$HCY$/$J$k$3$H$,$"$j$^$9!#F1$8$h$&$JDcDB6b$N8z2L$r\e(B
@@ -24237,6 +24246,7 @@ Gnus \e$B$,%0%k!<%W$KF~$k$H!"%0%k!<%W$NA4$F$NL$FI5-;v$N%X%C%@!<$r%P%C%/%(%s\e(B
 
 @item \e$B0l;~%0%k!<%W\e(B (ephemeral groups)
 @cindex ephemeral groups
+@cindex temporary groups
 \e$B$?$$$F$$$N%0%k!<%W$O$I$N5-;v$rFI$s$@$+$N%G!<%?$rC_@Q$7$^$9!#\e(B
 @dfn{\e$B0l;~\e(B} \e$B%0%k!<%W$O%G!<%?$,N/$a$i$l$J$$%0%k!<%W$G$9\e(B---\e$B%0%k!<%W$r=P$k$H!"\e(B
 \e$B$=$l$OE76u$K>C$(5n$j$^$9!#\e(B
index 0883098..699212c 100644 (file)
@@ -2130,6 +2130,10 @@ number (@code{-n}), the @code{n} oldest articles will be fetched.  If it
 is positive, the @code{n} articles that have arrived most recently will
 be fetched.
 
+@vindex gnus-large-ephemeral-newsgroup
+Same as @code{gnus-large-newsgroup}, but only used for ephemeral
+newsgroups.
+
 @vindex gnus-select-group-hook
 @vindex gnus-auto-select-first
 @vindex gnus-auto-select-subject
@@ -6593,6 +6597,11 @@ This variable can also be set to @code{invisible}.  This won't have any
 visible effects, but is useful if you use the @kbd{A T} command a lot
 (@pxref{Finding the Parent}).
 
+@item gnus-fetch-old-ephemeral-headers
+@vindex gnus-fetch-old-ephemeral-headers
+Same as @code{gnus-fetch-old-headers}, but only used for ephemeral
+newsgroups.
+
 @item gnus-build-sparse-threads
 @vindex gnus-build-sparse-threads
 Fetching old headers can be slow.  A low-rent similar effect can be
@@ -24759,6 +24768,7 @@ original.
 
 @item ephemeral groups
 @cindex ephemeral groups
+@cindex temporary groups
 Most groups store data on what articles you have read.  @dfn{Ephemeral}
 groups are groups that will have no data stored---when you exit the
 group, it'll disappear into the aether.