tty blink & dim attributes
Enable blink and dim for the TERMLIB + !NO_TERMS configuration of the tty interface. Blink now works the same as in the curses interface for status highlights. The terminal emulator I'm using has an escape sequence for dim but it evidently doesn't do anything (same no effect as with curses), so that isn't adequately tested.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.299 $ $NHDT-Date: 1554580624 2019/04/06 19:57:04 $
|
||||
$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.300 $ $NHDT-Date: 1554841009 2019/04/09 20:16:49 $
|
||||
|
||||
This fixes36.2 file is here to capture information about updates in the 3.6.x
|
||||
lineage following the release of 3.6.1 in April 2018. Please note, however,
|
||||
@@ -574,6 +574,7 @@ tty: if eight_bit_tty option is set and current symbol set specifies
|
||||
DECgraphics handling, render line-drawing characters (in nethack's
|
||||
scheme, the 4th quarter of ASCII--mostly lower case letters--with
|
||||
8th-bit forced on) instead of treating that subset as 8-bit characters
|
||||
tty: enable blink attribute for status highlights (TERMLIB + !NO_TERMS config)
|
||||
unix: Makefile.src and Makefile.utl inadvertently relied on a 'gnu make'
|
||||
extension when using $(VERBOSEMAKE) to reduce build-time feedback;
|
||||
replace with $(QUIETCC) which operates the same but defaults to
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 termcap.c $NHDT-Date: 1553858473 2019/03/29 11:21:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.29 $ */
|
||||
/* NetHack 3.6 termcap.c $NHDT-Date: 1554841008 2019/04/09 20:16:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.30 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Pasi Kallinen, 2018. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -36,18 +36,10 @@ struct tc_lcl_data tc_lcl_data = { 0, 0, 0, 0, 0, 0, 0, FALSE };
|
||||
|
||||
STATIC_VAR char *HO, *CL, *CE, *UP, *XD, *BC, *SO, *SE, *TI, *TE;
|
||||
STATIC_VAR char *VS, *VE;
|
||||
STATIC_VAR char *ME;
|
||||
STATIC_VAR char *MR;
|
||||
#if 0
|
||||
STATIC_VAR char *MB, *MH;
|
||||
STATIC_VAR char *MD; /* may already be in use below */
|
||||
#endif
|
||||
STATIC_VAR char *ME, *MR, *MB, *MH, *MD;
|
||||
|
||||
#ifdef TERMLIB
|
||||
boolean dynamic_HIHE = FALSE;
|
||||
#ifdef TEXTCOLOR
|
||||
STATIC_VAR char *MD;
|
||||
#endif
|
||||
STATIC_VAR int SG;
|
||||
STATIC_OVL char PC = '\0';
|
||||
STATIC_VAR char tbuf[512];
|
||||
@@ -177,7 +169,7 @@ int *wid, *hgt;
|
||||
Sprintf(hilites[i], "\033[0;3%dm", i);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif /* TEXTCOLOR */
|
||||
*wid = CO;
|
||||
*hgt = LI;
|
||||
CL = "\033[2J"; /* last thing set */
|
||||
@@ -284,14 +276,12 @@ int *wid, *hgt;
|
||||
KS = Tgetstr("ks"); /* keypad start (special mode) */
|
||||
KE = Tgetstr("ke"); /* keypad end (ordinary mode [ie, digits]) */
|
||||
MR = Tgetstr("mr"); /* reverse */
|
||||
#if 0
|
||||
MB = Tgetstr("mb"); /* blink */
|
||||
MD = Tgetstr("md"); /* boldface */
|
||||
MH = Tgetstr("mh"); /* dim */
|
||||
#endif
|
||||
ME = Tgetstr("me"); /* turn off all attributes */
|
||||
if (!ME || (SE == nullstr))
|
||||
ME = SE; /* default to SE value */
|
||||
if (!ME)
|
||||
ME = SE ? SE : nullstr; /* default to SE value */
|
||||
|
||||
/* Get rid of padding numbers for nh_HI and nh_HE. Hope they
|
||||
* aren't really needed!!! nh_HI and nh_HE are outputted to the
|
||||
@@ -309,9 +299,6 @@ int *wid, *hgt;
|
||||
AS = Tgetstr("as");
|
||||
AE = Tgetstr("ae");
|
||||
nh_CD = Tgetstr("cd");
|
||||
#ifdef TEXTCOLOR
|
||||
MD = Tgetstr("md");
|
||||
#endif
|
||||
#ifdef TEXTCOLOR
|
||||
#if defined(TOS) && defined(__GNUC__)
|
||||
if (!strcmp(term, "builtin") || !strcmp(term, "tw52")
|
||||
@@ -849,8 +836,7 @@ cl_eos() /* free after Robert Viduya */
|
||||
#undef delay_output
|
||||
#undef TRUE
|
||||
#undef FALSE
|
||||
#define m_move curses_m_move /* Some curses.h decl m_move(), not used here \
|
||||
*/
|
||||
#define m_move curses_m_move /* Some curses.h decl m_move(), not used here */
|
||||
|
||||
#include <curses.h>
|
||||
|
||||
@@ -932,6 +918,7 @@ init_hilite()
|
||||
c = 6;
|
||||
while (c--) {
|
||||
char *work;
|
||||
|
||||
scratch = tparm(setf, ti_map[c].ti_color);
|
||||
work = (char *) alloc(strlen(scratch) + md_len + 1);
|
||||
Strcpy(work, MD);
|
||||
@@ -1171,19 +1158,30 @@ s_atr2str(n)
|
||||
int n;
|
||||
{
|
||||
switch (n) {
|
||||
case ATR_BLINK:
|
||||
case ATR_ULINE:
|
||||
if (nh_US)
|
||||
return nh_US;
|
||||
if (n == ATR_BLINK) {
|
||||
if (MB && *MB)
|
||||
return MB;
|
||||
} else { /* Underline */
|
||||
if (nh_US && *nh_US)
|
||||
return nh_US;
|
||||
}
|
||||
/*FALLTHRU*/
|
||||
case ATR_BOLD:
|
||||
case ATR_BLINK:
|
||||
#if defined(TERMLIB) && defined(TEXTCOLOR)
|
||||
if (MD)
|
||||
if (MD && *MD)
|
||||
return MD;
|
||||
#endif
|
||||
return nh_HI;
|
||||
if (nh_HI && *nh_HI)
|
||||
return nh_HI;
|
||||
break;
|
||||
case ATR_INVERSE:
|
||||
return MR;
|
||||
if (MR && *MR)
|
||||
return MR;
|
||||
break;
|
||||
case ATR_DIM:
|
||||
if (MH && *MH)
|
||||
return MH;
|
||||
break;
|
||||
}
|
||||
return nulstr;
|
||||
}
|
||||
@@ -1194,14 +1192,19 @@ int n;
|
||||
{
|
||||
switch (n) {
|
||||
case ATR_ULINE:
|
||||
if (nh_UE)
|
||||
if (nh_UE && *nh_UE)
|
||||
return nh_UE;
|
||||
/*FALLTHRU*/
|
||||
case ATR_BOLD:
|
||||
case ATR_BLINK:
|
||||
return nh_HE;
|
||||
if (nh_HE && *nh_HE)
|
||||
return nh_HE;
|
||||
/*FALLTHRU*/
|
||||
case ATR_DIM:
|
||||
case ATR_INVERSE:
|
||||
return ME;
|
||||
if (ME && *ME)
|
||||
return ME;
|
||||
break;
|
||||
}
|
||||
return nulstr;
|
||||
}
|
||||
@@ -1213,18 +1216,19 @@ term_attr_fixup(msk)
|
||||
int msk;
|
||||
{
|
||||
/* underline is converted to bold if its start sequence isn't available */
|
||||
if ((msk & (1 << ATR_ULINE)) && !nh_US) {
|
||||
if ((msk & (1 << ATR_ULINE)) && (!nh_US || !*nh_US)) {
|
||||
msk |= (1 << ATR_BOLD);
|
||||
msk &= ~(1 << ATR_ULINE);
|
||||
}
|
||||
/* blink is converted to bold unconditionally [why?] */
|
||||
if (msk & (1 << ATR_BLINK)) {
|
||||
/* blink used to be converted to bold unconditionally; now depends on MB */
|
||||
if (msk & (1 << ATR_BLINK) && (!MB || !*MB)) {
|
||||
msk |= (1 << ATR_BOLD);
|
||||
msk &= ~(1 << ATR_BLINK);
|
||||
}
|
||||
/* dim is ignored */
|
||||
if (msk & (1 << ATR_DIM))
|
||||
/* dim is ignored if its start sequence isn't available */
|
||||
if (msk & (1 << ATR_DIM) && (!MH || !*MH)) {
|
||||
msk &= ~(1 << ATR_DIM);
|
||||
}
|
||||
return msk;
|
||||
}
|
||||
|
||||
@@ -1235,8 +1239,8 @@ int attr;
|
||||
if (attr) {
|
||||
const char *astr = s_atr2str(attr);
|
||||
|
||||
if (*astr)
|
||||
xputs(s_atr2str(attr));
|
||||
if (astr && *astr)
|
||||
xputs(astr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1247,8 +1251,8 @@ int attr;
|
||||
if (attr) {
|
||||
const char *astr = e_atr2str(attr);
|
||||
|
||||
if (*astr)
|
||||
xputs(e_atr2str(attr));
|
||||
if (astr && *astr)
|
||||
xputs(astr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1317,6 +1321,6 @@ int color;
|
||||
|
||||
#endif /* TEXTCOLOR */
|
||||
|
||||
#endif /* TTY_GRAPHICS */
|
||||
#endif /* TTY_GRAPHICS && !NO_TERMS */
|
||||
|
||||
/*termcap.c*/
|
||||
|
||||
Reference in New Issue
Block a user