]> git.eshelyaron.com Git - emacs.git/commitdiff
2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
authorAndrew Choi <akochoi@shaw.ca>
Fri, 24 Aug 2001 07:46:40 +0000 (07:46 +0000)
committerAndrew Choi <akochoi@shaw.ca>
Fri, 24 Aug 2001 07:46:40 +0000 (07:46 +0000)
* src/macterm.c (init_font_name_table): Add an additional entry to
the font table with the script code smRoman for each Apple
Japanese font.
(XLoadQueryFont): Recognize a font as having the smRoman script
code even when FontToScript returns smJapanese if it is one of
those created above.

mac/ChangeLog
mac/src/macterm.c

index f331736a6a861caa69e61baef658a189c1af82db..4030043afc906b421b8f9ef119140ee6a61f222f 100644 (file)
@@ -1,3 +1,12 @@
+2001-08-24  Andrew Choi  <akochoi@cse.cuhk.edu.hk>
+
+       * src/macterm.c (init_font_name_table): Add an additional entry to
+       the font table with the script code smRoman for each Apple
+       Japanese font.
+       (XLoadQueryFont): Recognize a font as having the smRoman script
+       code even when FontToScript returns smJapanese if it is one of
+       those created above.
+
 2001-08-21  Andrew Choi  <akochoi@cse.cuhk.edu.hk>
 
        * INSTALL: Add to the note on using -opt speed in MPW the function
index 9bd22c7d06248db7caab2e0e9450dd07926655d4..1a0544920ac8eec2f2a77d15359c36a6105d6ff5 100644 (file)
@@ -10393,7 +10393,11 @@ init_font_name_table ()
                       font_name_table = (char **)
                        xmalloc (font_name_table_size * sizeof (char *));
                     }
-                  else if (font_name_count >= font_name_table_size)
+                  else if (font_name_count >= font_name_table_size ||
+                          /* fonts in Japanese scripts require two
+                             entries.  */
+                          scriptcode == smJapanese &&
+                          font_name_count + 1 >= font_name_table_size)
                     {
                       font_name_table_size += 16;
                       font_name_table = (char **)
@@ -10405,6 +10409,17 @@ init_font_name_table ()
                                         assc_entry->fontSize,
                                         assc_entry->fontStyle,
                                         scriptcode);
+                 /* Both jisx0208.1983-sjis and jisx0201.1976-sjis
+                    parts are contained in Apple Japanese (SJIS)
+                    font.  */
+                 if (smJapanese == scriptcode)
+                   {
+                     font_name_table[font_name_count++]
+                       = mac_to_x_fontname (name,
+                                            assc_entry->fontSize,
+                                            assc_entry->fontStyle,
+                                            smRoman);
+                   }
                 }
             }
 
@@ -10660,6 +10675,20 @@ XLoadQueryFont (Display *dpy, char *fontname)
   font->mac_fontface = fontface;
   font->mac_scriptcode = FontToScript (fontnum);
 
+  /* Apple Japanese (SJIS) font is listed as both
+     "*-jisx0208.1983-sjis" (Japanese script) and "*-mac-roman" (Roman
+     script) in init_font_name_table().  The latter should be treated
+     as a one-byte font.  */
+  {
+    char cs[32];
+
+    if (sscanf (name, 
+               "-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]--%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s",
+               cs) == 1
+       && 0 == strcmp (cs, "mac-roman"))  
+      font->mac_scriptcode = smRoman;
+  }
+  
   is_two_byte_font = font->mac_scriptcode == smJapanese ||
                      font->mac_scriptcode == smTradChinese ||
                      font->mac_scriptcode == smSimpChinese ||