+1999-11-07 01:17:53 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nndraft.el (nndraft-request-expire-articles): Do all the backup
+ files.
+
+1999-10-29 David S. Goldberg <dsg@mitre.org>
+
+ * emacs-mime.texi (Customization): Document mm-inline-override-types
+
+1999-10-29 David S. Goldberg <dsg@mitre.org>
+
+ * emacs-mime.texi (Customization): Document mm-inline-override-types
+
+1999-10-29 David S. Goldberg <dsg@mitre.org>
+
+ * emacs-mime.texi (Customization): Document mm-inline-override-types
+
+1999-10-26 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * smiley.el (gnus-smiley-display): Use `smiley-toggle-buffer'.
+ (smiley-toggle-buffer): New function.
+ (smiley-buffer): Don't quote the function.
+ (smiley-toggle-extents): Ditto.
+
+1999-11-07 01:00:32 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-topic.el (gnus-topic-goto-missing-topic): Work even in
+ empty buffers.
+
+1999-11-06 23:16:24 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (gnus-article-mode-map): Use the summary article
+ edit.
+
1999-11-06 22:56:49 Jens-Ulrik Petersen <Jens-Ulrik.Petersen@nokia.com>
* gnus-group.el (gnus-group-read-ephemeral-group): Doc fix.
* mm-decode.el mm-inline-override-types: New variable
- * mm-decode.el (mm-inline-override-p): Use it
+ * mm-decode.el (mm-inline-override-p): New function
+
+ * mm-decode.el (mm-inlined-p): Use it
+
+1999-10-20 David S. Goldberg <dsg@mitre.org>
+
+ * mm-decode.el mm-inline-override-types: New variable
+
+ * mm-decode.el (mm-inline-override-p): New function
- * gnus-art.el (gnus-mime-display-single): Then use that
+ * mm-decode.el (mm-inlined-p): Use it
Mon Sep 27 15:18:05 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
"s" gnus-article-show-summary
"\C-c\C-m" gnus-article-mail
"?" gnus-article-describe-briefly
- "e" gnus-article-edit
+ "e" gnus-summary-article-edit
"<" beginning-of-buffer
">" end-of-buffer
"\C-c\C-i" gnus-info-find-node
(when (string-match (pop ignored) type)
(throw 'ignored nil)))
(if (and (setq not-attachment
- (or (not (mm-handle-disposition handle))
- (equal (car (mm-handle-disposition handle))
- "inline")
- (mm-attachment-override-p handle)
- (not (mm-inline-override-p handle))))
+ (and (not (mm-inline-override-p handle))
+ (or (not (mm-handle-disposition handle))
+ (equal (car (mm-handle-disposition handle))
+ "inline")
+ (mm-attachment-override-p handle))))
(mm-automatic-display-p handle)
(or (mm-inlined-p handle)
(mm-automatic-external-display-p type)))
(let* ((top (gnus-topic-find-topology
(gnus-topic-parent-topic topic)))
(tp (reverse (cddr top))))
- (while (not (equal (caaar tp) topic))
- (setq tp (cdr tp)))
- (pop tp)
- (while (and tp
- (not (gnus-topic-goto-topic (caaar tp))))
- (pop tp))
- (if tp
- (gnus-topic-forward-topic 1)
- (gnus-topic-goto-missing-topic (caadr top))))
+ (if (not top)
+ (gnus-topic-insert-topic-line
+ topic t t (car (gnus-topic-find-topology topic)) nil 0)
+ (while (not (equal (caaar tp) topic))
+ (setq tp (cdr tp)))
+ (pop tp)
+ (while (and tp
+ (not (gnus-topic-goto-topic (caaar tp))))
+ (pop tp))
+ (if tp
+ (gnus-topic-forward-topic 1)
+ (gnus-topic-goto-missing-topic (caadr top)))))
nil))
(defun gnus-topic-update-topic-line (topic-name &optional reads)
(lambda (handle)
(and (or (featurep 'nas-sound) (featurep 'native-sound))
(device-sound-enabled-p))))
+ ("application/pgp-signature" ignore identity)
("multipart/alternative" ignore identity)
("multipart/mixed" ignore identity)
("multipart/related" ignore identity))
"Alist of media types/test that say whether the media types can be displayed inline.")
(defvar mm-inlined-types
- '("image/.*" "text/.*" "message/delivery-status" "message/rfc822")
+ '("image/.*" "text/.*" "message/delivery-status" "message/rfc822"
+ "application/pgp-signature")
"List of media types that are to be displayed inline.")
(defvar mm-automatic-display
'("text/plain" "text/enriched" "text/richtext" "text/html"
"text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*"
- "message/rfc822" "text/x-patch")
+ "message/rfc822" "text/x-patch" "application/pgp-signature")
"A list of MIME types to be displayed automatically.")
(defvar mm-attachment-override-types '("text/x-vcard")
(defvar mm-inline-override-types nil
"Types that should be treated as attachments even if they can be displayed inline.")
+(defvar mm-inline-override-types nil
+ "Types that should be treated as attachments even if they can be displayed inline.")
+
(defvar mm-automatic-external-display nil
"List of MIME type regexps that will be displayed externally automatically.")
(type (mm-handle-media-type handle))
method result)
(while (setq method (pop methods))
- (when (and (string-match method type)
+ (when (and (not (mm-inline-override-p handle))
+ (string-match method type)
(mm-inlinable-p handle))
(setq result t
methods nil)))
(type (mm-handle-media-type handle))
method result)
(while (setq method (pop methods))
- (when (and (string-match method type)
+ (when (and (not (mm-inline-override-p handle))
+ (string-match method type)
(mm-inlinable-p handle))
(setq result t
methods nil)))
(when (string-match ty type)
(throw 'found t))))))
+(defun mm-inline-override-p (handle)
+ "Say whether HANDLE should have inline behavior overridden."
+ (let ((types mm-inline-override-types)
+ (type (mm-handle-media-type handle))
+ ty)
+ (catch 'found
+ (while (setq ty (pop types))
+ (when (string-match ty type)
+ (throw 'found t))))))
+
(defun mm-automatic-external-display-p (type)
"Return the user-defined method for TYPE."
(let ((methods mm-automatic-external-display)
(dolist (backup
(let ((kept-new-versions 1)
(kept-old-versions 0))
- (cdr (find-backup-file-name
- (nndraft-article-filename article)))))
+ (find-backup-file-name
+ (nndraft-article-filename article))))
(when (file-exists-p backup)
(funcall nnmail-delete-file-function backup)))))
res))
(defun smiley-toggle-extents (e)
(interactive "e")
(map-extents
- '(lambda (e void)
- (let (ant)
- (if (annotationp (setq ant (extent-property e 'smiley-annotation)))
- (progn
- (if (eq (extent-property e 'invisible) nil)
- (progn
- (reveal-annotation ant)
- (set-extent-property e 'invisible t)
- )
- (hide-annotation ant)
- (set-extent-property e 'invisible nil))))
- nil))
+ (lambda (e void)
+ (let (ant)
+ (if (annotationp (setq ant (extent-property e 'smiley-annotation)))
+ (if (eq (extent-property e 'invisible) nil)
+ (progn
+ (reveal-annotation ant)
+ (set-extent-property e 'invisible t)
+ )
+ (hide-annotation ant)
+ (set-extent-property e 'invisible nil)))
+ nil))
(event-buffer e)))
;;;###autoload
(case-fold-search nil)
entry regexp beg group file)
(map-extents
- '(lambda (e void)
- (when (or (extent-property e 'smiley-extent)
- (extent-property e 'smiley-annotation))
- (delete-extent e)))
+ (lambda (e void)
+ (when (or (extent-property e 'smiley-extent)
+ (extent-property e 'smiley-annotation))
+ (delete-extent e)))
buffer st nd)
(goto-char (or st (point-min)))
(setq beg (point))
(eq (char-after (1- (point))) ?\()))
t)))
+(defun smiley-toggle-buffer (&optional arg buffer st nd)
+ "Toggle displaying smiley faces.
+With arg, turn displaying on if and only if arg is positive."
+ (interactive "P")
+ (let (on off)
+ (map-extents
+ (lambda (e void)
+ (let (ant)
+ (if (annotationp (setq ant (extent-property e 'smiley-annotation)))
+ (if (eq (extent-property e 'invisible) nil)
+ (setq off (cons (cons ant e) off))
+ (setq on (cons (cons ant e) on)))))
+ nil)
+ buffer st nd)
+ (if (and (not (and (numberp arg) (< arg 0)))
+ (or (and (numberp arg) (> arg 0))
+ (null on)))
+ (if off
+ (while off
+ (reveal-annotation (caar off))
+ (set-extent-property (cdar off) 'invisible t)
+ (setq off (cdr off)))
+ (smiley-buffer))
+ (while on
+ (hide-annotation (caar on))
+ (set-extent-property (cdar on) 'invisible nil)
+ (setq on (cdr on))))))
+
(defvar gnus-article-buffer)
;;;###autoload
-(defun gnus-smiley-display ()
- "Display \"smileys\" as small graphical icons."
- (interactive)
+(defun gnus-smiley-display (&optional arg)
+ "Display \"smileys\" as small graphical icons.
+With arg, turn displaying on if and only if arg is positive."
+ (interactive "P")
(save-excursion
(set-buffer gnus-article-buffer)
- (article-goto-body)
- (smiley-buffer (current-buffer) (point-min) (point-max))))
+ (save-restriction
+ (widen)
+ (article-goto-body)
+ (smiley-toggle-buffer arg (current-buffer) (point) (point-max)))))
(provide 'smiley)
+1999-11-07 01:28:07 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (MIME Commands): Addition.
+
1999-11-06 23:09:31 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Customizing Articles): Fix.
* emacs-mime.texi (New Viewers): Fix.
+1999-10-29 David S. Goldberg <dsg@mitre.org>
+
+ * emacs-mime.texi (Customization): Document mm-inline-override-types
+
1999-09-25 10:58:17 Lars Magne Ingebrigtsen <larsi@gnus.org>
* message.texi (Forwarding): Updated.
makes the library display all inline images as inline, regardless of
their size.
+@item mm-inline-override-p
+@code{mm-inlined-types} may include regular expressions, for example to
+specify that all @samp{text/.*} parts be displayed inline. If a user
+prefers to have a type that matches such a regular expression be treated
+as an attachment, that can be accomplished by setting this variable to a
+list containing that type. For example assuming @code{mm-inlined-types}
+includes @samp{text/.*}, then including @samp{text/html} in this
+variable will cause @samp{text/html} parts to be treated as attachments.
@end table
@section @sc{mime} Commands
@cindex MIME decoding
+The following commands all understand the numerical prefix. For
+instance, @kbd{3 b} means ``view the third @sc{mime} part''.
+
+@table @kdb
+@item b
+@itemx K b
+@kindex b (Summary)
+@kindex K b (Summary)
+View the @sc{mime} part.
+
+@item K o
+@kindex K o (Summary)
+Save the @sc{mime} part.
+
+@item K c
+@kindex K c (Summary)
+Copy the @sc{mime} part.
+
+@item K e
+@kindex K e (Summary)
+View the @sc{mime} part externally.
+
+@item K i
+@kindex K i (Summary)
+View the @sc{mime} part internally.
+
+@item K |
+@kindex K | (Summary)
+Pipe the @sc{mime} part to an external command.
+@end table
+
+The rest of these @sc{mime} commands do not use the numerical prefix in
+the same manner:
+
@table @kbd
+@item K b
+@kindex K b (Summary)
+Make all the @sc{mime} parts have buttons in from of them.
+
+@item K m
+@kindex K m (Summary)
+Some multipart messages are transmitted with missing or faulty headers.
+This command will attempt to ``repair'' these messages so that they can
+be viewed in a more pleasant manner.
+
@item X m
@kindex X m (Summary)
@findex gnus-summary-save-parts