Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668

Merge from gnus--rel--5.10

Patches applied:

 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-66
 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-68
   Update from CVS

2004-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/gnus-art. (gnus-article-edit-article): Don't associate the
   article buffer with a draft file.  This is a temporary measure
   against the 2004-08-22 change to gnus-article-edit-mode.

2004-11-02  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/html2text.el (html2text-get-attr): Remove unused argument `tag'.
   (html2text-format-tags): Remove unused variable `attr'.

   * lisp/gnus/mm-util.el (mm-enrich-utf-8-by-mule-ucs): Fix cleaning of
   after-load-alist.

   * lisp/gnus/mm-util.el (mm-mime-mule-charset-alist): Add the windows-1251
   entry.  From Ilya N. Golubev <gin@mo.msk.ru>.
   (mm-enrich-utf-8-by-mule-ucs): New function run when Mule-UCS is
   loaded under XEmacs.
   (): Don't make duplicated entries in mm-mime-mule-charset-alist.

   * lisp/gnus/mm-util.el (mm-coding-system-p): Return a coding-system.
   (mm-mime-mule-charset-alist): Use shift_jis instead of
   iso-2022-jp-2 for the katakana-jisx0201 mule charset; add new
   entries for the mime charsets iso-2022-jp-3 and shift_jis.
   (mm-coding-system-priorities): Use shift_jis and iso-8859-1
   instead of japanese-shift-jis and iso-latin-1 respectively in
   order to share the default value with both Emacs and XEmacs-mule.
   (mm-mule-charset-to-mime-charset): Make
   mm-coding-system-priorities effective.
   (mm-sort-coding-systems-predicate): Canonicalize coding-systems
   while predicating of candidates upon the priorities.

2004-11-02  Katsumi Yamaoka  <yamaoka@jpl.org>

   * man/emacs-mime.texi (Encoding Customization): Fix
   mm-coding-system-priorities entry.
This commit is contained in:
Miles Bader 2004-11-04 08:12:39 +00:00
parent b912921c67
commit 0683d2414d
6 changed files with 119 additions and 44 deletions

View file

@ -1,3 +1,35 @@
2004-11-04 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art. (gnus-article-edit-article): Don't associate the
article buffer with a draft file. This is a temporary measure
against the 2004-08-22 change to gnus-article-edit-mode.
2004-11-02 Katsumi Yamaoka <yamaoka@jpl.org>
* html2text.el (html2text-get-attr): Remove unused argument `tag'.
(html2text-format-tags): Remove unused variable `attr'.
* mm-util.el (mm-enrich-utf-8-by-mule-ucs): Fix cleaning of
after-load-alist.
* mm-util.el (mm-mime-mule-charset-alist): Add the windows-1251
entry. From Ilya N. Golubev <gin@mo.msk.ru>.
(mm-enrich-utf-8-by-mule-ucs): New function run when Mule-UCS is
loaded under XEmacs.
(): Don't make duplicated entries in mm-mime-mule-charset-alist.
* mm-util.el (mm-coding-system-p): Return a coding-system.
(mm-mime-mule-charset-alist): Use shift_jis instead of
iso-2022-jp-2 for the katakana-jisx0201 mule charset; add new
entries for the mime charsets iso-2022-jp-3 and shift_jis.
(mm-coding-system-priorities): Use shift_jis and iso-8859-1
instead of japanese-shift-jis and iso-latin-1 respectively in
order to share the default value with both Emacs and XEmacs-mule.
(mm-mule-charset-to-mime-charset): Make
mm-coding-system-priorities effective.
(mm-sort-coding-systems-predicate): Canonicalize coding-systems
while predicating of candidates upon the priorities.
2004-11-01 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-msg.el (gnus-summary-resend-default-address): Add :version.

View file

