Package: xterm Version: 4.3.0.dfsg.1-10 Severity: wishlist Tags: patch
I'd like an option for xterm to use a underline cursor instead of the block. The attached patch is included as proof-of-concept and is not intended for actual use. -Mar. -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.11 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages xterm depends on: ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an ii libexpat1 1.95.8-1 XML parsing C library - runtime li ii libfontconfig1 2.2.3-4 generic font configuration library ii libfreetype6 2.1.7-2.3 FreeType 2 font engine, shared lib ii libice6 4.3.0.dfsg.1-10 Inter-Client Exchange library ii libncurses5 5.4-4 Shared libraries for terminal hand ii libsm6 4.3.0.dfsg.1-10 X Window System Session Management ii libxaw7 4.3.0.dfsg.1-10 X Athena widget set library ii libxext6 4.3.0.dfsg.1-10 X Window System miscellaneous exte ii libxft2 2.1.2-6 FreeType-based font drawing librar ii libxmu6 4.3.0.dfsg.1-10 X Window System miscellaneous util ii libxpm4 4.3.0.dfsg.1-10 X pixmap library ii libxrender1 0.8.3-7 X Rendering Extension client libra ii libxt6 4.3.0.dfsg.1-10 X Toolkit Intrinsics ii xlibs 4.3.0.dfsg.1-10 X Keyboard Extension (XKB) configu ii xlibs-data 4.3.0.dfsg.1-10 X Window System client data -- no debconf information
--- xc/programs/xterm/charproc.c.orig 2005-03-13 22:48:51.000000000 -0500 +++ xc/programs/xterm/charproc.c 2005-03-13 22:51:46.000000000 -0500 @@ -6241,7 +6241,7 @@ && chi == 0 #endif ) { - clo = ' '; + clo = ' '; } /* @@ -6253,7 +6253,7 @@ #if OPT_WIDE_CHARS && chi == 0 #endif - && clo == ' ') { + && clo == ' ') { flags &= ~TERM_COLOR_FLAGS; } #endif @@ -6346,8 +6346,18 @@ screen->cursor_GC = set_at; TRACE(("ShowCursor calling drawXtermText cur(%d,%d)\n", screen->cur_row, screen->cur_col)); + + /*MAR*/ + setGC(NormalGC(screen)); + flags ^= UNDERLINE; + if (flags & BOLDATTR(screen)) { + setGC(NormalBoldGC(screen)); + } + XSetForeground(screen->display, currentGC, fg_pix); + XSetBackground(screen->display, currentGC, bg_pix); + /*MAR*/ - drawXtermText(screen, flags & DRAWX_MASK, currentGC, + drawXtermText(screen, flags & DRAWX_MASK, currentGC, x = CurCursorX(screen, screen->cur_row, cursor_col), y = CursorY(screen, screen->cur_row), curXtermChrSet(screen->cur_row), @@ -6464,7 +6474,7 @@ && chi == 0 #endif ) { - clo = ' '; + clo = ' '; } TRACE(("HideCursor calling drawXtermText cur(%d,%d)\n",