Importing pgnus-0.33
authorichikawa <ichikawa>
Fri, 25 Sep 1998 12:08:19 +0000 (12:08 +0000)
committerichikawa <ichikawa>
Fri, 25 Sep 1998 12:08:19 +0000 (12:08 +0000)
12 files changed:
lisp/ChangeLog
lisp/base64.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-cus.el
lisp/gnus-draft.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/mm-decode.el
lisp/mm-util.el
texi/gnus.texi
texi/message.texi

index 0b45042..0555050 100644 (file)
@@ -1,3 +1,49 @@
+Thu Sep 24 20:28:31 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.33 is released.
+
+1998-09-24 18:47:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-art.el (gnus-insert-mime-button): Get buffer size.
+
+       * mm-decode.el (mm-display-external): Don't switch for externals. 
+       (mm-dissect-multipart): Don't include end-sep.
+
+       * mm-util.el (mm-get-coding-system-list): New function.
+       (mm-coding-system-list): New variable.
+
+Thu Sep 24 02:08:10 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * gnus-cus.el (gnus-group-parameters): Add charset as a parameter
+
+Thu Sep 24 02:05:48 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * gnus-cus.el (gnus-group-customize): Use variable as cons not as
+       group
+
+Thu Sep 24 01:41:03 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * base64.el (base64-run-command-on-region): External base64
+       decoder do not use coding system
+
+Thu Sep 24 01:39:44 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * mm-decode.el (mm-interactively-view-part): Typo.
+
+Thu Sep 24 01:37:30 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * mm-decode.el (mm-dissect-multipart): Display last part when the
+       article has no close-delimiter
+
+Thu Sep 24 01:28:54 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * mm-decode.el (mm-dissect-buffer): Display parts which have no
+       content-type.
+
+Thu Sep 24 01:23:57 1998  ZHU Shenghuo  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-display-mime): Typo.
+
 Thu Sep 24 02:29:57 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.32 is released.
