Commit b1c5f1c6 authored by Sam Ravnborg's avatar Sam Ravnborg

kconfig: Lindent scripts/lxdialog

The lxdialog code was not easy to read. So as first step the code
was run through Lindent.
Fix-ups will come in next patchset.
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent b286e392
This diff is collapsed.
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* /*
* Default color definitions * Default color definitions
* *
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
#if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE) #if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
#define OLD_NCURSES 1 #define OLD_NCURSES 1
#undef wbkgdset #undef wbkgdset
#define wbkgdset(w,p) /*nothing*/ #define wbkgdset(w,p) /*nothing */
#else #else
#define OLD_NCURSES 0 #define OLD_NCURSES 0
#endif #endif
...@@ -56,7 +56,6 @@ ...@@ -56,7 +56,6 @@
#define MIN(x,y) (x < y ? x : y) #define MIN(x,y) (x < y ? x : y)
#define MAX(x,y) (x > y ? x : y) #define MAX(x,y) (x > y ? x : y)
#ifndef ACS_ULCORNER #ifndef ACS_ULCORNER
#define ACS_ULCORNER '+' #define ACS_ULCORNER '+'
#endif #endif
...@@ -137,34 +136,33 @@ extern const char *backtitle; ...@@ -137,34 +136,33 @@ extern const char *backtitle;
/* /*
* Function prototypes * Function prototypes
*/ */
extern void create_rc (const char *filename); extern void create_rc(const char *filename);
extern int parse_rc (void); extern int parse_rc(void);
void init_dialog(void);
void init_dialog (void); void end_dialog(void);
void end_dialog (void); void attr_clear(WINDOW * win, int height, int width, chtype attr);
void attr_clear (WINDOW * win, int height, int width, chtype attr); void dialog_clear(void);
void dialog_clear (void); void color_setup(void);
void color_setup (void); void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x);
void print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x); void print_button(WINDOW * win, const char *label, int y, int x, int selected);
void print_button (WINDOW * win, const char *label, int y, int x, int selected); void draw_box(WINDOW * win, int y, int x, int height, int width, chtype box,
void draw_box (WINDOW * win, int y, int x, int height, int width, chtype box,
chtype border); chtype border);
void draw_shadow (WINDOW * win, int y, int x, int height, int width); void draw_shadow(WINDOW * win, int y, int x, int height, int width);
int first_alpha (const char *string, const char *exempt); int first_alpha(const char *string, const char *exempt);
int dialog_yesno (const char *title, const char *prompt, int height, int width); int dialog_yesno(const char *title, const char *prompt, int height, int width);
int dialog_msgbox (const char *title, const char *prompt, int height, int dialog_msgbox(const char *title, const char *prompt, int height,
int width, int pause); int width, int pause);
int dialog_textbox (const char *title, const char *file, int height, int width); int dialog_textbox(const char *title, const char *file, int height, int width);
int dialog_menu (const char *title, const char *prompt, int height, int width, int dialog_menu(const char *title, const char *prompt, int height, int width,
int menu_height, const char *choice, int item_no, int menu_height, const char *choice, int item_no,
const char * const * items); const char *const *items);
int dialog_checklist (const char *title, const char *prompt, int height, int dialog_checklist(const char *title, const char *prompt, int height,
int width, int list_height, int item_no, int width, int list_height, int item_no,
const char * const * items, int flag); const char *const *items, int flag);
extern char dialog_input_result[]; extern char dialog_input_result[];
int dialog_inputbox (const char *title, const char *prompt, int height, int dialog_inputbox(const char *title, const char *prompt, int height,
int width, const char *init); int width, const char *init);
/* /*
...@@ -178,7 +176,6 @@ int dialog_inputbox (const char *title, const char *prompt, int height, ...@@ -178,7 +176,6 @@ int dialog_inputbox (const char *title, const char *prompt, int height,
*/ */
#define M_EVENT (KEY_MAX+1) #define M_EVENT (KEY_MAX+1)
/* /*
* The `flag' parameter in checklist is used to select between * The `flag' parameter in checklist is used to select between
* radiolist and checklist * radiolist and checklist
......
...@@ -26,16 +26,15 @@ char dialog_input_result[MAX_LEN + 1]; ...@@ -26,16 +26,15 @@ char dialog_input_result[MAX_LEN + 1];
/* /*
* Print the termination buttons * Print the termination buttons
*/ */
static void static void print_buttons(WINDOW * dialog, int height, int width, int selected)
print_buttons(WINDOW *dialog, int height, int width, int selected)
{ {
int x = width / 2 - 11; int x = width / 2 - 11;
int y = height - 2; int y = height - 2;
print_button (dialog, " Ok ", y, x, selected==0); print_button(dialog, " Ok ", y, x, selected == 0);
print_button (dialog, " Help ", y, x + 14, selected==1); print_button(dialog, " Help ", y, x + 14, selected == 1);
wmove(dialog, y, x+1+14*selected); wmove(dialog, y, x + 1 + 14 * selected);
wrefresh(dialog); wrefresh(dialog);
} }
...@@ -43,7 +42,7 @@ print_buttons(WINDOW *dialog, int height, int width, int selected) ...@@ -43,7 +42,7 @@ print_buttons(WINDOW *dialog, int height, int width, int selected)
* Display a dialog box for inputing a string * Display a dialog box for inputing a string
*/ */
int int
dialog_inputbox (const char *title, const char *prompt, int height, int width, dialog_inputbox(const char *title, const char *prompt, int height, int width,
const char *init) const char *init)
{ {
int i, x, y, box_y, box_x, box_width; int i, x, y, box_y, box_x, box_width;
...@@ -55,73 +54,72 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width, ...@@ -55,73 +54,72 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width,
x = (COLS - width) / 2; x = (COLS - width) / 2;
y = (LINES - height) / 2; y = (LINES - height) / 2;
draw_shadow(stdscr, y, x, height, width);
draw_shadow (stdscr, y, x, height, width); dialog = newwin(height, width, y, x);
keypad(dialog, TRUE);
dialog = newwin (height, width, y, x); draw_box(dialog, 0, 0, height, width, dialog_attr, border_attr);
keypad (dialog, TRUE); wattrset(dialog, border_attr);
mvwaddch(dialog, height - 3, 0, ACS_LTEE);
draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
wattrset (dialog, border_attr);
mvwaddch (dialog, height-3, 0, ACS_LTEE);
for (i = 0; i < width - 2; i++) for (i = 0; i < width - 2; i++)
waddch (dialog, ACS_HLINE); waddch(dialog, ACS_HLINE);
wattrset (dialog, dialog_attr); wattrset(dialog, dialog_attr);
waddch (dialog, ACS_RTEE); waddch(dialog, ACS_RTEE);
if (title != NULL && strlen(title) >= width-2 ) { if (title != NULL && strlen(title) >= width - 2) {
/* truncate long title -- mec */ /* truncate long title -- mec */
char * title2 = malloc(width-2+1); char *title2 = malloc(width - 2 + 1);
memcpy( title2, title, width-2 ); memcpy(title2, title, width - 2);
title2[width-2] = '\0'; title2[width - 2] = '\0';
title = title2; title = title2;
} }
if (title != NULL) { if (title != NULL) {
wattrset (dialog, title_attr); wattrset(dialog, title_attr);
mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' '); mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' ');
waddstr (dialog, (char *)title); waddstr(dialog, (char *)title);
waddch (dialog, ' '); waddch(dialog, ' ');
} }
wattrset (dialog, dialog_attr); wattrset(dialog, dialog_attr);
print_autowrap (dialog, prompt, width - 2, 1, 3); print_autowrap(dialog, prompt, width - 2, 1, 3);
/* Draw the input field box */ /* Draw the input field box */
box_width = width - 6; box_width = width - 6;
getyx (dialog, y, x); getyx(dialog, y, x);
box_y = y + 2; box_y = y + 2;
box_x = (width - box_width) / 2; box_x = (width - box_width) / 2;
draw_box (dialog, y + 1, box_x - 1, 3, box_width + 2, draw_box(dialog, y + 1, box_x - 1, 3, box_width + 2,
border_attr, dialog_attr); border_attr, dialog_attr);
print_buttons(dialog, height, width, 0); print_buttons(dialog, height, width, 0);
/* Set up the initial value */ /* Set up the initial value */
wmove (dialog, box_y, box_x); wmove(dialog, box_y, box_x);
wattrset (dialog, inputbox_attr); wattrset(dialog, inputbox_attr);
if (!init) if (!init)
instr[0] = '\0'; instr[0] = '\0';
else else
strcpy (instr, init); strcpy(instr, init);
input_x = strlen (instr); input_x = strlen(instr);
if (input_x >= box_width) { if (input_x >= box_width) {
scroll = input_x - box_width + 1; scroll = input_x - box_width + 1;
input_x = box_width - 1; input_x = box_width - 1;
for (i = 0; i < box_width - 1; i++) for (i = 0; i < box_width - 1; i++)
waddch (dialog, instr[scroll + i]); waddch(dialog, instr[scroll + i]);
} else } else
waddstr (dialog, instr); waddstr(dialog, instr);
wmove (dialog, box_y, box_x + input_x); wmove(dialog, box_y, box_x + input_x);
wrefresh (dialog); wrefresh(dialog);
while (key != ESC) { while (key != ESC) {
key = wgetch (dialog); key = wgetch(dialog);
if (button == -1) { /* Input box selected */ if (button == -1) { /* Input box selected */
switch (key) { switch (key) {
...@@ -136,41 +134,59 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width, ...@@ -136,41 +134,59 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width,
case KEY_BACKSPACE: case KEY_BACKSPACE:
case 127: case 127:
if (input_x || scroll) { if (input_x || scroll) {
wattrset (dialog, inputbox_attr); wattrset(dialog, inputbox_attr);
if (!input_x) { if (!input_x) {
scroll = scroll < box_width - 1 ? scroll =
0 : scroll - (box_width - 1); scroll <
wmove (dialog, box_y, box_x); box_width - 1 ? 0 : scroll -
(box_width - 1);
wmove(dialog, box_y, box_x);
for (i = 0; i < box_width; i++) for (i = 0; i < box_width; i++)
waddch (dialog, instr[scroll + input_x + i] ? waddch(dialog,
instr[scroll + input_x + i] : ' '); instr[scroll +
input_x = strlen (instr) - scroll; input_x +
i] ?
instr[scroll +
input_x +
i] : ' ');
input_x =
strlen(instr) - scroll;
} else } else
input_x--; input_x--;
instr[scroll + input_x] = '\0'; instr[scroll + input_x] = '\0';
mvwaddch (dialog, box_y, input_x + box_x, ' '); mvwaddch(dialog, box_y, input_x + box_x,
wmove (dialog, box_y, input_x + box_x); ' ');
wrefresh (dialog); wmove(dialog, box_y, input_x + box_x);
wrefresh(dialog);
} }
continue; continue;
default: default:
if (key < 0x100 && isprint (key)) { if (key < 0x100 && isprint(key)) {
if (scroll + input_x < MAX_LEN) { if (scroll + input_x < MAX_LEN) {
wattrset (dialog, inputbox_attr); wattrset(dialog, inputbox_attr);
instr[scroll + input_x] = key; instr[scroll + input_x] = key;
instr[scroll + input_x + 1] = '\0'; instr[scroll + input_x + 1] =
'\0';
if (input_x == box_width - 1) { if (input_x == box_width - 1) {
scroll++; scroll++;
wmove (dialog, box_y, box_x); wmove(dialog, box_y,
for (i = 0; i < box_width - 1; i++) box_x);
waddch (dialog, instr[scroll + i]); for (i = 0;
i < box_width - 1;
i++)
waddch(dialog,
instr
[scroll +
i]);
} else { } else {
wmove (dialog, box_y, input_x++ + box_x); wmove(dialog, box_y,
waddch (dialog, key); input_x++ +
box_x);
waddch(dialog, key);
} }
wrefresh (dialog); wrefresh(dialog);
} else } else
flash (); /* Alarm user about overflow */ flash(); /* Alarm user about overflow */
continue; continue;
} }
} }
...@@ -178,11 +194,11 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width, ...@@ -178,11 +194,11 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width,
switch (key) { switch (key) {
case 'O': case 'O':
case 'o': case 'o':
delwin (dialog); delwin(dialog);
return 0; return 0;
case 'H': case 'H':
case 'h': case 'h':
delwin (dialog); delwin(dialog);
return 1; return 1;
case KEY_UP: case KEY_UP:
case KEY_LEFT: case KEY_LEFT:
...@@ -194,8 +210,8 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width, ...@@ -194,8 +210,8 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width,
case 0: case 0:
button = -1; /* Indicates input box is selected */ button = -1; /* Indicates input box is selected */
print_buttons(dialog, height, width, 0); print_buttons(dialog, height, width, 0);
wmove (dialog, box_y, box_x + input_x); wmove(dialog, box_y, box_x + input_x);
wrefresh (dialog); wrefresh(dialog);
break; break;
case 1: case 1:
button = 0; /* Indicates "OK" button is selected */ button = 0; /* Indicates "OK" button is selected */
...@@ -218,14 +234,14 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width, ...@@ -218,14 +234,14 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width,
case 1: case 1:
button = -1; /* Indicates input box is selected */ button = -1; /* Indicates input box is selected */
print_buttons(dialog, height, width, 0); print_buttons(dialog, height, width, 0);
wmove (dialog, box_y, box_x + input_x); wmove(dialog, box_y, box_x + input_x);
wrefresh (dialog); wrefresh(dialog);
break; break;
} }
break; break;
case ' ': case ' ':
case '\n': case '\n':
delwin (dialog); delwin(dialog);
return (button == -1 ? 0 : button); return (button == -1 ? 0 : button);
case 'X': case 'X':
case 'x': case 'x':
...@@ -235,6 +251,6 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width, ...@@ -235,6 +251,6 @@ dialog_inputbox (const char *title, const char *prompt, int height, int width,
} }
} }
delwin (dialog); delwin(dialog);
return -1; /* ESC pressed */ return -1; /* ESC pressed */
} }
...@@ -21,9 +21,9 @@ ...@@ -21,9 +21,9 @@
#include "dialog.h" #include "dialog.h"
static void Usage (const char *name); static void Usage(const char *name);
typedef int (jumperFn) (const char *title, int argc, const char * const * argv); typedef int (jumperFn) (const char *title, int argc, const char *const *argv);
struct Mode { struct Mode {
char *name; char *name;
...@@ -34,13 +34,12 @@ struct Mode { ...@@ -34,13 +34,12 @@ struct Mode {
jumperFn j_menu, j_checklist, j_radiolist, j_yesno, j_textbox, j_inputbox; jumperFn j_menu, j_checklist, j_radiolist, j_yesno, j_textbox, j_inputbox;
jumperFn j_msgbox, j_infobox; jumperFn j_msgbox, j_infobox;
static struct Mode modes[] = static struct Mode modes[] = {
{
{"--menu", 9, 0, 3, j_menu}, {"--menu", 9, 0, 3, j_menu},
{"--checklist", 9, 0, 3, j_checklist}, {"--checklist", 9, 0, 3, j_checklist},
{"--radiolist", 9, 0, 3, j_radiolist}, {"--radiolist", 9, 0, 3, j_radiolist},
{"--yesno", 5,5,1, j_yesno}, {"--yesno", 5, 5, 1, j_yesno},
{"--textbox", 5,5,1, j_textbox}, {"--textbox", 5, 5, 1, j_textbox},
{"--inputbox", 5, 6, 1, j_inputbox}, {"--inputbox", 5, 6, 1, j_inputbox},
{"--msgbox", 5, 5, 1, j_msgbox}, {"--msgbox", 5, 5, 1, j_msgbox},
{"--infobox", 5, 5, 1, j_infobox}, {"--infobox", 5, 5, 1, j_infobox},
...@@ -53,49 +52,48 @@ static struct Mode *modePtr; ...@@ -53,49 +52,48 @@ static struct Mode *modePtr;
#include <locale.h> #include <locale.h>
#endif #endif
int int main(int argc, const char *const *argv)
main (int argc, const char * const * argv)
{ {
int offset = 0, opt_clear = 0, end_common_opts = 0, retval; int offset = 0, opt_clear = 0, end_common_opts = 0, retval;
const char *title = NULL; const char *title = NULL;
#ifdef LOCALE #ifdef LOCALE
(void) setlocale (LC_ALL, ""); (void)setlocale(LC_ALL, "");
#endif #endif
#ifdef TRACE #ifdef TRACE
trace(TRACE_CALLS|TRACE_UPDATE); trace(TRACE_CALLS | TRACE_UPDATE);
#endif #endif
if (argc < 2) { if (argc < 2) {
Usage (argv[0]); Usage(argv[0]);
exit (-1); exit(-1);
} }
while (offset < argc - 1 && !end_common_opts) { /* Common options */ while (offset < argc - 1 && !end_common_opts) { /* Common options */
if (!strcmp (argv[offset + 1], "--title")) { if (!strcmp(argv[offset + 1], "--title")) {
if (argc - offset < 3 || title != NULL) { if (argc - offset < 3 || title != NULL) {
Usage (argv[0]); Usage(argv[0]);
exit (-1); exit(-1);
} else { } else {
title = argv[offset + 2]; title = argv[offset + 2];
offset += 2; offset += 2;
} }
} else if (!strcmp (argv[offset + 1], "--backtitle")) { } else if (!strcmp(argv[offset + 1], "--backtitle")) {
if (backtitle != NULL) { if (backtitle != NULL) {
Usage (argv[0]); Usage(argv[0]);
exit (-1); exit(-1);
} else { } else {
backtitle = argv[offset + 2]; backtitle = argv[offset + 2];
offset += 2; offset += 2;
} }
} else if (!strcmp (argv[offset + 1], "--clear")) { } else if (!strcmp(argv[offset + 1], "--clear")) {
if (opt_clear) { /* Hey, "--clear" can't appear twice! */ if (opt_clear) { /* Hey, "--clear" can't appear twice! */
Usage (argv[0]); Usage(argv[0]);
exit (-1); exit(-1);
} else if (argc == 2) { /* we only want to clear the screen */ } else if (argc == 2) { /* we only want to clear the screen */
init_dialog (); init_dialog();
refresh (); /* init_dialog() will clear the screen for us */ refresh(); /* init_dialog() will clear the screen for us */
end_dialog (); end_dialog();
return 0; return 0;
} else { } else {
opt_clear = 1; opt_clear = 1;
...@@ -106,43 +104,40 @@ main (int argc, const char * const * argv) ...@@ -106,43 +104,40 @@ main (int argc, const char * const * argv)
} }
if (argc - 1 == offset) { /* no more options */ if (argc - 1 == offset) { /* no more options */
Usage (argv[0]); Usage(argv[0]);
exit (-1); exit(-1);
} }
/* use a table to look for the requested mode, to avoid code duplication */ /* use a table to look for the requested mode, to avoid code duplication */
for (modePtr = modes; modePtr->name; modePtr++) /* look for the mode */ for (modePtr = modes; modePtr->name; modePtr++) /* look for the mode */
if (!strcmp (argv[offset + 1], modePtr->name)) if (!strcmp(argv[offset + 1], modePtr->name))
break; break;
if (!modePtr->name) if (!modePtr->name)
Usage (argv[0]); Usage(argv[0]);
if (argc - offset < modePtr->argmin) if (argc - offset < modePtr->argmin)
Usage (argv[0]); Usage(argv[0]);
if (modePtr->argmax && argc - offset > modePtr->argmax) if (modePtr->argmax && argc - offset > modePtr->argmax)
Usage (argv[0]); Usage(argv[0]);
init_dialog();
init_dialog ();
retval = (*(modePtr->jumper)) (title, argc - offset, argv + offset); retval = (*(modePtr->jumper)) (title, argc - offset, argv + offset);
if (opt_clear) { /* clear screen before exit */ if (opt_clear) { /* clear screen before exit */
attr_clear (stdscr, LINES, COLS, screen_attr); attr_clear(stdscr, LINES, COLS, screen_attr);
refresh (); refresh();
} }
end_dialog(); end_dialog();
exit (retval); exit(retval);
} }
/* /*
* Print program usage * Print program usage
*/ */
static void static void Usage(const char *name)
Usage (const char *name)
{ {
fprintf (stderr, "\ fprintf(stderr, "\
\ndialog, by Savio Lam (lam836@cs.cuhk.hk).\ \ndialog, by Savio Lam (lam836@cs.cuhk.hk).\
\n patched by Stuart Herbert (S.Herbert@shef.ac.uk)\ \n patched by Stuart Herbert (S.Herbert@shef.ac.uk)\
\n modified/gutted for use as a Linux kernel config tool by \ \n modified/gutted for use as a Linux kernel config tool by \
...@@ -162,65 +157,56 @@ Usage (const char *name) ...@@ -162,65 +157,56 @@ Usage (const char *name)
\n --inputbox <text> <height> <width> [<init>]\ \n --inputbox <text> <height> <width> [<init>]\
\n --yesno <text> <height> <width>\ \n --yesno <text> <height> <width>\
\n", name, name); \n", name, name);
exit (-1); exit(-1);
} }
/* /*
* These are the program jumpers * These are the program jumpers
*/ */
int int j_menu(const char *t, int ac, const char *const *av)
j_menu (const char *t, int ac, const char * const * av)
{ {
return dialog_menu (t, av[2], atoi (av[3]), atoi (av[4]), return dialog_menu(t, av[2], atoi(av[3]), atoi(av[4]),
atoi (av[5]), av[6], (ac - 6) / 2, av + 7); atoi(av[5]), av[6], (ac - 6) / 2, av + 7);
} }
int int j_checklist(const char *t, int ac, const char *const *av)
j_checklist (const char *t, int ac, const char * const * av)
{ {
return dialog_checklist (t, av[2], atoi (av[3]), atoi (av[4]), return dialog_checklist(t, av[2], atoi(av[3]), atoi(av[4]),
atoi (av[5]), (ac - 6) / 3, av + 6, FLAG_CHECK); atoi(av[5]), (ac - 6) / 3, av + 6, FLAG_CHECK);
} }
int int j_radiolist(const char *t, int ac, const char *const *av)
j_radiolist (const char *t, int ac, const char * const * av)
{ {
return dialog_checklist (t, av[2], atoi (av[3]), atoi (av[4]), return dialog_checklist(t, av[2], atoi(av[3]), atoi(av[4]),
atoi (av[5]), (ac - 6) / 3, av + 6, FLAG_RADIO); atoi(av[5]), (ac - 6) / 3, av + 6, FLAG_RADIO);
} }
int int j_textbox(const char *t, int ac, const char *const *av)
j_textbox (const char *t, int ac, const char * const * av)
{ {
return dialog_textbox (t, av[2], atoi (av[3]), atoi (av[4])); return dialog_textbox(t, av[2], atoi(av[3]), atoi(av[4]));
} }
int int j_yesno(const char *t, int ac, const char *const *av)
j_yesno (const char *t, int ac, const char * const * av)
{ {
return dialog_yesno (t, av[2], atoi (av[3]), atoi (av[4])); return dialog_yesno(t, av[2], atoi(av[3]), atoi(av[4]));
} }
int int j_inputbox(const char *t, int ac, const char *const *av)
j_inputbox (const char *t, int ac, const char * const * av)
{ {
int ret = dialog_inputbox (t, av[2], atoi (av[3]), atoi (av[4]), int ret = dialog_inputbox(t, av[2], atoi(av[3]), atoi(av[4]),
ac == 6 ? av[5] : (char *) NULL); ac == 6 ? av[5] : (char *)NULL);
if (ret == 0) if (ret == 0)
fprintf(stderr, dialog_input_result); fprintf(stderr, dialog_input_result);
return ret; return ret;
} }
int int j_msgbox(const char *t, int ac, const char *const *av)
j_msgbox (const char *t, int ac, const char * const * av)
{ {
return dialog_msgbox (t, av[2], atoi (av[3]), atoi (av[4]), 1); return dialog_msgbox(t, av[2], atoi(av[3]), atoi(av[4]), 1);
} }
int int j_infobox(const char *t, int ac, const char *const *av)
j_infobox (const char *t, int ac, const char * const * av)
{ {
return dialog_msgbox (t, av[2], atoi (av[3]), atoi (av[4]), 0); return dialog_msgbox(t, av[2], atoi(av[3]), atoi(av[4]), 0);
} }
This diff is collapsed.
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
* if the parameter 'pause' is non-zero. * if the parameter 'pause' is non-zero.
*/ */
int int
dialog_msgbox (const char *title, const char *prompt, int height, int width, dialog_msgbox(const char *title, const char *prompt, int height, int width,
int pause) int pause)
{ {
int i, x, y, key = 0; int i, x, y, key = 0;
...@@ -36,50 +36,49 @@ dialog_msgbox (const char *title, const char *prompt, int height, int width, ...@@ -36,50 +36,49 @@ dialog_msgbox (const char *title, const char *prompt, int height, int width,
x = (COLS - width) / 2; x = (COLS - width) / 2;
y = (LINES - height) / 2; y = (LINES - height) / 2;
draw_shadow (stdscr, y, x, height, width); draw_shadow(stdscr, y, x, height, width);
dialog = newwin (height, width, y, x); dialog = newwin(height, width, y, x);
keypad (dialog, TRUE); keypad(dialog, TRUE);
draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr); draw_box(dialog, 0, 0, height, width, dialog_attr, border_attr);
if (title != NULL && strlen(title) >= width-2 ) { if (title != NULL && strlen(title) >= width - 2) {
/* truncate long title -- mec */ /* truncate long title -- mec */
char * title2 = malloc(width-2+1); char *title2 = malloc(width - 2 + 1);
memcpy( title2, title, width-2 ); memcpy(title2, title, width - 2);
title2[width-2] = '\0'; title2[width - 2] = '\0';
title = title2; title = title2;
} }
if (title != NULL) { if (title != NULL) {
wattrset (dialog, title_attr); wattrset(dialog, title_attr);
mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' '); mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' ');
waddstr (dialog, (char *)title); waddstr(dialog, (char *)title);
waddch (dialog, ' '); waddch(dialog, ' ');
} }
wattrset (dialog, dialog_attr); wattrset(dialog, dialog_attr);
print_autowrap (dialog, prompt, width - 2, 1, 2); print_autowrap(dialog, prompt, width - 2, 1, 2);
if (pause) { if (pause) {
wattrset (dialog, border_attr); wattrset(dialog, border_attr);
mvwaddch (dialog, height - 3, 0, ACS_LTEE); mvwaddch(dialog, height - 3, 0, ACS_LTEE);
for (i = 0; i < width - 2; i++) for (i = 0; i < width - 2; i++)
waddch (dialog, ACS_HLINE); waddch(dialog, ACS_HLINE);
wattrset (dialog, dialog_attr); wattrset(dialog, dialog_attr);
waddch (dialog, ACS_RTEE); waddch(dialog, ACS_RTEE);
print_button (dialog, " Ok ", print_button(dialog, " Ok ", height - 2, width / 2 - 4, TRUE);
height - 2, width / 2 - 4, TRUE);
wrefresh (dialog); wrefresh(dialog);
while (key != ESC && key != '\n' && key != ' ' && while (key != ESC && key != '\n' && key != ' ' &&
key != 'O' && key != 'o' && key != 'X' && key != 'x') key != 'O' && key != 'o' && key != 'X' && key != 'x')
key = wgetch (dialog); key = wgetch(dialog);
} else { } else {
key = '\n'; key = '\n';
wrefresh (dialog); wrefresh(dialog);
} }
delwin (dialog); delwin(dialog);
return key == ESC ? -1 : 0; return key == ESC ? -1 : 0;
} }
This diff is collapsed.
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "dialog.h" #include "dialog.h"
/* use colors by default? */ /* use colors by default? */
bool use_colors = 1; bool use_colors = 1;
...@@ -32,8 +31,7 @@ const char *dialog_result; ...@@ -32,8 +31,7 @@ const char *dialog_result;
/* /*
* Attribute values, default is for mono display * Attribute values, default is for mono display
*/ */
chtype attributes[] = chtype attributes[] = {
{
A_NORMAL, /* screen_attr */ A_NORMAL, /* screen_attr */
A_NORMAL, /* shadow_attr */ A_NORMAL, /* shadow_attr */
A_NORMAL, /* dialog_attr */ A_NORMAL, /* dialog_attr */
...@@ -65,14 +63,12 @@ chtype attributes[] = ...@@ -65,14 +63,12 @@ chtype attributes[] =
A_BOLD /* darrow_attr */ A_BOLD /* darrow_attr */
}; };
#include "colors.h" #include "colors.h"
/* /*
* Table of color values * Table of color values
*/ */
int color_table[][3] = int color_table[][3] = {
{
{SCREEN_FG, SCREEN_BG, SCREEN_HL}, {SCREEN_FG, SCREEN_BG, SCREEN_HL},
{SHADOW_FG, SHADOW_BG, SHADOW_HL}, {SHADOW_FG, SHADOW_BG, SHADOW_HL},
{DIALOG_FG, DIALOG_BG, DIALOG_HL}, {DIALOG_FG, DIALOG_BG, DIALOG_HL},
...@@ -81,8 +77,10 @@ int color_table[][3] = ...@@ -81,8 +77,10 @@ int color_table[][3] =
{BUTTON_ACTIVE_FG, BUTTON_ACTIVE_BG, BUTTON_ACTIVE_HL}, {BUTTON_ACTIVE_FG, BUTTON_ACTIVE_BG, BUTTON_ACTIVE_HL},
{BUTTON_INACTIVE_FG, BUTTON_INACTIVE_BG, BUTTON_INACTIVE_HL}, {BUTTON_INACTIVE_FG, BUTTON_INACTIVE_BG, BUTTON_INACTIVE_HL},
{BUTTON_KEY_ACTIVE_FG, BUTTON_KEY_ACTIVE_BG, BUTTON_KEY_ACTIVE_HL}, {BUTTON_KEY_ACTIVE_FG, BUTTON_KEY_ACTIVE_BG, BUTTON_KEY_ACTIVE_HL},
{BUTTON_KEY_INACTIVE_FG, BUTTON_KEY_INACTIVE_BG, BUTTON_KEY_INACTIVE_HL}, {BUTTON_KEY_INACTIVE_FG, BUTTON_KEY_INACTIVE_BG,
{BUTTON_LABEL_ACTIVE_FG, BUTTON_LABEL_ACTIVE_BG, BUTTON_LABEL_ACTIVE_HL}, BUTTON_KEY_INACTIVE_HL},
{BUTTON_LABEL_ACTIVE_FG, BUTTON_LABEL_ACTIVE_BG,
BUTTON_LABEL_ACTIVE_HL},
{BUTTON_LABEL_INACTIVE_FG, BUTTON_LABEL_INACTIVE_BG, {BUTTON_LABEL_INACTIVE_FG, BUTTON_LABEL_INACTIVE_BG,
BUTTON_LABEL_INACTIVE_HL}, BUTTON_LABEL_INACTIVE_HL},
{INPUTBOX_FG, INPUTBOX_BG, INPUTBOX_HL}, {INPUTBOX_FG, INPUTBOX_BG, INPUTBOX_HL},
...@@ -108,113 +106,106 @@ int color_table[][3] = ...@@ -108,113 +106,106 @@ int color_table[][3] =
/* /*
* Set window to attribute 'attr' * Set window to attribute 'attr'
*/ */
void void attr_clear(WINDOW * win, int height, int width, chtype attr)
attr_clear (WINDOW * win, int height, int width, chtype attr)
{ {
int i, j; int i, j;
wattrset (win, attr); wattrset(win, attr);
for (i = 0; i < height; i++) { for (i = 0; i < height; i++) {
wmove (win, i, 0); wmove(win, i, 0);
for (j = 0; j < width; j++) for (j = 0; j < width; j++)
waddch (win, ' '); waddch(win, ' ');
} }
touchwin (win); touchwin(win);
} }
void dialog_clear (void) void dialog_clear(void)
{ {
attr_clear (stdscr, LINES, COLS, screen_attr); attr_clear(stdscr, LINES, COLS, screen_attr);
/* Display background title if it exists ... - SLH */ /* Display background title if it exists ... - SLH */
if (backtitle != NULL) { if (backtitle != NULL) {
int i; int i;
wattrset (stdscr, screen_attr); wattrset(stdscr, screen_attr);
mvwaddstr (stdscr, 0, 1, (char *)backtitle); mvwaddstr(stdscr, 0, 1, (char *)backtitle);
wmove (stdscr, 1, 1); wmove(stdscr, 1, 1);
for (i = 1; i < COLS - 1; i++) for (i = 1; i < COLS - 1; i++)
waddch (stdscr, ACS_HLINE); waddch(stdscr, ACS_HLINE);
} }
wnoutrefresh (stdscr); wnoutrefresh(stdscr);
} }
/* /*
* Do some initialization for dialog * Do some initialization for dialog
*/ */
void void init_dialog(void)
init_dialog (void)
{ {
initscr (); /* Init curses */ initscr(); /* Init curses */
keypad (stdscr, TRUE); keypad(stdscr, TRUE);
cbreak (); cbreak();
noecho (); noecho();
if (use_colors) /* Set up colors */ if (use_colors) /* Set up colors */
color_setup (); color_setup();
dialog_clear();
dialog_clear ();
} }
/* /*
* Setup for color display * Setup for color display
*/ */
void void color_setup(void)
color_setup (void)
{ {
int i; int i;
if (has_colors ()) { /* Terminal supports color? */ if (has_colors()) { /* Terminal supports color? */
start_color (); start_color();
/* Initialize color pairs */ /* Initialize color pairs */
for (i = 0; i < ATTRIBUTE_COUNT; i++) for (i = 0; i < ATTRIBUTE_COUNT; i++)
init_pair (i + 1, color_table[i][0], color_table[i][1]); init_pair(i + 1, color_table[i][0], color_table[i][1]);
/* Setup color attributes */ /* Setup color attributes */
for (i = 0; i < ATTRIBUTE_COUNT; i++) for (i = 0; i < ATTRIBUTE_COUNT; i++)
attributes[i] = C_ATTR (color_table[i][2], i + 1); attributes[i] = C_ATTR(color_table[i][2], i + 1);
} }
} }
/* /*
* End using dialog functions. * End using dialog functions.
*/ */
void void end_dialog(void)
end_dialog (void)
{ {
endwin (); endwin();
} }
/* /*
* Print a string of text in a window, automatically wrap around to the * Print a string of text in a window, automatically wrap around to the
* next line if the string is too long to fit on one line. Newline * next line if the string is too long to fit on one line. Newline
* characters '\n' are replaced by spaces. We start on a new line * characters '\n' are replaced by spaces. We start on a new line
* if there is no room for at least 4 nonblanks following a double-space. * if there is no room for at least 4 nonblanks following a double-space.
*/ */
void void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x)
{ {
int newl, cur_x, cur_y; int newl, cur_x, cur_y;
int i, prompt_len, room, wlen; int i, prompt_len, room, wlen;
char tempstr[MAX_LEN + 1], *word, *sp, *sp2; char tempstr[MAX_LEN + 1], *word, *sp, *sp2;
strcpy (tempstr, prompt); strcpy(tempstr, prompt);
prompt_len = strlen(tempstr); prompt_len = strlen(tempstr);
/* /*
* Remove newlines * Remove newlines
*/ */
for(i=0; i<prompt_len; i++) { for (i = 0; i < prompt_len; i++) {
if(tempstr[i] == '\n') tempstr[i] = ' '; if (tempstr[i] == '\n')
tempstr[i] = ' ';
} }
if (prompt_len <= width - x * 2) { /* If prompt is short */ if (prompt_len <= width - x * 2) { /* If prompt is short */
wmove (win, y, (width - prompt_len) / 2); wmove(win, y, (width - prompt_len) / 2);
waddstr (win, tempstr); waddstr(win, tempstr);
} else { } else {
cur_x = x; cur_x = x;
cur_y = y; cur_y = y;
...@@ -231,18 +222,20 @@ print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x) ...@@ -231,18 +222,20 @@ print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x)
room = width - cur_x; room = width - cur_x;
wlen = strlen(word); wlen = strlen(word);
if (wlen > room || if (wlen > room ||
(newl && wlen < 4 && sp && wlen+1+strlen(sp) > room (newl && wlen < 4 && sp
&& (!(sp2 = index(sp, ' ')) || wlen+1+(sp2-sp) > room))) { && wlen + 1 + strlen(sp) > room
&& (!(sp2 = index(sp, ' '))
|| wlen + 1 + (sp2 - sp) > room))) {
cur_y++; cur_y++;
cur_x = x; cur_x = x;
} }
wmove (win, cur_y, cur_x); wmove(win, cur_y, cur_x);
waddstr (win, word); waddstr(win, word);
getyx (win, cur_y, cur_x); getyx(win, cur_y, cur_x);
cur_x++; cur_x++;
if (sp && *sp == ' ') { if (sp && *sp == ' ') {
cur_x++; /* double space */ cur_x++; /* double space */
while (*++sp == ' '); while (*++sp == ' ') ;
newl = 1; newl = 1;
} else } else
newl = 0; newl = 0;
...@@ -254,62 +247,61 @@ print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x) ...@@ -254,62 +247,61 @@ print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x)
/* /*
* Print a button * Print a button
*/ */
void void print_button(WINDOW * win, const char *label, int y, int x, int selected)
print_button (WINDOW * win, const char *label, int y, int x, int selected)
{ {
int i, temp; int i, temp;
wmove (win, y, x); wmove(win, y, x);
wattrset (win, selected ? button_active_attr : button_inactive_attr); wattrset(win, selected ? button_active_attr : button_inactive_attr);
waddstr (win, "<"); waddstr(win, "<");
temp = strspn (label, " "); temp = strspn(label, " ");
label += temp; label += temp;
wattrset (win, selected ? button_label_active_attr wattrset(win, selected ? button_label_active_attr
: button_label_inactive_attr); : button_label_inactive_attr);
for (i = 0; i < temp; i++) for (i = 0; i < temp; i++)
waddch (win, ' '); waddch(win, ' ');
wattrset (win, selected ? button_key_active_attr wattrset(win, selected ? button_key_active_attr
: button_key_inactive_attr); : button_key_inactive_attr);
waddch (win, label[0]); waddch(win, label[0]);
wattrset (win, selected ? button_label_active_attr wattrset(win, selected ? button_label_active_attr
: button_label_inactive_attr); : button_label_inactive_attr);
waddstr (win, (char *)label + 1); waddstr(win, (char *)label + 1);
wattrset (win, selected ? button_active_attr : button_inactive_attr); wattrset(win, selected ? button_active_attr : button_inactive_attr);
waddstr (win, ">"); waddstr(win, ">");
wmove (win, y, x + temp + 1); wmove(win, y, x + temp + 1);
} }
/* /*
* Draw a rectangular box with line drawing characters * Draw a rectangular box with line drawing characters
*/ */
void void
draw_box (WINDOW * win, int y, int x, int height, int width, draw_box(WINDOW * win, int y, int x, int height, int width,
chtype box, chtype border) chtype box, chtype border)
{ {
int i, j; int i, j;
wattrset (win, 0); wattrset(win, 0);
for (i = 0; i < height; i++) { for (i = 0; i < height; i++) {
wmove (win, y + i, x); wmove(win, y + i, x);
for (j = 0; j < width; j++) for (j = 0; j < width; j++)
if (!i && !j) if (!i && !j)
waddch (win, border | ACS_ULCORNER); waddch(win, border | ACS_ULCORNER);
else if (i == height - 1 && !j) else if (i == height - 1 && !j)
waddch (win, border | ACS_LLCORNER); waddch(win, border | ACS_LLCORNER);
else if (!i && j == width - 1) else if (!i && j == width - 1)
waddch (win, box | ACS_URCORNER); waddch(win, box | ACS_URCORNER);
else if (i == height - 1 && j == width - 1) else if (i == height - 1 && j == width - 1)
waddch (win, box | ACS_LRCORNER); waddch(win, box | ACS_LRCORNER);
else if (!i) else if (!i)
waddch (win, border | ACS_HLINE); waddch(win, border | ACS_HLINE);
else if (i == height - 1) else if (i == height - 1)
waddch (win, box | ACS_HLINE); waddch(win, box | ACS_HLINE);
else if (!j) else if (!j)
waddch (win, border | ACS_VLINE); waddch(win, border | ACS_VLINE);
else if (j == width - 1) else if (j == width - 1)
waddch (win, box | ACS_VLINE); waddch(win, box | ACS_VLINE);
else else
waddch (win, box | ' '); waddch(win, box | ' ');
} }
} }
...@@ -317,41 +309,40 @@ draw_box (WINDOW * win, int y, int x, int height, int width, ...@@ -317,41 +309,40 @@ draw_box (WINDOW * win, int y, int x, int height, int width,
* Draw shadows along the right and bottom edge to give a more 3D look * Draw shadows along the right and bottom edge to give a more 3D look
* to the boxes * to the boxes
*/ */
void void draw_shadow(WINDOW * win, int y, int x, int height, int width)
draw_shadow (WINDOW * win, int y, int x, int height, int width)
{ {
int i; int i;
if (has_colors ()) { /* Whether terminal supports color? */ if (has_colors()) { /* Whether terminal supports color? */
wattrset (win, shadow_attr); wattrset(win, shadow_attr);
wmove (win, y + height, x + 2); wmove(win, y + height, x + 2);
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
waddch (win, winch (win) & A_CHARTEXT); waddch(win, winch(win) & A_CHARTEXT);
for (i = y + 1; i < y + height + 1; i++) { for (i = y + 1; i < y + height + 1; i++) {
wmove (win, i, x + width); wmove(win, i, x + width);
waddch (win, winch (win) & A_CHARTEXT); waddch(win, winch(win) & A_CHARTEXT);
waddch (win, winch (win) & A_CHARTEXT); waddch(win, winch(win) & A_CHARTEXT);
} }
wnoutrefresh (win); wnoutrefresh(win);
} }
} }
/* /*
* Return the position of the first alphabetic character in a string. * Return the position of the first alphabetic character in a string.
*/ */
int int first_alpha(const char *string, const char *exempt)
first_alpha(const char *string, const char *exempt)
{ {
int i, in_paren=0, c; int i, in_paren = 0, c;
for (i = 0; i < strlen(string); i++) { for (i = 0; i < strlen(string); i++) {
c = tolower(string[i]); c = tolower(string[i]);
if (strchr("<[(", c)) ++in_paren; if (strchr("<[(", c))
if (strchr(">])", c) && in_paren > 0) --in_paren; ++in_paren;
if (strchr(">])", c) && in_paren > 0)
--in_paren;
if ((! in_paren) && isalpha(c) && if ((!in_paren) && isalpha(c) && strchr(exempt, c) == 0)
strchr(exempt, c) == 0)
return i; return i;
} }
......
...@@ -24,24 +24,22 @@ ...@@ -24,24 +24,22 @@
/* /*
* Display termination buttons * Display termination buttons
*/ */
static void static void print_buttons(WINDOW * dialog, int height, int width, int selected)
print_buttons(WINDOW *dialog, int height, int width, int selected)
{ {
int x = width / 2 - 10; int x = width / 2 - 10;
int y = height - 2; int y = height - 2;
print_button (dialog, " Yes ", y, x, selected == 0); print_button(dialog, " Yes ", y, x, selected == 0);
print_button (dialog, " No ", y, x + 13, selected == 1); print_button(dialog, " No ", y, x + 13, selected == 1);
wmove(dialog, y, x+1 + 13*selected ); wmove(dialog, y, x + 1 + 13 * selected);
wrefresh (dialog); wrefresh(dialog);
} }
/* /*
* Display a dialog box with two buttons - Yes and No * Display a dialog box with two buttons - Yes and No
*/ */
int int dialog_yesno(const char *title, const char *prompt, int height, int width)
dialog_yesno (const char *title, const char *prompt, int height, int width)
{ {
int i, x, y, key = 0, button = 0; int i, x, y, key = 0, button = 0;
WINDOW *dialog; WINDOW *dialog;
...@@ -50,49 +48,49 @@ dialog_yesno (const char *title, const char *prompt, int height, int width) ...@@ -50,49 +48,49 @@ dialog_yesno (const char *title, const char *prompt, int height, int width)
x = (COLS - width) / 2; x = (COLS - width) / 2;
y = (LINES - height) / 2; y = (LINES - height) / 2;
draw_shadow (stdscr, y, x, height, width); draw_shadow(stdscr, y, x, height, width);
dialog = newwin (height, width, y, x); dialog = newwin(height, width, y, x);
keypad (dialog, TRUE); keypad(dialog, TRUE);
draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr); draw_box(dialog, 0, 0, height, width, dialog_attr, border_attr);
wattrset (dialog, border_attr); wattrset(dialog, border_attr);
mvwaddch (dialog, height-3, 0, ACS_LTEE); mvwaddch(dialog, height - 3, 0, ACS_LTEE);
for (i = 0; i < width - 2; i++) for (i = 0; i < width - 2; i++)
waddch (dialog, ACS_HLINE); waddch(dialog, ACS_HLINE);
wattrset (dialog, dialog_attr); wattrset(dialog, dialog_attr);
waddch (dialog, ACS_RTEE); waddch(dialog, ACS_RTEE);
if (title != NULL && strlen(title) >= width-2 ) { if (title != NULL && strlen(title) >= width - 2) {
/* truncate long title -- mec */ /* truncate long title -- mec */
char * title2 = malloc(width-2+1); char *title2 = malloc(width - 2 + 1);
memcpy( title2, title, width-2 ); memcpy(title2, title, width - 2);
title2[width-2] = '\0'; title2[width - 2] = '\0';
title = title2; title = title2;
} }
if (title != NULL) { if (title != NULL) {
wattrset (dialog, title_attr); wattrset(dialog, title_attr);
mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' '); mvwaddch(dialog, 0, (width - strlen(title)) / 2 - 1, ' ');
waddstr (dialog, (char *)title); waddstr(dialog, (char *)title);
waddch (dialog, ' '); waddch(dialog, ' ');
} }
wattrset (dialog, dialog_attr); wattrset(dialog, dialog_attr);
print_autowrap (dialog, prompt, width - 2, 1, 3); print_autowrap(dialog, prompt, width - 2, 1, 3);
print_buttons(dialog, height, width, 0); print_buttons(dialog, height, width, 0);
while (key != ESC) { while (key != ESC) {
key = wgetch (dialog); key = wgetch(dialog);
switch (key) { switch (key) {
case 'Y': case 'Y':
case 'y': case 'y':
delwin (dialog); delwin(dialog);
return 0; return 0;
case 'N': case 'N':
case 'n': case 'n':
delwin (dialog); delwin(dialog);
return 1; return 1;
case TAB: case TAB:
...@@ -102,17 +100,17 @@ dialog_yesno (const char *title, const char *prompt, int height, int width) ...@@ -102,17 +100,17 @@ dialog_yesno (const char *title, const char *prompt, int height, int width)
? 1 : (button > 1 ? 0 : button); ? 1 : (button > 1 ? 0 : button);
print_buttons(dialog, height, width, button); print_buttons(dialog, height, width, button);
wrefresh (dialog); wrefresh(dialog);
break; break;
case ' ': case ' ':
case '\n': case '\n':
delwin (dialog); delwin(dialog);
return button; return button;
case ESC: case ESC:
break; break;
} }
} }
delwin (dialog); delwin(dialog);
return -1; /* ESC pressed */ return -1; /* ESC pressed */
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment