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 f8baf4bd8e
commit ff7230a159
2 changed files with 8 additions and 8 deletions

View File

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

View File

@@ -1997,7 +1997,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
@@ -2375,7 +2375,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 {