blob: 558939dee9fc5f6d435f100d9dd54c0dfbd6a9c8 [file] [log] [blame]
--- apel-10.8-orig/ChangeLog 2013-10-03 18:17:05.176741628 +1000
+++ apel-10.8/ChangeLog 2013-10-03 18:16:54.442741731 +1000
@@ -1,3 +1,56 @@
+2013-07-05 Tatsuya Kinoshita <tats@vega.ocn.ne.jp>
+
+ * mcs-20.el: Really check whether the mule-vesion variable is defined.
+
+2013-07-04 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-20.el: Check whether the mule-vesion variable is defined.
+ Cf. https://github.com/ikazuhiro/apel/commit/328c02e022340b36dd7e5f9250c7f86d2bafd793
+
+2013-03-24 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-20.el (mime-charset-to-coding-system): Display the message
+ and use charset name as coding system when
+ `mime-charset-coding-system-alist' indicates invalid coding
+ system.
+
+2012-09-07 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-e20.el (coding-system-to-mime-charset): Coding system's
+ setting is preferred to mime-charset-coding-system-alist's value.
+ Detect MIME name from mime-charset-coding-system-alist's value
+ more permissively.
+
+2012-08-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * poe.el (next-command-event): Fix that Emacs 21 and later were
+ treated as 'Emacs 19, 20.1 and 20.2'.
+
+2012-07-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-e20.el (charsets-mime-charset-alist): Do not use
+ `iso-2022-jp-2'.
+
+2012-07-28 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-20.el (detect-mime-charset-string): (Emacs23 and later) New
+ function.
+ (detect-mime-charset-region): Use it.
+
+2011-06-17 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-20.el (detect-mime-charset-region): (Emacs23 and later) Do
+ not check whether `charsets-mime-charset-alist' contains non
+ charset symbol.
+
+ * mcs-e20.el (charsets-mime-charset-alist): Remove non charset
+ symbol for Emacs 23 and later.
+
+2010-03-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
+
+ * mcs-20.el (detect-mime-charset-region): Do not care priority of
+ charsets on Emacs 23 and later.
+
2011-07-17 David Maus <dmaus@ictsoc.de>
* tinycustom.el (defcustom): Use new style backquotes.
--- apel-10.8-orig/mcs-20.el 2005-07-06 12:08:52.000000000 +1000
+++ apel-10.8/mcs-20.el 2013-10-03 17:44:42.936760151 +1000
@@ -84,11 +84,13 @@
(if (stringp charset)
(setq charset (intern (downcase charset)))
)
- (let ((cs (assq charset mime-charset-coding-system-alist)))
- (setq cs
- (if cs
- (cdr cs)
- charset))
+ (let ((cs (cdr (assq charset mime-charset-coding-system-alist))))
+ (unless (or (null cs) (find-coding-system cs))
+ (message
+ "Invalid coding system: %s. Confirm mime-charset-coding-system-alist."
+ cs)
+ (setq cs nil))
+ (unless cs (setq cs charset))
(if lbt
(setq cs (intern (format "%s-%s" cs
(cond ((eq lbt 'CRLF) 'dos)
@@ -96,12 +98,11 @@
((eq lbt 'CR) 'mac)
(t lbt)))))
)
- (if (find-coding-system cs)
- cs
- (if mime-charset-to-coding-system-default-method
- (funcall mime-charset-to-coding-system-default-method
- charset lbt cs)
- ))))
+ (or (find-coding-system cs)
+ (if mime-charset-to-coding-system-default-method
+ (funcall mime-charset-to-coding-system-default-method
+ charset lbt cs)
+ ))))
(defalias 'mime-charset-p 'mime-charset-to-coding-system)
@@ -209,6 +210,34 @@
(setq rest (cdr rest)))
default-mime-charset-for-write)))
)
+
+((eval-when-compile (and (boundp 'mule-version)
+ (null (string< mule-version "6.0"))))
+;; for Emacs 23 and later
+(defun detect-mime-charset-string (string)
+ "Return MIME charset for STRING."
+ (let ((src (string-to-list string))
+ tmp)
+ (setq tmp src)
+ ;; Uniquify the list of characters.
+ (while tmp
+ (setq tmp (setcdr tmp (delq (car tmp) (cdr tmp)))))
+ ;; Detect charset from the list of characters.
+ (catch 'found
+ (mapc (lambda (cons)
+ (catch 'next
+ (mapc (lambda (ch) (unless (char-charset ch (car cons))
+ (throw 'next nil)))
+ src)
+ (throw 'found (cdr cons))))
+ charsets-mime-charset-alist)
+ default-mime-charset-for-write)))
+
+(defsubst detect-mime-charset-region (start end)
+ "Return MIME charset for region between START and END."
+ (detect-mime-charset-string
+ (buffer-substring-no-properties start end))))
+
(t
;; for legacy Mule
(defun detect-mime-charset-region (start end)
--- apel-10.8-orig/mcs-e20.el 2005-07-06 12:08:52.000000000 +1000
+++ apel-10.8/mcs-e20.el 2013-10-03 17:44:42.936760151 +1000
@@ -90,11 +90,15 @@
((ascii korean-ksc5601) . euc-kr)
((ascii chinese-gb2312) . gb2312)
((ascii chinese-big5-1 chinese-big5-2) . big5)
- ((ascii thai-tis620 composition) . tis-620)
- ((ascii latin-iso8859-1 greek-iso8859-7
- latin-jisx0201 japanese-jisx0208-1978
- chinese-gb2312 japanese-jisx0208
- korean-ksc5601 japanese-jisx0212) . iso-2022-jp-2)
+ ,(static-cond
+ ((null (string< mule-version "6.0"))
+ '((ascii thai-tis620) . tis-620))
+ (t
+ '((ascii thai-tis620 composition) . tis-620)))
+ ;; ((ascii latin-iso8859-1 greek-iso8859-7
+ ;; latin-jisx0201 japanese-jisx0208-1978
+ ;; chinese-gb2312 japanese-jisx0208
+ ;; korean-ksc5601 japanese-jisx0212) . iso-2022-jp-2)
;;((ascii latin-iso8859-1 greek-iso8859-7
;; latin-jisx0201 japanese-jisx0208-1978
;; chinese-gb2312 japanese-jisx0208
@@ -119,8 +123,16 @@
(defun coding-system-to-mime-charset (coding-system)
"Convert CODING-SYSTEM to a MIME-charset.
Return nil if corresponding MIME-charset is not found."
- (or (car (rassq coding-system mime-charset-coding-system-alist))
- (coding-system-get coding-system 'mime-charset)
+ (or (coding-system-get coding-system 'mime-charset)
+ (let ((coding (coding-system-base coding-system))
+ (alist mime-charset-coding-system-alist)
+ result)
+ (while alist
+ (if (eq (coding-system-base (cdar alist)) coding)
+ (setq result (caar alist)
+ alist nil)
+ (setq alist (cdr alist))))
+ result)
))
(defun-maybe-cond mime-charset-list ()
--- apel-10.8-orig/poe.el 2013-10-03 17:43:11.327761025 +1000
+++ apel-10.8/poe.el 2013-10-03 17:44:42.937760151 +1000
@@ -1996,8 +1996,9 @@
returned.
If PROMPT is non-nil, it should be a string and will be displayed in
the echo area while this function is waiting for an event."
- ((and (>= emacs-major-version 20)
- (>= emacs-minor-version 4))
+ ((or (>= emacs-major-version 21)
+ (and (>= emacs-major-version 20)
+ (>= emacs-minor-version 4)))
;; Emacs 20.4 and later.
(read-event prompt)) ; should specify 2nd arg?
((and (= emacs-major-version 20)