@ -5651,7 +5651,10 @@ groups."
"Start editing the contents of the current article buffer."
(let ((winconf (current-window-configuration)))
(set-buffer gnus-article-buffer)
(gnus-article-edit-mode)
(let ((message-auto-save-directory
;; Don't associate the article buffer with a draft file.
nil))
(gnus-article-edit-mode))
(funcall start-func)
(set-buffer-modified-p nil)
(gnus-configure-windows 'edit-article)

View file

@ -144,7 +144,7 @@ formatting, and then moved afterward.")
"Get value of ATTRIBUTE from LIST."
(nth 1 (assoc attribute list)))
(defun html2text-get-attr (p1 p2 tag)
(defun html2text-get-attr (p1 p2)
(goto-char p1)
(re-search-forward " +[^ ]" p2 t)
(let* ((attr-string (buffer-substring-no-properties (1- (point)) (1- p2)))
@ -320,7 +320,7 @@ formatting, and then moved afterward.")
;; If someone can explain how to make the URL clickable I will surely
;; improve upon this.
;; Maybe `goto-addr.el' can be used here.
(let* ((attr-list (html2text-get-attr p1 p2 "a"))
(let* ((attr-list (html2text-get-attr p1 p2))
(href (html2text-attr-value attr-list "href")))
(delete-region p1 p4)
(when href
@ -418,8 +418,7 @@ See the documentation for that variable."
(point-max) t)
(let ((p1)
(p2 (point))
(p3) (p4)
(attr (match-string 1)))
(p3) (p4))
(search-backward "<" (point-min) t)
(setq p1 (point))
(re-search-forward (format "</%s>" tag) (point-max) t)

View file

@ -123,13 +123,16 @@
(defun mm-coding-system-p (cs)
"Return non-nil if CS is a symbol naming a coding system.
In XEmacs, also return non-nil if CS is a coding system object."
In XEmacs, also return non-nil if CS is a coding system object.
If CS is available, return CS itself in Emacs, and return a coding
system object in XEmacs."
(if (fboundp 'find-coding-system)
(find-coding-system cs)
(if (fboundp 'coding-system-p)
(coding-system-p cs)
(when (coding-system-p cs)
cs)
;; Is this branch ever actually useful?
(memq cs (mm-get-coding-system-list)))))
(car (memq cs (mm-get-coding-system-list))))))
(defvar mm-charset-synonym-alist
`(
@ -219,12 +222,12 @@ In XEmacs, also return non-nil if CS is a coding system object."
(big5 chinese-big5-1 chinese-big5-2)
(tibetan tibetan)
(thai-tis620 thai-tis620)
(windows-1251 cyrillic-iso8859-5)
(iso-2022-7bit ethiopic arabic-1-column arabic-2-column)
(iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7
latin-jisx0201 japanese-jisx0208-1978
chinese-gb2312 japanese-jisx0208
korean-ksc5601 japanese-jisx0212
katakana-jisx0201)
korean-ksc5601 japanese-jisx0212)
(iso-2022-int-1 latin-iso8859-1 greek-iso8859-7
latin-jisx0201 japanese-jisx0208-1978
chinese-gb2312 japanese-jisx0208
@ -239,6 +242,9 @@ In XEmacs, also return non-nil if CS is a coding system object."
chinese-cns11643-3 chinese-cns11643-4
chinese-cns11643-5 chinese-cns11643-6
chinese-cns11643-7)
(iso-2022-jp-3 latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208
japanese-jisx0213-1 japanese-jisx0213-2)
(shift_jis latin-jisx0201 katakana-jisx0201 japanese-jisx0208)
,(if (or (not (fboundp 'charsetp)) ;; non-Mule case
(charsetp 'unicode-a)
(not (mm-coding-system-p 'mule-utf-8)))
@ -249,24 +255,47 @@ In XEmacs, also return non-nil if CS is a coding system object."
(coding-system-get 'mule-utf-8 'safe-charsets)))))
"Alist of MIME-charset/MULE-charsets.")
;; Correct by construction, but should be unnecessary:
;; XEmacs hates it.
(when (and (not (featurep 'xemacs))
(fboundp 'coding-system-list)
(fboundp 'sort-coding-systems))
(setq mm-mime-mule-charset-alist
(apply
'nconc
(mapcar
(lambda (cs)
(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 (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))))))
(defun mm-enrich-utf-8-by-mule-ucs ()
"Make the `utf-8' MIME charset usable by the Mule-UCS package.
This function will run when the `un-define' module is loaded under
XEmacs, and fill the `utf-8' entry in `mm-mime-mule-charset-alist'
with Mule charsets. It is completely useless for Emacs."
(unless (cdr (delete '(mm-enrich-utf-8-by-mule-ucs)
(assoc "un-define" after-load-alist)))
(setq after-load-alist
(delete '("un-define") after-load-alist)))
(when (boundp 'unicode-basic-translation-charset-order-list)
(condition-case nil
(let ((val (delq
'ascii
(copy-sequence
(symbol-value
'unicode-basic-translation-charset-order-list))))
(elem (assq 'utf-8 mm-mime-mule-charset-alist)))
(if elem
(setcdr elem val)
(setq mm-mime-mule-charset-alist
(nconc mm-mime-mule-charset-alist
(list (cons 'utf-8 val))))))
(error))))
;; Correct by construction, but should be unnecessary for Emacs:
(if (featurep 'xemacs)
(eval-after-load "un-define" '(mm-enrich-utf-8-by-mule-ucs))
(when (and (fboundp 'coding-system-list)
(fboundp 'sort-coding-systems))
(let ((css (sort-coding-systems (coding-system-list 'base-only)))
cs mime mule alist)
(while css
(setq cs (pop css)
mime (or (coding-system-get cs :mime-charset) ; Emacs 22
(coding-system-get cs 'mime-charset)))
(when (and mime
(not (eq t (setq mule
(coding-system-get cs 'safe-charsets))))
(not (assq mime alist)))
(push (cons mime (delq 'ascii mule)) alist)))
(setq mm-mime-mule-charset-alist (nreverse alist)))))
(defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2)
"A list of special charsets.
@ -332,16 +361,20 @@ mail with multiple parts is preferred to sending a Unicode one.")
"Return the MIME charset corresponding to the given Mule CHARSET."
(if (and (fboundp 'find-coding-systems-for-charsets)
(fboundp 'sort-coding-systems))
(let (mime)
(dolist (cs (sort-coding-systems
(copy-sequence
(find-coding-systems-for-charsets (list charset)))))
(unless mime
(when cs
(setq mime (or (coding-system-get cs :mime-charset)
(coding-system-get cs 'mime-charset))))))
(let ((css (sort (sort-coding-systems
(find-coding-systems-for-charsets (list charset)))
'mm-sort-coding-systems-predicate))
cs mime)
(while (and (not mime)
css)
(when (setq cs (pop css))
(setq mime (or (coding-system-get cs :mime-charset)
(coding-system-get cs 'mime-charset)))))
mime)
(let ((alist mm-mime-mule-charset-alist)
(let ((alist (mapcar (lambda (cs)
(assq cs mm-mime-mule-charset-alist))
(sort (mapcar 'car mm-mime-mule-charset-alist)
'mm-sort-coding-systems-predicate)))
out)
(while alist
(when (memq charset (cdar alist))
@ -534,11 +567,14 @@ This affects whether coding conversion should be attempted generally."
(let ((priorities
(mapcar (lambda (cs)
;; Note: invalid entries are dropped silently
(and (coding-system-p cs)
(and (setq cs (mm-coding-system-p cs))
(coding-system-base cs)))
mm-coding-system-priorities)))
(> (length (memq a priorities))
(length (memq b priorities)))))
(and (setq a (mm-coding-system-p a))
(if (setq b (mm-coding-system-p b))
(> (length (memq (coding-system-base a) priorities))
(length (memq (coding-system-base b) priorities)))
t))))
(defun mm-find-mime-charset-region (b e &optional hack-charsets)
"Return the MIME charsets needed to encode the region between B and E.

View file

@ -1,3 +1,8 @@
2004-11-02 Katsumi Yamaoka <yamaoka@jpl.org>
* emacs-mime.texi (Encoding Customization): Fix
mm-coding-system-priorities entry.
2004-11-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* frames.texi (Dialog Boxes):

View file

@ -814,12 +814,12 @@ by using the @code{encoding} @acronym{MML} tag (@pxref{MML Definition}).
@vindex mm-coding-system-priorities
Prioritize coding systems to use for outgoing messages. The default
is @code{nil}, which means to use the defaults in Emacs. It is a list of
coding system symbols (aliases of coding systems does not work, use
@kbd{M-x describe-coding-system} to make sure you are not specifying
an alias in this variable). For example, if you have configured Emacs
coding system symbols (aliases of coding systems are also allowed, use
@kbd{M-x describe-coding-system} to make sure you are specifying correct
coding system names). For example, if you have configured Emacs
to prefer UTF-8, but wish that outgoing messages should be sent in
ISO-8859-1 if possible, you can set this variable to
@code{(iso-latin-1)}. You can override this setting on a per-message
@code{(iso-8859-1)}. You can override this setting on a per-message
basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}).
@item mm-content-transfer-encoding-defaults