summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--scripts/kconfig/mconf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index b9cf25f..0967471 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -1,219 +1,219 @@
1/* 1/*
2 * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> 2 * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
3 * Released under the terms of the GNU GPL v2.0. 3 * Released under the terms of the GNU GPL v2.0.
4 * 4 *
5 * Introduced single menu mode (show all sub-menus in one large tree). 5 * Introduced single menu mode (show all sub-menus in one large tree).
6 * 2002-11-06 Petr Baudis <pasky@ucw.cz> 6 * 2002-11-06 Petr Baudis <pasky@ucw.cz>
7 */ 7 */
8 8
9#include <sys/ioctl.h> 9#include <sys/ioctl.h>
10#include <sys/wait.h> 10#include <sys/wait.h>
11#include <ctype.h> 11#include <ctype.h>
12#include <errno.h> 12#include <errno.h>
13#include <fcntl.h> 13#include <fcntl.h>
14#include <limits.h> 14#include <limits.h>
15#include <signal.h> 15#include <signal.h>
16#include <stdarg.h> 16#include <stdarg.h>
17#include <stdlib.h> 17#include <stdlib.h>
18#include <string.h> 18#include <string.h>
19#include <termios.h> 19#include <termios.h>
20#include <unistd.h> 20#include <unistd.h>
21 21
22#define LKC_DIRECT_LINK 22#define LKC_DIRECT_LINK
23#include "lkc.h" 23#include "lkc.h"
24 24
25static char menu_backtitle[128]; 25static char menu_backtitle[128];
26static const char menu_instructions[] = 26static const char menu_instructions[] =
27 "Arrow keys navigate the menu. " 27 "Arrow keys navigate the menu. "
28 "<Enter> selects submenus --->. " 28 "<Enter> selects submenus --->. "
29 "Highlighted letters are hotkeys. " 29 "Highlighted letters are hotkeys. "
30 "Pressing <Y> includes, <N> excludes, <M> modularizes features. " 30 "Pressing <Y> includes, <N> excludes, <M> modularizes features. "
31 "Press <Esc><Esc> to exit, <?> for Help. " 31 "Press <Esc><Esc> to exit, <?> for Help. "
32 "Legend: [*] built-in [ ] excluded <M> module < > module capable", 32 "Legend: [*] built-in [ ] excluded <M> module < > module capable",
33radiolist_instructions[] = 33radiolist_instructions[] =
34 "Use the arrow keys to navigate this window or " 34 "Use the arrow keys to navigate this window or "
35 "press the hotkey of the item you wish to select " 35 "press the hotkey of the item you wish to select "
36 "followed by the <SPACE BAR>. " 36 "followed by the <SPACE BAR>. "
37 "Press <?> for additional information about this option.", 37 "Press <?> for additional information about this option.",
38inputbox_instructions_int[] = 38inputbox_instructions_int[] =
39 "Please enter a decimal value. " 39 "Please enter a decimal value. "
40 "Fractions will not be accepted. " 40 "Fractions will not be accepted. "
41 "Use the <TAB> key to move from the input field to the buttons below it.", 41 "Use the <TAB> key to move from the input field to the buttons below it.",
42inputbox_instructions_hex[] = 42inputbox_instructions_hex[] =
43 "Please enter a hexadecimal value. " 43 "Please enter a hexadecimal value. "
44 "Use the <TAB> key to move from the input field to the buttons below it.", 44 "Use the <TAB> key to move from the input field to the buttons below it.",
45inputbox_instructions_string[] = 45inputbox_instructions_string[] =
46 "Please enter a string value. " 46 "Please enter a string value. "
47 "Use the <TAB> key to move from the input field to the buttons below it.", 47 "Use the <TAB> key to move from the input field to the buttons below it.",
48setmod_text[] = 48setmod_text[] =
49 "This feature depends on another which has been configured as a module.\n" 49 "This feature depends on another which has been configured as a module.\n"
50 "As a result, this feature will be built as a module.", 50 "As a result, this feature will be built as a module.",
51nohelp_text[] = 51nohelp_text[] =
52 "There is no help available for this option.\n", 52 "There is no help available for this option.\n",
53load_config_text[] = 53load_config_text[] =
54 "Enter the name of the configuration file you wish to load. " 54 "Enter the name of the configuration file you wish to load. "
55 "Accept the name shown to restore the configuration you " 55 "Accept the name shown to restore the configuration you "
56 "last retrieved. Leave blank to abort.", 56 "last retrieved. Leave blank to abort.",
57load_config_help[] = 57load_config_help[] =
58 "\n" 58 "\n"
59 "For various reasons, one may wish to keep several different \n" 59 "For various reasons, one may wish to keep several different \n"
60 "configurations available on a single machine.\n" 60 "configurations available on a single machine.\n"
61 "\n" 61 "\n"
62 "If you have saved a previous configuration in a file other than the\n" 62 "If you have saved a previous configuration in a file other than the\n"
63 "default, entering the name of the file here will allow you\n" 63 "default, entering the name of the file here will allow you\n"
64 "to modify that configuration.\n" 64 "to modify that configuration.\n"
65 "\n" 65 "\n"
66 "If you are uncertain, then you have probably never used alternate\n" 66 "If you are uncertain, then you have probably never used alternate\n"
67 "configuration files. You should therefor leave this blank to abort.\n", 67 "configuration files. You should therefor leave this blank to abort.\n",
68save_config_text[] = 68save_config_text[] =
69 "Enter a filename to which this configuration should be saved " 69 "Enter a filename to which this configuration should be saved "
70 "as an alternate. Leave blank to abort.", 70 "as an alternate. Leave blank to abort.",
71save_config_help[] = 71save_config_help[] =
72 "\n" 72 "\n"
73 "For various reasons, one may wish to keep different\n" 73 "For various reasons, one may wish to keep different\n"
74 "configurations available on a single machine.\n" 74 "configurations available on a single machine.\n"
75 "\n" 75 "\n"
76 "Entering a file name here will allow you to later retrieve, modify\n" 76 "Entering a file name here will allow you to later retrieve, modify\n"
77 "and use the current configuration as an alternate to whatever\n" 77 "and use the current configuration as an alternate to whatever\n"
78 "configuration options you have selected at that time.\n" 78 "configuration options you have selected at that time.\n"
79 "\n" 79 "\n"
80 "If you are uncertain what all this means then you should probably\n" 80 "If you are uncertain what all this means then you should probably\n"
81 "leave this blank.\n" 81 "leave this blank.\n"
82; 82;
83 83
84static char buf[4096], *bufptr = buf; 84static char buf[4096], *bufptr = buf;
85static char input_buf[4096]; 85static char input_buf[4096];
86static char filename[PATH_MAX+1] = ".config"; 86static char filename[PATH_MAX+1] = ".config";
87static char *args[1024], **argptr = args; 87static char *args[1024], **argptr = args;
88static int indent = 0; 88static int indent = 0;
89static struct termios ios_org; 89static struct termios ios_org;
90static int rows, cols; 90static int rows, cols;
91static struct menu *current_menu; 91struct menu *current_menu;
92static int child_count; 92static int child_count;
93static int do_resize; 93static int do_resize;
94static int single_menu_mode; 94static int single_menu_mode;
95 95
96static void conf(struct menu *menu); 96static void conf(struct menu *menu);
97static void conf_choice(struct menu *menu); 97static void conf_choice(struct menu *menu);
98static void conf_string(struct menu *menu); 98static void conf_string(struct menu *menu);
99static void conf_load(void); 99static void conf_load(void);
100static void conf_save(void); 100static void conf_save(void);
101static void show_textbox(const char *title, const char *text, int r, int c); 101static void show_textbox(const char *title, const char *text, int r, int c);
102static void show_helptext(const char *title, const char *text); 102static void show_helptext(const char *title, const char *text);
103static void show_help(struct menu *menu); 103static void show_help(struct menu *menu);
104static void show_readme(void); 104static void show_readme(void);
105 105
106static void cprint_init(void); 106static void cprint_init(void);
107static int cprint1(const char *fmt, ...); 107static int cprint1(const char *fmt, ...);
108static void cprint_done(void); 108static void cprint_done(void);
109static int cprint(const char *fmt, ...); 109static int cprint(const char *fmt, ...);
110 110
111static void init_wsize(void) 111static void init_wsize(void)
112{ 112{
113 struct winsize ws; 113 struct winsize ws;
114 char *env; 114 char *env;
115 115
116 if (ioctl(1, TIOCGWINSZ, &ws) == -1) { 116 if (ioctl(1, TIOCGWINSZ, &ws) == -1) {
117 rows = 24; 117 rows = 24;
118 cols = 80; 118 cols = 80;
119 } else { 119 } else {
120 rows = ws.ws_row; 120 rows = ws.ws_row;
121 cols = ws.ws_col; 121 cols = ws.ws_col;
122 if (!rows) { 122 if (!rows) {
123 env = getenv("LINES"); 123 env = getenv("LINES");
124 if (env) 124 if (env)
125 rows = atoi(env); 125 rows = atoi(env);
126 if (!rows) 126 if (!rows)
127 rows = 24; 127 rows = 24;
128 } 128 }
129 if (!cols) { 129 if (!cols) {
130 env = getenv("COLUMNS"); 130 env = getenv("COLUMNS");
131 if (env) 131 if (env)
132 cols = atoi(env); 132 cols = atoi(env);
133 if (!cols) 133 if (!cols)
134 cols = 80; 134 cols = 80;
135 } 135 }
136 } 136 }
137 137
138 if (rows < 19 || cols < 80) { 138 if (rows < 19 || cols < 80) {
139 fprintf(stderr, "Your display is too small to run Menuconfig!\n"); 139 fprintf(stderr, "Your display is too small to run Menuconfig!\n");
140 fprintf(stderr, "It must be at least 19 lines by 80 columns.\n"); 140 fprintf(stderr, "It must be at least 19 lines by 80 columns.\n");
141 exit(1); 141 exit(1);
142 } 142 }
143 143
144 rows -= 4; 144 rows -= 4;
145 cols -= 5; 145 cols -= 5;
146} 146}
147 147
148static void cprint_init(void) 148static void cprint_init(void)
149{ 149{
150 char *env = getenv("LXDIALOG"); 150 char *env = getenv("LXDIALOG");
151 bufptr = buf; 151 bufptr = buf;
152 argptr = args; 152 argptr = args;
153 memset(args, 0, sizeof(args)); 153 memset(args, 0, sizeof(args));
154 indent = 0; 154 indent = 0;
155 child_count = 0; 155 child_count = 0;
156 if(env != NULL) { 156 if(env != NULL) {
157 cprint(env); 157 cprint(env);
158 } else { 158 } else {
159 cprint("./scripts/lxdialog/lxdialog"); 159 cprint("./scripts/lxdialog/lxdialog");
160 } 160 }
161 cprint("--backtitle"); 161 cprint("--backtitle");
162 cprint(menu_backtitle); 162 cprint(menu_backtitle);
163} 163}
164 164
165static int cprint1(const char *fmt, ...) 165static int cprint1(const char *fmt, ...)
166{ 166{
167 va_list ap; 167 va_list ap;
168 int res; 168 int res;
169 169
170 if (!*argptr) 170 if (!*argptr)
171 *argptr = bufptr; 171 *argptr = bufptr;
172 va_start(ap, fmt); 172 va_start(ap, fmt);
173 res = vsprintf(bufptr, fmt, ap); 173 res = vsprintf(bufptr, fmt, ap);
174 va_end(ap); 174 va_end(ap);
175 bufptr += res; 175 bufptr += res;
176 176
177 return res; 177 return res;
178} 178}
179 179
180static void cprint_done(void) 180static void cprint_done(void)
181{ 181{
182 *bufptr++ = 0; 182 *bufptr++ = 0;
183 argptr++; 183 argptr++;
184} 184}
185 185
186static int cprint(const char *fmt, ...) 186static int cprint(const char *fmt, ...)
187{ 187{
188 va_list ap; 188 va_list ap;
189 int res; 189 int res;
190 190
191 *argptr++ = bufptr; 191 *argptr++ = bufptr;
192 va_start(ap, fmt); 192 va_start(ap, fmt);
193 res = vsprintf(bufptr, fmt, ap); 193 res = vsprintf(bufptr, fmt, ap);
194 va_end(ap); 194 va_end(ap);
195 bufptr += res; 195 bufptr += res;
196 *bufptr++ = 0; 196 *bufptr++ = 0;
197 197
198 return res; 198 return res;
199} 199}
200 200
201pid_t pid; 201pid_t pid;
202 202
203static void winch_handler(int sig) 203static void winch_handler(int sig)
204{ 204{
205 if (!do_resize) { 205 if (!do_resize) {
206 kill(pid, SIGINT); 206 kill(pid, SIGINT);
207 do_resize = 1; 207 do_resize = 1;
208 } 208 }
209} 209}
210 210
211static int exec_conf(void) 211static int exec_conf(void)
212{ 212{
213 int pipefd[2], stat, size; 213 int pipefd[2], stat, size;
214 struct sigaction sa; 214 struct sigaction sa;
215 sigset_t sset, osset; 215 sigset_t sset, osset;
216 216
217 sigemptyset(&sset); 217 sigemptyset(&sset);
218 sigaddset(&sset, SIGINT); 218 sigaddset(&sset, SIGINT);
219 sigprocmask(SIG_BLOCK, &sset, &osset); 219 sigprocmask(SIG_BLOCK, &sset, &osset);