[Ttssh2-commit] [6602] 行内では CP932 に fallback した事を覚えておくようにした。

svnno****@sourc***** svnno****@sourc*****
2017年 2月 22日 (水) 03:05:13 JST


Revision: 6602
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6602
Author:   doda
Date:     2017-02-22 03:05:13 +0900 (Wed, 22 Feb 2017)
Log Message:
-----------
行内では CP932 に fallback した事を覚えておくようにした。

Modified Paths:
--------------
    trunk/teraterm/teraterm/vtterm.c

-------------- next part --------------
Modified: trunk/teraterm/teraterm/vtterm.c
===================================================================
--- trunk/teraterm/teraterm/vtterm.c	2017-02-21 18:05:04 UTC (rev 6601)
+++ trunk/teraterm/teraterm/vtterm.c	2017-02-21 18:05:13 UTC (rev 6602)
@@ -132,6 +132,7 @@
 /* JIS -> SJIS conversion flag */
 static BOOL ConvJIS;
 static WORD Kanji;
+static BOOL Fallbacked;
 
 // variables for status line mode
 static int StatusX=0;
@@ -342,6 +343,7 @@
   EUCsupIn = FALSE;
   SSflag = FALSE;
   ConvJIS = FALSE;
+  Fallbacked = FALSE;
 
   cv.Language = ts.Language;
   cv.CRSend = ts.CRSend;
@@ -512,6 +514,8 @@
 		MoveCursor(CursorLeftM, CursorY);
 	else if (CursorX < CursorLeftM)
 		MoveCursor(0, CursorY);
+
+	Fallbacked = FALSE;
 }
 
 void LineFeed(BYTE b, BOOL logFlag)
@@ -537,6 +541,8 @@
 #endif /* NO_COPYLINE_FIX */
 
 	if (LFMode) CarriageReturn(logFlag);
+
+	Fallbacked = FALSE;
 }
 
 void Tab()
@@ -1801,6 +1807,7 @@
 		else
 			MoveCursor(CursorX,Param[1]-1);
 	}
+	Fallbacked = FALSE;
 }
 
 void CSMoveToXY()		// CUP / HVP
@@ -1831,6 +1838,7 @@
 	}
 
 	MoveCursor(NewX, NewY);
+	Fallbacked = FALSE;
 }
 
 void CSDeleteTabStop()
@@ -4923,6 +4931,7 @@
 
 	if (ts.KanjiCode==IdSJIS || ts.KanjiCode==IdUTF8 || ts.KanjiCode==IdUTF8m) {
 		if ((0x80<b) && (b<0xa0) || (0xdf<b) && (b<0xfd)) {
+			Fallbacked = TRUE;
 			return TRUE; // SJIS kanji
 		}
 		if ((0xa1<=b) && (b<=0xdf)) {
@@ -5316,6 +5325,11 @@
 
 	locptr = setlocale(LC_ALL, ts.Locale);
 
+	if (Fallbacked) {
+		ParseFirstJP(b);
+		return;
+	}
+
 	if ((b & 0x80) != 0x80 || ((b & 0xe0) == 0x80 && count == 0)) {
 		// 1\x83o\x83C\x83g\x96ڂ\xA8\x82\xE6\x82\xD12\x83o\x83C\x83g\x96ڂ\xAAASCII\x82̏ꍇ\x82́A\x82\xB7\x82ׂ\xC4ASCII\x8Fo\x97͂Ƃ\xB7\x82\xE9\x81B
 		// 1\x83o\x83C\x83g\x96ڂ\xAAC1\x90\xA7\x8C䕶\x8E\x9A(0x80-0x9f)\x82̏ꍇ\x82\xE0\x93\xAF\x97l\x81B



Ttssh2-commit メーリングリストの案内