diff options
| author | Dirk Gouders <gouders@et.bocholt.fh-gelsenkirchen.de> | 2012-08-06 10:48:23 -0400 |
|---|---|---|
| committer | Michal Marek <mmarek@suse.cz> | 2012-08-30 08:47:34 -0400 |
| commit | 3eb95c84ee594d4a4e5a8c37b01464cff4762c96 (patch) | |
| tree | 9a23135c58138bbe871258bee71d41c60caf1868 /scripts/kconfig | |
| parent | 0d7614f09c1ebdbaa1599a5aba7593f147bf96ee (diff) | |
kconfig/mconf.c: revision of curses initialization.
Since commit d0e1e09568 initscr() is called twice in mconf.
Do it only in init_dialog() in util.c and there also save the
cursor position for the signal handler in mconf.c.
Signed-off-by: Dirk Gouders <gouders@et.bocholt.fh-gelsenkirchen.de>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'scripts/kconfig')
| -rw-r--r-- | scripts/kconfig/lxdialog/dialog.h | 1 | ||||
| -rw-r--r-- | scripts/kconfig/lxdialog/util.c | 7 | ||||
| -rw-r--r-- | scripts/kconfig/mconf.c | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/scripts/kconfig/lxdialog/dialog.h b/scripts/kconfig/lxdialog/dialog.h index b5211fce0d94..43a58ec09cd4 100644 --- a/scripts/kconfig/lxdialog/dialog.h +++ b/scripts/kconfig/lxdialog/dialog.h | |||
| @@ -144,6 +144,7 @@ struct dialog_info { | |||
| 144 | */ | 144 | */ |
| 145 | extern struct dialog_info dlg; | 145 | extern struct dialog_info dlg; |
| 146 | extern char dialog_input_result[]; | 146 | extern char dialog_input_result[]; |
| 147 | extern int saved_x, saved_y; /* Needed in signal handler in mconf.c */ | ||
| 147 | 148 | ||
| 148 | /* | 149 | /* |
| 149 | * Function prototypes | 150 | * Function prototypes |
diff --git a/scripts/kconfig/lxdialog/util.c b/scripts/kconfig/lxdialog/util.c index f2375ad7ebc9..109d53117d22 100644 --- a/scripts/kconfig/lxdialog/util.c +++ b/scripts/kconfig/lxdialog/util.c | |||
| @@ -23,6 +23,9 @@ | |||
| 23 | 23 | ||
| 24 | #include "dialog.h" | 24 | #include "dialog.h" |
| 25 | 25 | ||
| 26 | /* Needed in signal handler in mconf.c */ | ||
| 27 | int saved_x, saved_y; | ||
| 28 | |||
| 26 | struct dialog_info dlg; | 29 | struct dialog_info dlg; |
| 27 | 30 | ||
| 28 | static void set_mono_theme(void) | 31 | static void set_mono_theme(void) |
| @@ -273,6 +276,10 @@ int init_dialog(const char *backtitle) | |||
| 273 | int height, width; | 276 | int height, width; |
| 274 | 277 | ||
| 275 | initscr(); /* Init curses */ | 278 | initscr(); /* Init curses */ |
| 279 | |||
| 280 | /* Get current cursor position for signal handler in mconf.c */ | ||
| 281 | getyx(stdscr, saved_y, saved_x); | ||
| 282 | |||
| 276 | getmaxyx(stdscr, height, width); | 283 | getmaxyx(stdscr, height, width); |
| 277 | if (height < 19 || width < 80) { | 284 | if (height < 19 || width < 80) { |
| 278 | endwin(); | 285 | endwin(); |
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index f584a281bb4c..d856d40869e6 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c | |||
| @@ -273,7 +273,6 @@ static struct menu *current_menu; | |||
| 273 | static int child_count; | 273 | static int child_count; |
| 274 | static int single_menu_mode; | 274 | static int single_menu_mode; |
| 275 | static int show_all_options; | 275 | static int show_all_options; |
| 276 | static int saved_x, saved_y; | ||
| 277 | 276 | ||
| 278 | static void conf(struct menu *menu); | 277 | static void conf(struct menu *menu); |
| 279 | static void conf_choice(struct menu *menu); | 278 | static void conf_choice(struct menu *menu); |
| @@ -862,9 +861,6 @@ int main(int ac, char **av) | |||
| 862 | single_menu_mode = 1; | 861 | single_menu_mode = 1; |
| 863 | } | 862 | } |
| 864 | 863 | ||
| 865 | initscr(); | ||
| 866 | |||
| 867 | getyx(stdscr, saved_y, saved_x); | ||
| 868 | if (init_dialog(NULL)) { | 864 | if (init_dialog(NULL)) { |
| 869 | fprintf(stderr, N_("Your display is too small to run Menuconfig!\n")); | 865 | fprintf(stderr, N_("Your display is too small to run Menuconfig!\n")); |
| 870 | fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n")); | 866 | fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n")); |
