diff options
author | C. McEnroe | 2021-02-27 16:28:21 -0500 |
---|---|---|
committer | C. McEnroe | 2021-02-27 16:28:21 -0500 |
commit | f4e8f055fbd0c0237847935ae87dd0a582133203 (patch) | |
tree | ca6ff52b9351e743585a6c78727272e1349a189c | |
parent | 06fb02549646d26eea438361ebc0b4f0893cf01f (diff) |
Add workaround for lack of A_ITALIC in old ncurses
A_BLINK has probably always existed, but there's no good reason to ever use it, so make it do italics instead. Normally all attributes are set by a single set_attributes string if it's set, so clear it to force ncurses to use the reassigned enter_blink_mode string. If the terminal has no enter_italics_mode string, then nothing will happen. This makes setting multiple attributes a bit less efficient, but I don't think it's likely to make much of a difference since using multiple attributes at once is so uncommon.
-rw-r--r-- | ui.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ui.c b/ui.c index 3c6c4ed..d18ea74 100644 --- a/ui.c +++ b/ui.c @@ -53,10 +53,6 @@ #undef lines #undef tab -#ifndef A_ITALIC -#define A_ITALIC A_NORMAL -#endif - enum { StatusLines = 1, MarkerLines = 1, @@ -241,6 +237,13 @@ void uiInitEarly(void) { colorInit(); atexit(errExit); +#ifndef A_ITALIC +#define A_ITALIC A_BLINK + // Force ncurses to use individual enter_attr_mode strings: + set_attributes = NULL; + enter_blink_mode = enter_italics_mode; +#endif + if (!to_status_line && !strncmp(termname(), "xterm", 5)) { to_status_line = "\33]2;"; from_status_line = "\7"; |