Merge remote-tracking branch 'origin/no-gnus'
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 20 Feb 2012 11:44:30 +0000 (12:44 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 20 Feb 2012 11:44:30 +0000 (12:44 +0100)
1  2 
lisp/ChangeLog
lisp/mm-decode.el

diff --combined lisp/ChangeLog
@@@ -1,9 -1,7 +1,11 @@@
 +2012-02-20  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-start.el (gnus-clean-old-newsrc): Allow a FORCE parameter.
 +
  2012-02-20  Lars Ingebrigtsen  <larsi@gnus.org>
  
+       * mm-decode.el (mm-shr): Remove "soft hyphens".
        * nnimap.el (nnimap-request-list): Return the group names encoded as
        utf8.  Otherwise non-European group names don't work.
        (nnimap-request-newgroups): Ditto.
  
        * gnus-start.el (gnus-1): Avoid duplicate entries.
  
++2012-02-16  Lars Ingebrigtsen  <larsi@gnus.org>
++
++      * mm-decode.el (mm-dissect-singlepart): Guess what the type of
++      application/octet-stream parts really is.
++
++      * gnus-sum.el (gnus-propagate-marks): Remove.
++
  2012-02-15  Lars Ingebrigtsen  <larsi@gnus.org>
  
 -      * shr.el (shr-remove-trailing-whitespace): Really delete the padding on
 -      too-wide lines.
 +      * imap.el: Remove.
 +
 +      * nntp.el (nntp-coding-system-for-read): Remove.
 +      (nntp-coding-system-for-write): Ditto.
 +      (nntp-open-connection): Just use `binary' directly.
 +
 +      * gnus-start.el (gnus-clean-old-newsrc): Delete `unexist' from pre-Ma
 +      Gnus 0.3.
  
- 2012-02-16  Lars Ingebrigtsen  <larsi@gnus.org>
-       * mm-decode.el (mm-dissect-singlepart): Guess what the type of
-       application/octet-stream parts really is.
-       * gnus-sum.el (gnus-propagate-marks): Remove.
  2012-02-15  Paul Eggert  <eggert@cs.ucla.edu>
  
        * shr.el (shr-rescale-image): Undo previous change; see
        <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
  
 +2012-02-15  Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
 +
 +      * gnus.el: Ma Gnus v0.3 is released.
 +
 +2012-02-15  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-sum.el (gnus-summary-local-variables): Make
 +      `gnus-newsgroup-unexist' into a local variable.
 +
 +2012-02-14  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * registry.el (registry-usage-test, registry-persistence-test): Move to
 +      tests/gnustest-registry.el.
 +      (registry-make-testable-db, registry-match-test)
 +      (registry-instantiation-test): Move to tests/gnustest-registry.el.
 +
 +      * gnus-registry.el (gnus-registry-misc-test)
 +      (gnus-registry-usage-test): Move to tests/gnustest-registry.el.
 +
 +      * tests/gnustest-registry.el: New file with the registry and
 +      gnus-registry ERT tests.
 +
 +2012-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus-msg.el (gnus-summary-resend-message): Make
 +      gnus-summary-resend-message-insert-gcc be last item in
 +      message-header-setup-hook.
 +
 +2012-02-13  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * nnfolder.el (nnfolder-marks-directory, nnfolder-marks-is-evil)
 +      (nnfolder-marks, nnfolder-marks-file-suffix, nnfolder-marks-modtime):
 +      Remove.
 +      (nnfolder-open-server): Don't use marks.
 +      (nnfolder-request-delete-group): Ditto.
 +      (nnfolder-request-rename-group): Ditto.
 +      (nnfolder-request-set-mark, nnfolder-request-marks)
 +      (nnfolder-group-marks-pathname, nnfolder-marks-changed-p)
 +      (nnfolder-save-marks, nnfolder-open-marks): Remove.
 +
 +      * nnml.el (nnml-marks-is-evil, nnml-marks-file-name, nnml-marks)
 +      (nnml-marks-modtime): Remove.
 +      (nnml-request-delete-group): Don't use marks.
 +      (nnml-request-rename-group): Ditto.
 +      (nnml-request-set-mark, nnml-request-marks, nnml-marks-changed-p)
 +      (nnml-save-marks, nnml-open-marks): Remove.
 +
 +      * nntp.el (nntp-marks-is-evil, nntp-marks-file-name, nntp-marks)
 +      (nntp-marks-modtime, nntp-marks-directory, nntp-request-set-mark)
 +      (nntp-request-marks, nntp-marks-directory, nntp-marks-changed-p)
 +      (nntp-save-marks, nntp-open-marks, nntp-possibly-create-directory)
 +      (nntp-server-to-method-cache): Remove.
 +
 +      * shr.el (shr-rescale-image): Fix wrong merge.
 +
 +2012-02-15  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * shr.el (shr-remove-trailing-whitespace): Really delete the padding on
 +      too-wide lines.
 +
  2012-02-13  Lars Ingebrigtsen  <larsi@gnus.org>
  
        * nnimap.el (nnimap-record-commands): New variable.
        * auth-source.el (auth-source-cache-expiry):
        Add missing :version tags to new defcustoms and defgroups.
  
 +2012-02-11  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-sum.el (gnus-adjust-marked-articles): Add to
 +      `gnus-newsgroup-unexist'.
 +
 +      * gnus.el (gnus-article-mark-lists): Add `unexist' to the list of
 +      marks.
 +      (gnus-article-special-mark-lists): Put the `unexist' in the special
 +      marks list instead.
 +
 +      * gnus-sum.el (gnus-articles-to-read): Don't include unexisting
 +      articles in the list of articles to be selected.
 +
 +      * nnimap.el (nnimap-retrieve-group-data-early): Query for unexisting
 +      articles.
 +      (nnimap-update-info): Keep track of unexisting articles.
 +      (nnimap-update-qresync-info): Ditto.
 +
  2012-02-10  Lars Ingebrigtsen  <larsi@gnus.org>
  
        * message.el (message-default-send-mail-function): Made into own
        * gnus.el (gnus-method-ephemeral-p): Move after declaration of defsubst
        `gnus-sloppily-equal-method-parameters' to avoid a warning.
  
 +2012-02-09  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * mm-archive.el (mm-archive-dissect-and-inline): New function.
 +      (mm-archive-dissect-and-inline): Fix up the undisplayer.
 +
 +      * gnus-compat.el: Define `timer-set-function'.
 +
 +      * mm-decode.el (mm-display-external): Output the text from the command
 +      in the buffer after the command finished.  This makes text-based
 +      commands behave better.
 +
 +2012-02-08  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-compat.el: Add a compat for the old `url-retrieve'.
 +
 +2012-02-07  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-compat.el: Make `help-function-arglist' be compatible on Emacs
 +      23.1.
 +
 +2012-02-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus-sum.el (gnus-summary-show-thread): Revert last two changes.
 +
 +2012-02-07  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * message.el (smtpmail-smtp-user): Silence compiler warning.
 +
 +2012-02-06  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * message.el (message-multi-smtp-send-mail): Also allow specifying the
 +      SMTP user name.
 +
 +2012-02-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus-sum.el (gnus-summary-show-thread):
 +      next-single-char-property-change may return nil in XEmacs.
 +      (gnus-summary-article-map): Fix typo.
 +
  2012-02-09  Lars Ingebrigtsen  <larsi@gnus.org>
  
        * gnus-msg.el (gnus-msg-mail): Use `message-mail' if Gnus isn't
        lines that are narrower than the window width.  Otherwise background
        "blocks" will look less readable.
  
 -2012-02-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 -
 -      * gnus-sum.el (gnus-summary-show-thread): Revert last two changes.
 -
  2012-02-07  Lars Ingebrigtsen  <larsi@gnus.org>
  
        * nnimap.el (nnimap-transform-headers): Remove unused variable.
        * gnus-sum.el (gnus-summary-exit-no-update): Really deaden the summary
        buffer if `gnus-kill-summary-on-exit' is nil.
  
 -2012-02-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 -
 -      * gnus-sum.el (gnus-summary-show-thread):
 -      next-single-char-property-change may return nil in XEmacs.
 -
  2012-02-06  Lars Ingebrigtsen  <larsi@gnus.org>
  
        * gnus-sum.el (gnus-handle-ephemeral-exit): Allow exiting from Gnus
        * gnus-sum.el (gnus-summary-show-thread):
        next-single-char-property-change never returns nil (Bug#8657).
  
 +2012-02-02  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * message.el (message-multi-smtp-send-mail): New function.
 +      (message-multi-smtp-send-mail): Respect the X-Message-SMTP-Method
 +      header to implement multi-SMTP functionality.
 +
 +      * gnus-agent.el (gnus-agent-send-mail-function): Removed.
 +      (gnus-agentize): Don't set it.
 +      (gnus-agent-send-mail): Don't use it.
 +
 +      * gnus-sum.el (gnus-summary-widget-backward): New function and
 +      keystroke.
 +
 +      * gnus-compat.el: More the compat functions more compatible.
 +
 +      * shr.el (shr-put-image): Remove underlines from sliced images.
 +      (shr-zoom-image): Compute the region to be replaced more correctly.
 +
 +2012-02-02  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus-msg.el (gnus-gcc-self-resent-messages): New user option.
 +      (gnus-summary-resend-message-insert-gcc): New function.
 +      (gnus-summary-resend-message): Modify message-header-setup-hook and
 +      message-sent-hook to make it work for Gcc.
 +      (gnus-inews-do-gcc): Update the number of unread articles of groups
 +      that messages are Gcc'd to.
 +
 +      * message.el (message-resend): Run message-sent-hook to do Gcc.
 +
 +2012-02-01  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * lpath.el: Fix an XEmacs compilation warning.
 +
 +      * gnus-compat.el: Require `help-fns' to fix compilation error.
 +
 +      * gnus-registry.el (gnus-registry-fixup-registry): Move the message to
 +      a higher level to silence compilation.
 +
 +      * gnus-art.el (gnus-shr-put-image): Take and pass on a `flags'
 +      parameter to allow controlling the scaling.
 +
 +      * shr.el (shr-zoom-image): New command and keystroke.
 +      (shr-put-image): Take a `size' flag to say how to scale the image.
 +
 +      * gnus-compat.el: Redefine `delete-directory' to provide recursive
 +      deletion unless already defined.
 +
 +      * gnus.el (gnus-compat): Require it.
 +
 +      * gnus-compat.el: New file.
 +
 +      * gnus-start.el (gnus-clean-old-newsrc): New function.
 +      (gnus-read-newsrc-file): Use it.
 +
 +      * mm-archive.el (mm-dissect-archive): Use it to get all file names.
 +      Use recursive deletion.
 +      (mm-dissect-archive): Add support for zip files.
 +
 +      * gnus-util.el (gnus-recursive-directory-files): New function.
 +
 +      * mm-archive.el (mm-archive-list-files): Inline text and image parts.
 +      (mm-archive-decoders): Add tgz support.
 +
 +      * mm-decode.el (mm-shr): Make sure that the HTML ends with a newline.
 +      Otherwise inserting text into the Gnus buffer can look odd.
 +
 +      * gnus-art.el (gnus-mime-inline-part): Slight clean-up.
 +
 +      * mm-archive.el (mm-archive-decoders): Add support for tar.
 +
 +      * gnus.el (gnus-logo-color-alist): Change the colours for Ma Gnus.
 +
 +      * nnmail.el (nnmail-extra-headers): Add Cc to the default.
 +
 +2012-01-31  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * mm-decode.el (mm-dissect-singlepart): Check that the decoder exists.
 +
 +      * mm-archive.el: New file.
 +
 +      * mm-decode.el (mm-dissect-singlepart): Use it to decode ms-tnef files.
 +
 +      * mm-util.el (mm-find-buffer-file-coding-system): Comment fix.
 +
 +      * message.el (message-goto-*): Make all the `message-goto-*' commands
 +      push the mark before moving point.  This makes it easier to go back to
 +      where you came from after editing whatever you jumped to.
 +
 +2012-01-31  Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
 +
 +      * gnus.el: Ma Gnus v0.1 is released.
 +
  2012-02-05  Lars Ingebrigtsen  <larsi@gnus.org>
  
        * nnimap.el (nnimap-open-server): Allow switching the nnoo server
  2012-01-31  Jim Meyering  <jim@meyering.net>
  
        * gnus-agent.el (gnus-agent-expire-unagentized-dirs):
 -        Correct a comment (insert "not") and hide nominally-doubled "to".
 +      Correct a comment (insert "not") and hide nominally-doubled "to".
  
 -2012-01-31  Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
 +2012-01-31  Lars Ingebrigtsen  <larsi@gnus.org>
  
 -      * gnus.el: No Gnus v0.19 is released.
 +      * gnus.el (gnus-version): Change name to "Ma Gnus".
  
  2012-01-30  Philipp Haselwarter  <philipp.haselwarter@gmx.de>  (tiny change)
  
diff --combined lisp/mm-decode.el
@@@ -29,7 -29,6 +29,7 @@@
  
  (require 'mail-parse)
  (require 'mm-bodies)
 +(require 'mm-archive)
  (eval-when-compile (require 'cl)
                   (require 'term))
  
@@@ -249,8 -248,6 +249,8 @@@ before the external MIME handler is inv
      ("message/partial" mm-inline-partial identity)
      ("message/external-body" mm-inline-external-body identity)
      ("text/.*" mm-inline-text identity)
 +    ("application/x-.?tar\\(-.*\\)?" mm-archive-dissect-and-inline identity)
 +    ("application/zip" mm-archive-dissect-and-inline identity)
      ("audio/wav" mm-inline-audio
       (lambda (handle)
         (and (or (featurep 'nas-sound) (featurep 'native-sound))
      "application/pgp-signature" "application/x-pkcs7-signature"
      "application/pkcs7-signature" "application/x-pkcs7-mime"
      "application/pkcs7-mime"
 +    "application/x-gtar-compressed"
 +    "application/x-tar"
 +    "application/zip"
      ;; Mutt still uses this even though it has already been withdrawn.
      "application/pgp")
    "List of media types that are to be displayed inline.
@@@ -659,25 -653,8 +659,25 @@@ Postpone undisplaying of viewers for ty
            (if (equal "text/plain" (car ctl))
                (assoc 'format ctl)
              t))
 -    (mm-make-handle
 -     (mm-copy-to-buffer) ctl cte nil cdl description nil id)))
 +    ;; Guess what the type of application/octet-stream parts should
 +    ;; really be.
 +    (let ((filename (cdr (assq 'filename (cdr cdl)))))
 +      (when (and (equal (car ctl) "application/octet-stream")
 +               filename
 +               (string-match "\\.\\([^.]+\\)$" filename))
 +      (let ((new-type (mailcap-extension-to-mime (match-string 1 filename))))
 +        (when new-type
 +          (setcar ctl new-type)))))
 +    (let ((handle
 +         (mm-make-handle
 +          (mm-copy-to-buffer) ctl cte nil cdl description nil id))
 +        (decoder (assoc (car ctl) mm-archive-decoders)))
 +      (if (and decoder
 +             ;; Do automatic decoding
 +             (cadr decoder)
 +             (executable-find (caddr decoder)))
 +        (mm-dissect-archive handle)
 +      handle))))
  
  (defun mm-dissect-multipart (ctl from)
    (goto-char (point-min))
@@@ -941,38 -918,46 +941,38 @@@ external if displayed external.
                                   shell-command-switch command)
                    (set-process-sentinel
                     (get-buffer-process buffer)
 -                   (lexical-let ;; Don't use `let'.
 -                       ;; Function used to remove temp file and directory.
 -                       ((fn `(lambda nil
 -                               ;; Don't use `ignore-errors'.
 -                               (condition-case nil
 -                                   (delete-file ,file)
 -                                 (error))
 -                               (condition-case nil
 -                                   (delete-directory
 -                                    ,(file-name-directory file))
 -                                 (error))))
 -                        ;; Form uses to kill the process buffer and
 -                        ;; remove the undisplayer.
 -                        (fm `(progn
 -                               (kill-buffer ,buffer)
 -                               ,(macroexpand
 -                                 (list 'mm-handle-set-undisplayer
 -                                       (list 'quote handle)
 -                                       nil))))
 -                        ;; Message to be issued when the process exits.
 -                        (done (format "Displaying %s...done" command))
 -                        ;; In particular, the timer object (which is
 -                        ;; a vector in Emacs but is a list in XEmacs)
 -                        ;; requires that it is lexically scoped.
 -                        (timer (run-at-time 30.0 nil 'ignore)))
 -                     (if (featurep 'xemacs)
 -                         (lambda (process state)
 -                           (when (eq 'exit (process-status process))
 -                             (if (memq timer itimer-list)
 -                                 (set-itimer-function timer fn)
 -                               (funcall fn))
 -                             (ignore-errors (eval fm))
 -                             (message "%s" done)))
 -                       (lambda (process state)
 -                         (when (eq 'exit (process-status process))
 -                           (if (memq timer timer-list)
 -                               (timer-set-function timer fn)
 -                             (funcall fn))
 -                           (ignore-errors (eval fm))
 -                           (message "%s" done)))))))
 +                   (lexical-let ((outbuf outbuf)
 +                                 (file file)
 +                                 (buffer buffer)
 +                                 (command command)
 +                                 (handle handle))
 +                     (run-at-time
 +                      30.0 nil
 +                      (lambda ()
 +                        (ignore-errors
 +                          (delete-file file))
 +                        (ignore-errors
 +                          (delete-directory (file-name-directory file)))))
 +                     (lambda (process state)
 +                       (when (eq (process-status process) 'exit)
 +                         (condition-case nil
 +                             (delete-file file)
 +                           (error))
 +                         (condition-case nil
 +                             (delete-directory (file-name-directory file))
 +                           (error))
 +                         (when (buffer-live-p outbuf)
 +                           (with-current-buffer outbuf
 +                             (let ((buffer-read-only nil)
 +                                   (point (point)))
 +                               (forward-line 2)
 +                               (mm-insert-inline
 +                                handle (with-current-buffer buffer
 +                                         (buffer-string)))
 +                               (goto-char point))))
 +                         (when (buffer-live-p buffer)
 +                           (kill-buffer buffer)))
 +                       (message "Displaying %s...done" command)))))
                (mm-handle-set-external-undisplayer
                 handle (cons file buffer)))
              (message "Displaying %s..." command))
@@@ -1772,9 -1757,11 +1772,13 @@@ If RECURSIVE, search recursively.
                                    (string-to-number (match-string 2)))
                                  mm-extra-numeric-entities)))
             (replace-match (char-to-string char))))
+        ;; Remove "soft hyphens".
+        (goto-char (point-min))
+        (while (search-forward "-" nil t)
+          (replace-match "" t t))
         (libxml-parse-html-region (point-min) (point-max))))
 +      (unless (bobp)
 +      (insert "\n"))
        (mm-handle-set-undisplayer
         handle
         `(lambda ()