Merge branch 'master' into win32-x64-working
* master: (354 commits) Add missing protos a warning bout lc_error Add S_poisoncloud to Guidebooks ... Conflicts: .gitattributes dat/.gitattributes doc/.gitattributes doc/Guidebook.mn include/config.h include/decl.h include/extern.h include/flag.h include/hack.h include/ntconf.h include/sys.h include/wceconf.h src/apply.c src/attrib.c src/bones.c src/botl.c src/dbridge.c src/dig.c src/do.c src/do_name.c src/dog.c src/dungeon.c src/eat.c src/end.c src/files.c src/fountain.c src/hack.c src/invent.c src/light.c src/makemon.c src/mhitu.c src/mklev.c src/mkmaze.c src/mkobj.c src/mkroom.c src/mon.c src/objnam.c src/options.c src/pager.c src/pickup.c src/potion.c src/pray.c src/questpgr.c src/read.c src/restore.c src/rnd.c src/role.c src/rumors.c src/save.c src/shk.c src/sit.c src/sp_lev.c src/sys.c src/teleport.c src/trap.c src/u_init.c src/uhitm.c src/wield.c src/worn.c src/zap.c sys/amiga/.gitattributes sys/mac/.gitattributes sys/msdos/.gitattributes sys/msdos/pctiles.c sys/msdos/vidvga.c sys/os2/.gitattributes sys/share/.gitattributes sys/share/pcmain.c sys/unix/.gitattributes sys/unix/hints/.gitattributes sys/unix/sysconf sys/unix/unixmain.c sys/vms/.gitattributes sys/wince/.gitattributes sys/wince/mhstatus.c sys/winnt/.gitattributes sys/winnt/Makefile.msc sys/winnt/nhsetup.bat util/lev_comp.l util/makedefs.c win/X11/winmenu.c win/X11/winstat.c win/gnome/gnstatus.c win/share/tilemap.c win/tty/termcap.c win/tty/topl.c win/tty/wintty.c
This commit is contained in:
@@ -60,9 +60,19 @@ getlin_hook_proc hook;
|
||||
Strcat(strcat(strcpy(toplines, query), " "), obufp);
|
||||
c = pgetchar();
|
||||
if (c == '\033' || c == EOF) {
|
||||
obufp[0] = '\033';
|
||||
obufp[1] = '\0';
|
||||
break;
|
||||
if (c == '\033' && obufp[0] != '\0') {
|
||||
obufp[0] = '\0';
|
||||
bufp = obufp;
|
||||
tty_clear_nhwindow(WIN_MESSAGE);
|
||||
cw->maxcol = cw->maxrow;
|
||||
addtopl(query);
|
||||
addtopl(" ");
|
||||
addtopl(obufp);
|
||||
} else {
|
||||
obufp[0] = '\033';
|
||||
obufp[1] = '\0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ttyDisplay->intr) {
|
||||
ttyDisplay->intr--;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* NetHack 3.5 termcap.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 termcap.c $Date: 2009/05/06 10:59:19 $ $Revision: 1.13 $ */
|
||||
/* NetHack 3.5 termcap.c $NHDT-Date: 1427756993 2015/03/30 23:09:53 $ $NHDT-Branch: master $:$NHDT-Revision: 1.15 $ */
|
||||
/* SCCS Id: @(#)termcap.c 3.5 2007/12/12 */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -809,10 +808,9 @@ cl_eos() /* free after Robert Viduya */
|
||||
extern char *tparm();
|
||||
#endif
|
||||
|
||||
# ifdef COLOR_BLACK /* trust include file */
|
||||
#undef COLOR_BLACK
|
||||
# else
|
||||
# ifndef COLOR_BLACK /* trust include file */
|
||||
# ifndef _M_UNIX /* guess BGR */
|
||||
#define COLOR_BLACK 0
|
||||
#define COLOR_BLUE 1
|
||||
#define COLOR_GREEN 2
|
||||
#define COLOR_CYAN 3
|
||||
@@ -821,6 +819,7 @@ extern char *tparm();
|
||||
#define COLOR_YELLOW 6
|
||||
#define COLOR_WHITE 7
|
||||
# else /* guess RGB */
|
||||
#define COLOR_BLACK 0
|
||||
#define COLOR_RED 1
|
||||
#define COLOR_GREEN 2
|
||||
#define COLOR_YELLOW 3
|
||||
@@ -830,42 +829,126 @@ extern char *tparm();
|
||||
#define COLOR_WHITE 7
|
||||
# endif
|
||||
# endif
|
||||
#define COLOR_BLACK COLOR_BLUE
|
||||
|
||||
const int ti_map[8] = {
|
||||
COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW,
|
||||
COLOR_BLUE, COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE };
|
||||
/* Mapping data for the six terminfo colors that resolve to pairs of nethack
|
||||
* colors. Black and white are handled specially.
|
||||
*/
|
||||
const struct {int ti_color, nh_color, nh_bright_color;} ti_map[6] =
|
||||
{
|
||||
{COLOR_RED,CLR_RED,CLR_ORANGE},
|
||||
{COLOR_GREEN,CLR_GREEN,CLR_BRIGHT_GREEN},
|
||||
{COLOR_YELLOW,CLR_BROWN,CLR_YELLOW},
|
||||
{COLOR_BLUE,CLR_BLUE,CLR_BRIGHT_BLUE},
|
||||
{COLOR_MAGENTA,CLR_MAGENTA,CLR_BRIGHT_MAGENTA},
|
||||
{COLOR_CYAN,CLR_CYAN,CLR_BRIGHT_CYAN}
|
||||
};
|
||||
|
||||
static char nilstring[] = "";
|
||||
|
||||
static void
|
||||
init_hilite()
|
||||
{
|
||||
register int c;
|
||||
char *setf, *scratch;
|
||||
|
||||
for (c = 0; c < SIZE(hilites); c++)
|
||||
hilites[c] = nh_HI;
|
||||
hilites[CLR_GRAY] = hilites[NO_COLOR] = (char *)0;
|
||||
int md_len;
|
||||
|
||||
if (tgetnum("Co") < 8
|
||||
|| (MD == NULL) || (strlen(MD) == 0)
|
||||
|| ((setf = tgetstr("AF", (char **)0)) == (char *)0
|
||||
&& (setf = tgetstr("Sf", (char **)0)) == (char *)0))
|
||||
{
|
||||
/* Fallback when colors not available
|
||||
* It's arbitrary to collapse all colors except gray
|
||||
* together, but that's what the previous code did.
|
||||
*/
|
||||
hilites[CLR_BLACK] = nh_HI;
|
||||
hilites[CLR_RED] = nh_HI;
|
||||
hilites[CLR_GREEN] = nh_HI;
|
||||
hilites[CLR_BROWN] = nh_HI;
|
||||
hilites[CLR_BLUE] = nh_HI;
|
||||
hilites[CLR_MAGENTA] = nh_HI;
|
||||
hilites[CLR_CYAN] = nh_HI;
|
||||
hilites[CLR_GRAY] = nilstring;
|
||||
hilites[NO_COLOR] = nilstring;
|
||||
hilites[CLR_ORANGE] = nh_HI;
|
||||
hilites[CLR_BRIGHT_GREEN] = nh_HI;
|
||||
hilites[CLR_YELLOW] = nh_HI;
|
||||
hilites[CLR_BRIGHT_BLUE] = nh_HI;
|
||||
hilites[CLR_BRIGHT_MAGENTA] = nh_HI;
|
||||
hilites[CLR_BRIGHT_CYAN] = nh_HI;
|
||||
hilites[CLR_WHITE] = nh_HI;
|
||||
return;
|
||||
|
||||
for (c = 0; c < CLR_MAX / 2; c++) {
|
||||
scratch = tparm(setf, ti_map[c]);
|
||||
if (c != CLR_GRAY) {
|
||||
hilites[c] = (char *) alloc(strlen(scratch) + 1);
|
||||
Strcpy(hilites[c], scratch);
|
||||
}
|
||||
if (c != CLR_BLACK) {
|
||||
hilites[c|BRIGHT] = (char*) alloc(strlen(scratch)+strlen(MD)+1);
|
||||
Strcpy(hilites[c|BRIGHT], MD);
|
||||
Strcat(hilites[c|BRIGHT], scratch);
|
||||
}
|
||||
|
||||
md_len = strlen(MD);
|
||||
|
||||
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);
|
||||
hilites[ti_map[c].nh_bright_color] = work;
|
||||
work += md_len;
|
||||
Strcpy(work,scratch);
|
||||
hilites[ti_map[c].nh_color] = work;
|
||||
}
|
||||
|
||||
scratch = tparm(setf,COLOR_WHITE);
|
||||
hilites[CLR_WHITE] = (char *) alloc(strlen(scratch) + md_len + 1);
|
||||
Strcpy(hilites[CLR_WHITE],MD);
|
||||
Strcat(hilites[CLR_WHITE],scratch);
|
||||
|
||||
hilites[CLR_GRAY] = nilstring;
|
||||
hilites[NO_COLOR] = nilstring;
|
||||
|
||||
if (iflags.wc2_darkgray) {
|
||||
/* On many terminals, esp. those using classic PC CGA/EGA/VGA
|
||||
* textmode, specifying "hilight" and "black" simultaneously
|
||||
* produces a dark shade of gray that is visible against a
|
||||
* black background. We can use it to represent black objects.
|
||||
*/
|
||||
scratch = tparm(setf,COLOR_BLACK);
|
||||
hilites[CLR_BLACK] = (char *) alloc(strlen(scratch) + md_len + 1);
|
||||
Strcpy(hilites[CLR_BLACK],MD);
|
||||
Strcat(hilites[CLR_BLACK],scratch);
|
||||
} else {
|
||||
/* But it's concievable that hilighted black-on-black could
|
||||
* still be invisible on many others. We substitute blue for
|
||||
* black.
|
||||
*/
|
||||
hilites[CLR_BLACK] = hilites[CLR_BLUE];
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
kill_hilite()
|
||||
{
|
||||
/* if colors weren't available, no freeing needed */
|
||||
if (hilites[CLR_BLACK] == nh_HI)
|
||||
return;
|
||||
|
||||
if (hilites[CLR_BLACK] != hilites[CLR_BLUE])
|
||||
free(hilites[CLR_BLACK]);
|
||||
|
||||
/* CLR_BLUE overlaps CLR_BRIGHT_BLUE, do not free */
|
||||
/* CLR_GREEN overlaps CLR_BRIGHT_GREEN, do not free */
|
||||
/* CLR_CYAN overlaps CLR_BRIGHT_CYAN, do not free */
|
||||
/* CLR_RED overlaps CLR_ORANGE, do not free */
|
||||
/* CLR_MAGENTA overlaps CLR_BRIGHT_MAGENTA, do not free */
|
||||
/* CLR_BROWN overlaps CLR_YELLOW, do not free */
|
||||
/* CLR_GRAY is static 'nilstring', do not free */
|
||||
/* NO_COLOR is static 'nilstring', do not free */
|
||||
free(hilites[CLR_BRIGHT_BLUE]);
|
||||
free(hilites[CLR_BRIGHT_GREEN]);
|
||||
free(hilites[CLR_BRIGHT_CYAN]);
|
||||
free(hilites[CLR_YELLOW]);
|
||||
free(hilites[CLR_ORANGE]);
|
||||
free(hilites[CLR_BRIGHT_MAGENTA]);
|
||||
free(hilites[CLR_WHITE]);
|
||||
}
|
||||
|
||||
|
||||
# else /* UNIX && TERMINFO */
|
||||
|
||||
# ifndef TOS
|
||||
@@ -1010,7 +1093,6 @@ init_hilite()
|
||||
# endif
|
||||
# endif /* TOS */
|
||||
}
|
||||
# endif /* UNIX */
|
||||
|
||||
static void
|
||||
kill_hilite()
|
||||
@@ -1028,6 +1110,7 @@ kill_hilite()
|
||||
# endif
|
||||
return;
|
||||
}
|
||||
# endif /* UNIX */
|
||||
#endif /* TEXTCOLOR */
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 topl.c $NHDT-Date: 1425081315 2015/02/27 23:55:15 $ $NHDT-Branch: (no branch, rebasing scshunt-unconditionals) $:$NHDT-Revision: 1.24 $ */
|
||||
/* NetHack 3.5 topl.c $NHDT-Date: 1425081315 2015/02/27 23:55:15 $ $NHDT-Branch: master $:$NHDT-Revision: 1.24 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
|
||||
136
win/tty/wintty.c
136
win/tty/wintty.c
@@ -1,5 +1,4 @@
|
||||
/* NetHack 3.5 wintty.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 wintty.c $Date: 2012/01/22 06:27:09 $ $Revision: 1.66 $ */
|
||||
/* NetHack 3.5 wintty.c $NHDT-Date: 1427667623 2015/03/29 22:20:23 $ $NHDT-Branch: master $:$NHDT-Revision: 1.75 $ */
|
||||
/* Copyright (c) David Cohrs, 1991 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -56,7 +55,7 @@ struct window_procs tty_procs = {
|
||||
#if defined(SELECTSAVED)
|
||||
WC2_SELECTSAVED|
|
||||
#endif
|
||||
0L,
|
||||
WC2_DARKGRAY,
|
||||
tty_init_nhwindows,
|
||||
tty_player_selection,
|
||||
tty_askname,
|
||||
@@ -201,6 +200,7 @@ static const char default_menu_cmds[] = {
|
||||
MENU_SELECT_PAGE,
|
||||
MENU_UNSELECT_PAGE,
|
||||
MENU_INVERT_PAGE,
|
||||
MENU_SEARCH,
|
||||
0 /* null terminator */
|
||||
};
|
||||
|
||||
@@ -1061,7 +1061,7 @@ tty_create_nhwindow(type)
|
||||
#endif
|
||||
newwin->offy = min((int)ttyDisplay->rows-2, ROWNO+1);
|
||||
newwin->rows = newwin->maxrow = 2;
|
||||
newwin->cols = newwin->maxcol = min(ttyDisplay->cols, COLNO);
|
||||
newwin->cols = newwin->maxcol = ttyDisplay->cols;
|
||||
break;
|
||||
case NHW_MAP:
|
||||
/* map window, ROWNO lines long, full width, below message window */
|
||||
@@ -1228,6 +1228,42 @@ tty_clear_nhwindow(window)
|
||||
cw->curx = cw->cury = 0;
|
||||
}
|
||||
|
||||
|
||||
boolean
|
||||
toggle_menu_curr(window, curr, lineno, in_view, counting, count)
|
||||
winid window;
|
||||
tty_menu_item *curr;
|
||||
int lineno;
|
||||
boolean in_view, counting;
|
||||
long count;
|
||||
{
|
||||
if (curr->selected) {
|
||||
if (counting && count > 0) {
|
||||
curr->count = count;
|
||||
if (in_view) set_item_state(window, lineno, curr);
|
||||
return TRUE;
|
||||
} else { /* change state */
|
||||
curr->selected = FALSE;
|
||||
curr->count = -1L;
|
||||
if (in_view) set_item_state(window, lineno, curr);
|
||||
return TRUE;
|
||||
}
|
||||
} else { /* !selected */
|
||||
if (counting && count > 0) {
|
||||
curr->count = count;
|
||||
curr->selected = TRUE;
|
||||
if (in_view) set_item_state(window, lineno, curr);
|
||||
return TRUE;
|
||||
} else if (!counting) {
|
||||
curr->selected = TRUE;
|
||||
if (in_view) set_item_state(window, lineno, curr);
|
||||
return TRUE;
|
||||
}
|
||||
/* do nothing counting&&count==0 */
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
STATIC_OVL void
|
||||
dmore(cw, s)
|
||||
register struct WinDesc *cw;
|
||||
@@ -1354,10 +1390,11 @@ struct WinDesc *cw;
|
||||
{
|
||||
tty_menu_item *page_start, *page_end, *curr;
|
||||
long count;
|
||||
int n, curr_page, page_lines;
|
||||
int n, curr_page, page_lines, resp_len;
|
||||
boolean finished, counting, reset_count;
|
||||
char *cp, *rp, resp[QBUFSZ], gacc[QBUFSZ],
|
||||
*msave, *morestr;
|
||||
*msave, *morestr, really_morc;
|
||||
#define MENU_EXPLICIT_CHOICE 0x7f /* pseudo menu manipulation char */
|
||||
|
||||
curr_page = page_lines = 0;
|
||||
page_start = page_end = 0;
|
||||
@@ -1424,6 +1461,8 @@ struct WinDesc *cw;
|
||||
for (page_lines = 0, curr = page_start;
|
||||
curr != page_end;
|
||||
page_lines++, curr = curr->next) {
|
||||
int color = NO_COLOR, attr = ATR_NONE;
|
||||
boolean menucolr = FALSE;
|
||||
if (curr->selector)
|
||||
*rp++ = curr->selector;
|
||||
|
||||
@@ -1439,6 +1478,11 @@ struct WinDesc *cw;
|
||||
* actually output the character. We're faster doing
|
||||
* this.
|
||||
*/
|
||||
if (iflags.use_menu_color &&
|
||||
(menucolr = get_menu_coloring(curr->str, &color,&attr))) {
|
||||
term_start_attr(attr);
|
||||
if (color != NO_COLOR) term_start_color(color);
|
||||
} else
|
||||
term_start_attr(curr->attr);
|
||||
for (n = 0, cp = curr->str;
|
||||
#ifndef WIN32CON
|
||||
@@ -1456,6 +1500,10 @@ struct WinDesc *cw;
|
||||
(void) putchar('#'); /* count selected */
|
||||
} else
|
||||
(void) putchar(*cp);
|
||||
if (iflags.use_menu_color && menucolr) {
|
||||
if (color != NO_COLOR) term_end_color();
|
||||
term_end_attr(attr);
|
||||
} else
|
||||
term_end_attr(curr->attr);
|
||||
}
|
||||
} else {
|
||||
@@ -1464,6 +1512,8 @@ struct WinDesc *cw;
|
||||
page_lines = 0;
|
||||
}
|
||||
*rp = 0;
|
||||
/* remember how many explicit menu choices there are */
|
||||
resp_len = (int)strlen(resp);
|
||||
|
||||
/* corner window - clear extra lines from last page */
|
||||
if (cw->offx) {
|
||||
@@ -1496,7 +1546,15 @@ struct WinDesc *cw;
|
||||
xwaitforspace(resp);
|
||||
}
|
||||
|
||||
morc = map_menu_cmd(morc);
|
||||
really_morc = morc; /* (only used with MENU_EXPLICIT_CHOICE */
|
||||
if ((rp = index(resp, morc)) != 0 && rp < resp + resp_len)
|
||||
/* explicit menu selection; don't override it if it also
|
||||
happens to match a mapped menu command (such as ':' to
|
||||
look inside a container vs ':' to search) */
|
||||
morc = MENU_EXPLICIT_CHOICE;
|
||||
else
|
||||
morc = map_menu_cmd(morc);
|
||||
|
||||
switch (morc) {
|
||||
case '0':
|
||||
/* special case: '0' is also the default ball class */
|
||||
@@ -1600,6 +1658,36 @@ struct WinDesc *cw;
|
||||
if (cw->how == PICK_ANY)
|
||||
invert_all(window, page_start, page_end, 0);
|
||||
break;
|
||||
case MENU_SEARCH:
|
||||
if (cw->how == PICK_NONE) {
|
||||
tty_nhbell();
|
||||
break;
|
||||
} else {
|
||||
char searchbuf[BUFSZ], tmpbuf[BUFSZ];
|
||||
boolean on_curr_page = FALSE;
|
||||
int lineno = 0;
|
||||
tty_getlin("Search for:", tmpbuf);
|
||||
if (!tmpbuf[0] || tmpbuf[0] == '\033') break;
|
||||
Sprintf(searchbuf, "*%s*", tmpbuf);
|
||||
for (curr = cw->mlist; curr; curr = curr->next) {
|
||||
if (on_curr_page) lineno++;
|
||||
if (curr == page_start)
|
||||
on_curr_page = TRUE;
|
||||
else if (curr == page_end)
|
||||
on_curr_page = FALSE;
|
||||
if (curr->identifier.a_void && pmatch(searchbuf, curr->str)) {
|
||||
toggle_menu_curr(window, curr, lineno, on_curr_page, counting, count);
|
||||
if (cw->how == PICK_ONE) {
|
||||
finished = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MENU_EXPLICIT_CHOICE:
|
||||
morc = really_morc;
|
||||
/*FALLTHRU*/
|
||||
default:
|
||||
if (cw->how == PICK_NONE || !index(resp, morc)) {
|
||||
/* unacceptable input received */
|
||||
@@ -1618,27 +1706,7 @@ struct WinDesc *cw;
|
||||
curr != page_end;
|
||||
n++, curr = curr->next)
|
||||
if (morc == curr->selector) {
|
||||
if (curr->selected) {
|
||||
if (counting && count > 0) {
|
||||
curr->count = count;
|
||||
set_item_state(window, n, curr);
|
||||
} else { /* change state */
|
||||
curr->selected = FALSE;
|
||||
curr->count = -1L;
|
||||
set_item_state(window, n, curr);
|
||||
}
|
||||
} else { /* !selected */
|
||||
if (counting && count > 0) {
|
||||
curr->count = count;
|
||||
curr->selected = TRUE;
|
||||
set_item_state(window, n, curr);
|
||||
} else if (!counting) {
|
||||
curr->selected = TRUE;
|
||||
set_item_state(window, n, curr);
|
||||
}
|
||||
/* do nothing counting&&count==0 */
|
||||
}
|
||||
|
||||
toggle_menu_curr(window, curr, n, TRUE, counting, count);
|
||||
if (cw->how == PICK_ONE) finished = TRUE;
|
||||
break; /* from `for' loop */
|
||||
}
|
||||
@@ -1765,6 +1833,7 @@ tty_display_nhwindow(window, blocking)
|
||||
cw->offx = (uchar) (int)
|
||||
max((int) 10, (int) (ttyDisplay->cols - cw->maxcol - 1));
|
||||
#endif
|
||||
if(cw->offx < 0) cw->offx = 0;
|
||||
if(cw->type == NHW_MENU)
|
||||
cw->offy = 0;
|
||||
if(ttyDisplay->toplin == 1)
|
||||
@@ -1890,7 +1959,7 @@ register int x, y; /* not xchar: perhaps xchar is unsigned and
|
||||
case NHW_TEXT: s = "[text window]"; break;
|
||||
case NHW_BASE: s = "[base window]"; break;
|
||||
}
|
||||
debugpline("bad curs positioning win %d %s (%d,%d)", window, s, x, y);
|
||||
debugpline4("bad curs positioning win %d %s (%d,%d)", window, s, x, y);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@@ -1997,7 +2066,7 @@ tty_putstr(window, attr, str)
|
||||
register struct WinDesc *cw = 0;
|
||||
register char *ob;
|
||||
register const char *nb;
|
||||
register int i, j, n0;
|
||||
register long i, j, n0;
|
||||
|
||||
/* Assume there's a real problem if the window is missing --
|
||||
* probably a panic message
|
||||
@@ -2135,11 +2204,6 @@ tty_putstr(window, attr, str)
|
||||
tty_putstr(window, attr, &str[i]);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
tty_display_file(fname, complain)
|
||||
const char *fname;
|
||||
@@ -2375,7 +2439,7 @@ tty_end_menu(window, prompt)
|
||||
if (cw->npages > 1) {
|
||||
char buf[QBUFSZ];
|
||||
/* produce the largest demo string */
|
||||
Sprintf(buf, "(%d of %d) ", cw->npages, cw->npages);
|
||||
Sprintf(buf, "(%ld of %ld) ", cw->npages, cw->npages);
|
||||
len = strlen(buf);
|
||||
cw->morestr = copy_of("");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user