Fix TTY crashing when a location has more than 32k items

This commit is contained in:
Pasi Kallinen
2015-03-02 20:34:25 +02:00
parent f64e530bff
commit 9da976f004
2 changed files with 8 additions and 8 deletions

View File

@@ -29,9 +29,9 @@ struct WinDesc {
xchar type; /* type of window */ xchar type; /* type of window */
boolean active; /* true if window is active */ boolean active; /* true if window is active */
short offx, offy; /* offset from topleft of display */ short offx, offy; /* offset from topleft of display */
short rows, cols; /* dimensions */ long rows, cols; /* dimensions */
short curx, cury; /* current cursor position */ long curx, cury; /* current cursor position */
short maxrow, maxcol; /* the maximum size used -- for MENU wins */ long maxrow, maxcol; /* the maximum size used -- for MENU wins */
/* maxcol is also used by WIN_MESSAGE for */ /* maxcol is also used by WIN_MESSAGE for */
/* tracking the ^P command */ /* tracking the ^P command */
short *datlen; /* allocation size for *data */ short *datlen; /* allocation size for *data */
@@ -39,9 +39,9 @@ struct WinDesc {
char *morestr; /* string to display instead of default */ char *morestr; /* string to display instead of default */
tty_menu_item *mlist; /* menu information (MENU) */ tty_menu_item *mlist; /* menu information (MENU) */
tty_menu_item **plist; /* menu page pointers (MENU) */ tty_menu_item **plist; /* menu page pointers (MENU) */
short plist_size; /* size of allocated plist (MENU) */ long plist_size; /* size of allocated plist (MENU) */
short npages; /* number of pages in menu (MENU) */ long npages; /* number of pages in menu (MENU) */
short nitems; /* total number of items (MENU) */ long nitems; /* total number of items (MENU) */
short how; /* menu mode - pick 1 or N (MENU) */ short how; /* menu mode - pick 1 or N (MENU) */
char menu_ch; /* menu char (MENU) */ char menu_ch; /* menu char (MENU) */
}; };

View File

@@ -1997,7 +1997,7 @@ tty_putstr(window, attr, str)
register struct WinDesc *cw = 0; register struct WinDesc *cw = 0;
register char *ob; register char *ob;
register const char *nb; 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 -- /* Assume there's a real problem if the window is missing --
* probably a panic message * probably a panic message
@@ -2375,7 +2375,7 @@ tty_end_menu(window, prompt)
if (cw->npages > 1) { if (cw->npages > 1) {
char buf[QBUFSZ]; char buf[QBUFSZ];
/* produce the largest demo string */ /* 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); len = strlen(buf);
cw->morestr = copy_of(""); cw->morestr = copy_of("");
} else { } else {