]> git.eshelyaron.com Git - emacs.git/commitdiff
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
authorMiles Bader <miles@gnu.org>
Thu, 4 Nov 2004 08:12:39 +0000 (08:12 +0000)
committerMiles Bader <miles@gnu.org>
Thu, 4 Nov 2004 08:12:39 +0000 (08:12 +0000)
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.

lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el
lisp/gnus/html2text.el
lisp/gnus/mm-util.el
man/ChangeLog
man/emacs-mime.texi

index df6fa771f871d73606bc49d1029bd34e94e4ebb1..0b93724e9e57531ce0caa54e421b7d02be5b8483 100644 (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.
index d12186ca370d49345b11d14ca679335afb08424e..c02663009836f44702fac6107d61814576756d67 100644 (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)
index 7decfc8adb1e0737aed27bdbfeb2f8b5a6ed811e..ef05af9bae6363dbd296c07d6ec209e4c061b121 100644 (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)
index b68b4ec584c3bf861a53578fef258cfe7da84db5..382133a027ee158298bb75cff40f2200fa86e390 100644 (file)
 
 (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.
index f80bb2fc5026f6d09e5980f7058dff4f171515c0..22ac03e86772984b7c633871a4c5198a8b87c833 100644 (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\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 
        * frames.texi (Dialog Boxes): 
index d60e40ebbd0231d2c29ff15aece001ad034e9be8..c128ed096c38bd119f7aa3da8d7e195fdac27d51 100644 (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