[ttssh2-commit] [10231] UseTextColor=on 時の動作を変更

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 9月 3日 (土) 00:12:02 JST


Revision: 10231
          https://osdn.net/projects/ttssh2/scm/svn/commits/10231
Author:   zmatsuo
Date:     2022-09-03 00:12:02 +0900 (Sat, 03 Sep 2022)
Log Message:
-----------
UseTextColor=on 時の動作を変更

- 描画時に参照する色を変更するようにした
- 従来はテーブルの中身を変更していた

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

-------------- next part --------------
Modified: trunk/teraterm/teraterm/vtdisp.c
===================================================================
--- trunk/teraterm/teraterm/vtdisp.c	2022-09-02 15:11:51 UTC (rev 10230)
+++ trunk/teraterm/teraterm/vtdisp.c	2022-09-02 15:12:02 UTC (rev 10231)
@@ -1743,11 +1743,6 @@
 
   for (i = IdBack ; i <= IdFore+8 ; i++)
     ANSIColor[i] = ts.ANSIColor[i];
-
-  if ((ts.ColorFlag & CF_USETEXTCOLOR)!=0) {
-    ANSIColor[IdBack ] = BGVTColor[1]; // use background color for "Black"
-    ANSIColor[IdFore ] = BGVTColor[0]; // use text color for "white"
-  }
 }
 
 void InitColorTable(void)
@@ -2490,19 +2485,6 @@
   /* Change caret shape */
   ChangeCaret();
 
-  if ((ts.ColorFlag & CF_USETEXTCOLOR)==0)
-  {
-    ANSIColor[IdFore ]   = ts.ANSIColor[IdFore ];
-    ANSIColor[IdBack ]   = ts.ANSIColor[IdBack ];
-  }
-  else { // use text (background) color for "white (black)"
-    ANSIColor[IdFore ]   = ts.VTColor[0];
-    ANSIColor[IdBack ]   = ts.VTColor[1];
-
-	ANSIColor[IdFore ]   = BGVTColor[0];
-	ANSIColor[IdBack ]   = BGVTColor[1];
-  }
-
   /* change background color */
   DispChangeBackground();
 }
@@ -2760,6 +2742,26 @@
 		}
 	}
 
+	// UseTextColor=on \x82̂Ƃ\xAB\x82̏\x88\x97\x9D
+	//	\x94w\x8Ci\x90F(Back)\x82\xF0\x8Dl\x97\xB6\x82\xB9\x82\xB8\x82ɕ\xB6\x8E\x9A\x90F(Fore)\x82\xBE\x82\xAF\x82\xF0\x95ύX\x82\xB7\x82\xE9\x83A\x83v\x83\x8A\x82\xF0\x8Eg\x82\xC1\x82Ă\xA2\x82\xC4
+	//	\x95\xB6\x8E\x9A\x82\xAA\x8C\xA9\x82\xA6\x82Ȃ\xA2\x8F\xF3\x91ԂɂȂ\xC1\x82\xBD\x82\xE7\x92ʏ핶\x8E\x9A\x90F\x82\xA9\x94\xBD\x93]\x91\xAE\x90\xAB\x95\xB6\x8E\x9A\x90F\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9
+	if ((ts.ColorFlag & CF_USETEXTCOLOR) !=0) {
+		if ((Attr2Flag & Attr2Fore) && (Attr2Flag & Attr2Back)) {
+			const int is_target_color = (Attr.Fore == IdFore || Attr.Fore == IdBack || Attr.Fore == 15);
+//			const int is_target_color = 1;
+			if (Attr.Fore == Attr.Back && is_target_color) {
+				if (!reverse) {
+					TextColor = BGVTColor[0];
+					BackColor = BGVTColor[1];
+				}
+				else {
+					TextColor = BGVTReverseColor[0];
+					BackColor = BGVTReverseColor[1];
+				}
+			}
+		}
+	}
+
 	// \x95`\x89掞(DrawStrW())\x82ɎQ\x8FƂ\xB7\x82\xE9
 	if (reverse) {
 		BGReverseText = TRUE;
@@ -3546,15 +3548,9 @@
 	switch (num) {
 	case CS_VT_NORMALFG:
 		BGVTColor[0] = color;
-		if ((ts.ColorFlag & CF_USETEXTCOLOR)!=0) {
-			ANSIColor[IdFore ] = BGVTColor[0]; // use text color for "white"
-		}
 		break;
 	case CS_VT_NORMALBG:
 		BGVTColor[1] = color;
-		if ((ts.ColorFlag & CF_USETEXTCOLOR)!=0) {
-			ANSIColor[IdBack ] = BGVTColor[1]; // use background color for "Black"
-		}
 		break;
 	case CS_VT_BOLDFG:    BGVTBoldColor[0] = color; break;
 	case CS_VT_BOLDBG:    BGVTBoldColor[1] = color; break;
@@ -3598,15 +3594,9 @@
 	switch(num) {
 	case CS_VT_NORMALFG:
 		BGVTColor[0] = ts.VTColor[0];
-		if ((ts.ColorFlag & CF_USETEXTCOLOR)!=0) {
-			ANSIColor[IdFore ] = ts.VTColor[0]; // use text color for "white"
-		}
 		break;
 	case CS_VT_NORMALBG:
 		BGVTColor[1] = ts.VTColor[1];
-		if ((ts.ColorFlag & CF_USETEXTCOLOR)!=0) {
-			ANSIColor[IdBack ] = ts.VTColor[1]; // use background color for "Black"
-		}
 		break;
 	case CS_VT_BOLDFG:    BGVTBoldColor[0] = ts.VTBoldColor[0]; break;
 	case CS_VT_BOLDBG:    BGVTBoldColor[1] = ts.VTBoldColor[1]; break;
@@ -3651,25 +3641,7 @@
 		DispSetNearestColors(0, 255, NULL);
 		break;
 	default:
-		if (num == IdBack) {
-			if (ts.ColorFlag & CF_USETEXTCOLOR) {
-				ANSIColor[IdBack] = BGVTColor[1]; // use background color for "Black"
-			}
-			else {
-				ANSIColor[IdBack] = ts.ANSIColor[IdBack];
-			}
-			DispSetNearestColors(num, num, NULL);
-		}
-		else if (num == IdFore) {
-			if (ts.ColorFlag & CF_USETEXTCOLOR) {
-				ANSIColor[IdFore] = BGVTColor[0]; // use text color for "white"
-			}
-			else {
-				ANSIColor[IdFore] = ts.ANSIColor[IdFore];
-			}
-			DispSetNearestColors(num, num, NULL);
-		}
-		else if (num <= 15) {
+		if (num <= 15) {
 			ANSIColor[num] = ts.ANSIColor[num];
 			DispSetNearestColors(num, num, NULL);
 		}


ttssh2-commit メーリングリストの案内
Back to archive index