Fix a couple of whoopers which somehow went undetected until now.
This commit is contained in:
parent
3ab37d58db
commit
eef290ac5f
@ -202,17 +202,19 @@ dialog_checklist(unsigned char *title, unsigned char *prompt, int height, int wi
|
||||
|
||||
/* Shortcut to OK? */
|
||||
if (toupper(key) == okButton) {
|
||||
if (ditems && result && ditems[OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save;
|
||||
if (ditems) {
|
||||
if (result && ditems[OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save;
|
||||
|
||||
save = dupwin(newscr);
|
||||
st = ditems[OK_BUTTON].fire(&ditems[OK_BUTTON]);
|
||||
if (st & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
save = dupwin(newscr);
|
||||
st = ditems[OK_BUTTON].fire(&ditems[OK_BUTTON]);
|
||||
if (st & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
else if (result) {
|
||||
*result = '\0';
|
||||
@ -457,8 +459,8 @@ dialog_checklist(unsigned char *title, unsigned char *prompt, int height, int wi
|
||||
/* Select either the OK or Cancel button */
|
||||
case '\n':
|
||||
case '\r':
|
||||
if (ditems && result) {
|
||||
if (ditems && ditems[button ? CANCEL_BUTTON : OK_BUTTON].fire) {
|
||||
if (ditems) {
|
||||
if (result && ditems[button ? CANCEL_BUTTON : OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save = dupwin(newscr);
|
||||
|
||||
|
@ -191,17 +191,19 @@ dialog_menu(unsigned char *title, unsigned char *prompt, int height, int width,
|
||||
|
||||
/* Shortcut to OK? */
|
||||
if (toupper(key) == okButton) {
|
||||
if (ditems && result && ditems[OK_BUTTON].fire) {
|
||||
int status;
|
||||
WINDOW *save;
|
||||
if (ditems) {
|
||||
if (result && ditems[OK_BUTTON].fire) {
|
||||
int status;
|
||||
WINDOW *save;
|
||||
|
||||
save = dupwin(newscr);
|
||||
status = ditems[OK_BUTTON].fire(&ditems[OK_BUTTON]);
|
||||
if (status & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
save = dupwin(newscr);
|
||||
status = ditems[OK_BUTTON].fire(&ditems[OK_BUTTON]);
|
||||
if (status & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
else if (result)
|
||||
strcpy(result, items[(scroll + choice) * 2]);
|
||||
@ -379,24 +381,26 @@ dialog_menu(unsigned char *title, unsigned char *prompt, int height, int width,
|
||||
if (!button) {
|
||||
/* A fire routine can do just about anything to the screen, so be prepared
|
||||
to accept some hints as to what to do in the aftermath. */
|
||||
if (ditems && ditems[scroll + choice].fire) {
|
||||
int status;
|
||||
WINDOW *save;
|
||||
if (ditems) {
|
||||
if (ditems[scroll + choice].fire) {
|
||||
int status;
|
||||
WINDOW *save;
|
||||
|
||||
save = dupwin(newscr);
|
||||
status = ditems[scroll + choice].fire(&ditems[scroll + choice]);
|
||||
if (status & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
}
|
||||
delwin(save);
|
||||
if (status & DITEM_CONTINUE)
|
||||
continue;
|
||||
else if (status & DITEM_RECREATE && !(status & DITEM_LEAVE_MENU)) {
|
||||
delwin(menu);
|
||||
delwin(dialog);
|
||||
dialog_clear();
|
||||
goto draw;
|
||||
save = dupwin(newscr);
|
||||
status = ditems[scroll + choice].fire(&ditems[scroll + choice]);
|
||||
if (status & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
}
|
||||
delwin(save);
|
||||
if (status & DITEM_CONTINUE)
|
||||
continue;
|
||||
else if (status & DITEM_RECREATE && !(status & DITEM_LEAVE_MENU)) {
|
||||
delwin(menu);
|
||||
delwin(dialog);
|
||||
dialog_clear();
|
||||
goto draw;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (result)
|
||||
|
@ -210,17 +210,19 @@ dialog_radiolist(unsigned char *title, unsigned char *prompt, int height, int wi
|
||||
|
||||
/* See if its the short-cut to "OK" */
|
||||
if (toupper(key) == okButton) {
|
||||
if (ditems && result && ditems[OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save;
|
||||
if (ditems) {
|
||||
if (result && ditems[OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save;
|
||||
|
||||
save = dupwin(newscr);
|
||||
st = ditems[OK_BUTTON].fire(&ditems[OK_BUTTON]);
|
||||
if (st & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
save = dupwin(newscr);
|
||||
st = ditems[OK_BUTTON].fire(&ditems[OK_BUTTON]);
|
||||
if (st & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
else if (result) {
|
||||
*result = '\0';
|
||||
@ -453,19 +455,21 @@ dialog_radiolist(unsigned char *title, unsigned char *prompt, int height, int wi
|
||||
|
||||
case '\r':
|
||||
case '\n':
|
||||
if (ditems && result && ditems[button ? CANCEL_BUTTON : OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save;
|
||||
if (ditems) {
|
||||
if (result && ditems[button ? CANCEL_BUTTON : OK_BUTTON].fire) {
|
||||
int st;
|
||||
WINDOW *save;
|
||||
|
||||
save = dupwin(newscr);
|
||||
st = ditems[button ? CANCEL_BUTTON : OK_BUTTON].fire(&ditems[button ? CANCEL_BUTTON : OK_BUTTON]);
|
||||
if (st & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
save = dupwin(newscr);
|
||||
st = ditems[button ? CANCEL_BUTTON : OK_BUTTON].fire(&ditems[button ? CANCEL_BUTTON : OK_BUTTON]);
|
||||
if (st & DITEM_RESTORE) {
|
||||
touchwin(save);
|
||||
wrefresh(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
delwin(save);
|
||||
}
|
||||
else if (!ditems && result) {
|
||||
else if (result) {
|
||||
*result = '\0';
|
||||
for (i = 0; i < item_no; i++) {
|
||||
if (status[i]) {
|
||||
|
Loading…
Reference in New Issue
Block a user