changeset 38931:dc047d3af2cd

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.
author Andrew Choi <akochoi@shaw.ca>
date Fri, 24 Aug 2001 07:46:40 +0000
parents 9cf07e15b208
children 8328e5ca5f55
files mac/ChangeLog mac/src/macterm.c
diffstat 2 files changed, 39 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mac/ChangeLog	Fri Aug 24 07:16:37 2001 +0000
+++ b/mac/ChangeLog	Fri Aug 24 07:46:40 2001 +0000
@@ -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
--- a/mac/src/macterm.c	Fri Aug 24 07:16:37 2001 +0000
+++ b/mac/src/macterm.c	Fri Aug 24 07:46:40 2001 +0000
@@ -10393,7 +10393,11 @@
                       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 @@
 					 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 @@
   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 ||