(coded-charset-entity-reference-alist): Add settings for
[chise/xemacs-chise.git.1] / src / mule-charset.c
index cff909a..9ccd480 100644 (file)
@@ -1,7 +1,8 @@
 /* Functions to handle multilingual characters.
    Copyright (C) 1992, 1995 Free Software Foundation, Inc.
    Copyright (C) 1995 Sun Microsystems, Inc.
-   Copyright (C) 1999,2000,2001,2002,2003,2004,2008,2009 MORIOKA Tomohiko
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2008, 2009, 2011
+     MORIOKA Tomohiko
 
 This file is part of XEmacs.
 
@@ -1634,6 +1635,8 @@ character set.  Recognized properties are:
                is passed the octets of the character, with the high
                bit cleared and set depending upon whether the value
                of the 'graphic property is 0 or 1.
+'iso-ir                ISO-IR number (for representative coded-charset).
+'=>iso-ir      [UTF-2000 only] Corresponding ISO-IR number.
 'mother                [UTF-2000 only] Base coded-charset.
 'code-min      [UTF-2000 only] Minimum code-point of a base coded-charset.
 'code-max      [UTF-2000 only] Maximum code-point of a base coded-charset.
@@ -1872,6 +1875,47 @@ character set.  Recognized properties are:
        byte_offset = 0;
     }
 
+  if ( (conversion == 0) && NILP (mother) && (min_code > 0) )
+    {
+      switch (chars)
+       {
+       case 94:
+         switch (dimension)
+           {
+           case 1:
+             conversion = CONVERSION_94;
+             break;
+           case 2:
+             conversion = CONVERSION_94x94;
+             break;
+           case 3:
+             conversion = CONVERSION_94x94x94;
+             break;
+           case 4:
+             conversion = CONVERSION_94x94x94x94;
+             break;
+           }
+         break;
+       case 96:
+         switch (dimension)
+           {
+           case 1:
+             conversion = CONVERSION_96;
+             break;
+           case 2:
+             conversion = CONVERSION_96x96;
+             break;
+           case 3:
+             conversion = CONVERSION_96x96x96;
+             break;
+           case 4:
+             conversion = CONVERSION_96x96x96x96;
+             break;
+           }
+         break;
+       }
+    }
+
   charset = make_charset (id, name, chars, dimension, columns, graphic,
                          final, direction, short_name, long_name,
                          doc_string, registry, iso_ir,
@@ -2086,7 +2130,8 @@ Recognized properties are those listed in `make-charset', as well as
       return CHARSETP (obj) ? XCHARSET_NAME (obj) : obj;
     }
 #ifdef UTF2000
-  if (EQ (prop, Qiso_ir))
+  if (EQ (prop, Qiso_ir)||
+      EQ (prop, Qto_iso_ir))
     {
       if ( CHARSET_ISO_IR (cs) > 0 )
        return make_int (CHARSET_ISO_IR (cs));