emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: po.el: line up po-compat.el (gettext)


From: Stefan Monnier
Subject: Re: po.el: line up po-compat.el (gettext)
Date: Tue, 01 Oct 2002 10:25:18 -0400

> > I'm not sure.  See these lines:
> >     ("ISO-8859-1" . iso-8859-1)
> >     ("ISO_8859-1" . iso-8859-1)
> >
> > We can't get rid of the second line.
> 
> Thanks for spotting these lines.

It turns out that my complaint is somewhat moot: the code I asked for
is there already (thus koi8-u already works, even tho it's not explicitly
listed in po-content-type-charset-alist).
But in light of the above I suggest we also try

  (coding-system-p (intern-soft (subst-char-in-string ?_ ?- charset-lower)))

> > Doesn't this imply that there's a merit to keep those lines
> > the same as what po-copmat.el has?
> 
> Yes, but I will always make sure the synch happens in both directions
> (po.el (emacs) <-> po-compat.el (gettext)).

Obviously this sync issue is very relelvant and it's for you to decide
what's the best option from a maintainability POV.
I suggest the patch below, but it trims down the explicit list whereas
the current list keeps redundant entries (entries that would already
be found by the (intern-soft charset-lower) in the code).


        Stefan


--- po.el.~1.5.~        Sun Mar 17 15:45:37 2002
+++ po.el       Fri Sep 27 12:11:37 2002
@@ -33,78 +33,15 @@
 ;;; Code:
 
 (defconst po-content-type-charset-alist
-  '(; Note: Emacs 21 doesn't support all encodings, thus the missing entries.
+  '(; Note: Most encodings are automatically recognized.
     ("ASCII" . undecided)
     ("ANSI_X3.4-1968" . undecided)
     ("US-ASCII" . undecided)
-    ("ISO-8859-1" . iso-8859-1)
-    ("ISO_8859-1" . iso-8859-1)
-    ("ISO-8859-2" . iso-8859-2)
-    ("ISO_8859-2" . iso-8859-2)
-    ("ISO-8859-3" . iso-8859-3)
-    ("ISO_8859-3" . iso-8859-3)
-    ("ISO-8859-4" . iso-8859-4)
-    ("ISO_8859-4" . iso-8859-4)
-    ("ISO-8859-5" . iso-8859-5)
-    ("ISO_8859-5" . iso-8859-5)
-    ;("ISO-8859-6" . ??)
-    ;("ISO_8859-6" . ??)
-    ("ISO-8859-7" . iso-8859-7)
-    ("ISO_8859-7" . iso-8859-7)
-    ("ISO-8859-8" . iso-8859-8)
-    ("ISO_8859-8" . iso-8859-8)
-    ("ISO-8859-9" . iso-8859-9)
-    ("ISO_8859-9" . iso-8859-9)
-    ;("ISO-8859-13" . ??)
-    ;("ISO_8859-13" . ??)
-    ("ISO-8859-15" . iso-8859-15) ; requires Emacs 21
-    ("ISO_8859-15" . iso-8859-15) ; requires Emacs 21
-    ("KOI8-R" . koi8-r)
-    ;("KOI8-U" . ??)
-    ("CP437" . cp437) ; requires Emacs 20
-    ("CP775" . cp775) ; requires Emacs 20
-    ("CP850" . cp850) ; requires Emacs 20
-    ("CP852" . cp852) ; requires Emacs 20
-    ("CP855" . cp855) ; requires Emacs 20
-    ;("CP856" . ??)
-    ("CP857" . cp857) ; requires Emacs 20
-    ("CP861" . cp861) ; requires Emacs 20
-    ("CP862" . cp862) ; requires Emacs 20
-    ("CP864" . cp864) ; requires Emacs 20
-    ("CP865" . cp865) ; requires Emacs 20
-    ("CP866" . cp866) ; requires Emacs 21
-    ("CP869" . cp869) ; requires Emacs 20
-    ;("CP874" . ??)
-    ;("CP922" . ??)
-    ;("CP932" . ??)
-    ;("CP943" . ??)
-    ;("CP949" . ??)
-    ;("CP950" . ??)
-    ;("CP1046" . ??)
-    ;("CP1124" . ??)
-    ;("CP1129" . ??)
-    ("CP1250" . cp1250) ; requires Emacs 20
-    ("CP1251" . cp1251) ; requires Emacs 20
     ("CP1252" . iso-8859-1) ; approximation
-    ("CP1253" . cp1253) ; requires Emacs 20
     ("CP1254" . iso-8859-9) ; approximation
     ("CP1255" . iso-8859-8) ; approximation
-    ;("CP1256" . ??)
-    ("CP1257" . cp1257) ; requires Emacs 20
     ("GB2312" . cn-gb-2312)  ; also named 'gb2312' in XEmacs 21 or Emacs 21
                            ; also named 'euc-cn' in Emacs 20 or Emacs 21
-    ("EUC-JP" . euc-jp)
-    ("EUC-KR" . euc-kr)
-    ;("EUC-TW" . ??)
-    ("BIG5" . big5)
-    ;("BIG5-HKSCS" . ??)
-    ;("GBK" . ??)
-    ;("GB18030" . ??)
-    ("SHIFT_JIS" . shift_jis)
-    ;("JOHAB" . ??)
-    ("TIS-620" . tis-620)    ; requires Emacs 20 or Emacs 21
-    ("VISCII" . viscii)      ; requires Emacs 20 or Emacs 21
-    ("UTF-8" . utf-8)        ; requires Mule-UCS in Emacs 20, or Emacs 21
     )
   "How to convert a GNU libc/libiconv canonical charset name as seen in
 Content-Type into a Mule coding system.")
@@ -156,13 +93,17 @@
            (list (cond ((and try (coding-system-p try))
                        try)
                       ((and try
-                            (string-match "\\`cp[1-9][0-9][0-9]?\\'"
+                            (string-match "\\`cp[1-9][0-9]*\\'"
                                           (symbol-name try))
                             (assoc (substring (symbol-name try) 2)
                                    (cp-supported-codepages)))
                        (codepage-setup (substring (symbol-name try) 2))
                        try)
-                      ((and (string-match "\\`cp[1-9][0-9][0-9]?\\'"
+                      ((progn (setq try (intern-soft (subst-char-in-string
+                                                      ?_ ?- charset-lower)))
+                              (coding-system-p try))
+                       try)
+                      ((and (string-match "\\`cp[1-9][0-9]*\\'"
                                           charset-lower)
                             (assoc (substring charset-lower 2)
                                    (cp-supported-codepages)))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]