Mercurial > emacs
comparison mac/src/macterm.c @ 39107:e4461ba10180
2001-09-04 Andrew Choi <akochoi@cse.cuhk.edu.hk>
* src/macterm.c (mac_to_x_fontname): Return name with
jisx0201.1976-0 encoding if a script code of -smJapanese is specified.
(x_font_name_to_mac_font_name): Also recognize the jisx0201.1976-0
encoding.
(init_font_name_table): Use a script code of -smJapanese instead
of smRoman for the second entry of a Japanese font.
(XLoadQueryFont): Recognize a font as having the smRoman script
code if its encoding is jisx0201.1976-0.
author | Andrew Choi <akochoi@shaw.ca> |
---|---|
date | Tue, 04 Sep 2001 06:49:24 +0000 |
parents | 6addcec799eb |
children | 0f5c2cf91c81 |
comparison
equal
deleted
inserted
replaced
39106:dc9d8a2e8650 | 39107:e4461ba10180 |
---|---|
10285 strcpy(cs, "gb2312.1980-0"); | 10285 strcpy(cs, "gb2312.1980-0"); |
10286 break; | 10286 break; |
10287 case smJapanese: | 10287 case smJapanese: |
10288 strcpy(cs, "jisx0208.1983-sjis"); | 10288 strcpy(cs, "jisx0208.1983-sjis"); |
10289 break; | 10289 break; |
10290 case -smJapanese: | |
10291 /* Each Apple Japanese font is entered into the font table | |
10292 twice: once as a jisx0208.1983-sjis font and once as a | |
10293 jisx0201.1976-0 font. The latter can be used to display | |
10294 the ascii charset and katakana-jisx0201 charset. A | |
10295 negative script code signals that the name of this latter | |
10296 font is being built. */ | |
10297 strcpy(cs, "jisx0201.1976-0"); | |
10298 break; | |
10290 case smKorean: | 10299 case smKorean: |
10291 strcpy(cs, "ksc5601.1989-0"); | 10300 strcpy(cs, "ksc5601.1989-0"); |
10292 break; | 10301 break; |
10293 default: | 10302 default: |
10294 strcpy(cs, "mac-roman"); | 10303 strcpy(cs, "mac-roman"); |
10328 foundry, family, weight, slant, cs) != 5) | 10337 foundry, family, weight, slant, cs) != 5) |
10329 return; | 10338 return; |
10330 | 10339 |
10331 if (strcmp (cs, "big5-0") == 0 || strcmp (cs, "gb2312.1980-0") == 0 | 10340 if (strcmp (cs, "big5-0") == 0 || strcmp (cs, "gb2312.1980-0") == 0 |
10332 || strcmp (cs, "jisx0208.1983-sjis") == 0 | 10341 || strcmp (cs, "jisx0208.1983-sjis") == 0 |
10342 || strcmp (cs, "jisx0201.1976-0") == 0 | |
10333 || strcmp (cs, "ksc5601.1989-0") == 0 || strcmp (cs, "mac-roman") == 0) | 10343 || strcmp (cs, "ksc5601.1989-0") == 0 || strcmp (cs, "mac-roman") == 0) |
10334 strcpy(mf, family); | 10344 strcpy(mf, family); |
10335 else | 10345 else |
10336 sprintf(mf, "%s-%s-%s", foundry, family, cs); | 10346 sprintf(mf, "%s-%s-%s", foundry, family, cs); |
10337 } | 10347 } |
10407 font_name_table[font_name_count++] | 10417 font_name_table[font_name_count++] |
10408 = mac_to_x_fontname (name, | 10418 = mac_to_x_fontname (name, |
10409 assc_entry->fontSize, | 10419 assc_entry->fontSize, |
10410 assc_entry->fontStyle, | 10420 assc_entry->fontStyle, |
10411 scriptcode); | 10421 scriptcode); |
10412 /* Both jisx0208.1983-sjis and jisx0201.1976-sjis | 10422 /* Both jisx0208.1983-sjis and jisx0201.1976-0 parts |
10413 parts are contained in Apple Japanese (SJIS) | 10423 are contained in Apple Japanese (SJIS) font. */ |
10414 font. */ | |
10415 if (smJapanese == scriptcode) | 10424 if (smJapanese == scriptcode) |
10416 { | 10425 { |
10417 font_name_table[font_name_count++] | 10426 font_name_table[font_name_count++] |
10418 = mac_to_x_fontname (name, | 10427 = mac_to_x_fontname (name, |
10419 assc_entry->fontSize, | 10428 assc_entry->fontSize, |
10420 assc_entry->fontStyle, | 10429 assc_entry->fontStyle, |
10421 smRoman); | 10430 -smJapanese); |
10422 } | 10431 } |
10423 } | 10432 } |
10424 } | 10433 } |
10425 | 10434 |
10426 HUnlock (font_handle); | 10435 HUnlock (font_handle); |
10674 font->mac_fontsize = size; | 10683 font->mac_fontsize = size; |
10675 font->mac_fontface = fontface; | 10684 font->mac_fontface = fontface; |
10676 font->mac_scriptcode = FontToScript (fontnum); | 10685 font->mac_scriptcode = FontToScript (fontnum); |
10677 | 10686 |
10678 /* Apple Japanese (SJIS) font is listed as both | 10687 /* Apple Japanese (SJIS) font is listed as both |
10679 "*-jisx0208.1983-sjis" (Japanese script) and "*-mac-roman" (Roman | 10688 "*-jisx0208.1983-sjis" (Japanese script) and "*-jisx0201.1976-0" |
10680 script) in init_font_name_table(). The latter should be treated | 10689 (Roman script) in init_font_name_table(). The latter should be |
10681 as a one-byte font. */ | 10690 treated as a one-byte font. */ |
10682 { | 10691 { |
10683 char cs[32]; | 10692 char cs[32]; |
10684 | 10693 |
10685 if (sscanf (name, | 10694 if (sscanf (name, |
10686 "-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]--%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s", | 10695 "-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]--%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s", |
10687 cs) == 1 | 10696 cs) == 1 |
10688 && 0 == strcmp (cs, "mac-roman")) | 10697 && 0 == strcmp (cs, "jisx0201.1976-0")) |
10689 font->mac_scriptcode = smRoman; | 10698 font->mac_scriptcode = smRoman; |
10690 } | 10699 } |
10691 | 10700 |
10692 is_two_byte_font = font->mac_scriptcode == smJapanese || | 10701 is_two_byte_font = font->mac_scriptcode == smJapanese || |
10693 font->mac_scriptcode == smTradChinese || | 10702 font->mac_scriptcode == smTradChinese || |