Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

*** empty log message ***

  • Loading branch information...
commit 8eb23a8ee7d38cf2afd8c28172a77670530333c8 1 parent 349d090
@larsmagne larsmagne authored
View
50 lisp/ChangeLog
@@ -1,3 +1,53 @@
+Wed Dec 2 01:43:48 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.59 is released.
+
+1998-12-02 01:38:31 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mml.el (mml-insert-mime-headers): Beep at multiple charsets.
+
+ * gnus-art.el (gnus-mime-copy-part): Set buffer-file-name.
+
+1998-11-30 Hrvoje Niksic <hniksic@srce.hr>
+
+ * mml.el (mml-generate-mime-1): Handle unquoting end-tags.
+
+1998-12-02 00:15:30 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-decode.el (mm-all-images-fit): New variable.
+ (mm-image-fit-p): Use it.
+
+ * gnus-art.el (gnus-mime-display-single): Use it.
+ (gnus-mime-internalize-part): New command and keystroke.
+
+ * mm-decode.el (mm-user-automatic-external-display): New
+ variable.
+ (mm-automatic-external-display-p): New function.
+
+ * gnus-picon.el (gnus-picons-xbm-face): Default to sensible
+ colors.
+
+1998-12-01 23:52:05 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-sum.el (gnus-summary-repair-multipart): Reselect article.
+
+ * gnus-art.el (gnus-with-article): Work in the original article
+ buffer.
+ (gnus-with-article): Work in read-only groups.
+
+Tue Dec 1 00:15:36 1998 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-bodies.el (mm-decode-string): Return original string if not
+ decode.
+
+Mon Nov 30 23:38:02 1998 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-uu.el (mm-uu-dissect): Use mm-make-handle.
+
+1998-12-01 01:53:49 Fran�ois Pinard <pinard@iro.umontreal.ca>
+
+ * nndoc.el (nndoc-mime-parts-type-p): Do related.
+
Tue Dec 1 00:46:20 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Pterodactyl Gnus v0.58 is released.
View
88 lisp/gnus-art.el
@@ -637,33 +637,28 @@ Initialized from `text-mode-syntax-table.")
b 'intangible (cddr (memq 'intangible props)))))
(defmacro gnus-with-article (article &rest forms)
- "Select ARTICLE, copy the contents of the original article buffer to a new buffer, and then perform FORMS there.
+ "Select ARTICLE and perform FORMS in the original article buffer.
Then replace the article with the result."
`(progn
;; We don't want the article to be marked as read.
(let (gnus-mark-article-hook)
(gnus-summary-select-article t t nil ,article))
(set-buffer gnus-original-article-buffer)
- (let ((buf (format "%s" (buffer-string))))
- (with-temp-buffer
- (insert buf)
- ,@forms
- (unless (gnus-request-replace-article
- ,article (car gnus-article-current)
- (current-buffer) t)
- (error "Couldn't replace article"))
- ;; The cache and backlog have to be flushed somewhat.
- (when gnus-keep-backlog
- (gnus-backlog-remove-article
- (car gnus-article-current) (cdr gnus-article-current)))
- ;; Flush original article as well.
- (save-excursion
- (when (get-buffer gnus-original-article-buffer)
- (set-buffer gnus-original-article-buffer)
- (setq gnus-original-article nil)))
- (when gnus-use-cache
- (gnus-cache-update-article
- (car gnus-article-current) (cdr gnus-article-current)))))))
+ ,@forms
+ (if (not (gnus-check-backend-function
+ 'request-replace-article (car gnus-article-current)))
+ (gnus-message 5 "Read-only group; not replacing")
+ (unless (gnus-request-replace-article
+ ,article (car gnus-article-current)
+ (current-buffer) t)
+ (error "Couldn't replace article")))
+ ;; The cache and backlog have to be flushed somewhat.
+ (when gnus-keep-backlog
+ (gnus-backlog-remove-article
+ (car gnus-article-current) (cdr gnus-article-current)))
+ (when gnus-use-cache
+ (gnus-cache-update-article
+ (car gnus-article-current) (cdr gnus-article-current)))))
(put 'gnus-with-article 'lisp-indent-function 1)
(put 'gnus-with-article 'edebug-form-spec '(form body))
@@ -2287,11 +2282,11 @@ If ALL-HEADERS is non-nil, no headers are hidden."
(defvar gnus-mime-button-commands
'((gnus-article-press-button "\r" "Toggle Display")
- ;(gnus-mime-view-part "\M-\r" "View Interactively...")
(gnus-mime-view-part "v" "View Interactively...")
(gnus-mime-save-part "o" "Save...")
(gnus-mime-copy-part "c" "View As Text, In Other Buffer")
(gnus-mime-inline-part "i" "View As Text, In This Buffer")
+ (gnus-mime-internalize-part "E" "View Internally")
(gnus-mime-externalize-part "e" "View Externally")
(gnus-mime-pipe-part "|" "Pipe To Command...")))
@@ -2355,8 +2350,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
(interactive)
(gnus-article-check-buffer)
(let ((data (get-text-property (point) 'gnus-data))
- ;(url-standalone-mode (not gnus-plugged))
- )
+ (url-standalone-mode (not gnus-plugged)))
(mm-interactively-view-part data)))
(defun gnus-mime-copy-part (&optional handle)
@@ -2364,17 +2358,22 @@ If ALL-HEADERS is non-nil, no headers are hidden."
(interactive)
(gnus-article-check-buffer)
(let* ((handle (or handle (get-text-property (point) 'gnus-data)))
- (contents (mm-get-part handle))
- (buffer (generate-new-buffer
- (file-name-nondirectory
- (or
- (mail-content-type-get (mm-handle-type handle) 'name)
- (mail-content-type-get (mm-handle-type handle)
- 'filename)
- "*decoded*")))))
+ (contents (mm-get-part handle))|
+ (base (file-name-nondirectory
+ (or
+ (mail-content-type-get (mm-handle-type handle) 'name)
+ (mail-content-type-get (mm-handle-type handle)
+ 'filename)
+ "*decoded*")))
+ (buffer (generate-new-buffer base)))
(switch-to-buffer buffer)
(insert contents)
- (normal-mode)
+ ;; We do it this way to make `normal-mode' set the appropriate mode.
+ (unwind-protect
+ (progn
+ (setq buffer-file-name (expand-file-name base))
+ (normal-mode))
+ (setq buffer-file-name nil))
(goto-char (point-min))))
(defun gnus-mime-inline-part (&optional charset)
@@ -2383,7 +2382,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
(gnus-article-check-buffer)
(let* ((data (get-text-property (point) 'gnus-data))
contents
- ;(url-standalone-mode (not gnus-plugged))
+ (url-standalone-mode (not gnus-plugged))
(b (point))
buffer-read-only)
(if (mm-handle-undisplayer data)
@@ -2398,12 +2397,26 @@ If ALL-HEADERS is non-nil, no headers are hidden."
(goto-char b))))
(defun gnus-mime-externalize-part (&optional handle)
- "Insert the MIME part under point into the current buffer."
+ "View the MIME part under point with an external viewer."
(interactive)
(gnus-article-check-buffer)
(let* ((handle (or handle (get-text-property (point) 'gnus-data)))
- ;(url-standalone-mode (not gnus-plugged))
+ (url-standalone-mode (not gnus-plugged))
(mm-user-display-methods nil)
+ (mm-all-images-fit t)
+ (rfc2047-default-charset gnus-newsgroup-default-charset)
+ (mm-charset-iso-8859-1-forced gnus-newsgroup-iso-8859-1-forced))
+ (if (mm-handle-undisplayer handle)
+ (mm-remove-part handle)
+ (mm-display-part handle))))
+
+(defun gnus-mime-internalize-part (&optional handle)
+ "View the MIME part under point with an internal viewer."
+ (interactive)
+ (gnus-article-check-buffer)
+ (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
+ (url-standalone-mode (not gnus-plugged))
+ (mm-user-display-methods '(".*"))
(rfc2047-default-charset gnus-newsgroup-default-charset)
(mm-charset-iso-8859-1-forced gnus-newsgroup-iso-8859-1-forced))
(if (mm-handle-undisplayer handle)
@@ -2594,7 +2607,8 @@ If ALL-HEADERS is non-nil, no headers are hidden."
(when (string-match (pop ignored) type)
(throw 'ignored nil)))
(if (and (mm-automatic-display-p type)
- (mm-inlinable-part-p type)
+ (or (mm-inlinable-part-p type)
+ (mm-automatic-external-display-p type))
(setq not-attachment
(or (not (mm-handle-disposition handle))
(equal (car (mm-handle-disposition handle))
View
8 lisp/gnus-picon.el
@@ -144,8 +144,12 @@ please tell me so that we can list it."
(string))
:group 'picons)
-(defface gnus-picons-xbm-face '((t (:foreground "black" :background "white")))
- "Face to show X face"
+(defface gnus-picons-xbm-face
+ '((((background dark))
+ (:foreground "green" :background "black"))
+ (t
+ (:foreground "black" :background "blue")))
+ "Face to show xbm picons in."
:group 'picons)
;;; Internal variables:
View
4 lisp/gnus-sum.el
@@ -9213,7 +9213,9 @@ save those articles instead."
(insert (format "Content-Type: multipart/mixed; boundary=\"%s\"\n"
separator))
(insert "Mime-Version: 1.0\n")
- (widen)))))
+ (widen))))
+ (let (gnus-mark-article-hook)
+ (gnus-summary-select-article t t nil article)))
(defun gnus-summary-toggle-display-buttonized ()
"Toggle the buttonizing of the article buffer."
View
2  lisp/gnus.el
@@ -254,7 +254,7 @@ is restarted, and sometimes reloaded."
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.58"
+(defconst gnus-version-number "0.59"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
View
18 lisp/mm-bodies.el
@@ -172,14 +172,16 @@ The characters in CHARSET should then be decoded."
(defun mm-decode-string (string charset)
"Decode STRING with CHARSET."
(setq charset (or charset rfc2047-default-charset))
- (when (featurep 'mule)
- (let (mule-charset)
- (when (and charset
- (setq mule-charset (mm-charset-to-coding-system charset))
- enable-multibyte-characters
- (or (not (eq mule-charset 'ascii))
- (setq mule-charset rfc2047-default-charset)))
- (mm-decode-coding-string string mule-charset)))))
+ (or
+ (when (featurep 'mule)
+ (let (mule-charset)
+ (when (and charset
+ (setq mule-charset (mm-charset-to-coding-system charset))
+ enable-multibyte-characters
+ (or (not (eq mule-charset 'ascii))
+ (setq mule-charset rfc2047-default-charset)))
+ (mm-decode-coding-string string mule-charset))))
+ string))
(provide 'mm-bodies)
View
21 lisp/mm-decode.el
@@ -91,6 +91,9 @@
'("text/plain" "text/enriched" "text/richtext" "text/html"
"image/.*" "message/delivery-status" "multipart/.*"))
+(defvar mm-user-automatic-external-display nil
+ "List of MIME type regexps that will be displayed externally automatically.")
+
(defvar mm-alternative-precedence
'("image/jpeg" "image/gif" "text/html" "text/enriched"
"text/richtext" "text/plain")
@@ -99,6 +102,9 @@
(defvar mm-tmp-directory "/tmp/"
"Where mm will store its temporary files.")
+(defvar mm-all-images-fit nil
+ "If non-nil, then all images fit in the buffer.")
+
;;; Internal variables.
(defvar mm-dissection-list nil)
@@ -399,6 +405,16 @@ external if displayed external."
methods nil)))
result))
+(defun mm-automatic-external-display-p (type)
+ "Return the user-defined method for TYPE."
+ (let ((methods mm-user-automatic-external-display)
+ method result)
+ (while (setq method (pop methods))
+ (when (string-match method type)
+ (setq result t
+ methods nil)))
+ result))
+
(defun add-mime-display-method (type method)
"Make parts of TYPE be displayed with METHOD.
This overrides entries in the mailcap file."
@@ -541,8 +557,9 @@ This overrides entries in the mailcap file."
(defun mm-image-fit-p (handle)
"Say whether the image in HANDLE will fit the current window."
(let ((image (mm-get-image handle)))
- (and (< (glyph-width image) (window-pixel-width))
- (< (glyph-height image) (window-pixel-height)))))
+ (or mm-all-images-fit
+ (and (< (glyph-width image) (window-pixel-width))
+ (< (glyph-height image) (window-pixel-height))))))
(provide 'mm-decode)
View
28 lisp/mm-uu.el
@@ -2,7 +2,7 @@
;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 5.3 $
+;; $Revision: 5.4 $
;; Keywords: news postscript uudecode binhex shar
;; This file is not part of GNU Emacs, but the same permissions
@@ -118,16 +118,16 @@
(error nil))))
(if (> start-char text-start)
(push
- (list (mm-uu-copy-to-buffer text-start start-char)
- text-plain-type cte nil nil nil)
+ (mm-make-handle (mm-uu-copy-to-buffer text-start start-char)
+ text-plain-type cte)
result))
(push
(cond
((eq type 'postscript)
- (list (mm-uu-copy-to-buffer start-char end-char)
- '("application/postscript") nil nil nil nil))
+ (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
+ '("application/postscript")))
((eq type 'uu)
- (list (mm-uu-copy-to-buffer start-char end-char)
+ (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
(list (or (and file-name
(string-match "\\.[^\\.]+$" file-name)
(mailcap-extension-to-mime
@@ -135,10 +135,9 @@
"application/octet-stream"))
mm-uu-decode-function nil
(if (and file-name (not (equal file-name "")))
- (list "attachment" (cons 'filename file-name)))
- file-name))
+ (list "attachment" (cons 'filename file-name)))))
((eq type 'binhex)
- (list (mm-uu-copy-to-buffer start-char end-char)
+ (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
(list (or (and file-name
(string-match "\\.[^\\.]+$" file-name)
(mailcap-extension-to-mime
@@ -146,18 +145,17 @@
"application/octet-stream"))
mm-uu-binhex-decode-function nil
(if (and file-name (not (equal file-name "")))
- (list "attachment" (cons 'filename file-name)))
- file-name))
+ (list "attachment" (cons 'filename file-name)))))
((eq type 'shar)
- (list (mm-uu-copy-to-buffer start-char end-char)
- '("application/x-shar") nil nil nil nil)))
+ (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
+ '("application/x-shar"))))
result)
(setq text-start end-char))))
(when result
(if (> (point-max) (1+ text-start))
(push
- (list (mm-uu-copy-to-buffer text-start (point-max))
- text-plain-type cte nil nil nil)
+ (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max))
+ text-plain-type cte)
result))
(setq result (cons "multipart/mixed" (nreverse result))))
result)))
View
7 lisp/mml.el
@@ -129,7 +129,7 @@
(defun mml-generate-mime-1 (cont)
(cond
((eq (car cont) 'part)
- (let (coded encoding charset filename type parameters)
+ (let (coded encoding charset filename type)
(setq type (or (cdr (assq 'type cont)) "text/plain"))
(if (equal (car (split-string type "/")) "text")
(with-temp-buffer
@@ -141,7 +141,7 @@
;; Remove quotes from quoted tags.
(goto-char (point-min))
(while (re-search-forward
- "<#!+\\(part\\|multipart\\|external\\)" nil t)
+ "<#!+/?\\(part\\|multipart\\|external\\)" nil t)
(delete-region (+ (match-beginning 0) 2)
(+ (match-beginning 0) 3)))))
(setq charset (mm-encode-body)
@@ -246,6 +246,9 @@
(mml-parameter-string
cont '(name access-type expiration size permission)))
(not (equal type "text/plain")))
+ (when (listp charset)
+ (error
+ "Can't encode a part with several charsets. Insert a <#part>."))
(insert "Content-Type: " type)
(when charset
(insert "; " (mail-header-encode-parameter
View
12 lisp/nndoc.el
@@ -452,18 +452,18 @@ from the document.")
(limit (search-forward "\n\n" nil t)))
(goto-char (point-min))
(when (and limit
- (re-search-forward
- (concat "\
-^Content-Type:[ \t]*multipart/[a-z]+ *;\\(.*;\\)*"
- "[ \t\n]*[ \t]boundary=\"?[^\"\n]*[^\" \t\n]")
- limit t))
+ (re-search-forward
+ (concat "\
+^Content-Type:[ \t]*multipart/[a-z]+ *;\\(\\(\n[ \t]\\)?.*;\\)*"
+ "\\(\n[ \t]\\)?[ \t]*boundary=\"?[^\"\n]*[^\" \t\n]")
+ limit t))
t)))
(defun nndoc-transform-mime-parts (article)
(let* ((entry (cdr (assq article nndoc-dissection-alist)))
(headers (nth 5 entry)))
(when headers
- (goto-char (point-min))
+ (goto-char (point-min))
(insert headers))))
(defun nndoc-generate-mime-parts-head (article)
View
4 texi/ChangeLog
@@ -1,3 +1,7 @@
+1998-12-02 01:04:22 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Emacsen): Addition.
+
1998-12-01 00:27:04 Lars Magne Ingebrigtsen <larsi@gnus.org>
* emacs-mime.texi (rfc2045): New.
View
4 texi/emacs-mime.texi
@@ -276,8 +276,8 @@ Decode the encoded words in the string and return the result.
@end table
Currently, @code{mail-parse} is an abstraction over @code{ietf-drums},
-@code{rfc2047} and @code{rfc2231}. These are documented in the
-subsequent sections.
+@code{rfc2047}, @code{rfc2045} and @code{rfc2231}. These are documented
+in the subsequent sections.
View
13 texi/gnus.texi
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Pterodactyl Gnus 0.58 Manual
+@settitle Pterodactyl Gnus 0.59 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.58 Manual
+@title Pterodactyl Gnus 0.59 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.58.
+This manual corresponds to Pterodactyl Gnus 0.59.
@end ifinfo
@@ -16208,15 +16208,16 @@ Gnus should work on :
@itemize @bullet
@item
-Emacs 20.2 and up.
+Emacs 20.3 and up.
@item
XEmacs 20.4 and up.
@end itemize
-Gnus will absolutely not work on any Emacsen older than that. Not
-reliably, at least.
+This Gnus version will absolutely not work on any Emacsen older than
+that. Not reliably, at least. Older versions of Gnus may work on older
+Emacs versions.
There are some vague differences between Gnus on the various
platforms---XEmacs features more graphics (a logo and a toolbar)---but
View
6 texi/message.texi
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Pterodactyl Message 0.58 Manual
+@settitle Pterodactyl Message 0.59 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.58 Manual
+@title Pterodactyl Message 0.59 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.58. Message is
+This manual corresponds to Pterodactyl Message 0.59. Message is
distributed with the Gnus distribution bearing the same version number
as this manual.
Please sign in to comment.
Something went wrong with that request. Please try again.