Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/teraterm/vtterm.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3416 by doda, Wed May 20 13:38:32 2009 UTC revision 3443 by doda, Sun Jun 7 06:16:26 2009 UTC
# Line 25  Line 25 
25    
26  #include "vtterm.h"  #include "vtterm.h"
27    
28    #define MAPSIZE(x) (sizeof(x)/sizeof((x)[0]))
29    
30    /* Parsing modes */    /* Parsing modes */
31  #define ModeFirst 0  #define ModeFirst 0
32  #define ModeESC   1  #define ModeESC   1
# Line 3084  static void UnicodeToCP932(unsigned int Line 3086  static void UnicodeToCP932(unsigned int
3086          wchar[1] = (code >> 8) & 0xff;          wchar[1] = (code >> 8) & 0xff;
3087    
3088          if (ts.UnicodeDecSpMapping) {          if (ts.UnicodeDecSpMapping) {
3089                  cset = ConvertUnicode(code, mapUnicodeSymbolToDecSp, sizeof(mapUnicodeSymbolToDecSp)/sizeof(mapUnicodeSymbolToDecSp[0]));                  cset = ConvertUnicode(code, mapUnicodeSymbolToDecSp, MAPSIZE(mapUnicodeSymbolToDecSp));
3090          }          }
3091          if (((cset >> 8) & ts.UnicodeDecSpMapping) != 0) {          if (((cset >> 8) & ts.UnicodeDecSpMapping) != 0) {
3092                  PutDecSp(cset & 0xff);                  PutDecSp(cset & 0xff);
# Line 3096  static void UnicodeToCP932(unsigned int Line 3098  static void UnicodeToCP932(unsigned int
3098                    case -1:                    case -1:
3099                          if (_stricmp(ts.Locale, DEFAULT_LOCALE) == 0) {                          if (_stricmp(ts.Locale, DEFAULT_LOCALE) == 0) {
3100                                  // U+301Cなどは変換できない。Unicode -> Shift_JISへ変換してみる。                                  // U+301Cなどは変換できない。Unicode -> Shift_JISへ変換してみる。
3101                                  cset = ConvertUnicode(code, mapUnicodeToSJIS, sizeof(mapUnicodeToSJIS)/sizeof(mapUnicodeToSJIS[0]));                                  cset = ConvertUnicode(code, mapUnicodeToSJIS, MAPSIZE(mapUnicodeToSJIS));
3102                                  if (cset != 0) {                                  if (cset != 0) {
3103                                          Kanji = cset & 0xff00;                                          Kanji = cset & 0xff00;
3104                                          PutKanji(cset & 0x00ff);                                          PutKanji(cset & 0x00ff);
# Line 3216  BOOL ParseFirstUTF8(BYTE b, int hfsplus_ Line 3218  BOOL ParseFirstUTF8(BYTE b, int hfsplus_
3218                  if (hfsplus_mode == 1) {                  if (hfsplus_mode == 1) {
3219                          if (maybe_hfsplus == 0) {                          if (maybe_hfsplus == 0) {
3220                                  if ((first_code_index = GetIndexOfHFSPlusFirstCode(                                  if ((first_code_index = GetIndexOfHFSPlusFirstCode(
3221                                                  code, mapHFSPlusUnicode, sizeof(mapHFSPlusUnicode)/sizeof(mapHFSPlusUnicode[0])                                                  code, mapHFSPlusUnicode, MAPSIZE(mapHFSPlusUnicode)
3222                                                  )) != -1) {                                                  )) != -1) {
3223                                          maybe_hfsplus = 1;                                          maybe_hfsplus = 1;
3224                                          first_code = code;                                          first_code = code;
# Line 3225  BOOL ParseFirstUTF8(BYTE b, int hfsplus_ Line 3227  BOOL ParseFirstUTF8(BYTE b, int hfsplus_
3227                                  }                                  }
3228                          } else {                          } else {
3229                                  maybe_hfsplus = 0;                                  maybe_hfsplus = 0;
3230                                  cset = GetIllegalUnicode(first_code_index, first_code, code, mapHFSPlusUnicode, sizeof(mapHFSPlusUnicode)/sizeof(mapHFSPlusUnicode[0]));                                  cset = GetIllegalUnicode(first_code_index, first_code, code, mapHFSPlusUnicode, MAPSIZE(mapHFSPlusUnicode));
3231                                  if (cset != 0) { // success                                  if (cset != 0) { // success
3232                                          code = cset;                                          code = cset;
3233    
3234                                  } else { // error                                  } else { // error
3235                                          // 2つめの文字が半濁点の1文字目に相当する場合は、再度検索を続ける。(2005.10.15 yutaka)                                          // 2つめの文字が半濁点の1文字目に相当する場合は、再度検索を続ける。(2005.10.15 yutaka)
3236                                          if ((first_code_index = GetIndexOfHFSPlusFirstCode(                                          if ((first_code_index = GetIndexOfHFSPlusFirstCode(
3237                                                          code, mapHFSPlusUnicode, sizeof(mapHFSPlusUnicode)/sizeof(mapHFSPlusUnicode[0])                                                          code, mapHFSPlusUnicode, MAPSIZE(mapHFSPlusUnicode)
3238                                                          )) != -1) {                                                          )) != -1) {
3239    
3240                                                  // 1つめの文字はそのまま出力する                                                  // 1つめの文字はそのまま出力する

Legend:
Removed from v.3416  
changed lines
  Added in v.3443

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26