summaryrefslogtreecommitdiff
path: root/kconfig/lxdialog/util.c
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-10-17 12:47:53 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-10-17 12:47:53 (GMT)
commitf31bcd0026c2a3d5a38d3f16418876efcf7cd031 (patch)
treecd294553e433dde5ecceee767fcbf002f531aef1 /kconfig/lxdialog/util.c
parentc54f4302cdd3f4b5e5fde5ab63001f263e0664a3 (diff)
Update the kconfig stuff to match the one in the linux-2.6.27 version.
/trunk/kconfig/zconf.hash.c | 225 110 115 0 +++---- /trunk/kconfig/lkc_proto.h | 4 3 1 0 + /trunk/kconfig/mconf.c | 217 110 107 0 +++--- /trunk/kconfig/menu.c | 86 60 26 0 ++- /trunk/kconfig/symbol.c | 212 156 56 0 ++++-- /trunk/kconfig/kconfig.mk | 24 9 15 0 - /trunk/kconfig/lex.zconf.c | 97 80 17 0 ++- /trunk/kconfig/util.c | 38 30 8 0 + /trunk/kconfig/lkc.h | 22 18 4 0 + /trunk/kconfig/expr.c | 32 19 13 0 + /trunk/kconfig/confdata.c | 254 172 82 0 +++++--- /trunk/kconfig/lxdialog/dialog.h | 12 9 3 0 + /trunk/kconfig/lxdialog/inputbox.c | 6 3 3 0 /trunk/kconfig/lxdialog/checklist.c | 4 2 2 0 /trunk/kconfig/lxdialog/menubox.c | 6 3 3 0 /trunk/kconfig/lxdialog/textbox.c | 2 1 1 0 /trunk/kconfig/lxdialog/util.c | 47 30 17 0 + /trunk/kconfig/lxdialog/yesno.c | 4 2 2 0 /trunk/kconfig/expr.h | 20 10 10 0 /trunk/kconfig/zconf.tab.c | 1441 793 648 0 ++++++++++++++++++++++++------------------- /trunk/kconfig/conf.c | 276 124 152 0 ++++---- /trunk/kconfig/check-gettext.sh | 14 14 0 0 + /trunk/ct-ng.in | 2 1 1 0 23 files changed, 1759 insertions(+), 1286 deletions(-)
Diffstat (limited to 'kconfig/lxdialog/util.c')
-rw-r--r--kconfig/lxdialog/util.c47
1 files changed, 30 insertions, 17 deletions
diff --git a/kconfig/lxdialog/util.c b/kconfig/lxdialog/util.c
index ebc781b..86d95cc 100644
--- a/kconfig/lxdialog/util.c
+++ b/kconfig/lxdialog/util.c
@@ -221,16 +221,14 @@ static void init_dialog_colors(void)
*/
static void color_setup(const char *theme)
{
- if (set_theme(theme)) {
- if (has_colors()) { /* Terminal supports color? */
- start_color();
- init_dialog_colors();
- }
- }
- else
- {
+ int use_color;
+
+ use_color = set_theme(theme);
+ if (use_color && has_colors()) {
+ start_color();
+ init_dialog_colors();
+ } else
set_mono_theme();
- }
}
/*
@@ -268,26 +266,41 @@ void dialog_clear(void)
/*
* Do some initialization for dialog
*/
-void init_dialog(const char *backtitle)
+int init_dialog(const char *backtitle)
{
+ int height, width;
+
+ initscr(); /* Init curses */
+ getmaxyx(stdscr, height, width);
+ if (height < 19 || width < 80) {
+ endwin();
+ return -ERRDISPLAYTOOSMALL;
+ }
+
dlg.backtitle = backtitle;
color_setup(getenv("MENUCONFIG_COLOR"));
-}
-void reset_dialog(void)
-{
- initscr(); /* Init curses */
keypad(stdscr, TRUE);
cbreak();
noecho();
dialog_clear();
+
+ return 0;
+}
+
+void set_dialog_backtitle(const char *backtitle)
+{
+ dlg.backtitle = backtitle;
}
/*
* End using dialog functions.
*/
-void end_dialog(void)
+void end_dialog(int x, int y)
{
+ /* move cursor back to original position */
+ move(y, x);
+ refresh();
endwin();
}
@@ -338,7 +351,7 @@ void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
newl = 1;
word = tempstr;
while (word && *word) {
- sp = index(word, ' ');
+ sp = strchr(word, ' ');
if (sp)
*sp++ = 0;
@@ -350,7 +363,7 @@ void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
if (wlen > room ||
(newl && wlen < 4 && sp
&& wlen + 1 + strlen(sp) > room
- && (!(sp2 = index(sp, ' '))
+ && (!(sp2 = strchr(sp, ' '))
|| wlen + 1 + (sp2 - sp) > room))) {
cur_y++;
cur_x = x;