svnno****@sourc*****
svnno****@sourc*****
2009年 10月 10日 (土) 18:42:57 JST
Revision: 3642 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=3642 Author: doda Date: 2009-10-10 18:42:57 +0900 (Sat, 10 Oct 2009) Log Message: ----------- URLå±æ§è²ãç¡å¹ã®å ´åã¯ãURLã«ä¸ç·å±æ§ãä»ããªãããã«ããã # ä¸ç·ã®æç¡ãé¸æããè¨å®ãå¥ã«ä½ã£ãæ¹ãããã®ãã Modified Paths: -------------- trunk/teraterm/teraterm/buffer.c trunk/teraterm/teraterm/vtdisp.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/buffer.c =================================================================== --- trunk/teraterm/teraterm/buffer.c 2009-10-09 15:46:10 UTC (rev 3641) +++ trunk/teraterm/teraterm/buffer.c 2009-10-10 09:42:57 UTC (rev 3642) @@ -1380,7 +1380,7 @@ if (x == 0) { if (AttrLine > AttrBuff && (AttrLine[x-1] & AttrURL)) { if (!(ch & 0x80 || url_char[ch]==0)) { // ©ÂURL\¬¶Èç - AttrLine[x] |= (AttrURL | AttrUnder); + AttrLine[x] |= AttrURL; } } return; @@ -1389,7 +1389,7 @@ if ((x-1>=0) && (AttrLine[x-1] & AttrURL) && !(ch & 0x80 || url_char[ch]==0)) { // !((CodeLine[x] <= ' ') && !(AttrLine[x] & AttrKanji))) { - AttrLine[x] |= (AttrURL | AttrUnder); + AttrLine[x] |= AttrURL; return; } @@ -1403,7 +1403,7 @@ len = strlen(*p) - 1; if ((x-len>=0) && !strncmp(&CodeLine[x-len], *p, len)) { for (i = 0; i <= len; i++) { - AttrLine[x-i] |= (AttrURL | AttrUnder); + AttrLine[x-i] |= AttrURL; } break; } Modified: trunk/teraterm/teraterm/vtdisp.c =================================================================== --- trunk/teraterm/teraterm/vtdisp.c 2009-10-09 15:46:10 UTC (rev 3641) +++ trunk/teraterm/teraterm/vtdisp.c 2009-10-10 09:42:57 UTC (rev 3642) @@ -2424,6 +2424,13 @@ VTDC = NULL; } +#define isURLColored(x) ((ts.ColorFlag & CF_URLCOLOR) && ((x).Attr & AttrURL)) +#define isBoldColored(x) ((ts.ColorFlag & CF_BOLDCOLOR) && ((x).Attr & AttrBold)) +#define isBlinkColored(x) ((ts.ColorFlag & CF_BLINKCOLOR) && ((x).Attr & AttrBlink)) +#define isReverseColored(x) ((ts.ColorFlag & CF_REVERSECOLOR) && ((x).Attr & AttrReverse)) +#define isForeColored(x) ((ts.ColorFlag & CF_ANSICOLOR) && ((x).Attr2 & Attr2Fore)) +#define isBackColored(x) ((ts.ColorFlag & CF_ANSICOLOR) && ((x).Attr2 & Attr2Back)) + void DispSetupDC(TCharAttr Attr, BOOL Reverse) // Setup device context // Attr: character attributes @@ -2440,10 +2447,10 @@ DCAttr = Attr; DCReverse = Reverse; - SelectObject(VTDC, VTFont[Attr.Attr & AttrFontMask]); + SelectObject(VTDC, VTFont[(Attr.Attr & AttrFontMask) | (isURLColored(Attr)?AttrUnder:0)]); if ((ts.ColorFlag & CF_FULLCOLOR) == 0) { - if ((ts.ColorFlag & CF_BLINKCOLOR) && (Attr.Attr & AttrBlink)) { + if (isBlinkColored(Attr)) { #ifdef ALPHABLEND_TYPE2 // AKASI TextColor = BGVTBlinkColor[0]; BackColor = BGVTBlinkColor[1]; @@ -2452,7 +2459,7 @@ BackColor = ts.VTBlinkColor[1]; #endif } - else if ((ts.ColorFlag & CF_BOLDCOLOR) && (Attr.Attr & AttrBold)) { + else if (isBoldColored(Attr)) { #ifdef ALPHABLEND_TYPE2 // AKASI TextColor = BGVTBoldColor[0]; BackColor = BGVTBoldColor[1]; @@ -2462,7 +2469,7 @@ #endif } /* begin - ishizaki */ - else if ((ts.ColorFlag & CF_URLCOLOR) && (Attr.Attr & AttrURL)) { + else if (isURLColored(Attr)) { #ifdef ALPHABLEND_TYPE2 // AKASI TextColor = BGURLColor[0]; BackColor = BGURLColor[1]; @@ -2473,7 +2480,7 @@ } /* end - ishizaki */ else { - if ((ts.ColorFlag & CF_ANSICOLOR) && (Attr.Attr2 & Attr2Fore)) { + if (isForeColored(Attr)) { TextColor = ANSIColor[Attr.Fore]; } else { @@ -2485,7 +2492,7 @@ NoReverseColor = 1; } - if ((ts.ColorFlag & CF_ANSICOLOR) && (Attr.Attr2 & Attr2Back)) { + if (isBackColored(Attr)) { BackColor = ANSIColor[Attr.Back]; } else { @@ -2501,7 +2508,7 @@ } } else { // full color - if ((ts.ColorFlag & CF_ANSICOLOR) && (Attr.Attr2 & Attr2Fore)) { + if (isForeColored(Attr)) { if (Attr.Fore<8 && (ts.ColorFlag&CF_PCBOLD16)) { if (((Attr.Attr&AttrBold)!=0) == (Attr.Fore!=0)) { TextColor = ANSIColor[Attr.Fore]; @@ -2517,27 +2524,27 @@ TextColor = ANSIColor[Attr.Fore]; } } - else if ((ts.ColorFlag & CF_BLINKCOLOR) && (Attr.Attr & AttrBlink)) + else if (isBlinkColored(Attr)) #ifdef ALPHABLEND_TYPE2 // AKASI TextColor = BGVTBlinkColor[0]; - else if ((ts.ColorFlag & CF_BOLDCOLOR) && (Attr.Attr & AttrBold)) + else if (isBoldColored(Attr)) TextColor = BGVTBoldColor[0]; - else if ((ts.ColorFlag & CF_URLCOLOR) && (Attr.Attr & AttrURL)) + else if (isURLColored(Attr)) TextColor = BGURLColor[0]; else { TextColor = BGVTColor[0]; #else TextColor = ts.VTBlinkColor[0]; - else if ((ts.ColorFlag & CF_BOLDCOLOR) && (Attr.Attr & AttrBold)) + else if (isBoldColored(Attr)) TextColor = ts.VTBoldColor[0]; - else if ((ts.ColorFlag & CF_URLCOLOR) && (Attr.Attr & AttrURL)) + else if (isURLColored(Attr)) TextColor = ts.URLColor[0]; else { TextColor = ts.VTColor[0]; #endif NoReverseColor = 1; } - if ((ts.ColorFlag & CF_ANSICOLOR) && (Attr.Attr2 & Attr2Back)) { + if (isBackColored(Attr)) { if (Attr.Back<8 && (ts.ColorFlag&CF_PCBOLD16)) { if (((Attr.Attr&AttrBlink)!=0) == (Attr.Back!=0)) { BackColor = ANSIColor[Attr.Back]; @@ -2553,20 +2560,20 @@ BackColor = ANSIColor[Attr.Back]; } } - else if ((ts.ColorFlag & CF_BLINKCOLOR) && (Attr.Attr & AttrBlink)) + else if (isBlinkColored(Attr)) #ifdef ALPHABLEND_TYPE2 // AKASI BackColor = BGVTBlinkColor[1]; - else if ((ts.ColorFlag & CF_BOLDCOLOR) && (Attr.Attr & AttrBold)) + else if (isBoldColored(Attr)) BackColor = BGVTBoldColor[1]; - else if ((ts.ColorFlag & CF_URLCOLOR) && (Attr.Attr & AttrURL)) + else if (isURLColored(Attr)) BackColor = BGURLColor[1]; else { BackColor = BGVTColor[1]; #else BackColor = ts.VTBlinkColor[1]; - else if ((ts.ColorFlag & CF_BOLDCOLOR) && (Attr.Attr & AttrBold)) + else if (isBoldkColored(Attr)) BackColor = ts.VTBoldColor[1]; - else if ((ts.ColorFlag & CF_URLCOLOR) && (Attr.Attr & AttrURL)) + else if (isURLColored(Attr)) BackColor = ts.URLColor[1]; else { BackColor = ts.VTColor[1];