Mercurial > emacs
annotate lisp/gnus/mm-util.el @ 71585:2bce43489a02
Lots of cleanups.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 03 Jul 2006 15:50:37 +0000 |
parents | 70b055c73c8c |
children | e5faa9959a89 a8190f7e546e |
rev | line source |
---|---|
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1 ;;; mm-util.el --- Utility functions for Mule and low level things |
64754
fafd692d1e40
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64736
diff
changeset
|
2 |
fafd692d1e40
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64736
diff
changeset
|
3 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
68633
1077b8039c32
Update copyright notices of all files in the gnus directory.
Romain Francoise <romain@orebokech.com>
parents:
65846
diff
changeset
|
4 ;; 2005, 2006 Free Software Foundation, Inc. |
31717 | 5 |
6 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> | |
7 ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
64085 | 22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
23 ;; Boston, MA 02110-1301, USA. | |
31717 | 24 |
25 ;;; Commentary: | |
26 | |
27 ;;; Code: | |
28 | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
29 (eval-when-compile (require 'cl)) |
31717 | 30 (require 'mail-prsvr) |
31 | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
32 (eval-and-compile |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
33 (mapcar |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
34 (lambda (elem) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
35 (let ((nfunc (intern (format "mm-%s" (car elem))))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
36 (if (fboundp (car elem)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
37 (defalias nfunc (car elem)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
38 (defalias nfunc (cdr elem))))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
39 '((decode-coding-string . (lambda (s a) s)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
40 (encode-coding-string . (lambda (s a) s)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
41 (encode-coding-region . ignore) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
42 (coding-system-list . ignore) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
43 (decode-coding-region . ignore) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
44 (char-int . identity) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
45 (coding-system-equal . equal) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
46 (annotationp . ignore) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
47 (set-buffer-file-coding-system . ignore) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
48 (make-char |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
49 . (lambda (charset int) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
50 (int-to-char int))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
51 (read-charset |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
52 . (lambda (prompt) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
53 "Return a charset." |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
54 (intern |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
55 (completing-read |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
56 prompt |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
57 (mapcar (lambda (e) (list (symbol-name (car e)))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
58 mm-mime-mule-charset-alist) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
59 nil t)))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
60 (subst-char-in-string |
61424
ad05d91d3598
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Miles Bader <miles@gnu.org>
parents:
61126
diff
changeset
|
61 . (lambda (from to string &optional inplace) |
ad05d91d3598
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Miles Bader <miles@gnu.org>
parents:
61126
diff
changeset
|
62 ;; stolen (and renamed) from nnheader.el |
ad05d91d3598
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Miles Bader <miles@gnu.org>
parents:
61126
diff
changeset
|
63 "Replace characters in STRING from FROM to TO. |
ad05d91d3598
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Miles Bader <miles@gnu.org>
parents:
61126
diff
changeset
|
64 Unless optional argument INPLACE is non-nil, return a new string." |
ad05d91d3598
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Miles Bader <miles@gnu.org>
parents:
61126
diff
changeset
|
65 (let ((string (if inplace string (copy-sequence string))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
66 (len (length string)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
67 (idx 0)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
68 ;; Replace all occurrences of FROM with TO. |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
69 (while (< idx len) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
70 (when (= (aref string idx) from) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
71 (aset string idx to)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
72 (setq idx (1+ idx))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
73 string))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
74 (string-as-unibyte . identity) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
75 (string-make-unibyte . identity) |
61434
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
76 ;; string-as-multibyte often doesn't really do what you think it does. |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
77 ;; Example: |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
78 ;; (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201) |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
79 ;; (aref (string-as-multibyte "\300") 0) -> 192 (aka ?\300) |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
80 ;; (aref (string-as-multibyte "\300\201") 0) -> 192 (aka ?\300) |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
81 ;; (aref (string-as-multibyte "\300\201") 1) -> 129 (aka ?\201) |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
82 ;; but |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
83 ;; (aref (string-as-multibyte "\201\300") 0) -> 2240 |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
84 ;; (aref (string-as-multibyte "\201\300") 1) -> <error> |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
85 ;; Better use string-to-multibyte or encode-coding-string. |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
86 ;; If you really need string-as-multibyte somewhere it's usually |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
87 ;; because you're using the internal emacs-mule representation (maybe |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
88 ;; because you're using string-as-unibyte somewhere), which is |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
89 ;; generally a problem in itself. |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
90 ;; Here is an approximate equivalence table to help think about it: |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
91 ;; (string-as-multibyte s) ~= (decode-coding-string s 'emacs-mule) |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
92 ;; (string-to-multibyte s) ~= (decode-coding-string s 'binary) |
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
93 ;; (string-make-multibyte s) ~= (decode-coding-string s locale-coding-system) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
94 (string-as-multibyte . identity) |
61519
6cf26dc690b2
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-254
Miles Bader <miles@gnu.org>
parents:
61434
diff
changeset
|
95 (string-to-multibyte |
6cf26dc690b2
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-254
Miles Bader <miles@gnu.org>
parents:
61434
diff
changeset
|
96 . (lambda (string) |
6cf26dc690b2
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-254
Miles Bader <miles@gnu.org>
parents:
61434
diff
changeset
|
97 "Return a multibyte string with the same individual chars as string." |
6cf26dc690b2
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-254
Miles Bader <miles@gnu.org>
parents:
61434
diff
changeset
|
98 (mapconcat |
6cf26dc690b2
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-254
Miles Bader <miles@gnu.org>
parents:
61434
diff
changeset
|
99 (lambda (ch) (mm-string-as-multibyte (char-to-string ch))) |
6cf26dc690b2
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-254
Miles Bader <miles@gnu.org>
parents:
61434
diff
changeset
|
100 string ""))) |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
101 (multibyte-string-p . ignore) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
102 (insert-byte . insert-char) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
103 (multibyte-char-to-unibyte . identity)))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
104 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
105 (eval-and-compile |
61126
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
106 (cond |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
107 ((fboundp 'replace-in-string) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
108 (defalias 'mm-replace-in-string 'replace-in-string)) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
109 ((fboundp 'replace-regexp-in-string) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
110 (defun mm-replace-in-string (string regexp newtext &optional literal) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
111 "Replace all matches for REGEXP with NEWTEXT in STRING. |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
112 If LITERAL is non-nil, insert NEWTEXT literally. Return a new |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
113 string containing the replacements. |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
114 |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
115 This is a compatibility function for different Emacsen." |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
116 (replace-regexp-in-string regexp newtext string nil literal))) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
117 (t |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
118 (defun mm-replace-in-string (string regexp newtext &optional literal) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
119 "Replace all matches for REGEXP with NEWTEXT in STRING. |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
120 If LITERAL is non-nil, insert NEWTEXT literally. Return a new |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
121 string containing the replacements. |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
122 |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
123 This is a compatibility function for different Emacsen." |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
124 (let ((start 0) tail) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
125 (while (string-match regexp string start) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
126 (setq tail (- (length string) (match-end 0))) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
127 (setq string (replace-match newtext nil literal string)) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
128 (setq start (- (length string) tail)))) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
129 string)))) |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
130 |
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
131 (eval-and-compile |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
132 (defalias 'mm-char-or-char-int-p |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
133 (cond |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
134 ((fboundp 'char-or-char-int-p) 'char-or-char-int-p) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
135 ((fboundp 'char-valid-p) 'char-valid-p) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
136 (t 'identity)))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
137 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
138 ;; Fixme: This seems always to be used to read a MIME charset, so it |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
139 ;; should be re-named and fixed (in Emacs) to offer completion only on |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
140 ;; proper charset names (base coding systems which have a |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
141 ;; mime-charset defined). XEmacs doesn't believe in mime-charset; |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
142 ;; test with |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
143 ;; `(or (coding-system-get 'iso-8859-1 'mime-charset) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
144 ;; (coding-system-get 'iso-8859-1 :mime-charset))' |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
145 ;; Actually, there should be an `mm-coding-system-mime-charset'. |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
146 (eval-and-compile |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
147 (defalias 'mm-read-coding-system |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
148 (cond |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
149 ((fboundp 'read-coding-system) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
150 (if (and (featurep 'xemacs) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
151 (<= (string-to-number emacs-version) 21.1)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
152 (lambda (prompt &optional default-coding-system) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
153 (read-coding-system prompt)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
154 'read-coding-system)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
155 (t (lambda (prompt &optional default-coding-system) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
156 "Prompt the user for a coding system." |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
157 (completing-read |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
158 prompt (mapcar (lambda (s) (list (symbol-name (car s)))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
159 mm-mime-mule-charset-alist))))))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
160 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
161 (defvar mm-coding-system-list nil) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
162 (defun mm-get-coding-system-list () |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
163 "Get the coding system list." |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
164 (or mm-coding-system-list |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
165 (setq mm-coding-system-list (mm-coding-system-list)))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
166 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
167 (defun mm-coding-system-p (cs) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
168 "Return non-nil if CS is a symbol naming a coding system. |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
169 In XEmacs, also return non-nil if CS is a coding system object. |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
170 If CS is available, return CS itself in Emacs, and return a coding |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
171 system object in XEmacs." |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
172 (if (fboundp 'find-coding-system) |
61424
ad05d91d3598
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243
Miles Bader <miles@gnu.org>
parents:
61126
diff
changeset
|
173 (and cs (find-coding-system cs)) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
174 (if (fboundp 'coding-system-p) |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
175 (when (coding-system-p cs) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
176 cs) |
69135
12d289b6e5de
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-118
Miles Bader <miles@gnu.org>
parents:
68940
diff
changeset
|
177 ;; no-MULE XEmacs: |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
178 (car (memq cs (mm-get-coding-system-list)))))) |
36556
8af75e618534
(mm-mime-mule-charset-alist): Move it after definition of
Dave Love <fx@gnu.org>
parents:
36539
diff
changeset
|
179 |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
180 (defun mm-codepage-setup (number &optional alias) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
181 "Create a coding system cpNUMBER. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
182 The coding system is created using `codepage-setup'. If ALIAS is |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
183 non-nil, an alias is created and added to |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
184 `mm-charset-synonym-alist'. If ALIAS is a string, it's used as |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
185 the alias. Else windows-NUMBER is used." |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
186 (interactive |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
187 (let ((completion-ignore-case t) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
188 (candidates (cp-supported-codepages))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
189 (list (completing-read "Setup DOS Codepage: (default 437) " candidates |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
190 nil t nil nil "437")))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
191 (when alias |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
192 (setq alias (if (stringp alias) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
193 (intern alias) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
194 (intern (format "windows-%s" number))))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
195 (let* ((cp (intern (format "cp%s" number)))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
196 (unless (mm-coding-system-p cp) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
197 (codepage-setup number)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
198 (when (and alias |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
199 ;; Don't add alias if setup of cp failed. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
200 (mm-coding-system-p cp)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
201 (add-to-list 'mm-charset-synonym-alist (cons alias cp))))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
202 |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
203 (defvar mm-charset-synonym-alist |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
204 `( |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
205 ;; Not in XEmacs, but it's not a proper MIME charset anyhow. |
40621
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
206 ,@(unless (mm-coding-system-p 'x-ctext) |
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
207 '((x-ctext . ctext))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
208 ;; ISO-8859-15 is very similar to ISO-8859-1. But it's _different_! |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
209 ,@(unless (mm-coding-system-p 'iso-8859-15) |
40621
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
210 '((iso-8859-15 . iso-8859-1))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
211 ;; BIG-5HKSCS is similar to, but different than, BIG-5. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
212 ,@(unless (mm-coding-system-p 'big5-hkscs) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
213 '((big5-hkscs . big5))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
214 ;; Windows-1252 is actually a superset of Latin-1. See also |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
215 ;; `gnus-article-dumbquotes-map'. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
216 ,@(unless (mm-coding-system-p 'windows-1252) |
40621
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
217 (if (mm-coding-system-p 'cp1252) |
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
218 '((windows-1252 . cp1252)) |
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
219 '((windows-1252 . iso-8859-1)))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
220 ;; Windows-1250 is a variant of Latin-2 heavily used by Microsoft |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
221 ;; Outlook users in Czech republic. Use this to allow reading of their |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
222 ;; e-mails. cp1250 should be defined by M-x codepage-setup. |
40621
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
223 ,@(if (and (not (mm-coding-system-p 'windows-1250)) |
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
224 (mm-coding-system-p 'cp1250)) |
11741b5b7d18
2001-11-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40542
diff
changeset
|
225 '((windows-1250 . cp1250))) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
226 ;; A Microsoft misunderstanding. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
227 ,@(if (and (not (mm-coding-system-p 'unicode)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
228 (mm-coding-system-p 'utf-16-le)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
229 '((unicode . utf-16-le))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
230 ;; A Microsoft misunderstanding. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
231 ,@(unless (mm-coding-system-p 'ks_c_5601-1987) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
232 (if (mm-coding-system-p 'cp949) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
233 '((ks_c_5601-1987 . cp949)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
234 '((ks_c_5601-1987 . euc-kr)))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
235 ) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
236 "A mapping from unknown or invalid charset names to the real charset names.") |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
237 |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
238 (defcustom mm-charset-override-alist |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
239 `((iso-8859-1 . windows-1252)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
240 "A mapping from undesired charset names to their replacement. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
241 |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
242 You may add pairs like (iso-8859-1 . windows-1252) here, |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
243 i.e. treat iso-8859-1 as windows-1252. windows-1252 is a |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
244 superset of iso-8859-1." |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
245 :type '(list (set :inline t |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
246 (const (iso-8859-1 . windows-1252)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
247 (const (undecided . windows-1252))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
248 (repeat :inline t |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
249 :tag "Other options" |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
250 (cons (symbol :tag "From charset") |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
251 (symbol :tag "To charset")))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
252 :version "23.0" ;; No Gnus |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
253 :group 'mime) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
254 |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
255 (defcustom mm-charset-eval-alist |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
256 (if (featurep 'xemacs) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
257 nil ;; I don't know what would be useful for XEmacs. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
258 '(;; Emacs 21 offers 1250 1251 1253 1257. Emacs 22 provides autoloads for |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
259 ;; 1250-1258 (i.e. `mm-codepage-setup' does nothing). |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
260 (windows-1250 . (mm-codepage-setup 1250 t)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
261 (windows-1251 . (mm-codepage-setup 1251 t)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
262 (windows-1253 . (mm-codepage-setup 1253 t)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
263 (windows-1257 . (mm-codepage-setup 1257 t)))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
264 "An alist of (CHARSET . FORM) pairs. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
265 If an article is encoded in an unknown CHARSET, FORM is |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
266 evaluated. This allows to load additional libraries providing |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
267 charsets on demand. If supported by your Emacs version, you |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
268 could use `autoload-coding-system' here." |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
269 :version "23.0" ;; No Gnus |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
270 :type '(list (set :inline t |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
271 (const (windows-1250 . (mm-codepage-setup 1250 t))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
272 (const (windows-1251 . (mm-codepage-setup 1251 t))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
273 (const (windows-1253 . (mm-codepage-setup 1253 t))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
274 (const (windows-1257 . (mm-codepage-setup 1257 t))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
275 (const (cp850 . (mm-codepage-setup 850 nil)))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
276 (repeat :inline t |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
277 :tag "Other options" |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
278 (cons (symbol :tag "charset") |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
279 (symbol :tag "form")))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
280 :group 'mime) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
281 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
282 (defvar mm-binary-coding-system |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
283 (cond |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
284 ((mm-coding-system-p 'binary) 'binary) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
285 ((mm-coding-system-p 'no-conversion) 'no-conversion) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
286 (t nil)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
287 "100% binary coding system.") |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
288 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
289 (defvar mm-text-coding-system |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
290 (or (if (memq system-type '(windows-nt ms-dos ms-windows)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
291 (and (mm-coding-system-p 'raw-text-dos) 'raw-text-dos) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
292 (and (mm-coding-system-p 'raw-text) 'raw-text)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
293 mm-binary-coding-system) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
294 "Text-safe coding system (For removing ^M).") |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
295 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
296 (defvar mm-text-coding-system-for-write nil |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
297 "Text coding system for write.") |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
298 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
299 (defvar mm-auto-save-coding-system |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
300 (cond |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
301 ((mm-coding-system-p 'utf-8-emacs) ; Mule 7 |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
302 (if (memq system-type '(windows-nt ms-dos ms-windows)) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
303 (if (mm-coding-system-p 'utf-8-emacs-dos) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
304 'utf-8-emacs-dos mm-binary-coding-system) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
305 'utf-8-emacs)) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
306 ((mm-coding-system-p 'emacs-mule) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
307 (if (memq system-type '(windows-nt ms-dos ms-windows)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
308 (if (mm-coding-system-p 'emacs-mule-dos) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
309 'emacs-mule-dos mm-binary-coding-system) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
310 'emacs-mule)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
311 ((mm-coding-system-p 'escape-quoted) 'escape-quoted) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
312 (t mm-binary-coding-system)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
313 "Coding system of auto save file.") |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
314 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
315 (defvar mm-universal-coding-system mm-auto-save-coding-system |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
316 "The universal coding system.") |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
317 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
318 ;; Fixme: some of the cars here aren't valid MIME charsets. That |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
319 ;; should only matter with XEmacs, though. |
31717 | 320 (defvar mm-mime-mule-charset-alist |
35793 | 321 `((us-ascii ascii) |
31717 | 322 (iso-8859-1 latin-iso8859-1) |
323 (iso-8859-2 latin-iso8859-2) | |
324 (iso-8859-3 latin-iso8859-3) | |
325 (iso-8859-4 latin-iso8859-4) | |
326 (iso-8859-5 cyrillic-iso8859-5) | |
327 ;; Non-mule (X)Emacs uses the last mule-charset for 8bit characters. | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
328 ;; The fake mule-charset, gnus-koi8-r, tells Gnus that the default |
31717 | 329 ;; charset is koi8-r, not iso-8859-5. |
330 (koi8-r cyrillic-iso8859-5 gnus-koi8-r) | |
331 (iso-8859-6 arabic-iso8859-6) | |
332 (iso-8859-7 greek-iso8859-7) | |
333 (iso-8859-8 hebrew-iso8859-8) | |
334 (iso-8859-9 latin-iso8859-9) | |
35148
a408e1d28e3d
(mm-mime-mule-charset-alist): Add Latin-{8,9}.
Dave Love <fx@gnu.org>
parents:
34724
diff
changeset
|
335 (iso-8859-14 latin-iso8859-14) |
a408e1d28e3d
(mm-mime-mule-charset-alist): Add Latin-{8,9}.
Dave Love <fx@gnu.org>
parents:
34724
diff
changeset
|
336 (iso-8859-15 latin-iso8859-15) |
31717 | 337 (viscii vietnamese-viscii-lower) |
338 (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978) | |
339 (euc-kr korean-ksc5601) | |
35838
53eebdb81828
2001-02-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
35793
diff
changeset
|
340 (gb2312 chinese-gb2312) |
53eebdb81828
2001-02-01 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
35793
diff
changeset
|
341 (big5 chinese-big5-1 chinese-big5-2) |
31717 | 342 (tibetan tibetan) |
343 (thai-tis620 thai-tis620) | |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
344 (windows-1251 cyrillic-iso8859-5) |
31717 | 345 (iso-2022-7bit ethiopic arabic-1-column arabic-2-column) |
346 (iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7 | |
347 latin-jisx0201 japanese-jisx0208-1978 | |
348 chinese-gb2312 japanese-jisx0208 | |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
349 korean-ksc5601 japanese-jisx0212) |
31717 | 350 (iso-2022-int-1 latin-iso8859-1 greek-iso8859-7 |
351 latin-jisx0201 japanese-jisx0208-1978 | |
352 chinese-gb2312 japanese-jisx0208 | |
353 korean-ksc5601 japanese-jisx0212 | |
354 chinese-cns11643-1 chinese-cns11643-2) | |
355 (iso-2022-int-1 latin-iso8859-1 latin-iso8859-2 | |
356 cyrillic-iso8859-5 greek-iso8859-7 | |
357 latin-jisx0201 japanese-jisx0208-1978 | |
358 chinese-gb2312 japanese-jisx0208 | |
359 korean-ksc5601 japanese-jisx0212 | |
360 chinese-cns11643-1 chinese-cns11643-2 | |
361 chinese-cns11643-3 chinese-cns11643-4 | |
362 chinese-cns11643-5 chinese-cns11643-6 | |
363 chinese-cns11643-7) | |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
364 (iso-2022-jp-3 latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208 |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
365 japanese-jisx0213-1 japanese-jisx0213-2) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
366 (shift_jis latin-jisx0201 katakana-jisx0201 japanese-jisx0208) |
71262 | 367 ,(cond ((fboundp 'unicode-precedence-list) |
368 (cons 'utf-8 (delq 'ascii (mapcar 'charset-name | |
369 (unicode-precedence-list))))) | |
370 ((or (not (fboundp 'charsetp)) ;; non-Mule case | |
371 (charsetp 'unicode-a) | |
372 (not (mm-coding-system-p 'mule-utf-8))) | |
373 '(utf-8 unicode-a unicode-b unicode-c unicode-d unicode-e)) | |
374 (t ;; If we have utf-8 we're in Mule 5+. | |
375 (append '(utf-8) | |
376 (delete 'ascii | |
377 (coding-system-get 'mule-utf-8 'safe-charsets)))))) | |
31717 | 378 "Alist of MIME-charset/MULE-charsets.") |
379 | |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
380 (defun mm-enrich-utf-8-by-mule-ucs () |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
381 "Make the `utf-8' MIME charset usable by the Mule-UCS package. |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
382 This function will run when the `un-define' module is loaded under |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
383 XEmacs, and fill the `utf-8' entry in `mm-mime-mule-charset-alist' |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
384 with Mule charsets. It is completely useless for Emacs." |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
385 (when (boundp 'unicode-basic-translation-charset-order-list) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
386 (condition-case nil |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
387 (let ((val (delq |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
388 'ascii |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
389 (copy-sequence |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
390 (symbol-value |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
391 'unicode-basic-translation-charset-order-list)))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
392 (elem (assq 'utf-8 mm-mime-mule-charset-alist))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
393 (if elem |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
394 (setcdr elem val) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
395 (setq mm-mime-mule-charset-alist |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
396 (nconc mm-mime-mule-charset-alist |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
397 (list (cons 'utf-8 val)))))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
398 (error)))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
399 |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
400 ;; Correct by construction, but should be unnecessary for Emacs: |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
401 (if (featurep 'xemacs) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
402 (eval-after-load "un-define" '(mm-enrich-utf-8-by-mule-ucs)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
403 (when (and (fboundp 'coding-system-list) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
404 (fboundp 'sort-coding-systems)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
405 (let ((css (sort-coding-systems (coding-system-list 'base-only))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
406 cs mime mule alist) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
407 (while css |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
408 (setq cs (pop css) |
69135
12d289b6e5de
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-118
Miles Bader <miles@gnu.org>
parents:
68940
diff
changeset
|
409 mime (or (coding-system-get cs :mime-charset) ; Emacs 23 (unicode) |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
410 (coding-system-get cs 'mime-charset))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
411 (when (and mime |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
412 (not (eq t (setq mule |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
413 (coding-system-get cs 'safe-charsets)))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
414 (not (assq mime alist))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
415 (push (cons mime (delq 'ascii mule)) alist))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
416 (setq mm-mime-mule-charset-alist (nreverse alist))))) |
31717 | 417 |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
418 (defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
419 "A list of special charsets. |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
420 Valid elements include: |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
421 `iso-8859-15' convert ISO-8859-1, -9 to ISO-8859-15 if ISO-8859-15 exists. |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
422 `iso-2022-jp-2' convert ISO-2022-jp to ISO-2022-jp-2 if ISO-2022-jp-2 exists." |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
423 ) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
424 |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
425 (defvar mm-iso-8859-15-compatible |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
426 '((iso-8859-1 "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE") |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
427 (iso-8859-9 "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xD0\xDD\xDE\xF0\xFD\xFE")) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
428 "ISO-8859-15 exchangeable coding systems and inconvertible characters.") |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
429 |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
430 (defvar mm-iso-8859-x-to-15-table |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
431 (and (fboundp 'coding-system-p) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
432 (mm-coding-system-p 'iso-8859-15) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
433 (mapcar |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
434 (lambda (cs) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
435 (if (mm-coding-system-p (car cs)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
436 (let ((c (string-to-char |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
437 (decode-coding-string "\341" (car cs))))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
438 (cons (char-charset c) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
439 (cons |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
440 (- (string-to-char |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
441 (decode-coding-string "\341" 'iso-8859-15)) c) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
442 (string-to-list (decode-coding-string (car (cdr cs)) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
443 (car cs)))))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
444 '(gnus-charset 0))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
445 mm-iso-8859-15-compatible)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
446 "A table of the difference character between ISO-8859-X and ISO-8859-15.") |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
447 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
448 (defcustom mm-coding-system-priorities |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
449 (if (boundp 'current-language-environment) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
450 (let ((lang (symbol-value 'current-language-environment))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
451 (cond ((string= lang "Japanese") |
57784
55829134ac17
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650
Miles Bader <miles@gnu.org>
parents:
57243
diff
changeset
|
452 ;; Japanese users prefer iso-2022-jp to euc-japan or |
55829134ac17
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650
Miles Bader <miles@gnu.org>
parents:
57243
diff
changeset
|
453 ;; shift_jis, however iso-8859-1 should be used when |
55829134ac17
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650
Miles Bader <miles@gnu.org>
parents:
57243
diff
changeset
|
454 ;; there are only ASCII text and Latin-1 characters. |
55829134ac17
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650
Miles Bader <miles@gnu.org>
parents:
57243
diff
changeset
|
455 '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8))))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
456 "Preferred coding systems for encoding outgoing messages. |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
457 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
458 More than one suitable coding system may be found for some text. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
459 By default, the coding system with the highest priority is used |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
460 to encode outgoing messages (see `sort-coding-systems'). If this |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
461 variable is set, it overrides the default priority." |
57153
497f0d2ca551
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-558
Miles Bader <miles@gnu.org>
parents:
56927
diff
changeset
|
462 :version "21.2" |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
463 :type '(repeat (symbol :tag "Coding system")) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
464 :group 'mime) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
465 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
466 ;; ?? |
42500
9b68dff3d385
* mm-util.el (mm-use-find-coding-systems-region): New variable.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
42493
diff
changeset
|
467 (defvar mm-use-find-coding-systems-region |
9b68dff3d385
* mm-util.el (mm-use-find-coding-systems-region): New variable.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
42493
diff
changeset
|
468 (fboundp 'find-coding-systems-region) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
469 "Use `find-coding-systems-region' to find proper coding systems. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
470 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
471 Setting it to nil is useful on Emacsen supporting Unicode if sending |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
472 mail with multiple parts is preferred to sending a Unicode one.") |
42500
9b68dff3d385
* mm-util.el (mm-use-find-coding-systems-region): New variable.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
42493
diff
changeset
|
473 |
31717 | 474 ;;; Internal variables: |
475 | |
476 ;;; Functions: | |
477 | |
478 (defun mm-mule-charset-to-mime-charset (charset) | |
33378 | 479 "Return the MIME charset corresponding to the given Mule CHARSET." |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
480 (if (and (fboundp 'find-coding-systems-for-charsets) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
481 (fboundp 'sort-coding-systems)) |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
482 (let ((css (sort (sort-coding-systems |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
483 (find-coding-systems-for-charsets (list charset))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
484 'mm-sort-coding-systems-predicate)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
485 cs mime) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
486 (while (and (not mime) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
487 css) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
488 (when (setq cs (pop css)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
489 (setq mime (or (coding-system-get cs :mime-charset) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
490 (coding-system-get cs 'mime-charset))))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
491 mime) |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
492 (let ((alist (mapcar (lambda (cs) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
493 (assq cs mm-mime-mule-charset-alist)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
494 (sort (mapcar 'car mm-mime-mule-charset-alist) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
495 'mm-sort-coding-systems-predicate))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
496 out) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
497 (while alist |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
498 (when (memq charset (cdar alist)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
499 (setq out (caar alist) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
500 alist nil)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
501 (pop alist)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
502 out))) |
31717 | 503 |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
504 (defun mm-charset-to-coding-system (charset &optional lbt |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
505 allow-override) |
31717 | 506 "Return coding-system corresponding to CHARSET. |
507 CHARSET is a symbol naming a MIME charset. | |
508 If optional argument LBT (`unix', `dos' or `mac') is specified, it is | |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
509 used as the line break code type of the coding system. |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
510 |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
511 If ALLOW-OVERRIDE is given, use `mm-charset-override-alist' to |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
512 map undesired charset names to their replacement. This should |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
513 only be used for decoding, not for encoding." |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
514 ;; OVERRIDE is used (only) in `mm-decode-body' and `mm-decode-string'. |
31717 | 515 (when (stringp charset) |
516 (setq charset (intern (downcase charset)))) | |
517 (when lbt | |
518 (setq charset (intern (format "%s-%s" charset lbt)))) | |
519 (cond | |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
520 ((null charset) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
521 charset) |
31717 | 522 ;; Running in a non-MULE environment. |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
523 ((or (null (mm-get-coding-system-list)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
524 (not (fboundp 'coding-system-get))) |
31717 | 525 charset) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
526 ;; Check override list quite early. Should only used for decoding, not for |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
527 ;; encoding! |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
528 ((and allow-override |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
529 (let ((cs (cdr (assq charset mm-charset-override-alist)))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
530 (and cs (mm-coding-system-p cs) cs)))) |
31717 | 531 ;; ascii |
532 ((eq charset 'us-ascii) | |
533 'ascii) | |
33378 | 534 ;; Check to see whether we can handle this charset. (This depends |
535 ;; on there being some coding system matching each `mime-charset' | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
536 ;; property defined, as there should be.) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
537 ((and (mm-coding-system-p charset) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
538 ;;; Doing this would potentially weed out incorrect charsets. |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
539 ;;; charset |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
540 ;;; (eq charset (coding-system-get charset 'mime-charset)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
541 ) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
542 charset) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
543 ;; Eval expressions from `mm-charset-eval-alist' |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
544 ((let* ((el (assq charset mm-charset-eval-alist)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
545 (cs (car el)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
546 (form (cdr el))) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
547 (and cs |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
548 form |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
549 (prog2 |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
550 ;; Avoid errors... |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
551 (condition-case nil (eval form) (error nil)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
552 ;; (message "Failed to eval `%s'" form)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
553 (mm-coding-system-p cs) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
554 (message "Added charset `%s' via `mm-charset-eval-alist'" cs)) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
555 cs))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
556 ;; Translate invalid charsets. |
42493
84a510bb7ff6
2002-01-03 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
42206
diff
changeset
|
557 ((let ((cs (cdr (assq charset mm-charset-synonym-alist)))) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
558 (and cs |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
559 (mm-coding-system-p cs) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
560 ;; (message |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
561 ;; "Using synonym `%s' from `mm-charset-synonym-alist' for `%s'" |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
562 ;; cs charset) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
563 cs))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
564 ;; Last resort: search the coding system list for entries which |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
565 ;; have the right mime-charset in case the canonical name isn't |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
566 ;; defined (though it should be). |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
567 ((let (cs) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
568 ;; mm-get-coding-system-list returns a list of cs without lbt. |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
569 ;; Do we need -lbt? |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
570 (dolist (c (mm-get-coding-system-list)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
571 (if (and (null cs) |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
572 (eq charset (or (coding-system-get c :mime-charset) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
573 (coding-system-get c 'mime-charset)))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
574 (setq cs c))) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
575 (unless cs |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
576 ;; Warn the user about unknown charset: |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
577 (if (fboundp 'gnus-message) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
578 (gnus-message 7 "Unknown charset: %s" charset) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
579 (message "Unknown charset: %s" charset))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
580 cs)))) |
31717 | 581 |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
582 (defsubst mm-replace-chars-in-string (string from to) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
583 (mm-subst-char-in-string from to string)) |
31717 | 584 |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
585 (eval-and-compile |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
586 (defvar mm-emacs-mule (and (not (featurep 'xemacs)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
587 (boundp 'default-enable-multibyte-characters) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
588 default-enable-multibyte-characters |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
589 (fboundp 'set-buffer-multibyte)) |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
590 "True in Emacs with Mule.") |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
591 |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
592 (if mm-emacs-mule |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
593 (defun mm-enable-multibyte () |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
594 "Set the multibyte flag of the current buffer. |
33378 | 595 Only do this if the default value of `enable-multibyte-characters' is |
596 non-nil. This is a no-op in XEmacs." | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
597 (set-buffer-multibyte 'to)) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
598 (defalias 'mm-enable-multibyte 'ignore)) |
31717 | 599 |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
600 (if mm-emacs-mule |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
601 (defun mm-disable-multibyte () |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
602 "Unset the multibyte flag of in the current buffer. |
33378 | 603 This is a no-op in XEmacs." |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
604 (set-buffer-multibyte nil)) |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
605 (defalias 'mm-disable-multibyte 'ignore))) |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
606 |
31717 | 607 (defun mm-preferred-coding-system (charset) |
608 ;; A typo in some Emacs versions. | |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
609 (or (get-charset-property charset 'preferred-coding-system) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
610 (get-charset-property charset 'prefered-coding-system))) |
31717 | 611 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
612 ;; Mule charsets shouldn't be used. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
613 (defsubst mm-guess-charset () |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
614 "Guess Mule charset from the language environment." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
615 (or |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
616 mail-parse-mule-charset ;; cached mule-charset |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
617 (progn |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
618 (setq mail-parse-mule-charset |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
619 (and (boundp 'current-language-environment) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
620 (car (last |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
621 (assq 'charset |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
622 (assoc current-language-environment |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
623 language-info-alist)))))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
624 (if (or (not mail-parse-mule-charset) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
625 (eq mail-parse-mule-charset 'ascii)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
626 (setq mail-parse-mule-charset |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
627 (or (car (last (assq mail-parse-charset |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
628 mm-mime-mule-charset-alist))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
629 ;; default |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
630 'latin-iso8859-1))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
631 mail-parse-mule-charset))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
632 |
31717 | 633 (defun mm-charset-after (&optional pos) |
634 "Return charset of a character in current buffer at position POS. | |
635 If POS is nil, it defauls to the current point. | |
636 If POS is out of range, the value is nil. | |
637 If the charset is `composition', return the actual one." | |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
638 (let ((char (char-after pos)) charset) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
639 (if (< (mm-char-int char) 128) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
640 (setq charset 'ascii) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
641 ;; charset-after is fake in some Emacsen. |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
642 (setq charset (and (fboundp 'char-charset) (char-charset char))) |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
643 (if (eq charset 'composition) ; Mule 4 |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
644 (let ((p (or pos (point)))) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
645 (cadr (find-charset-region p (1+ p)))) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
646 (if (and charset (not (memq charset '(ascii eight-bit-control |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
647 eight-bit-graphic)))) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
648 charset |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
649 (mm-guess-charset)))))) |
31717 | 650 |
651 (defun mm-mime-charset (charset) | |
33378 | 652 "Return the MIME charset corresponding to the given Mule CHARSET." |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
653 (if (eq charset 'unknown) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
654 (error "The message contains non-printable characters, please use attachment")) |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
655 (if (and (fboundp 'coding-system-get) (fboundp 'get-charset-property)) |
31717 | 656 ;; This exists in Emacs 20. |
657 (or | |
658 (and (mm-preferred-coding-system charset) | |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
659 (or (coding-system-get |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
660 (mm-preferred-coding-system charset) :mime-charset) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
661 (coding-system-get |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
662 (mm-preferred-coding-system charset) 'mime-charset))) |
31717 | 663 (and (eq charset 'ascii) |
664 'us-ascii) | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
665 (mm-preferred-coding-system charset) |
31717 | 666 (mm-mule-charset-to-mime-charset charset)) |
667 ;; This is for XEmacs. | |
668 (mm-mule-charset-to-mime-charset charset))) | |
669 | |
65846
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
670 (if (fboundp 'delete-dups) |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
671 (defalias 'mm-delete-duplicates 'delete-dups) |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
672 (defun mm-delete-duplicates (list) |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
673 "Destructively remove `equal' duplicates from LIST. |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
674 Store the result in LIST and return it. LIST must be a proper list. |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
675 Of several `equal' occurrences of an element in LIST, the first |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
676 one is kept. |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
677 |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
678 This is a compatibility function for Emacsen without `delete-dups'." |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
679 ;; Code from `subr.el' in Emacs 22: |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
680 (let ((tail list)) |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
681 (while tail |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
682 (setcdr tail (delete (car tail) (cdr tail))) |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
683 (setq tail (cdr tail)))) |
a4e8d78ae3fb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-574
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
684 list)) |
31717 | 685 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
686 ;; Fixme: This is used in places when it should be testing the |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
687 ;; default multibyteness. See mm-default-multibyte-p. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
688 (eval-and-compile |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
689 (if (and (not (featurep 'xemacs)) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
690 (boundp 'enable-multibyte-characters)) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
691 (defun mm-multibyte-p () |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
692 "Non-nil if multibyte is enabled in the current buffer." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
693 enable-multibyte-characters) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
694 (defun mm-multibyte-p () (featurep 'mule)))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
695 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
696 (defun mm-default-multibyte-p () |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
697 "Return non-nil if the session is multibyte. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
698 This affects whether coding conversion should be attempted generally." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
699 (if (featurep 'mule) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
700 (if (boundp 'default-enable-multibyte-characters) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
701 default-enable-multibyte-characters |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
702 t))) |
31717 | 703 |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
704 (defun mm-iso-8859-x-to-15-region (&optional b e) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
705 (if (fboundp 'char-charset) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
706 (let (charset item c inconvertible) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
707 (save-restriction |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
708 (if e (narrow-to-region b e)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
709 (goto-char (point-min)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
710 (skip-chars-forward "\0-\177") |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
711 (while (not (eobp)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
712 (cond |
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
713 ((not (setq item (assq (char-charset (setq c (char-after))) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
714 mm-iso-8859-x-to-15-table))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
715 (forward-char)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
716 ((memq c (cdr (cdr item))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
717 (setq inconvertible t) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
718 (forward-char)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
719 (t |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
720 (insert-before-markers (prog1 (+ c (car (cdr item))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
721 (delete-char 1))))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
722 (skip-chars-forward "\0-\177"))) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
723 (not inconvertible)))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
724 |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
725 (defun mm-sort-coding-systems-predicate (a b) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
726 (let ((priorities |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
727 (mapcar (lambda (cs) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
728 ;; Note: invalid entries are dropped silently |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
729 (and (setq cs (mm-coding-system-p cs)) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
730 (coding-system-base cs))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
731 mm-coding-system-priorities))) |
57923
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
732 (and (setq a (mm-coding-system-p a)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
733 (if (setq b (mm-coding-system-p b)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
734 (> (length (memq (coding-system-base a) priorities)) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
735 (length (memq (coding-system-base b) priorities))) |
d7def5572cf3
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Miles Bader <miles@gnu.org>
parents:
57784
diff
changeset
|
736 t)))) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
737 |
59089
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
738 (eval-when-compile |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
739 (autoload 'latin-unity-massage-name "latin-unity") |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
740 (autoload 'latin-unity-maybe-remap "latin-unity") |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
741 (autoload 'latin-unity-representations-feasible-region "latin-unity") |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
742 (autoload 'latin-unity-representations-present-region "latin-unity") |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
743 (defvar latin-unity-coding-systems) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
744 (defvar latin-unity-ucs-list)) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
745 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
746 (defun mm-xemacs-find-mime-charset-1 (begin end) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
747 "Determine which MIME charset to use to send region as message. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
748 This uses the XEmacs-specific latin-unity package to better handle the |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
749 case where identical characters from diverse ISO-8859-? character sets |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
750 can be encoded using a single one of the corresponding coding systems. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
751 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
752 It treats `mm-coding-system-priorities' as the list of preferred |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
753 coding systems; a useful example setting for this list in Western |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
754 Europe would be '(iso-8859-1 iso-8859-15 utf-8), which would default |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
755 to the very standard Latin 1 coding system, and only move to coding |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
756 systems that are less supported as is necessary to encode the |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
757 characters that exist in the buffer. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
758 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
759 Latin Unity doesn't know about those non-ASCII Roman characters that |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
760 are available in various East Asian character sets. As such, its |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
761 behavior if you have a JIS 0212 LATIN SMALL LETTER A WITH ACUTE in a |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
762 buffer and it can otherwise be encoded as Latin 1, won't be ideal. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
763 But this is very much a corner case, so don't worry about it." |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
764 (let ((systems mm-coding-system-priorities) csets psets curset) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
765 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
766 ;; Load the Latin Unity library, if available. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
767 (when (and (not (featurep 'latin-unity)) (locate-library "latin-unity")) |
61126
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
768 (ignore-errors (require 'latin-unity))) |
59089
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
769 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
770 ;; Now, can we use it? |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
771 (if (featurep 'latin-unity) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
772 (progn |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
773 (setq csets (latin-unity-representations-feasible-region begin end) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
774 psets (latin-unity-representations-present-region begin end)) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
775 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
776 (catch 'done |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
777 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
778 ;; Pass back the first coding system in the preferred list |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
779 ;; that can encode the whole region. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
780 (dolist (curset systems) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
781 (setq curset (latin-unity-massage-name 'buffer-default curset)) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
782 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
783 ;; If the coding system is a universal coding system, then |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
784 ;; it can certainly encode all the characters in the region. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
785 (if (memq curset latin-unity-ucs-list) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
786 (throw 'done (list curset))) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
787 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
788 ;; If a coding system isn't universal, and isn't in |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
789 ;; the list that latin unity knows about, we can't |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
790 ;; decide whether to use it here. Leave that until later |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
791 ;; in `mm-find-mime-charset-region' function, whence we |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
792 ;; have been called. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
793 (unless (memq curset latin-unity-coding-systems) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
794 (throw 'done nil)) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
795 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
796 ;; Right, we know about this coding system, and it may |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
797 ;; conceivably be able to encode all the characters in |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
798 ;; the region. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
799 (if (latin-unity-maybe-remap begin end curset csets psets t) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
800 (throw 'done (list curset)))) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
801 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
802 ;; Can't encode using anything from the |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
803 ;; `mm-coding-system-priorities' list. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
804 ;; Leave `mm-find-mime-charset' to do most of the work. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
805 nil)) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
806 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
807 ;; Right, latin unity isn't available; let `mm-find-charset-region' |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
808 ;; take its default action, which equally applies to GNU Emacs. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
809 nil))) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
810 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
811 (defmacro mm-xemacs-find-mime-charset (begin end) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
812 (when (featurep 'xemacs) |
61126
c0aa521e0ca7
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-220
Miles Bader <miles@gnu.org>
parents:
60029
diff
changeset
|
813 `(and (featurep 'mule) (mm-xemacs-find-mime-charset-1 ,begin ,end)))) |
59089
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
814 |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
815 (defun mm-find-mime-charset-region (b e &optional hack-charsets) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
816 "Return the MIME charsets needed to encode the region between B and E. |
42206 | 817 nil means ASCII, a single-element list represents an appropriate MIME |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
818 charset, and a longer list means no appropriate charset." |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
819 (let (charsets) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
820 ;; The return possibilities of this function are a mess... |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
821 (or (and (mm-multibyte-p) |
42500
9b68dff3d385
* mm-util.el (mm-use-find-coding-systems-region): New variable.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
42493
diff
changeset
|
822 mm-use-find-coding-systems-region |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
823 ;; Find the mime-charset of the most preferred coding |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
824 ;; system that has one. |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
825 (let ((systems (find-coding-systems-region b e))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
826 (when mm-coding-system-priorities |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
827 (setq systems |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
828 (sort systems 'mm-sort-coding-systems-predicate))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
829 (setq systems (delq 'compound-text systems)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
830 (unless (equal systems '(undecided)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
831 (while systems |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
832 (let* ((head (pop systems)) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
833 (cs (or (coding-system-get head :mime-charset) |
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
834 (coding-system-get head 'mime-charset)))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
835 ;; The mime-charset (`x-ctext') of |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
836 ;; `compound-text' is not in the IANA list. We |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
837 ;; shouldn't normally use anything here with a |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
838 ;; mime-charset having an `x-' prefix. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
839 ;; Fixme: Allow this to be overridden, since |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
840 ;; there is existing use of x-ctext. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
841 ;; Also people apparently need the coding system |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
842 ;; `iso-2022-jp-3' (which Mule-UCS defines with |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
843 ;; mime-charset, though it's not valid). |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
844 (if (and cs |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
845 (not (string-match "^[Xx]-" (symbol-name cs))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
846 ;; UTF-16 of any variety is invalid for |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
847 ;; text parts and, unfortunately, has |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
848 ;; mime-charset defined both in Mule-UCS |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
849 ;; and versions of Emacs. (The name |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
850 ;; might be `mule-utf-16...' or |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
851 ;; `utf-16...'.) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
852 (not (string-match "utf-16" (symbol-name cs)))) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
853 (setq systems nil |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
854 charsets (list cs)))))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
855 charsets)) |
59089
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
856 ;; If we're XEmacs, and some coding system is appropriate, |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
857 ;; mm-xemacs-find-mime-charset will return an appropriate list. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
858 ;; Otherwise, we'll get nil, and the next setq will get invoked. |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
859 (setq charsets (mm-xemacs-find-mime-charset b e)) |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
860 |
22da0004ae3c
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-750
Miles Bader <miles@gnu.org>
parents:
57923
diff
changeset
|
861 ;; We're not multibyte, or a single coding system won't cover it. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
862 (setq charsets |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
863 (mm-delete-duplicates |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
864 (mapcar 'mm-mime-charset |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
865 (delq 'ascii |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
866 (mm-find-charset-region b e)))))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
867 (if (and (> (length charsets) 1) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
868 (memq 'iso-8859-15 charsets) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
869 (memq 'iso-8859-15 hack-charsets) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
870 (save-excursion (mm-iso-8859-x-to-15-region b e))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
871 (mapcar (lambda (x) (setq charsets (delq (car x) charsets))) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
872 mm-iso-8859-15-compatible)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
873 (if (and (memq 'iso-2022-jp-2 charsets) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
874 (memq 'iso-2022-jp-2 hack-charsets)) |
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
875 (setq charsets (delq 'iso-2022-jp charsets))) |
64736
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
876 ;; Attempt to reduce the number of charsets if utf-8 is available. |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
877 (if (and (featurep 'xemacs) |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
878 (> (length charsets) 1) |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
879 (mm-coding-system-p 'utf-8)) |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
880 (let ((mm-coding-system-priorities |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
881 (cons 'utf-8 mm-coding-system-priorities))) |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
882 (setq charsets |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
883 (mm-delete-duplicates |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
884 (mapcar 'mm-mime-charset |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
885 (delq 'ascii |
f62cd60b99ba
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-513
Miles Bader <miles@gnu.org>
parents:
64085
diff
changeset
|
886 (mm-find-charset-region b e))))))) |
41494
933ab100fb4a
2001-11-25 ShengHuo ZHU <zsh@cs.rochester.edu>
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
40621
diff
changeset
|
887 charsets)) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
888 |
31717 | 889 (defmacro mm-with-unibyte-buffer (&rest forms) |
890 "Create a temporary buffer, and evaluate FORMS there like `progn'. | |
33378 | 891 Use unibyte mode for this." |
892 `(let (default-enable-multibyte-characters) | |
893 (with-temp-buffer ,@forms))) | |
31717 | 894 (put 'mm-with-unibyte-buffer 'lisp-indent-function 0) |
895 (put 'mm-with-unibyte-buffer 'edebug-form-spec '(body)) | |
896 | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
897 (defmacro mm-with-multibyte-buffer (&rest forms) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
898 "Create a temporary buffer, and evaluate FORMS there like `progn'. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
899 Use multibyte mode for this." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
900 `(let ((default-enable-multibyte-characters t)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
901 (with-temp-buffer ,@forms))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
902 (put 'mm-with-multibyte-buffer 'lisp-indent-function 0) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
903 (put 'mm-with-multibyte-buffer 'edebug-form-spec '(body)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
904 |
31717 | 905 (defmacro mm-with-unibyte-current-buffer (&rest forms) |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
906 "Evaluate FORMS with current buffer temporarily made unibyte. |
33378 | 907 Also bind `default-enable-multibyte-characters' to nil. |
69247
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
908 Equivalent to `progn' in XEmacs |
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
909 |
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
910 NOTE: Use this macro with caution in multibyte buffers (it is not |
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
911 worth using this macro in unibyte buffers of course). Use of |
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
912 `(set-buffer-multibyte t)', which is run finally, is generally |
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
913 harmful since it is likely to modify existing data in the buffer. |
69304
55d8c694b9cf
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-139
Miles Bader <miles@gnu.org>
parents:
69247
diff
changeset
|
914 For instance, it converts \"\\300\\255\" into \"\\255\" in |
55d8c694b9cf
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-139
Miles Bader <miles@gnu.org>
parents:
69247
diff
changeset
|
915 Emacs 23 (unicode)." |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
916 (let ((multibyte (make-symbol "multibyte")) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
917 (buffer (make-symbol "buffer"))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47949
diff
changeset
|
918 `(if mm-emacs-mule |
69247
6580c61aced7
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-134
Miles Bader <miles@gnu.org>
parents:
69135
diff
changeset
|
919 (let ((,multibyte enable-multibyte-characters) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
920 (,buffer (current-buffer))) |
33378 | 921 (unwind-protect |
922 (let (default-enable-multibyte-characters) | |
923 (set-buffer-multibyte nil) | |
924 ,@forms) | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
925 (set-buffer ,buffer) |
33378 | 926 (set-buffer-multibyte ,multibyte))) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
927 (let (default-enable-multibyte-characters) |
33378 | 928 ,@forms)))) |
31717 | 929 (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) |
930 (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) | |
931 | |
932 (defmacro mm-with-unibyte (&rest forms) | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
933 "Eval the FORMS with the default value of `enable-multibyte-characters' nil." |
33378 | 934 `(let (default-enable-multibyte-characters) |
935 ,@forms)) | |
31717 | 936 (put 'mm-with-unibyte 'lisp-indent-function 0) |
937 (put 'mm-with-unibyte 'edebug-form-spec '(body)) | |
938 | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
939 (defmacro mm-with-multibyte (&rest forms) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
940 "Eval the FORMS with the default value of `enable-multibyte-characters' t." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
941 `(let ((default-enable-multibyte-characters t)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
942 ,@forms)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
943 (put 'mm-with-multibyte 'lisp-indent-function 0) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
944 (put 'mm-with-multibyte 'edebug-form-spec '(body)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
945 |
31717 | 946 (defun mm-find-charset-region (b e) |
33378 | 947 "Return a list of Emacs charsets in the region B to E." |
31717 | 948 (cond |
949 ((and (mm-multibyte-p) | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
950 (fboundp 'find-charset-region)) |
31717 | 951 ;; Remove composition since the base charsets have been included. |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
952 ;; Remove eight-bit-*, treat them as ascii. |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
953 (let ((css (find-charset-region b e))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
954 (mapcar (lambda (cs) (setq css (delq cs css))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
955 '(composition eight-bit-control eight-bit-graphic |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
956 control-1)) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
957 css)) |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
958 (t |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
959 ;; We are in a unibyte buffer or XEmacs non-mule, so we futz around a bit. |
31717 | 960 (save-excursion |
961 (save-restriction | |
962 (narrow-to-region b e) | |
963 (goto-char (point-min)) | |
964 (skip-chars-forward "\0-\177") | |
965 (if (eobp) | |
966 '(ascii) | |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
967 (let (charset) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
968 (setq charset |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
969 (and (boundp 'current-language-environment) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
970 (car (last (assq 'charset |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
971 (assoc current-language-environment |
32976
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
972 language-info-alist)))))) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
973 (if (eq charset 'ascii) (setq charset nil)) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
974 (or charset |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
975 (setq charset |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
976 (car (last (assq mail-parse-charset |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
977 mm-mime-mule-charset-alist))))) |
aa9dc4e7c5ac
2000-10-27 ShengHuo ZHU <zsh@cs.rochester.edu>
Dave Love <fx@gnu.org>
parents:
32414
diff
changeset
|
978 (list 'ascii (or charset 'latin-iso8859-1))))))))) |
31717 | 979 |
980 (if (fboundp 'shell-quote-argument) | |
981 (defalias 'mm-quote-arg 'shell-quote-argument) | |
982 (defun mm-quote-arg (arg) | |
983 "Return a version of ARG that is safe to evaluate in a shell." | |
984 (let ((pos 0) new-pos accum) | |
985 ;; *** bug: we don't handle newline characters properly | |
986 (while (setq new-pos (string-match "[]*[;!'`\"$\\& \t{} |()<>]" arg pos)) | |
987 (push (substring arg pos new-pos) accum) | |
988 (push "\\" accum) | |
989 (push (list (aref arg new-pos)) accum) | |
990 (setq pos (1+ new-pos))) | |
991 (if (= pos 0) | |
992 arg | |
993 (apply 'concat (nconc (nreverse accum) (list (substring arg pos)))))))) | |
994 | |
995 (defun mm-auto-mode-alist () | |
996 "Return an `auto-mode-alist' with only the .gz (etc) thingies." | |
997 (let ((alist auto-mode-alist) | |
998 out) | |
999 (while alist | |
1000 (when (listp (cdar alist)) | |
1001 (push (car alist) out)) | |
1002 (pop alist)) | |
1003 (nreverse out))) | |
1004 | |
1005 (defvar mm-inhibit-file-name-handlers | |
36473
c1e752e8d255
(mm-inhibit-file-name-handlers): Add
Dave Love <fx@gnu.org>
parents:
35838
diff
changeset
|
1006 '(jka-compr-handler image-file-handler) |
31717 | 1007 "A list of handlers doing (un)compression (etc) thingies.") |
1008 | |
1009 (defun mm-insert-file-contents (filename &optional visit beg end replace | |
1010 inhibit) | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1011 "Like `insert-file-contents', but only reads in the file. |
31717 | 1012 A buffer may be modified in several ways after reading into the buffer due |
1013 to advanced Emacs features, such as file-name-handlers, format decoding, | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1014 `find-file-hooks', etc. |
47949
33e1238070a2
(mm-mime-mule-charset-alist): Require when compiling.
Dave Love <fx@gnu.org>
parents:
44075
diff
changeset
|
1015 If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'. |
31717 | 1016 This function ensures that none of these modifications will take place." |
62943
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1017 (let* ((format-alist nil) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1018 (auto-mode-alist (if inhibit nil (mm-auto-mode-alist))) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1019 (default-major-mode 'fundamental-mode) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1020 (enable-local-variables nil) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1021 (after-insert-file-functions nil) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1022 (enable-local-eval nil) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1023 (inhibit-file-name-operation (if inhibit |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1024 'insert-file-contents |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1025 inhibit-file-name-operation)) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1026 (inhibit-file-name-handlers |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1027 (if inhibit |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1028 (append mm-inhibit-file-name-handlers |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1029 inhibit-file-name-handlers) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1030 inhibit-file-name-handlers)) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1031 (ffh (if (boundp 'find-file-hook) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1032 'find-file-hook |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1033 'find-file-hooks)) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1034 (val (symbol-value ffh))) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1035 (set ffh nil) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1036 (unwind-protect |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1037 (insert-file-contents filename visit beg end replace) |
11d53dd5abd9
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-345
Miles Bader <miles@gnu.org>
parents:
61519
diff
changeset
|
1038 (set ffh val)))) |
31717 | 1039 |
1040 (defun mm-append-to-file (start end filename &optional codesys inhibit) | |
1041 "Append the contents of the region to the end of file FILENAME. | |
1042 When called from a function, expects three arguments, | |
1043 START, END and FILENAME. START and END are buffer positions | |
1044 saying what text to write. | |
1045 Optional fourth argument specifies the coding system to use when | |
1046 encoding the file. | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1047 If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'." |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1048 (let ((coding-system-for-write |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1049 (or codesys mm-text-coding-system-for-write |
31717 | 1050 mm-text-coding-system)) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1051 (inhibit-file-name-operation (if inhibit |
31717 | 1052 'append-to-file |
1053 inhibit-file-name-operation)) | |
1054 (inhibit-file-name-handlers | |
1055 (if inhibit | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1056 (append mm-inhibit-file-name-handlers |
31717 | 1057 inhibit-file-name-handlers) |
1058 inhibit-file-name-handlers))) | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1059 (write-region start end filename t 'no-message) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1060 (message "Appended to %s" filename))) |
31717 | 1061 |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1062 (defun mm-write-region (start end filename &optional append visit lockname |
31717 | 1063 coding-system inhibit) |
1064 | |
1065 "Like `write-region'. | |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1066 If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'." |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1067 (let ((coding-system-for-write |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1068 (or coding-system mm-text-coding-system-for-write |
31717 | 1069 mm-text-coding-system)) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1070 (inhibit-file-name-operation (if inhibit |
31717 | 1071 'write-region |
1072 inhibit-file-name-operation)) | |
1073 (inhibit-file-name-handlers | |
1074 (if inhibit | |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1075 (append mm-inhibit-file-name-handlers |
31717 | 1076 inhibit-file-name-handlers) |
1077 inhibit-file-name-handlers))) | |
1078 (write-region start end filename append visit lockname))) | |
1079 | |
68940
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1080 ;; It is not a MIME function, but some MIME functions use it. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1081 (if (and (fboundp 'make-temp-file) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1082 (ignore-errors |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1083 (let ((def (symbol-function 'make-temp-file))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1084 (and (byte-code-function-p def) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1085 (setq def (if (fboundp 'compiled-function-arglist) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1086 ;; XEmacs |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1087 (eval (list 'compiled-function-arglist def)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1088 (aref def 0))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1089 (>= (length def) 4) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1090 (eq (nth 3 def) 'suffix))))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1091 (defalias 'mm-make-temp-file 'make-temp-file) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1092 ;; Stolen (and modified for Emacs 20 and XEmacs) from Emacs 22. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1093 (defun mm-make-temp-file (prefix &optional dir-flag suffix) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1094 "Create a temporary file. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1095 The returned file name (created by appending some random characters at the end |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1096 of PREFIX, and expanding against `temporary-file-directory' if necessary), |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1097 is guaranteed to point to a newly created empty file. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1098 You can then use `write-region' to write new data into the file. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1099 |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1100 If DIR-FLAG is non-nil, create a new empty directory instead of a file. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1101 |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1102 If SUFFIX is non-nil, add that at the end of the file name." |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1103 (let ((umask (default-file-modes)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1104 file) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1105 (unwind-protect |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1106 (progn |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1107 ;; Create temp files with strict access rights. It's easy to |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1108 ;; loosen them later, whereas it's impossible to close the |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1109 ;; time-window of loose permissions otherwise. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1110 (set-default-file-modes 448) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1111 (while (condition-case err |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1112 (progn |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1113 (setq file |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1114 (make-temp-name |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1115 (expand-file-name |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1116 prefix |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1117 (if (fboundp 'temp-directory) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1118 ;; XEmacs |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1119 (temp-directory) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1120 temporary-file-directory)))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1121 (if suffix |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1122 (setq file (concat file suffix))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1123 (if dir-flag |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1124 (make-directory file) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1125 (if (or (featurep 'xemacs) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1126 (= emacs-major-version 20)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1127 ;; NOTE: This is unsafe if Emacs 20 |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1128 ;; users and XEmacs users don't use |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1129 ;; a secure temp directory. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1130 (if (file-exists-p file) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1131 (signal 'file-already-exists |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1132 (list "File exists" file)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1133 (write-region "" nil file nil 'silent)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1134 (write-region "" nil file nil 'silent |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1135 nil 'excl))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1136 nil) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1137 (file-already-exists t) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1138 ;; The Emacs 20 and XEmacs versions of |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1139 ;; `make-directory' issue `file-error'. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1140 (file-error (or (and (or (featurep 'xemacs) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1141 (= emacs-major-version 20)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1142 (file-exists-p file)) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1143 (signal (car err) (cdr err))))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1144 ;; the file was somehow created by someone else between |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1145 ;; `make-temp-name' and `write-region', let's try again. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1146 nil) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1147 file) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1148 ;; Reset the umask. |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1149 (set-default-file-modes umask))))) |
808f636eb13e
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-93
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
1150 |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1151 (defun mm-image-load-path (&optional package) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1152 (let (dir result) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1153 (dolist (path load-path (nreverse result)) |
57243
c5e16264557d
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-575
Miles Bader <miles@gnu.org>
parents:
57153
diff
changeset
|
1154 (when (and path |
c5e16264557d
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-575
Miles Bader <miles@gnu.org>
parents:
57153
diff
changeset
|
1155 (file-directory-p |
c5e16264557d
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-575
Miles Bader <miles@gnu.org>
parents:
57153
diff
changeset
|
1156 (setq dir (concat (file-name-directory |
c5e16264557d
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-575
Miles Bader <miles@gnu.org>
parents:
57153
diff
changeset
|
1157 (directory-file-name path)) |
60029
210af0ad3d35
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-96
Miles Bader <miles@gnu.org>
parents:
59089
diff
changeset
|
1158 "etc/images/" (or package "gnus/"))))) |
57243
c5e16264557d
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-575
Miles Bader <miles@gnu.org>
parents:
57153
diff
changeset
|
1159 (push dir result)) |
40542
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1160 (push path result)))) |
93f6c74a2f60
* mm-util.el, nnultimate.el, nnweb.el, nnslashdot.el: Sync with
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
39339
diff
changeset
|
1161 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1162 ;; Fixme: This doesn't look useful where it's used. |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1163 (if (fboundp 'detect-coding-region) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1164 (defun mm-detect-coding-region (start end) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1165 "Like `detect-coding-region' except returning the best one." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1166 (let ((coding-systems |
61434
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
1167 (detect-coding-region start end))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1168 (or (car-safe coding-systems) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1169 coding-systems))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1170 (defun mm-detect-coding-region (start end) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1171 (let ((point (point))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1172 (goto-char start) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1173 (skip-chars-forward "\0-\177" end) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1174 (prog1 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1175 (if (eq (point) end) 'ascii (mm-guess-charset)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1176 (goto-char point))))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1177 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1178 (if (fboundp 'coding-system-get) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1179 (defun mm-detect-mime-charset-region (start end) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1180 "Detect MIME charset of the text in the region between START and END." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1181 (let ((cs (mm-detect-coding-region start end))) |
70052
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
1182 (or (coding-system-get cs :mime-charset) |
261c2dbe91d2
* mm-util.el (mm-charset-synonym-alist): Improve doc string.
Reiner Steib <Reiner.Steib@gmx.de>
parents:
69304
diff
changeset
|
1183 (coding-system-get cs 'mime-charset)))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1184 (defun mm-detect-mime-charset-region (start end) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1185 "Detect MIME charset of the text in the region between START and END." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1186 (let ((cs (mm-detect-coding-region start end))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1187 cs))) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
53617
diff
changeset
|
1188 |
44075
7782e54757bb
* mail-source.el (make-source-make-complex-temp-name): Use
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
42500
diff
changeset
|
1189 |
31717 | 1190 (provide 'mm-util) |
1191 | |
61434
6d07c19816b9
(mm-string-to-multibyte): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
61424
diff
changeset
|
1192 ;; arch-tag: 94dc5388-825d-4fd1-bfa5-2100aa351238 |
31717 | 1193 ;;; mm-util.el ends here |