Merge branch 'NetHack-3.6'
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.124 $ $NHDT-Date: 1570232224 2019/10/04 23:37:04 $
|
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.125 $ $NHDT-Date: 1570318925 2019/10/05 23:42:05 $
|
||||||
|
|
||||||
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
||||||
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
||||||
@@ -173,6 +173,10 @@ avoid 'object lost' panic when polymorph causes loss of levitation boots or
|
|||||||
disrobing/dropping in order to crawl out chooses to drop those boots
|
disrobing/dropping in order to crawl out chooses to drop those boots
|
||||||
'sortloot's attempt to group musical instruments separately from other tools
|
'sortloot's attempt to group musical instruments separately from other tools
|
||||||
didn't work as intended due to missing 'break' in sortloot_classify()
|
didn't work as intended due to missing 'break' in sortloot_classify()
|
||||||
|
<shift><letter> running told player about engravings as they were being moved
|
||||||
|
over but buffered output didn't show it until hero stopped, so it
|
||||||
|
wasn't possible to tell where they were, unlike all other forms of
|
||||||
|
multiple movement; stop running if/when an engraving is reached
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
@@ -114,16 +114,7 @@ E void FDECL(tty_startup, (int *, int *));
|
|||||||
#ifndef NO_TERMS
|
#ifndef NO_TERMS
|
||||||
E void NDECL(tty_shutdown);
|
E void NDECL(tty_shutdown);
|
||||||
#endif
|
#endif
|
||||||
#if defined(apollo)
|
E int FDECL(xputc, (int));
|
||||||
/* Apollos don't widen old-style function definitions properly -- they try to
|
|
||||||
* be smart and use the prototype, or some such strangeness. So we have to
|
|
||||||
* define UNWIDENDED_PROTOTYPES (in tradstdc.h), which makes CHAR_P below a
|
|
||||||
* char. But the tputs termcap call was compiled as if xputc's argument
|
|
||||||
* actually would be expanded. So here, we have to make an exception. */
|
|
||||||
E void FDECL(xputc, (int));
|
|
||||||
#else
|
|
||||||
E void FDECL(xputc, (CHAR_P));
|
|
||||||
#endif
|
|
||||||
E void FDECL(xputs, (const char *));
|
E void FDECL(xputs, (const char *));
|
||||||
#if defined(SCREEN_VGA) || defined(SCREEN_8514)
|
#if defined(SCREEN_VGA) || defined(SCREEN_8514)
|
||||||
E void FDECL(xputg, (int, int, unsigned));
|
E void FDECL(xputg, (int, int, unsigned));
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 engrave.c $NHDT-Date: 1456304550 2016/02/24 09:02:30 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.61 $ */
|
/* NetHack 3.6 engrave.c $NHDT-Date: 1570318925 2019/10/05 23:42:05 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.75 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -316,7 +316,6 @@ int x, y;
|
|||||||
{
|
{
|
||||||
register struct engr *ep = engr_at(x, y);
|
register struct engr *ep = engr_at(x, y);
|
||||||
int sensed = 0;
|
int sensed = 0;
|
||||||
char buf[BUFSZ];
|
|
||||||
|
|
||||||
/* Sensing an engraving does not require sight,
|
/* Sensing an engraving does not require sight,
|
||||||
* nor does it necessarily imply comprehension (literacy).
|
* nor does it necessarily imply comprehension (literacy).
|
||||||
@@ -365,17 +364,22 @@ int x, y;
|
|||||||
impossible("%s is written in a very strange way.", Something);
|
impossible("%s is written in a very strange way.", Something);
|
||||||
sensed = 1;
|
sensed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sensed) {
|
if (sensed) {
|
||||||
char *et;
|
char *et, buf[BUFSZ];
|
||||||
unsigned maxelen = BUFSZ - sizeof("You feel the words: \"\". ");
|
int maxelen = (int) (sizeof buf
|
||||||
if (strlen(ep->engr_txt) > maxelen) {
|
/* sizeof "literal" counts terminating \0 */
|
||||||
(void) strncpy(buf, ep->engr_txt, (int) maxelen);
|
- sizeof "You feel the words: \"\".");
|
||||||
|
|
||||||
|
if ((int) strlen(ep->engr_txt) > maxelen) {
|
||||||
|
(void) strncpy(buf, ep->engr_txt, maxelen);
|
||||||
buf[maxelen] = '\0';
|
buf[maxelen] = '\0';
|
||||||
et = buf;
|
et = buf;
|
||||||
} else
|
} else {
|
||||||
et = ep->engr_txt;
|
et = ep->engr_txt;
|
||||||
|
}
|
||||||
You("%s: \"%s\".", (Blind) ? "feel the words" : "read", et);
|
You("%s: \"%s\".", (Blind) ? "feel the words" : "read", et);
|
||||||
if (g.context.run > 1)
|
if (g.context.run > 0)
|
||||||
nomul(0);
|
nomul(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -571,8 +571,10 @@ const char *s;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void xputc(ch) /* write out character (and attribute) */
|
/* same signature as 'putchar()' with potential failure result ignored */
|
||||||
char ch;
|
int
|
||||||
|
xputc(ch) /* write out character (and attribute) */
|
||||||
|
int ch;
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char attribute;
|
char attribute;
|
||||||
@@ -591,16 +593,17 @@ char ch;
|
|||||||
vesa_xputc(ch, attribute);
|
vesa_xputc(ch, attribute);
|
||||||
#endif /*SCREEN_VESA*/
|
#endif /*SCREEN_VESA*/
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void xputg(glyphnum, ch,
|
/* write out a glyph picture at current location */
|
||||||
special) /* write out a glyph picture at current location */
|
void xputg(glyphnum, ch, special)
|
||||||
int glyphnum;
|
int glyphnum;
|
||||||
int ch;
|
int ch;
|
||||||
unsigned special;
|
unsigned special;
|
||||||
{
|
{
|
||||||
if (!iflags.grmode || !iflags.tile_view) {
|
if (!iflags.grmode || !iflags.tile_view) {
|
||||||
xputc((char) ch);
|
(void) xputc((char) ch);
|
||||||
#ifdef SCREEN_VGA
|
#ifdef SCREEN_VGA
|
||||||
} else if (iflags.grmode && iflags.usevga) {
|
} else if (iflags.grmode && iflags.usevga) {
|
||||||
vga_xputg(glyphnum, ch, special);
|
vga_xputg(glyphnum, ch, special);
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ int FDECL(tgetnum, (const char *));
|
|||||||
char *FDECL(tgetstr, (const char *, char **));
|
char *FDECL(tgetstr, (const char *, char **));
|
||||||
char *FDECL(tgoto, (const char *, int, int));
|
char *FDECL(tgoto, (const char *, int, int));
|
||||||
char *FDECL(tparam, (const char *, char *, int, int, int, int, int));
|
char *FDECL(tparam, (const char *, char *, int, int, int, int, int));
|
||||||
void FDECL(tputs, (const char *, int, int (*)()));
|
void FDECL(tputs, (const char *, int, int (*)(int)));
|
||||||
|
|
||||||
/* local support data */
|
/* local support data */
|
||||||
static char *tc_entry;
|
static char *tc_entry;
|
||||||
@@ -502,9 +502,10 @@ int row, col, row2, col2;
|
|||||||
/* send a string to the terminal, possibly padded with trailing NULs */
|
/* send a string to the terminal, possibly padded with trailing NULs */
|
||||||
void
|
void
|
||||||
tputs(string, range, output_func)
|
tputs(string, range, output_func)
|
||||||
const char *string; /* characters to output */
|
const char *string; /* characters to output */
|
||||||
int range; /* number of lines affected, used for `*' delays */
|
int range; /* number of lines affected, used for `*' delays */
|
||||||
int (*output_func)(); /* actual output routine; return value ignored */
|
int FDECL((*output_func),(int)); /* actual output routine;
|
||||||
|
* return value ignored */
|
||||||
{
|
{
|
||||||
register int c, num = 0;
|
register int c, num = 0;
|
||||||
register const char *p = string;
|
register const char *p = string;
|
||||||
|
|||||||
@@ -537,12 +537,14 @@ int x, y;
|
|||||||
set_console_cursor(x, y);
|
set_console_cursor(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
/* same signature as 'putchar()' with potential failure result ignored */
|
||||||
|
int
|
||||||
xputc(ch)
|
xputc(ch)
|
||||||
char ch;
|
int ch;
|
||||||
{
|
{
|
||||||
set_console_cursor(ttyDisplay->curx, ttyDisplay->cury);
|
set_console_cursor(ttyDisplay->curx, ttyDisplay->cury);
|
||||||
xputc_core(ch);
|
xputc_core((char) ch);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -550,7 +552,7 @@ xputs(s)
|
|||||||
const char *s;
|
const char *s;
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
int slen = strlen(s);
|
int slen = (int) strlen(s);
|
||||||
|
|
||||||
if (ttyDisplay)
|
if (ttyDisplay)
|
||||||
set_console_cursor(ttyDisplay->curx, ttyDisplay->cury);
|
set_console_cursor(ttyDisplay->curx, ttyDisplay->cury);
|
||||||
|
|||||||
@@ -82,11 +82,11 @@ int mode;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
xputc(ch)
|
xputc(ch)
|
||||||
char ch;
|
int ch;
|
||||||
{
|
{
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -392,6 +392,7 @@ curses_ext_cmd()
|
|||||||
extwin = newwin(1, w - 2, y0 + 1, x0 + 1);
|
extwin = newwin(1, w - 2, y0 + 1, x0 + 1);
|
||||||
if (w - 4 < maxlen)
|
if (w - 4 < maxlen)
|
||||||
maxlen = w - 4;
|
maxlen = w - 4;
|
||||||
|
nhUse(h); /* needed only to give getmaxyx three arguments */
|
||||||
} else {
|
} else {
|
||||||
curses_get_window_xy(MESSAGE_WIN, &winx, &winy);
|
curses_get_window_xy(MESSAGE_WIN, &winx, &winy);
|
||||||
curses_get_window_size(MESSAGE_WIN, &messageh, &messagew);
|
curses_get_window_size(MESSAGE_WIN, &messageh, &messagew);
|
||||||
|
|||||||
@@ -462,7 +462,7 @@ curses_choose_character()
|
|||||||
tmpchoice[count] = toupper(tmpchoice[count]);
|
tmpchoice[count] = toupper(tmpchoice[count]);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(choice, "%s%s", choice, tmpchoice);
|
strcat(choice, tmpchoice);
|
||||||
|
|
||||||
/* prevent an unnecessary prompt */
|
/* prevent an unnecessary prompt */
|
||||||
rigid_role_checks();
|
rigid_role_checks();
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ curses_block(boolean noscroll) /* noscroll - blocking because of msgtype
|
|||||||
prev_x = mx, prev_y = my;
|
prev_x = mx, prev_y = my;
|
||||||
blink = 0;
|
blink = 0;
|
||||||
}
|
}
|
||||||
moreattr = !iflags.wc2_guicolor ? A_REVERSE : NONE;
|
moreattr = !iflags.wc2_guicolor ? (int) A_REVERSE : NONE;
|
||||||
curses_toggle_color_attr(win, MORECOLOR, moreattr, ON);
|
curses_toggle_color_attr(win, MORECOLOR, moreattr, ON);
|
||||||
if (blink) {
|
if (blink) {
|
||||||
wattron(win, A_BLINK);
|
wattron(win, A_BLINK);
|
||||||
|
|||||||
@@ -40,13 +40,18 @@ static int parse_escape_sequence(void);
|
|||||||
int
|
int
|
||||||
curses_read_char()
|
curses_read_char()
|
||||||
{
|
{
|
||||||
int ch, tmpch;
|
int ch;
|
||||||
|
#if defined(ALT_0) || defined(ALT_9) || defined(ALT_A) || defined(ALT_Z)
|
||||||
|
int tmpch;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* cancel message suppression; all messages have had a chance to be read */
|
/* cancel message suppression; all messages have had a chance to be read */
|
||||||
curses_got_input();
|
curses_got_input();
|
||||||
|
|
||||||
ch = getch();
|
ch = getch();
|
||||||
|
#if defined(ALT_0) || defined(ALT_9) || defined(ALT_A) || defined(ALT_Z)
|
||||||
tmpch = ch;
|
tmpch = ch;
|
||||||
|
#endif
|
||||||
ch = curses_convert_keys(ch);
|
ch = curses_convert_keys(ch);
|
||||||
|
|
||||||
if (ch == 0) {
|
if (ch == 0) {
|
||||||
@@ -372,7 +377,6 @@ curses_str_remainder(const char *str, int width, int line_num)
|
|||||||
int strsize = strlen(str) + 1;
|
int strsize = strlen(str) + 1;
|
||||||
#if __STDC_VERSION__ >= 199901L
|
#if __STDC_VERSION__ >= 199901L
|
||||||
char substr[strsize];
|
char substr[strsize];
|
||||||
char curstr[strsize];
|
|
||||||
char tmpstr[strsize];
|
char tmpstr[strsize];
|
||||||
|
|
||||||
strcpy(substr, str);
|
strcpy(substr, str);
|
||||||
@@ -381,7 +385,6 @@ curses_str_remainder(const char *str, int width, int line_num)
|
|||||||
#define BUFSZ 256
|
#define BUFSZ 256
|
||||||
#endif
|
#endif
|
||||||
char substr[BUFSZ * 2];
|
char substr[BUFSZ * 2];
|
||||||
char curstr[BUFSZ * 2];
|
|
||||||
char tmpstr[BUFSZ * 2];
|
char tmpstr[BUFSZ * 2];
|
||||||
|
|
||||||
if (strsize > (BUFSZ * 2) - 1) {
|
if (strsize > (BUFSZ * 2) - 1) {
|
||||||
@@ -409,10 +412,6 @@ curses_str_remainder(const char *str, int width, int line_num)
|
|||||||
if (last_space == 0) { /* No spaces found */
|
if (last_space == 0) { /* No spaces found */
|
||||||
last_space = count - 1;
|
last_space = count - 1;
|
||||||
}
|
}
|
||||||
for (count = 0; count < last_space; count++) {
|
|
||||||
curstr[count] = substr[count];
|
|
||||||
}
|
|
||||||
curstr[count] = '\0';
|
|
||||||
if (substr[count] == '\0') {
|
if (substr[count] == '\0') {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,6 +228,7 @@ draw_status()
|
|||||||
curs_reset_windows(TRUE, TRUE);
|
curs_reset_windows(TRUE, TRUE);
|
||||||
win = curses_get_nhwin(STATUS_WIN);
|
win = curses_get_nhwin(STATUS_WIN);
|
||||||
}
|
}
|
||||||
|
nhUse(ax); /* getmaxyx macro isn't sufficient */
|
||||||
}
|
}
|
||||||
|
|
||||||
werase(win);
|
werase(win);
|
||||||
@@ -513,6 +514,7 @@ boolean border;
|
|||||||
conditions would go if they were on this line */
|
conditions would go if they were on this line */
|
||||||
condstart += (cap_and_hunger == 2) ? spacing[BL_CAP]
|
condstart += (cap_and_hunger == 2) ? spacing[BL_CAP]
|
||||||
: (cap_and_hunger == 0) ? 1 : 0;
|
: (cap_and_hunger == 0) ? 1 : 0;
|
||||||
|
nhUse(conddummy); /* getyx needed 3 args */
|
||||||
}
|
}
|
||||||
if (!(cap_and_hunger & 1))
|
if (!(cap_and_hunger & 1))
|
||||||
continue;
|
continue;
|
||||||
@@ -533,6 +535,7 @@ boolean border;
|
|||||||
t = (width - (border ? 0 : 1)) - (ex - 1);
|
t = (width - (border ? 0 : 1)) - (ex - 1);
|
||||||
ebuf[max(t, 2)] = '\0'; /* might still wrap... */
|
ebuf[max(t, 2)] = '\0'; /* might still wrap... */
|
||||||
}
|
}
|
||||||
|
nhUse(ey); /* getyx needed 3 args */
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BL_SCORE:
|
case BL_SCORE:
|
||||||
|
|||||||
@@ -495,12 +495,10 @@ tty_end_screen()
|
|||||||
/* Cursor movements */
|
/* Cursor movements */
|
||||||
|
|
||||||
/* Note to overlay tinkerers. The placement of this overlay controls the
|
/* Note to overlay tinkerers. The placement of this overlay controls the
|
||||||
location
|
location of the function xputc(). This function is not currently in
|
||||||
of the function xputc(). This function is not currently in trampoli.[ch]
|
trampoli.[ch] files for what is deemed to be performance reasons. If
|
||||||
files for what is deemed to be performance reasons. If this define is
|
this define is moved and or xputc() is taken out of the ROOT overlay,
|
||||||
moved
|
then action must be taken in trampoli.[ch]. */
|
||||||
and or xputc() is taken out of the ROOT overlay, then action must be taken
|
|
||||||
in trampoli.[ch]. */
|
|
||||||
|
|
||||||
void
|
void
|
||||||
nocmov(x, y)
|
nocmov(x, y)
|
||||||
@@ -528,7 +526,7 @@ int x, y;
|
|||||||
cmov(x, y);
|
cmov(x, y);
|
||||||
} else {
|
} else {
|
||||||
while ((int) ttyDisplay->cury < y) {
|
while ((int) ttyDisplay->cury < y) {
|
||||||
xputc('\n');
|
(void) xputc('\n');
|
||||||
ttyDisplay->curx = 0;
|
ttyDisplay->curx = 0;
|
||||||
ttyDisplay->cury++;
|
ttyDisplay->cury++;
|
||||||
}
|
}
|
||||||
@@ -561,16 +559,27 @@ register int x, y;
|
|||||||
ttyDisplay->curx = x;
|
ttyDisplay->curx = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See note above. xputc() is a special function. */
|
/* See note above. xputc() is a special function for overlays. */
|
||||||
void
|
int
|
||||||
xputc(c)
|
xputc(c)
|
||||||
#if defined(apollo)
|
int c; /* actually char, but explicitly specify its widened type */
|
||||||
int c;
|
|
||||||
#else
|
|
||||||
char c;
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
(void) putchar(c);
|
/*
|
||||||
|
* Note: xputc() as a direct all to putchar() doesn't make any
|
||||||
|
* sense _if_ putchar() is a function. But if it is a macro, an
|
||||||
|
* overlay configuration would want to avoid hidden code bloat
|
||||||
|
* from multiple putchar() expansions. And it gets passed as an
|
||||||
|
* argument to tputs() so we have to guarantee an actual function
|
||||||
|
* (while possibly lacking ANSI's (func) syntax to override macro).
|
||||||
|
*
|
||||||
|
* xputc() used to be declared as 'void xputc(c) char c; {}' but
|
||||||
|
* avoiding the proper type 'int' just to avoid (void) casts when
|
||||||
|
* ignoring the result can't have been sufficent reason to add it.
|
||||||
|
* It also had '#if apollo' conditional to have the arg be int.
|
||||||
|
* Matching putchar()'s declaration and using explicit casts where
|
||||||
|
* warranted is more robust, so we're just a jacket around that.
|
||||||
|
*/
|
||||||
|
return putchar(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -579,13 +588,9 @@ const char *s;
|
|||||||
{
|
{
|
||||||
#ifndef TERMLIB
|
#ifndef TERMLIB
|
||||||
(void) fputs(s, stdout);
|
(void) fputs(s, stdout);
|
||||||
#else
|
|
||||||
#if defined(NHSTDC) || defined(ULTRIX_PROTO)
|
|
||||||
tputs(s, 1, (int (*) ()) xputc);
|
|
||||||
#else
|
#else
|
||||||
tputs(s, 1, xputc);
|
tputs(s, 1, xputc);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -599,7 +604,7 @@ cl_end()
|
|||||||
/* this looks terrible, especially on a slow terminal
|
/* this looks terrible, especially on a slow terminal
|
||||||
but is better than nothing */
|
but is better than nothing */
|
||||||
while (cx < CO) {
|
while (cx < CO) {
|
||||||
xputc(' ');
|
(void) xputc(' ');
|
||||||
cx++;
|
cx++;
|
||||||
}
|
}
|
||||||
tty_curs(BASE_WINDOW, (int) ttyDisplay->curx + 1,
|
tty_curs(BASE_WINDOW, (int) ttyDisplay->curx + 1,
|
||||||
@@ -754,25 +759,18 @@ tty_delay_output()
|
|||||||
/* BUG: if the padding character is visible, as it is on the 5620
|
/* BUG: if the padding character is visible, as it is on the 5620
|
||||||
then this looks terrible. */
|
then this looks terrible. */
|
||||||
if (flags.null) {
|
if (flags.null) {
|
||||||
|
tputs(
|
||||||
#ifdef TERMINFO
|
#ifdef TERMINFO
|
||||||
/* cbosgd!cbcephus!pds for SYS V R2 */
|
"$<50>",
|
||||||
#ifdef NHSTDC
|
|
||||||
tputs("$<50>", 1, (int (*) ()) xputc);
|
|
||||||
#else
|
#else
|
||||||
tputs("$<50>", 1, xputc);
|
"50",
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#if defined(NHSTDC) || defined(ULTRIX_PROTO)
|
|
||||||
tputs("50", 1, (int (*) ()) xputc);
|
|
||||||
#else
|
|
||||||
tputs("50", 1, xputc);
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
1, xputc);
|
||||||
|
|
||||||
} else if (ospeed > 0 && ospeed < SIZE(tmspc10) && nh_CM) {
|
} else if (ospeed > 0 && ospeed < SIZE(tmspc10) && nh_CM) {
|
||||||
/* delay by sending cm(here) an appropriate number of times */
|
/* delay by sending cm(here) an appropriate number of times */
|
||||||
register int cmlen =
|
register int cmlen =
|
||||||
strlen(tgoto(nh_CM, ttyDisplay->curx, ttyDisplay->cury));
|
(int) strlen(tgoto(nh_CM, ttyDisplay->curx, ttyDisplay->cury));
|
||||||
register int i = 500 + tmspc10[ospeed] / 2;
|
register int i = 500 + tmspc10[ospeed] / 2;
|
||||||
|
|
||||||
while (i > 0) {
|
while (i > 0) {
|
||||||
@@ -794,7 +792,7 @@ cl_eos() /* free after Robert Viduya */
|
|||||||
|
|
||||||
while (cy <= LI - 2) {
|
while (cy <= LI - 2) {
|
||||||
cl_end();
|
cl_end();
|
||||||
xputc('\n');
|
(void) xputc('\n');
|
||||||
cy++;
|
cy++;
|
||||||
}
|
}
|
||||||
cl_end();
|
cl_end();
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ static boolean FDECL(check_fields, (BOOLEAN_P, int *));
|
|||||||
static void NDECL(render_status);
|
static void NDECL(render_status);
|
||||||
static void FDECL(tty_putstatusfield, (const char *, int, int));
|
static void FDECL(tty_putstatusfield, (const char *, int, int));
|
||||||
static boolean NDECL(check_windowdata);
|
static boolean NDECL(check_windowdata);
|
||||||
static int NDECL(condition_size);
|
static void NDECL(set_condition_length);
|
||||||
static int FDECL(make_things_fit, (BOOLEAN_P));
|
static int FDECL(make_things_fit, (BOOLEAN_P));
|
||||||
static void FDECL(shrink_enc, (int));
|
static void FDECL(shrink_enc, (int));
|
||||||
static void FDECL(shrink_dlvl, (int));
|
static void FDECL(shrink_dlvl, (int));
|
||||||
@@ -3613,7 +3613,7 @@ char *posbar;
|
|||||||
* and tries a few different ways to squish a representation
|
* and tries a few different ways to squish a representation
|
||||||
* of the status window values onto the 80 column tty display.
|
* of the status window values onto the 80 column tty display.
|
||||||
* ->check_fields()
|
* ->check_fields()
|
||||||
* ->condition_size() - get the width of all conditions
|
* ->set_condition_length() - update the width of conditions
|
||||||
* ->shrink_enc() - shrink encumbrance message word
|
* ->shrink_enc() - shrink encumbrance message word
|
||||||
* ->shrink_dlvl() - reduce the width of Dlvl:42
|
* ->shrink_dlvl() - reduce the width of Dlvl:42
|
||||||
*
|
*
|
||||||
@@ -3967,7 +3967,7 @@ static int
|
|||||||
make_things_fit(force_update)
|
make_things_fit(force_update)
|
||||||
boolean force_update;
|
boolean force_update;
|
||||||
{
|
{
|
||||||
int trycnt, fitting = 0, condsz, requirement;
|
int trycnt, fitting = 0, requirement;
|
||||||
int rowsz[3], num_rows, condrow, otheroptions = 0;
|
int rowsz[3], num_rows, condrow, otheroptions = 0;
|
||||||
|
|
||||||
num_rows = (iflags.wc2_statuslines < 3) ? 2 : 3;
|
num_rows = (iflags.wc2_statuslines < 3) ? 2 : 3;
|
||||||
@@ -3977,7 +3977,7 @@ boolean force_update;
|
|||||||
shrink_enc(0);
|
shrink_enc(0);
|
||||||
if (dlvl_shrinklvl > 0)
|
if (dlvl_shrinklvl > 0)
|
||||||
shrink_dlvl(0);
|
shrink_dlvl(0);
|
||||||
condsz = condition_size();
|
set_condition_length();
|
||||||
for (trycnt = 0; trycnt < 6 && !fitting; ++trycnt) {
|
for (trycnt = 0; trycnt < 6 && !fitting; ++trycnt) {
|
||||||
/* FIXME: this remeasures each line every time even though it
|
/* FIXME: this remeasures each line every time even though it
|
||||||
is only attempting to shrink one of them and the other one
|
is only attempting to shrink one of them and the other one
|
||||||
@@ -3995,7 +3995,7 @@ boolean force_update;
|
|||||||
if (trycnt < 2) {
|
if (trycnt < 2) {
|
||||||
if (cond_shrinklvl < trycnt + 1) {
|
if (cond_shrinklvl < trycnt + 1) {
|
||||||
cond_shrinklvl = trycnt + 1;
|
cond_shrinklvl = trycnt + 1;
|
||||||
condsz = condition_size();
|
set_condition_length();
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -4217,13 +4217,12 @@ int x, y;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* caller must set cond_shrinklvl (0..2) before calling us */
|
/* caller must set cond_shrinklvl (0..2) before calling us */
|
||||||
static int
|
static void
|
||||||
condition_size()
|
set_condition_length()
|
||||||
{
|
{
|
||||||
long mask;
|
long mask;
|
||||||
int c, lth;
|
int c, lth = 0;
|
||||||
|
|
||||||
lth = 0;
|
|
||||||
if (tty_condition_bits) {
|
if (tty_condition_bits) {
|
||||||
for (c = 0; c < SIZE(conditions); ++c) {
|
for (c = 0; c < SIZE(conditions); ++c) {
|
||||||
mask = conditions[c].mask;
|
mask = conditions[c].mask;
|
||||||
@@ -4232,7 +4231,6 @@ condition_size()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
tty_status[NOW][BL_CONDITION].lth = lth;
|
tty_status[NOW][BL_CONDITION].lth = lth;
|
||||||
return lth;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user