index 093673e..c874b22 100644 (file)
@@ -75,7 +75,7 @@ base64-encoder-program.")
 
 (defun base64-run-command-on-region (start end output-buffer command
                                           &rest arg-list)
-  (let ((tempfile nil) status errstring)
+  (let ((tempfile nil) status errstring default-process-coding-system)
     (unwind-protect
        (progn
          (setq tempfile (make-temp-name "base64"))
index 0fe6d68..b4654fd 100644 (file)
@@ -92,7 +92,7 @@ If nil, only read articles will be expired."
 (defvar gnus-agent-spam-hashtb nil)
 (defvar gnus-agent-file-name nil)
 (defvar gnus-agent-send-mail-function nil)
-(defvar gnus-agent-article-file-coding-system 'no-conversion)
+(defvar gnus-agent-file-coding-system 'no-conversion)
 
 (defconst gnus-agent-scoreable-headers
   (list
@@ -524,7 +524,7 @@ the actual number of articles toggled is returned."
     (let* ((gnus-command-method method)
           (file (gnus-agent-lib-file "active")))
       (gnus-make-directory (file-name-directory file))
-      (let ((coding-system-for-write gnus-agent-article-file-coding-system))
+      (let ((coding-system-for-write gnus-agent-file-coding-system))
        (write-region (point-min) (point-max) file nil 'silent))
       (when (file-exists-p (gnus-agent-lib-file "groups"))
        (delete-file (gnus-agent-lib-file "groups"))))))
@@ -533,9 +533,10 @@ the actual number of articles toggled is returned."
   (let* ((gnus-command-method method)
         (file (gnus-agent-lib-file "groups")))
     (gnus-make-directory (file-name-directory file))
-    (write-region (point-min) (point-max) file nil 'silent))
+    (let ((coding-system-for-write gnus-agent-file-coding-system))
+      (write-region (point-min) (point-max) file nil 'silent))
     (when (file-exists-p (gnus-agent-lib-file "active"))
-      (delete-file (gnus-agent-lib-file "active"))))
+      (delete-file (gnus-agent-lib-file "active")))))
 
 (defun gnus-agent-save-group-info (method group active)
   (when (gnus-agent-method-p method)
@@ -554,7 +555,7 @@ the actual number of articles toggled is returned."
                     (concat "^" (regexp-quote group) " ") nil t)
                (gnus-delete-line))
              (insert group " " (number-to-string (cdr active)) " "
-                     (number-to-string (car active)) "\n"))
+                     (number-to-string (car active)) " y\n"))
          (when (re-search-forward (concat (regexp-quote group) " ") nil t)
            (gnus-delete-line))
          (insert-buffer-substring nntp-server-buffer))))))
@@ -604,8 +605,9 @@ the actual number of articles toggled is returned."
   (save-excursion
     (set-buffer gnus-agent-current-history)
     (gnus-make-directory (file-name-directory gnus-agent-file-name))
-    (write-region (1+ (point-min)) (point-max)
-                 gnus-agent-file-name nil 'silent)))
+    (let ((coding-system-for-write gnus-agent-file-coding-system))
+      (write-region (1+ (point-min)) (point-max)
+                   gnus-agent-file-name nil 'silent))))
 
 (defun gnus-agent-close-history ()
   (when (gnus-buffer-live-p gnus-agent-current-history)
@@ -703,7 +705,7 @@ the actual number of articles toggled is returned."
                (setq id "No-Message-ID-in-article")
              (setq id (buffer-substring (match-beginning 1) (match-end 1))))
            (let ((coding-system-for-write
-                  gnus-agent-article-file-coding-system))
+                  gnus-agent-file-coding-system))
              (write-region (point-min) (point-max)
                            (concat dir (number-to-string (caar pos)))
                            nil 'silent))
@@ -746,10 +748,12 @@ the actual number of articles toggled is returned."
   (save-excursion
     (while gnus-agent-buffer-alist
       (set-buffer (cdar gnus-agent-buffer-alist))
-      (write-region (point-min) (point-max)
-                   (gnus-agent-article-name ".overview"
-                                            (caar gnus-agent-buffer-alist))
-                    nil 'silent)
+      (let ((coding-system-for-write
+            gnus-agent-file-coding-system))
+       (write-region (point-min) (point-max)
+                     (gnus-agent-article-name ".overview"
+                                              (caar gnus-agent-buffer-alist))
+                     nil 'silent))
       (pop gnus-agent-buffer-alist))
     (while gnus-agent-group-alist
       (with-temp-file (caar gnus-agent-group-alist)
@@ -780,7 +784,9 @@ the actual number of articles toggled is returned."
            (gnus-agent-braid-nov group articles file))
          (gnus-make-directory (nnheader-translate-file-chars
                                (file-name-directory file)))
-         (write-region (point-min) (point-max) file nil 'silent)
+         (let ((coding-system-for-write
+                gnus-agent-file-coding-system))
+           (write-region (point-min) (point-max) file nil 'silent))
          (gnus-agent-save-alist group articles nil)
          (gnus-agent-enter-history
           "last-header-fetched-for-session"
@@ -1386,7 +1392,9 @@ The following commands are available:
                 ;; Schedule the history line for nuking.
                 (push (cdr elem) histories)))
             (gnus-make-directory (file-name-directory nov-file))
-            (write-region (point-min) (point-max) nov-file nil 'silent)
+            (let ((coding-system-for-write
+                   gnus-agent-file-coding-system))
+              (write-region (point-min) (point-max) nov-file nil 'silent))
             ;; Delete the unwanted entries in the alist.
             (setq gnus-agent-article-alist
                   (sort gnus-agent-article-alist 'car-less-than-car))
index 3fd48a1..6d1bc02 100644 (file)
@@ -2219,8 +2219,9 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   (let ((gnus-tmp-name (mail-content-type-get (mm-handle-type handle) 'name))
        (gnus-tmp-type (car (mm-handle-type handle)))
        (gnus-tmp-description (mm-handle-description handle))
-       (gnus-tmp-length (with-temp-buffer (mm-handle-buffer handle)
-                                          (buffer-size)))
+       (gnus-tmp-length (save-excursion
+                          (set-buffer (mm-handle-buffer handle))
+                          (buffer-size)))
        b e)
     (setq gnus-tmp-name
          (if gnus-tmp-name
@@ -2253,29 +2254,29 @@ If ALL-HEADERS is non-nil, no headers are hidden."
       (mail-narrow-to-head)
       (when (setq ct (mail-fetch-field "content-type"))
        (setq ctl (condition-case ()
-                     (mail-header-parse-content-type ct) (error nil)))
-       (let* ((handles (mm-dissect-buffer))
-              handle name type b e)
-         (mapcar 'mm-destroy-part gnus-article-mime-handles)
-         (setq gnus-article-mime-handles handles)
-         (when handles
-           (goto-char (point-min))
-           (search-forward "\n\n" nil t)
-           (delete-region (point) (point-max))
-           (if (not (equal (car ctl) "multipart/alternative"))
-               (while (setq handle (pop handles))
-                 (gnus-insert-mime-button handle)
-                 (insert "\n\n")
-                 (when (and (mm-automatic-display-p
-                             (car (mm-handle-type handle)))
-                            (or (not (mm-handle-disposition handle))
-                                (equal (car (mm-handle-disposition handle))
-                                       "inline")))
-                   (forward-line -2)
-                   (mm-display-part handle t)
-                   (goto-char (point-max))))
-             ;; Here we have multipart/alternative
-             (gnus-mime-display-alternative handles))))))))
+                     (mail-header-parse-content-type ct) (error nil)))))
+    (let* ((handles (mm-dissect-buffer))
+          handle name type b e)
+      (mapcar 'mm-destroy-part gnus-article-mime-handles)
+      (setq gnus-article-mime-handles handles)
+      (when handles
+       (goto-char (point-min))
+       (search-forward "\n\n" nil t)
+       (delete-region (point) (point-max))
+       (if (not (equal (car ctl) "multipart/alternative"))
+           (while (setq handle (pop handles))
+             (gnus-insert-mime-button handle)
+             (insert "\n\n")
+             (when (and (mm-automatic-display-p
+                         (car (mm-handle-type handle)))
+                        (or (not (mm-handle-disposition handle))
+                            (equal (car (mm-handle-disposition handle))
+                                   "inline")))
+               (forward-line -2)
+               (mm-display-part handle t)
+               (goto-char (point-max))))
+         ;; Here we have multipart/alternative
+         (gnus-mime-display-alternative handles))))))
 
 (defun gnus-mime-display-alternative (handles &optional preferred)
   (let* ((preferred (mm-preferred-alternative handles preferred))
index 025273b..501d27d 100644 (file)
@@ -159,7 +159,11 @@ An arbitrary comment on the group.")
 
     (visible (const :tag "Permanently visible" t) "\
 Always display this group, even when there are no unread articles
-in it.."))
+in it..")
+
+    (charset (string :tag "Charset") "\
+The default charset to use in the group.") 
+)
   "Alist of valid group parameters.
 
 Each entry has the form (NAME TYPE DOC), where NAME is the parameter
@@ -232,7 +236,7 @@ like.  If you want to hear a beep when you enter a group, you could
 put something like `(dummy-variable (ding))' in the parameters of that
 group.  `dummy-variable' will be set to the result of the `(ding)'
 form, but who cares?"
-                                 (group :value (nil nil)
+                                 (cons :format "%v" :value (nil .  nil)
                                         (symbol :tag "Variable")
                                         (sexp :tag
                                               "Value")))
index 2c87c31..a05245b 100644 (file)
@@ -95,6 +95,8 @@
   (let ((article (gnus-summary-article-number)))
     (gnus-summary-mark-as-read article gnus-canceled-mark)
     (gnus-draft-setup article gnus-newsgroup-name)
+    (set-buffer-modified-p t)
+    (save-buffer)
     (let ((gnus-verbose-backends nil))
       (gnus-request-expire-articles (list article) gnus-newsgroup-name t))
     (push
index 3823afe..23d1fed 100644 (file)
@@ -7108,7 +7108,7 @@ re-spool using this method."
 (defcustom gnus-summary-respool-default-method nil
   "Default method for respooling an article.
 If nil, use to the current newsgroup method."
-  :type `(choice (gnus-select-method :value (nnml ""))
+  :type '(choice (gnus-select-method :value (nnml ""))
                 (const nil))
   :group 'gnus-summary-mail)
 
index 1322cd0..bb0f4b9 100644 (file)
@@ -250,7 +250,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "0.32"
+(defconst gnus-version-number "0.33"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
@@ -1659,7 +1659,10 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
       gnus-summary-mail-forward gnus-summary-mail-other-window
       gnus-summary-resend-message gnus-summary-resend-bounced-mail
       gnus-summary-wide-reply gnus-summary-followup-to-mail
-      gnus-summary-followup-to-mail-with-original gnus-bug)
+      gnus-summary-followup-to-mail-with-original gnus-bug
+      gnus-summary-wide-reply-with-original
+      gnus-summary-post-forward gnus-summary-wide-reply-with-original
+      gnus-summary-post-forward)
      ("gnus-picon" :interactive t gnus-article-display-picons
       gnus-group-display-picons gnus-picons-article-display-x-face
       gnus-picons-display-x-face)
index 487b63e..7090855 100644 (file)
                cd (mail-fetch-field "content-disposition")
                description (mail-fetch-field "content-description")
                id (mail-fetch-field "content-id"))))
-      (when ctl
+      (if (not ctl)
+         (mm-dissect-singlepart '("text/plain") nil no-strict-mime nil nil)
        (setq type (split-string (car ctl) "/"))
        (setq subtype (cadr type)
              type (pop type))
 
 (defun mm-dissect-multipart (ctl)
   (goto-char (point-min))
-  (let ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary)))
-       start parts end)
-    (while (search-forward boundary nil t)
+  (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary)))
+       (close-delimiter (concat boundary "--[ \t]*$"))
+       start parts 
+       (end (save-excursion    
+              (goto-char (point-max))
+              (if (re-search-backward close-delimiter nil t)
+                  (match-beginning 0)
+                (point-max)))))
+    (while (search-forward boundary end t)
       (goto-char (match-beginning 0))
       (when start
        (save-excursion
            (setq parts (nconc (mm-dissect-buffer t) parts)))))
       (forward-line 2)
       (setq start (point)))
+    (when start
+      (save-excursion
+       (save-restriction
+         (narrow-to-region start end)
+         (setq parts (nconc (mm-dissect-buffer t) parts)))))
     (nreverse parts)))
 
 (defun mm-copy-to-buffer ()
                  (start-process "*display*" nil
                                 "xterm"
                                 "-e" (format method file))
-               (switch-to-buffer (generate-new-buffer "*mm*"))
-               (buffer-disable-undo)
-               (mm-set-buffer-file-coding-system 'no-conversion)
-               (start-process "*display*" (current-buffer)
+               (start-process "*display*" (generate-new-buffer "*mm*")
                               shell-file-name
                               "-c" (format method file))))
        (mm-handle-set-undisplayer handle (cons file process))
@@ -367,7 +376,7 @@ This overrides entries in the mailcap file."
   "Display HANDLE using METHOD."
   (let* ((type (car (mm-handle-type handle)))
         (methods
-         (mapcar (lambda (i) (list (cdr (assoc "viewer" i))))
+         (mapcar (lambda (i) (list (cdr (assoc 'viewer i))))
                  (mailcap-mime-info type 'all)))
         (method (completing-read "Viewer: " methods)))
     (mm-display-external (copy-sequence handle) method)))
index fecab8e..1db5d60 100644 (file)
@@ -78,8 +78,8 @@
    '((decode-coding-string . (lambda (s a) s))
      (encode-coding-string . (lambda (s a) s))
      (encode-coding-region . ignore)
-     (decode-coding-region . ignore)
      (coding-system-list . ignore)
+     (decode-coding-region . ignore)
      (char-int . identity)
      (device-type . ignore)
      (coding-system-equal . equal)
           prompt (mapcar (lambda (s) (list (symbol-name (car s))))
                          mm-mime-mule-charset-alist)))))))
 
+(defvar mm-coding-system-list nil)
+(defun mm-get-coding-system-list ()
+  "Get the coding system list."
+  (or mm-coding-system-list
+      (setq mm-coding-system-list (mm-coding-system-list))))
+
 (defvar mm-charset-coding-system-alist
   (let ((rest
         '((gb2312 . cn-gb-2312)
           (iso-2022-jp-2 . iso-2022-7bit-ss2)
           (x-ctext . ctext)))
-       (systems (mm-coding-system-list))
+       (systems (mm-get-coding-system-list))
        dest)
     (while rest
       (let ((pair (car rest)))
     dest)
   "Charset/coding system alist.")
 
-
 (defun mm-mule-charset-to-mime-charset (charset)
   "Return the MIME charset corresponding to MULE CHARSET."
   (let ((alist mm-mime-mule-charset-alist)
@@ -136,14 +141,14 @@ used as the line break code type of the coding system."
     (setq charset (intern (format "%s-%s" charset lbt))))
   (cond
    ;; Running in a non-MULE environment.
-   ((and (null (mm-coding-system-list))
+   ((and (null (mm-get-coding-system-list))
         (memq charset mm-known-charsets))
     charset)
    ;; ascii
    ((eq charset 'us-ascii)
     'ascii)
    ;; Check to see whether we can handle this charset.
-   ((memq charset (mm-coding-system-list))
+   ((memq charset (mm-get-coding-system-list))
     charset)
    ;; Nope.
    (t
index bc86265..affbed6 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Pterodactyl Gnus 0.32 Manual
+@settitle Pterodactyl Gnus 0.33 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Pterodactyl Gnus 0.32 Manual
+@title Pterodactyl Gnus 0.33 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -354,7 +354,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Pterodactyl Gnus 0.32.
+This manual corresponds to Pterodactyl Gnus 0.33.
 
 @end ifinfo
 
@@ -13100,11 +13100,11 @@ If @code{gnus-adaptive-word-minimum} is set to a number, the adaptive
 word scoring process will never bring down the score of an article to
 below this number.  The default is @code{nil}.
 
-@vindex gnus-adative-word-no-group-words
-If @code{gnus-adative-word-no-group-words} is set to t, gnus won't
-adaptively word score any of the words in the group name.  Useful for
-groups like comp.editors.emacs, where most of the subject lines contain
-the word "emacs".
+@vindex gnus-adaptive-word-no-group-words
+If @code{gnus-adaptive-word-no-group-words} is set to @code{t}, gnus
+won't adaptively word score any of the words in the group name.  Useful
+for groups like @samp{comp.editors.emacs}, where most of the subject
+lines contain the word @samp{emacs}.
 
 After using this scheme for a while, it might be nice to write a
 @code{gnus-psychoanalyze-user} command to go through the rules and see
@@ -18147,7 +18147,7 @@ gnus-ignored-mime-types to avoid seeing buttons for Vcards and the
 like.
 
 @item
-Boucing articles should do MIME.
+Bouncing articles should do MIME.
 
 @item
 Solve the halting problem.
index 5d0f178..a0dc854 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Pterodactyl Message 0.32 Manual
+@settitle Pterodactyl Message 0.33 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Pterodactyl Message 0.32 Manual
+@title Pterodactyl Message 0.33 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Pterodactyl Message 0.32.  Message is
+This manual corresponds to Pterodactyl Message 0.33.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.