X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/955923b38b1f08f6cb25a706cea2af5966339187..f5356d018505963a72d1a5bb505c69b2cf32792b:/st.c?ds=sidebyside diff --git a/st.c b/st.c index 61024c8..1162700 100644 --- a/st.c +++ b/st.c @@ -2401,14 +2401,20 @@ tcontrolcode(uchar ascii) { case 0177: /* DEL (IGNORED) */ return; case 0x84: /* TODO: IND */ - case 0x85: /* TODO: NEL */ + break; + case 0x85: /* NEL -- Next line */ + tnewline(1); /* always go to first col */ + break; case 0x88: /* TODO: HTS */ case 0x8d: /* TODO: RI */ case 0x8e: /* TODO: SS2 */ case 0x8f: /* TODO: SS3 */ case 0x90: /* TODO: DCS */ case 0x98: /* TODO: SOS */ - case 0x9a: /* TODO: DECID */ + break; + case 0x9a: /* DECID -- Identify Terminal */ + ttywrite(VT102ID, sizeof(VT102ID) - 1); + break; case 0x9b: /* TODO: CSI */ case 0x9c: /* TODO: ST */ case 0x9d: /* TODO: OSC */ @@ -3179,7 +3185,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { * change basic system colors [0-7] * to bright system colors [8-15] */ - if(BETWEEN(base.fg, 0, 7)) + if(BETWEEN(base.fg, 0, 7) && !(base.mode & ATTR_FAINT)) fg = &dc.col[base.fg + 8]; if(base.mode & ATTR_ITALIC) { @@ -3223,6 +3229,14 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { bg = temp; } + if(base.mode & ATTR_FAINT && !(base.mode & ATTR_BOLD)) { + colfg.red = fg->color.red / 2; + colfg.green = fg->color.green / 2; + colfg.blue = fg->color.blue / 2; + XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colfg, &revfg); + fg = &revfg; + } + if(base.mode & ATTR_BLINK && term.mode & MODE_BLINK) fg = bg;