[mew-int 2763] Re: Mew 6.3 release candidate 2

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
Wed Nov 11 16:56:02 JST 2009


> It works... but now Mew always select iso-8859-15 regardless of the
> preference set with mew-charset-latin.  A slight modification to your
> patch will probably do.

Please apply the following patch to pure RC2 and test it.

Since Emacs 23 does not maintain backward compatibility to Emacs 22,
it is very difficult to maintain semantics of mew-charset-latin on
Emacs 23. So, the patch prefers iso-8859-1 to iso-8859-15 always.

i.e.

1-only-characters        -> iso-8859-1
15-only-characters       -> iso-8859-15
both-1-and-15-characters -> iso-8859-1                      <== take care
1-only-characters both-1-and-15-characters  -> iso-8859-1
15-only-characters both-1-and-15-characters -> iso-8859-15
1-only-characters 15-only-characters both-1-and-15-characters -> utf-8

--Kazu

Index: mew-mule.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-mule.el,v
retrieving revision 1.28
retrieving revision 1.29
diff -c -r1.28 -r1.29
*** mew-mule.el	21 Jan 2009 05:54:56 -0000	1.28
--- mew-mule.el	11 Nov 2009 07:47:56 -0000	1.29
***************
*** 69,75 ****
      (cond
       ((member mew-lc-kana lcs)
        (mew-zenkaku-katakana-region beg end))
!      ((and (memq 'latin-iso8859-1 lcs) (memq 'latin-iso8859-15 lcs)) ;; xxx
        (mew-latin0-region beg end)))))
  
  ;;;
--- 69,76 ----
      (cond
       ((member mew-lc-kana lcs)
        (mew-zenkaku-katakana-region beg end))
!      ((and (not (fboundp 'set-charset-priority))
! 	   (memq 'latin-iso8859-1 lcs) (memq 'latin-iso8859-15 lcs)) ;; xxx
        (mew-latin0-region beg end)))))
  
  ;;;
Index: mew-mule3.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-mule3.el,v
retrieving revision 1.55
retrieving revision 1.56
diff -c -r1.55 -r1.56
*** mew-mule3.el	2 Nov 2009 04:39:09 -0000	1.55
--- mew-mule3.el	11 Nov 2009 07:47:56 -0000	1.56
***************
*** 195,215 ****
  ;; CS
  ;;
  
  (if (fboundp 'set-charset-priority)
      (defun mew-find-cs-region (beg end)
!       (let ((charset-list (charset-priority-list)))
! 	(set-charset-priority 'japanese-jisx0208 'korean-ksc5601
! 			      'latin-iso8859-1 'latin-iso8859-2
! 			      'latin-iso8859-3 'latin-iso8859-4
! 			      'cyrillic-iso8859-5 'greek-iso8859-7
! 			      'hebrew-iso8859-8 'latin-iso8859-9
! 			      'latin-iso8859-14 'latin-iso8859-15
! 			      'thai-tis620
! 			      'latin-jisx0201 'japanese-jisx0208-1978
! 			      'japanese-jisx0213-1 'japanese-jisx0213-2
! 			      'unicode)
! 	(prog1 (find-charset-region beg end)
! 	  (apply 'set-charset-priority charset-list))))
    (defalias 'mew-find-cs-region 'find-charset-region))
  
  ;; to internal
--- 195,247 ----
  ;; CS
  ;;
  
+ (defvar mew-charset-priority-list '(japanese-jisx0208
+ 				    korean-ksc5601
+ 				    latin-iso8859-2
+ 				    latin-iso8859-3
+ 				    latin-iso8859-4
+ 				    hebrew-iso8859-8
+ 				    latin-iso8859-9
+ 				    ;; for accent characters
+ 				    cyrillic-iso8859-5
+ 				    greek-iso8859-7
+ 				    latin-iso8859-14
+ 				    thai-tis620
+ 				    latin-jisx0201
+ 				    japanese-jisx0208-1978
+ 				    japanese-jisx0213-1
+ 				    japanese-jisx0213-2
+ 				    unicode))
+ 
  (if (fboundp 'set-charset-priority)
      (defun mew-find-cs-region (beg end)
!       (let ((charset-list (charset-priority-list))
! 	    ret lat1 lat0)
! 	(catch 'find
! 	  (set-charset-priority 'latin-iso8859-1)
! 	  (setq ret (find-charset-region beg end))
! 	  (if (equal ret '(ascii latin-iso8859-1))
! 	      (throw 'find nil))
! 	  ;;
! 	  (set-charset-priority 'latin-iso8859-15)
! 	  (setq ret (find-charset-region beg end))
! 	  (if (equal ret '(ascii latin-iso8859-15))
! 	      (throw 'find nil))
! 	  ;;
! 	  (set-charset-priority 'cyrillic-iso8859-5)
! 	  (setq ret (find-charset-region beg end))
! 	  (if (equal ret '(ascii cyrillic-iso8859-5))
! 	      (throw 'find nil))
! 	  ;;
! 	  (set-charset-priority 'greek-iso8859-7)
! 	  (setq ret (find-charset-region beg end))
! 	  (if (equal ret '(ascii greek-iso8859-7))
! 	      (throw 'find nil))
! 	  ;;
! 	  (apply 'set-charset-priority mew-charset-priority-list)
! 	  (setq ret (find-charset-region beg end)))
! 	(apply 'set-charset-priority charset-list)
! 	ret))
    (defalias 'mew-find-cs-region 'find-charset-region))
  
  ;; to internal


More information about the Mew-int mailing list