Apply revised patch from bin/24647 by Peter Postma:
Adds a confirmation check before processing the data you have entered, or sushi has entered for you on a form.
This commit is contained in:
parent
ca430e5111
commit
8a2d792237
|
@ -55,6 +55,7 @@ $set 3 run.c stuff
|
|||
14 be edited by issuing the List(F4) command, and toggling desired options
|
||||
15 with the spacebar. Press the ENTER key to return from the list popup.
|
||||
16 No help is available for this screen.
|
||||
17 Are you sure? (Y/n)
|
||||
$set 4 menu titles and stuff
|
||||
1 Select choice
|
||||
2 Generating form data, please wait
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: scanform.c,v 1.32 2004/03/09 19:10:20 garbled Exp $ */
|
||||
/* $NetBSD: scanform.c,v 1.33 2004/03/09 20:26:24 garbled Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2000 The NetBSD Foundation, Inc.
|
||||
|
@ -551,10 +551,12 @@ my_driver(FORM * form, int c, char *path)
|
|||
case QUIT:
|
||||
/* do something useful */
|
||||
if (form_driver(form, REQ_VALIDATION) == E_OK) {
|
||||
if (process_form(form, path) == 0)
|
||||
if ((i = process_form(form, path)) == 0)
|
||||
return TRUE;
|
||||
else if (i == -1)
|
||||
return FALSE;
|
||||
else
|
||||
return(2); /* special meaning */
|
||||
return 2; /* special meaning */
|
||||
}
|
||||
/* NOTREACHED */
|
||||
break;
|
||||
|
@ -850,11 +852,24 @@ process_form(FORM *form, char *path)
|
|||
int fc, lcnt, i, j;
|
||||
FIELD **f;
|
||||
char **args, **nargs;
|
||||
CDKLABEL *label;
|
||||
char *msg[1];
|
||||
int key;
|
||||
|
||||
/* handle the preform somewhere else */
|
||||
if (strcmp("pre", form_userptr(form)) == 0)
|
||||
return(process_preform(form, path));
|
||||
|
||||
*msg = catgets(catalog, 3, 17, "Are you sure? (Y/n)");
|
||||
label = newCDKLabel(cdkscreen, CENTER, CENTER, msg, 1, TRUE, FALSE);
|
||||
activateCDKLabel(label, NULL);
|
||||
key = waitCDKLabel(label, 0);
|
||||
destroyCDKLabel(label);
|
||||
touchwin(stdscr);
|
||||
wrefresh(stdscr);
|
||||
if (key != 13 && key != 10 && key != 121 && key != 89) /* enter y Y */
|
||||
return -1;
|
||||
|
||||
if (lang_id == NULL) {
|
||||
snprintf(file, sizeof(file), "%s/%s", path, EXECFILE);
|
||||
snprintf(file2, sizeof(file2), "%s/%s", path, SCRIPTFILE);
|
||||
|
|
Loading…
Reference in New Issue