mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	kconfig: drop localization support
The localization support is broken and appears unused. There is no google hits on the update-po-config target. And there is no recent (5 years) activity related to the localization. So lets just drop this as it is no longer used. Suggested-by: Ulf Magnusson <ulfalizer@gmail.com> Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
		
							parent
							
								
									1c5af5cf93
								
							
						
					
					
						commit
						694c49a7c0
					
				
					 21 changed files with 257 additions and 609 deletions
				
			
		
							
								
								
									
										4
									
								
								scripts/kconfig/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								scripts/kconfig/.gitignore
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -2,9 +2,6 @@
 | 
				
			||||||
# Generated files
 | 
					# Generated files
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
*.moc
 | 
					*.moc
 | 
				
			||||||
gconf.glade.h
 | 
					 | 
				
			||||||
*.pot
 | 
					 | 
				
			||||||
*.mo
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# configuration programs
 | 
					# configuration programs
 | 
				
			||||||
| 
						 | 
					@ -14,4 +11,3 @@ mconf
 | 
				
			||||||
nconf
 | 
					nconf
 | 
				
			||||||
qconf
 | 
					qconf
 | 
				
			||||||
gconf
 | 
					gconf
 | 
				
			||||||
kxgettext
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
# Kernel configuration targets
 | 
					# Kernel configuration targets
 | 
				
			||||||
# These targets are used from top-level makefile
 | 
					# These targets are used from top-level makefile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PHONY += xconfig gconfig menuconfig config syncconfig update-po-config \
 | 
					PHONY += xconfig gconfig menuconfig config syncconfig \
 | 
				
			||||||
	localmodconfig localyesconfig
 | 
						localmodconfig localyesconfig
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifdef KBUILD_KCONFIG
 | 
					ifdef KBUILD_KCONFIG
 | 
				
			||||||
| 
						 | 
					@ -55,29 +55,6 @@ localyesconfig localmodconfig: $(obj)/conf
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	$(Q)rm -f .tmp.config
 | 
						$(Q)rm -f .tmp.config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Create new linux.pot file
 | 
					 | 
				
			||||||
# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
 | 
					 | 
				
			||||||
update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
 | 
					 | 
				
			||||||
	$(Q)$(kecho) "  GEN     config.pot"
 | 
					 | 
				
			||||||
	$(Q)xgettext --default-domain=linux                         \
 | 
					 | 
				
			||||||
	    --add-comments --keyword=_ --keyword=N_                 \
 | 
					 | 
				
			||||||
	    --from-code=UTF-8                                       \
 | 
					 | 
				
			||||||
	    --files-from=$(srctree)/scripts/kconfig/POTFILES.in     \
 | 
					 | 
				
			||||||
	    --directory=$(srctree) --directory=$(objtree)           \
 | 
					 | 
				
			||||||
	    --output $(obj)/config.pot
 | 
					 | 
				
			||||||
	$(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
 | 
					 | 
				
			||||||
	$(Q)(for i in `ls $(srctree)/arch/*/Kconfig      \
 | 
					 | 
				
			||||||
	    $(srctree)/arch/*/um/Kconfig`;               \
 | 
					 | 
				
			||||||
	    do                                           \
 | 
					 | 
				
			||||||
		$(kecho) "  GEN     $$i";                    \
 | 
					 | 
				
			||||||
		$(obj)/kxgettext $$i                     \
 | 
					 | 
				
			||||||
		     >> $(obj)/config.pot;               \
 | 
					 | 
				
			||||||
	    done )
 | 
					 | 
				
			||||||
	$(Q)$(kecho) "  GEN     linux.pot"
 | 
					 | 
				
			||||||
	$(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
 | 
					 | 
				
			||||||
	    --output $(obj)/linux.pot
 | 
					 | 
				
			||||||
	$(Q)rm -f $(obj)/config.pot
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# These targets map 1:1 to the commandline options of 'conf'
 | 
					# These targets map 1:1 to the commandline options of 'conf'
 | 
				
			||||||
simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
 | 
					simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
 | 
				
			||||||
	alldefconfig randconfig listnewconfig olddefconfig
 | 
						alldefconfig randconfig listnewconfig olddefconfig
 | 
				
			||||||
| 
						 | 
					@ -179,19 +156,11 @@ help:
 | 
				
			||||||
# object files used by all kconfig flavours
 | 
					# object files used by all kconfig flavours
 | 
				
			||||||
 | 
					
 | 
				
			||||||
conf-objs	:= conf.o  zconf.tab.o
 | 
					conf-objs	:= conf.o  zconf.tab.o
 | 
				
			||||||
kxgettext-objs	:= kxgettext.o zconf.tab.o
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
hostprogs-y := conf kxgettext
 | 
					hostprogs-y := conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
targets		+= zconf.lex.c
 | 
					targets		+= zconf.lex.c
 | 
				
			||||||
clean-files	+= gconf.glade.h
 | 
					 | 
				
			||||||
clean-files     += config.pot linux.pot
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add environment specific flags
 | 
					 | 
				
			||||||
HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)) \
 | 
					 | 
				
			||||||
		    -DLOCALE
 | 
					 | 
				
			||||||
HOST_EXTRACXXFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCXX) $(HOSTCXXFLAGS)) \
 | 
					 | 
				
			||||||
		    -DLOCALE
 | 
					 | 
				
			||||||
# generated files seem to need this to find local include files
 | 
					# generated files seem to need this to find local include files
 | 
				
			||||||
HOSTCFLAGS_zconf.lex.o	:= -I$(src)
 | 
					HOSTCFLAGS_zconf.lex.o	:= -I$(src)
 | 
				
			||||||
HOSTCFLAGS_zconf.tab.o	:= -I$(src)
 | 
					HOSTCFLAGS_zconf.tab.o	:= -I$(src)
 | 
				
			||||||
| 
						 | 
					@ -244,11 +213,6 @@ $(obj)/gconf.o: $(obj)/.gconf-cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(obj)/zconf.tab.o: $(obj)/zconf.lex.c
 | 
					$(obj)/zconf.tab.o: $(obj)/zconf.lex.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Extract gconf menu items for i18n support
 | 
					 | 
				
			||||||
$(obj)/gconf.glade.h: $(obj)/gconf.glade
 | 
					 | 
				
			||||||
	$(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
 | 
					 | 
				
			||||||
	$(obj)/gconf.glade
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# check if necessary packages are available, and configure build flags
 | 
					# check if necessary packages are available, and configure build flags
 | 
				
			||||||
define filechk_conf_cfg
 | 
					define filechk_conf_cfg
 | 
				
			||||||
	$(CONFIG_SHELL) $<
 | 
						$(CONFIG_SHELL) $<
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
scripts/kconfig/lxdialog/checklist.c
 | 
					 | 
				
			||||||
scripts/kconfig/lxdialog/inputbox.c
 | 
					 | 
				
			||||||
scripts/kconfig/lxdialog/menubox.c
 | 
					 | 
				
			||||||
scripts/kconfig/lxdialog/textbox.c
 | 
					 | 
				
			||||||
scripts/kconfig/lxdialog/util.c
 | 
					 | 
				
			||||||
scripts/kconfig/lxdialog/yesno.c
 | 
					 | 
				
			||||||
scripts/kconfig/mconf.c
 | 
					 | 
				
			||||||
scripts/kconfig/conf.c
 | 
					 | 
				
			||||||
scripts/kconfig/confdata.c
 | 
					 | 
				
			||||||
scripts/kconfig/gconf.c
 | 
					 | 
				
			||||||
scripts/kconfig/gconf.glade.h
 | 
					 | 
				
			||||||
scripts/kconfig/qconf.cc
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0
 | 
					 | 
				
			||||||
# Needed for systems without gettext
 | 
					 | 
				
			||||||
$* -x c -o /dev/null - > /dev/null 2>&1 << EOF
 | 
					 | 
				
			||||||
#include <libintl.h>
 | 
					 | 
				
			||||||
int main()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	gettext("");
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
if [ ! "$?" -eq "0"  ]; then
 | 
					 | 
				
			||||||
	echo -DKBUILD_NO_NLS;
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,6 @@
 | 
				
			||||||
 * Released under the terms of the GNU GPL v2.0.
 | 
					 * Released under the terms of the GNU GPL v2.0.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <locale.h>
 | 
					 | 
				
			||||||
#include <ctype.h>
 | 
					#include <ctype.h>
 | 
				
			||||||
#include <limits.h>
 | 
					#include <limits.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
| 
						 | 
					@ -86,7 +85,7 @@ static int conf_askvalue(struct symbol *sym, const char *def)
 | 
				
			||||||
	enum symbol_type type = sym_get_type(sym);
 | 
						enum symbol_type type = sym_get_type(sym);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!sym_has_value(sym))
 | 
						if (!sym_has_value(sym))
 | 
				
			||||||
		printf(_("(NEW) "));
 | 
							printf("(NEW) ");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	line[0] = '\n';
 | 
						line[0] = '\n';
 | 
				
			||||||
	line[1] = 0;
 | 
						line[1] = 0;
 | 
				
			||||||
| 
						 | 
					@ -133,7 +132,7 @@ static int conf_string(struct menu *menu)
 | 
				
			||||||
	const char *def;
 | 
						const char *def;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (1) {
 | 
						while (1) {
 | 
				
			||||||
		printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
 | 
							printf("%*s%s ", indent - 1, "", menu->prompt->text);
 | 
				
			||||||
		printf("(%s) ", sym->name);
 | 
							printf("(%s) ", sym->name);
 | 
				
			||||||
		def = sym_get_string_value(sym);
 | 
							def = sym_get_string_value(sym);
 | 
				
			||||||
		if (sym_get_string_value(sym))
 | 
							if (sym_get_string_value(sym))
 | 
				
			||||||
| 
						 | 
					@ -166,7 +165,7 @@ static int conf_sym(struct menu *menu)
 | 
				
			||||||
	tristate oldval, newval;
 | 
						tristate oldval, newval;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (1) {
 | 
						while (1) {
 | 
				
			||||||
		printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
 | 
							printf("%*s%s ", indent - 1, "", menu->prompt->text);
 | 
				
			||||||
		if (sym->name)
 | 
							if (sym->name)
 | 
				
			||||||
			printf("(%s) ", sym->name);
 | 
								printf("(%s) ", sym->name);
 | 
				
			||||||
		putchar('[');
 | 
							putchar('[');
 | 
				
			||||||
| 
						 | 
					@ -251,7 +250,7 @@ static int conf_choice(struct menu *menu)
 | 
				
			||||||
		case no:
 | 
							case no:
 | 
				
			||||||
			return 1;
 | 
								return 1;
 | 
				
			||||||
		case mod:
 | 
							case mod:
 | 
				
			||||||
			printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
 | 
								printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
 | 
				
			||||||
			return 0;
 | 
								return 0;
 | 
				
			||||||
		case yes:
 | 
							case yes:
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
| 
						 | 
					@ -261,7 +260,7 @@ static int conf_choice(struct menu *menu)
 | 
				
			||||||
	while (1) {
 | 
						while (1) {
 | 
				
			||||||
		int cnt, def;
 | 
							int cnt, def;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
 | 
							printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
 | 
				
			||||||
		def_sym = sym_get_choice_value(sym);
 | 
							def_sym = sym_get_choice_value(sym);
 | 
				
			||||||
		cnt = def = 0;
 | 
							cnt = def = 0;
 | 
				
			||||||
		line[0] = 0;
 | 
							line[0] = 0;
 | 
				
			||||||
| 
						 | 
					@ -269,7 +268,7 @@ static int conf_choice(struct menu *menu)
 | 
				
			||||||
			if (!menu_is_visible(child))
 | 
								if (!menu_is_visible(child))
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
			if (!child->sym) {
 | 
								if (!child->sym) {
 | 
				
			||||||
				printf("%*c %s\n", indent, '*', _(menu_get_prompt(child)));
 | 
									printf("%*c %s\n", indent, '*', menu_get_prompt(child));
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			cnt++;
 | 
								cnt++;
 | 
				
			||||||
| 
						 | 
					@ -278,14 +277,14 @@ static int conf_choice(struct menu *menu)
 | 
				
			||||||
				printf("%*c", indent, '>');
 | 
									printf("%*c", indent, '>');
 | 
				
			||||||
			} else
 | 
								} else
 | 
				
			||||||
				printf("%*c", indent, ' ');
 | 
									printf("%*c", indent, ' ');
 | 
				
			||||||
			printf(" %d. %s", cnt, _(menu_get_prompt(child)));
 | 
								printf(" %d. %s", cnt, menu_get_prompt(child));
 | 
				
			||||||
			if (child->sym->name)
 | 
								if (child->sym->name)
 | 
				
			||||||
				printf(" (%s)", child->sym->name);
 | 
									printf(" (%s)", child->sym->name);
 | 
				
			||||||
			if (!sym_has_value(child->sym))
 | 
								if (!sym_has_value(child->sym))
 | 
				
			||||||
				printf(_(" (NEW)"));
 | 
									printf(" (NEW)");
 | 
				
			||||||
			printf("\n");
 | 
								printf("\n");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		printf(_("%*schoice"), indent - 1, "");
 | 
							printf("%*schoice", indent - 1, "");
 | 
				
			||||||
		if (cnt == 1) {
 | 
							if (cnt == 1) {
 | 
				
			||||||
			printf("[1]: 1\n");
 | 
								printf("[1]: 1\n");
 | 
				
			||||||
			goto conf_childs;
 | 
								goto conf_childs;
 | 
				
			||||||
| 
						 | 
					@ -372,7 +371,7 @@ static void conf(struct menu *menu)
 | 
				
			||||||
			if (prompt)
 | 
								if (prompt)
 | 
				
			||||||
				printf("%*c\n%*c %s\n%*c\n",
 | 
									printf("%*c\n%*c %s\n%*c\n",
 | 
				
			||||||
					indent, '*',
 | 
										indent, '*',
 | 
				
			||||||
					indent, '*', _(prompt),
 | 
										indent, '*', prompt,
 | 
				
			||||||
					indent, '*');
 | 
										indent, '*');
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			;
 | 
								;
 | 
				
			||||||
| 
						 | 
					@ -437,7 +436,7 @@ static void check_conf(struct menu *menu)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				if (!conf_cnt++)
 | 
									if (!conf_cnt++)
 | 
				
			||||||
					printf(_("*\n* Restart config...\n*\n"));
 | 
										printf("*\n* Restart config...\n*\n");
 | 
				
			||||||
				rootEntry = menu_get_parent_menu(menu);
 | 
									rootEntry = menu_get_parent_menu(menu);
 | 
				
			||||||
				conf(rootEntry);
 | 
									conf(rootEntry);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -498,10 +497,6 @@ int main(int ac, char **av)
 | 
				
			||||||
	const char *name, *defconfig_file = NULL /* gcc uninit */;
 | 
						const char *name, *defconfig_file = NULL /* gcc uninit */;
 | 
				
			||||||
	struct stat tmpstat;
 | 
						struct stat tmpstat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setlocale(LC_ALL, "");
 | 
					 | 
				
			||||||
	bindtextdomain(PACKAGE, LOCALEDIR);
 | 
					 | 
				
			||||||
	textdomain(PACKAGE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	tty_stdio = isatty(0) && isatty(1);
 | 
						tty_stdio = isatty(0) && isatty(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) {
 | 
						while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) {
 | 
				
			||||||
| 
						 | 
					@ -559,7 +554,7 @@ int main(int ac, char **av)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (ac == optind) {
 | 
						if (ac == optind) {
 | 
				
			||||||
		fprintf(stderr, _("%s: Kconfig file missing\n"), av[0]);
 | 
							fprintf(stderr, "%s: Kconfig file missing\n", av[0]);
 | 
				
			||||||
		conf_usage(progname);
 | 
							conf_usage(progname);
 | 
				
			||||||
		exit(1);
 | 
							exit(1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -569,12 +564,12 @@ int main(int ac, char **av)
 | 
				
			||||||
	if (sync_kconfig) {
 | 
						if (sync_kconfig) {
 | 
				
			||||||
		name = conf_get_configname();
 | 
							name = conf_get_configname();
 | 
				
			||||||
		if (stat(name, &tmpstat)) {
 | 
							if (stat(name, &tmpstat)) {
 | 
				
			||||||
			fprintf(stderr, _("***\n"
 | 
								fprintf(stderr, "***\n"
 | 
				
			||||||
				"*** Configuration file \"%s\" not found!\n"
 | 
									"*** Configuration file \"%s\" not found!\n"
 | 
				
			||||||
				"***\n"
 | 
									"***\n"
 | 
				
			||||||
				"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
 | 
									"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
 | 
				
			||||||
				"*** \"make menuconfig\" or \"make xconfig\").\n"
 | 
									"*** \"make menuconfig\" or \"make xconfig\").\n"
 | 
				
			||||||
				"***\n"), name);
 | 
									"***\n", name);
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -585,9 +580,9 @@ int main(int ac, char **av)
 | 
				
			||||||
			defconfig_file = conf_get_default_confname();
 | 
								defconfig_file = conf_get_default_confname();
 | 
				
			||||||
		if (conf_read(defconfig_file)) {
 | 
							if (conf_read(defconfig_file)) {
 | 
				
			||||||
			fprintf(stderr,
 | 
								fprintf(stderr,
 | 
				
			||||||
				_("***\n"
 | 
									"***\n"
 | 
				
			||||||
				  "*** Can't find default configuration \"%s\"!\n"
 | 
									  "*** Can't find default configuration \"%s\"!\n"
 | 
				
			||||||
				  "***\n"),
 | 
									  "***\n",
 | 
				
			||||||
				defconfig_file);
 | 
									defconfig_file);
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -611,7 +606,7 @@ int main(int ac, char **av)
 | 
				
			||||||
		if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) {
 | 
							if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) {
 | 
				
			||||||
			if (conf_read_simple(name, S_DEF_USER)) {
 | 
								if (conf_read_simple(name, S_DEF_USER)) {
 | 
				
			||||||
				fprintf(stderr,
 | 
									fprintf(stderr,
 | 
				
			||||||
					_("*** Can't read seed configuration \"%s\"!\n"),
 | 
										"*** Can't read seed configuration \"%s\"!\n",
 | 
				
			||||||
					name);
 | 
										name);
 | 
				
			||||||
				exit(1);
 | 
									exit(1);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -628,7 +623,7 @@ int main(int ac, char **av)
 | 
				
			||||||
		if (conf_read_simple(name, S_DEF_USER) &&
 | 
							if (conf_read_simple(name, S_DEF_USER) &&
 | 
				
			||||||
		    conf_read_simple("all.config", S_DEF_USER)) {
 | 
							    conf_read_simple("all.config", S_DEF_USER)) {
 | 
				
			||||||
			fprintf(stderr,
 | 
								fprintf(stderr,
 | 
				
			||||||
				_("*** KCONFIG_ALLCONFIG set, but no \"%s\" or \"all.config\" file found\n"),
 | 
									"*** KCONFIG_ALLCONFIG set, but no \"%s\" or \"all.config\" file found\n",
 | 
				
			||||||
				name);
 | 
									name);
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -642,7 +637,7 @@ int main(int ac, char **av)
 | 
				
			||||||
			name = getenv("KCONFIG_NOSILENTUPDATE");
 | 
								name = getenv("KCONFIG_NOSILENTUPDATE");
 | 
				
			||||||
			if (name && *name) {
 | 
								if (name && *name) {
 | 
				
			||||||
				fprintf(stderr,
 | 
									fprintf(stderr,
 | 
				
			||||||
					_("\n*** The configuration requires explicit update.\n\n"));
 | 
										"\n*** The configuration requires explicit update.\n\n");
 | 
				
			||||||
				return 1;
 | 
									return 1;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -694,22 +689,22 @@ int main(int ac, char **av)
 | 
				
			||||||
		 * All other commands are only used to generate a config.
 | 
							 * All other commands are only used to generate a config.
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		if (conf_get_changed() && conf_write(NULL)) {
 | 
							if (conf_get_changed() && conf_write(NULL)) {
 | 
				
			||||||
			fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
 | 
								fprintf(stderr, "\n*** Error during writing of the configuration.\n\n");
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (conf_write_autoconf()) {
 | 
							if (conf_write_autoconf()) {
 | 
				
			||||||
			fprintf(stderr, _("\n*** Error during update of the configuration.\n\n"));
 | 
								fprintf(stderr, "\n*** Error during update of the configuration.\n\n");
 | 
				
			||||||
			return 1;
 | 
								return 1;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else if (input_mode == savedefconfig) {
 | 
						} else if (input_mode == savedefconfig) {
 | 
				
			||||||
		if (conf_write_defconfig(defconfig_file)) {
 | 
							if (conf_write_defconfig(defconfig_file)) {
 | 
				
			||||||
			fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"),
 | 
								fprintf(stderr, "n*** Error while saving defconfig to: %s\n\n",
 | 
				
			||||||
				defconfig_file);
 | 
									defconfig_file);
 | 
				
			||||||
			return 1;
 | 
								return 1;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else if (input_mode != listnewconfig) {
 | 
						} else if (input_mode != listnewconfig) {
 | 
				
			||||||
		if (conf_write(NULL)) {
 | 
							if (conf_write(NULL)) {
 | 
				
			||||||
			fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
 | 
								fprintf(stderr, "\n*** Error during writing of the configuration.\n\n");
 | 
				
			||||||
			exit(1);
 | 
								exit(1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -277,7 +277,7 @@ int conf_read_simple(const char *name, int def)
 | 
				
			||||||
			name = conf_expand_value(prop->expr->left.sym->name);
 | 
								name = conf_expand_value(prop->expr->left.sym->name);
 | 
				
			||||||
			in = zconf_fopen(name);
 | 
								in = zconf_fopen(name);
 | 
				
			||||||
			if (in) {
 | 
								if (in) {
 | 
				
			||||||
				conf_message(_("using defaults found in %s"),
 | 
									conf_message("using defaults found in %s",
 | 
				
			||||||
					 name);
 | 
										 name);
 | 
				
			||||||
				goto load;
 | 
									goto load;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -831,7 +831,7 @@ int conf_write(const char *name)
 | 
				
			||||||
			return 1;
 | 
								return 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	conf_message(_("configuration written to %s"), newname);
 | 
						conf_message("configuration written to %s", newname);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sym_set_change_count(0);
 | 
						sym_set_change_count(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -137,7 +137,7 @@ void init_main_window(const gchar * glade_file)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	xml = glade_xml_new(glade_file, "window1", NULL);
 | 
						xml = glade_xml_new(glade_file, "window1", NULL);
 | 
				
			||||||
	if (!xml)
 | 
						if (!xml)
 | 
				
			||||||
		g_error(_("GUI loading failed !\n"));
 | 
							g_error("GUI loading failed !\n");
 | 
				
			||||||
	glade_xml_signal_autoconnect(xml);
 | 
						glade_xml_signal_autoconnect(xml);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	main_wnd = glade_xml_get_widget(xml, "window1");
 | 
						main_wnd = glade_xml_get_widget(xml, "window1");
 | 
				
			||||||
| 
						 | 
					@ -233,7 +233,7 @@ void init_left_tree(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	column = gtk_tree_view_column_new();
 | 
						column = gtk_tree_view_column_new();
 | 
				
			||||||
	gtk_tree_view_append_column(view, column);
 | 
						gtk_tree_view_append_column(view, column);
 | 
				
			||||||
	gtk_tree_view_column_set_title(column, _("Options"));
 | 
						gtk_tree_view_column_set_title(column, "Options");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	renderer = gtk_cell_renderer_toggle_new();
 | 
						renderer = gtk_cell_renderer_toggle_new();
 | 
				
			||||||
	gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
 | 
						gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
 | 
				
			||||||
| 
						 | 
					@ -276,7 +276,7 @@ void init_right_tree(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	column = gtk_tree_view_column_new();
 | 
						column = gtk_tree_view_column_new();
 | 
				
			||||||
	gtk_tree_view_append_column(view, column);
 | 
						gtk_tree_view_append_column(view, column);
 | 
				
			||||||
	gtk_tree_view_column_set_title(column, _("Options"));
 | 
						gtk_tree_view_column_set_title(column, "Options");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	renderer = gtk_cell_renderer_pixbuf_new();
 | 
						renderer = gtk_cell_renderer_pixbuf_new();
 | 
				
			||||||
	gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
 | 
						gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
 | 
				
			||||||
| 
						 | 
					@ -305,7 +305,7 @@ void init_right_tree(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	renderer = gtk_cell_renderer_text_new();
 | 
						renderer = gtk_cell_renderer_text_new();
 | 
				
			||||||
	gtk_tree_view_insert_column_with_attributes(view, -1,
 | 
						gtk_tree_view_insert_column_with_attributes(view, -1,
 | 
				
			||||||
						    _("Name"), renderer,
 | 
											    "Name", renderer,
 | 
				
			||||||
						    "text", COL_NAME,
 | 
											    "text", COL_NAME,
 | 
				
			||||||
						    "foreground-gdk",
 | 
											    "foreground-gdk",
 | 
				
			||||||
						    COL_COLOR, NULL);
 | 
											    COL_COLOR, NULL);
 | 
				
			||||||
| 
						 | 
					@ -329,7 +329,7 @@ void init_right_tree(void)
 | 
				
			||||||
						    COL_COLOR, NULL);
 | 
											    COL_COLOR, NULL);
 | 
				
			||||||
	renderer = gtk_cell_renderer_text_new();
 | 
						renderer = gtk_cell_renderer_text_new();
 | 
				
			||||||
	gtk_tree_view_insert_column_with_attributes(view, -1,
 | 
						gtk_tree_view_insert_column_with_attributes(view, -1,
 | 
				
			||||||
						    _("Value"), renderer,
 | 
											    "Value", renderer,
 | 
				
			||||||
						    "text", COL_VALUE,
 | 
											    "text", COL_VALUE,
 | 
				
			||||||
						    "editable",
 | 
											    "editable",
 | 
				
			||||||
						    COL_EDIT,
 | 
											    COL_EDIT,
 | 
				
			||||||
| 
						 | 
					@ -368,7 +368,7 @@ static void text_insert_help(struct menu *menu)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	GtkTextBuffer *buffer;
 | 
						GtkTextBuffer *buffer;
 | 
				
			||||||
	GtkTextIter start, end;
 | 
						GtkTextIter start, end;
 | 
				
			||||||
	const char *prompt = _(menu_get_prompt(menu));
 | 
						const char *prompt = menu_get_prompt(menu);
 | 
				
			||||||
	struct gstr help = str_new();
 | 
						struct gstr help = str_new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	menu_get_ext_help(menu, &help);
 | 
						menu_get_ext_help(menu, &help);
 | 
				
			||||||
| 
						 | 
					@ -422,7 +422,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
 | 
				
			||||||
	if (!conf_get_changed())
 | 
						if (!conf_get_changed())
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dialog = gtk_dialog_new_with_buttons(_("Warning !"),
 | 
						dialog = gtk_dialog_new_with_buttons("Warning !",
 | 
				
			||||||
					     GTK_WINDOW(main_wnd),
 | 
										     GTK_WINDOW(main_wnd),
 | 
				
			||||||
					     (GtkDialogFlags)
 | 
										     (GtkDialogFlags)
 | 
				
			||||||
					     (GTK_DIALOG_MODAL |
 | 
										     (GTK_DIALOG_MODAL |
 | 
				
			||||||
| 
						 | 
					@ -436,7 +436,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
 | 
				
			||||||
	gtk_dialog_set_default_response(GTK_DIALOG(dialog),
 | 
						gtk_dialog_set_default_response(GTK_DIALOG(dialog),
 | 
				
			||||||
					GTK_RESPONSE_CANCEL);
 | 
										GTK_RESPONSE_CANCEL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	label = gtk_label_new(_("\nSave configuration ?\n"));
 | 
						label = gtk_label_new("\nSave configuration ?\n");
 | 
				
			||||||
	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
 | 
						gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
 | 
				
			||||||
	gtk_widget_show(label);
 | 
						gtk_widget_show(label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -496,7 +496,7 @@ load_filename(GtkFileSelection * file_selector, gpointer user_data)
 | 
				
			||||||
					     (user_data));
 | 
										     (user_data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (conf_read(fn))
 | 
						if (conf_read(fn))
 | 
				
			||||||
		text_insert_msg(_("Error"), _("Unable to load configuration !"));
 | 
							text_insert_msg("Error", "Unable to load configuration !");
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		display_tree(&rootmenu);
 | 
							display_tree(&rootmenu);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -505,7 +505,7 @@ void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	GtkWidget *fs;
 | 
						GtkWidget *fs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fs = gtk_file_selection_new(_("Load file..."));
 | 
						fs = gtk_file_selection_new("Load file...");
 | 
				
			||||||
	g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
 | 
						g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
 | 
				
			||||||
			 "clicked",
 | 
								 "clicked",
 | 
				
			||||||
			 G_CALLBACK(load_filename), (gpointer) fs);
 | 
								 G_CALLBACK(load_filename), (gpointer) fs);
 | 
				
			||||||
| 
						 | 
					@ -524,7 +524,7 @@ void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
					void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (conf_write(NULL))
 | 
						if (conf_write(NULL))
 | 
				
			||||||
		text_insert_msg(_("Error"), _("Unable to save configuration !"));
 | 
							text_insert_msg("Error", "Unable to save configuration !");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -537,7 +537,7 @@ store_filename(GtkFileSelection * file_selector, gpointer user_data)
 | 
				
			||||||
					     (user_data));
 | 
										     (user_data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (conf_write(fn))
 | 
						if (conf_write(fn))
 | 
				
			||||||
		text_insert_msg(_("Error"), _("Unable to save configuration !"));
 | 
							text_insert_msg("Error", "Unable to save configuration !");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gtk_widget_destroy(GTK_WIDGET(user_data));
 | 
						gtk_widget_destroy(GTK_WIDGET(user_data));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -546,7 +546,7 @@ void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	GtkWidget *fs;
 | 
						GtkWidget *fs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fs = gtk_file_selection_new(_("Save file as..."));
 | 
						fs = gtk_file_selection_new("Save file as...");
 | 
				
			||||||
	g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
 | 
						g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
 | 
				
			||||||
			 "clicked",
 | 
								 "clicked",
 | 
				
			||||||
			 G_CALLBACK(store_filename), (gpointer) fs);
 | 
								 G_CALLBACK(store_filename), (gpointer) fs);
 | 
				
			||||||
| 
						 | 
					@ -639,7 +639,7 @@ on_set_option_mode3_activate(GtkMenuItem *menuitem, gpointer user_data)
 | 
				
			||||||
void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
					void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	GtkWidget *dialog;
 | 
						GtkWidget *dialog;
 | 
				
			||||||
	const gchar *intro_text = _(
 | 
						const gchar *intro_text = 
 | 
				
			||||||
	    "Welcome to gkc, the GTK+ graphical configuration tool\n"
 | 
						    "Welcome to gkc, the GTK+ graphical configuration tool\n"
 | 
				
			||||||
	    "For each option, a blank box indicates the feature is disabled, a\n"
 | 
						    "For each option, a blank box indicates the feature is disabled, a\n"
 | 
				
			||||||
	    "check indicates it is enabled, and a dot indicates that it is to\n"
 | 
						    "check indicates it is enabled, and a dot indicates that it is to\n"
 | 
				
			||||||
| 
						 | 
					@ -654,7 +654,7 @@ void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
	    "option.\n"
 | 
						    "option.\n"
 | 
				
			||||||
	    "\n"
 | 
						    "\n"
 | 
				
			||||||
	    "Toggling Show Debug Info under the Options menu will show \n"
 | 
						    "Toggling Show Debug Info under the Options menu will show \n"
 | 
				
			||||||
	    "the dependencies, which you can then match by examining other options.");
 | 
						    "the dependencies, which you can then match by examining other options.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
 | 
						dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
 | 
				
			||||||
					GTK_DIALOG_DESTROY_WITH_PARENT,
 | 
										GTK_DIALOG_DESTROY_WITH_PARENT,
 | 
				
			||||||
| 
						 | 
					@ -671,8 +671,8 @@ void on_about1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	GtkWidget *dialog;
 | 
						GtkWidget *dialog;
 | 
				
			||||||
	const gchar *about_text =
 | 
						const gchar *about_text =
 | 
				
			||||||
	    _("gkc is copyright (c) 2002 Romain Lievin <roms@lpg.ticalc.org>.\n"
 | 
						    "gkc is copyright (c) 2002 Romain Lievin <roms@lpg.ticalc.org>.\n"
 | 
				
			||||||
	      "Based on the source code from Roman Zippel.\n");
 | 
						      "Based on the source code from Roman Zippel.\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
 | 
						dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
 | 
				
			||||||
					GTK_DIALOG_DESTROY_WITH_PARENT,
 | 
										GTK_DIALOG_DESTROY_WITH_PARENT,
 | 
				
			||||||
| 
						 | 
					@ -689,9 +689,9 @@ void on_license1_activate(GtkMenuItem * menuitem, gpointer user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	GtkWidget *dialog;
 | 
						GtkWidget *dialog;
 | 
				
			||||||
	const gchar *license_text =
 | 
						const gchar *license_text =
 | 
				
			||||||
	    _("gkc is released under the terms of the GNU GPL v2.\n"
 | 
						    "gkc is released under the terms of the GNU GPL v2.\n"
 | 
				
			||||||
	      "For more information, please see the source code or\n"
 | 
						      "For more information, please see the source code or\n"
 | 
				
			||||||
	      "visit http://www.fsf.org/licenses/licenses.html\n");
 | 
						      "visit http://www.fsf.org/licenses/licenses.html\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
 | 
						dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
 | 
				
			||||||
					GTK_DIALOG_DESTROY_WITH_PARENT,
 | 
										GTK_DIALOG_DESTROY_WITH_PARENT,
 | 
				
			||||||
| 
						 | 
					@ -1049,7 +1049,7 @@ static gchar **fill_row(struct menu *menu)
 | 
				
			||||||
	bzero(row, sizeof(row));
 | 
						bzero(row, sizeof(row));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	row[COL_OPTION] =
 | 
						row[COL_OPTION] =
 | 
				
			||||||
	    g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
 | 
						    g_strdup_printf("%s %s", menu_get_prompt(menu),
 | 
				
			||||||
			    sym && !sym_has_value(sym) ? "(NEW)" : "");
 | 
								    sym && !sym_has_value(sym) ? "(NEW)" : "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (opt_mode == OPT_ALL && !menu_is_visible(menu))
 | 
						if (opt_mode == OPT_ALL && !menu_is_visible(menu))
 | 
				
			||||||
| 
						 | 
					@ -1102,7 +1102,7 @@ static gchar **fill_row(struct menu *menu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (def_menu)
 | 
							if (def_menu)
 | 
				
			||||||
			row[COL_VALUE] =
 | 
								row[COL_VALUE] =
 | 
				
			||||||
			    g_strdup(_(menu_get_prompt(def_menu)));
 | 
								    g_strdup(menu_get_prompt(def_menu));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (sym->flags & SYMBOL_CHOICEVAL)
 | 
						if (sym->flags & SYMBOL_CHOICEVAL)
 | 
				
			||||||
		row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
 | 
							row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
 | 
				
			||||||
| 
						 | 
					@ -1447,10 +1447,6 @@ int main(int ac, char *av[])
 | 
				
			||||||
	char *env;
 | 
						char *env;
 | 
				
			||||||
	gchar *glade_file;
 | 
						gchar *glade_file;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bindtextdomain(PACKAGE, LOCALEDIR);
 | 
					 | 
				
			||||||
	bind_textdomain_codeset(PACKAGE, "UTF-8");
 | 
					 | 
				
			||||||
	textdomain(PACKAGE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* GTK stuffs */
 | 
						/* GTK stuffs */
 | 
				
			||||||
	gtk_set_locale();
 | 
						gtk_set_locale();
 | 
				
			||||||
	gtk_init(&ac, &av);
 | 
						gtk_init(&ac, &av);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,235 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 2005
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Released under the terms of the GNU GPL v2.0
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <stdlib.h>
 | 
					 | 
				
			||||||
#include <string.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "lkc.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static char *escape(const char* text, char *bf, int len)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	char *bfp = bf;
 | 
					 | 
				
			||||||
	int multiline = strchr(text, '\n') != NULL;
 | 
					 | 
				
			||||||
	int eol = 0;
 | 
					 | 
				
			||||||
	int textlen = strlen(text);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ((textlen > 0) && (text[textlen-1] == '\n'))
 | 
					 | 
				
			||||||
		eol = 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	*bfp++ = '"';
 | 
					 | 
				
			||||||
	--len;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (multiline) {
 | 
					 | 
				
			||||||
		*bfp++ = '"';
 | 
					 | 
				
			||||||
		*bfp++ = '\n';
 | 
					 | 
				
			||||||
		*bfp++ = '"';
 | 
					 | 
				
			||||||
		len -= 3;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	while (*text != '\0' && len > 1) {
 | 
					 | 
				
			||||||
		if (*text == '"')
 | 
					 | 
				
			||||||
			*bfp++ = '\\';
 | 
					 | 
				
			||||||
		else if (*text == '\n') {
 | 
					 | 
				
			||||||
			*bfp++ = '\\';
 | 
					 | 
				
			||||||
			*bfp++ = 'n';
 | 
					 | 
				
			||||||
			*bfp++ = '"';
 | 
					 | 
				
			||||||
			*bfp++ = '\n';
 | 
					 | 
				
			||||||
			*bfp++ = '"';
 | 
					 | 
				
			||||||
			len -= 5;
 | 
					 | 
				
			||||||
			++text;
 | 
					 | 
				
			||||||
			goto next;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else if (*text == '\\') {
 | 
					 | 
				
			||||||
			*bfp++ = '\\';
 | 
					 | 
				
			||||||
			len--;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		*bfp++ = *text++;
 | 
					 | 
				
			||||||
next:
 | 
					 | 
				
			||||||
		--len;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (multiline && eol)
 | 
					 | 
				
			||||||
		bfp -= 3;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	*bfp++ = '"';
 | 
					 | 
				
			||||||
	*bfp = '\0';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return bf;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct file_line {
 | 
					 | 
				
			||||||
	struct file_line *next;
 | 
					 | 
				
			||||||
	const char *file;
 | 
					 | 
				
			||||||
	int lineno;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct file_line *file_line__new(const char *file, int lineno)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct file_line *self = malloc(sizeof(*self));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (self == NULL)
 | 
					 | 
				
			||||||
		goto out;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	self->file   = file;
 | 
					 | 
				
			||||||
	self->lineno = lineno;
 | 
					 | 
				
			||||||
	self->next   = NULL;
 | 
					 | 
				
			||||||
out:
 | 
					 | 
				
			||||||
	return self;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct message {
 | 
					 | 
				
			||||||
	const char	 *msg;
 | 
					 | 
				
			||||||
	const char	 *option;
 | 
					 | 
				
			||||||
	struct message	 *next;
 | 
					 | 
				
			||||||
	struct file_line *files;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct message *message__list;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct message *message__new(const char *msg, char *option,
 | 
					 | 
				
			||||||
				    const char *file, int lineno)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct message *self = malloc(sizeof(*self));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (self == NULL)
 | 
					 | 
				
			||||||
		goto out;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	self->files = file_line__new(file, lineno);
 | 
					 | 
				
			||||||
	if (self->files == NULL)
 | 
					 | 
				
			||||||
		goto out_fail;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	self->msg = xstrdup(msg);
 | 
					 | 
				
			||||||
	if (self->msg == NULL)
 | 
					 | 
				
			||||||
		goto out_fail_msg;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	self->option = option;
 | 
					 | 
				
			||||||
	self->next = NULL;
 | 
					 | 
				
			||||||
out:
 | 
					 | 
				
			||||||
	return self;
 | 
					 | 
				
			||||||
out_fail_msg:
 | 
					 | 
				
			||||||
	free(self->files);
 | 
					 | 
				
			||||||
out_fail:
 | 
					 | 
				
			||||||
	free(self);
 | 
					 | 
				
			||||||
	self = NULL;
 | 
					 | 
				
			||||||
	goto out;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct message *mesage__find(const char *msg)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct message *m = message__list;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	while (m != NULL) {
 | 
					 | 
				
			||||||
		if (strcmp(m->msg, msg) == 0)
 | 
					 | 
				
			||||||
			break;
 | 
					 | 
				
			||||||
		m = m->next;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return m;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int message__add_file_line(struct message *self, const char *file,
 | 
					 | 
				
			||||||
				  int lineno)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	int rc = -1;
 | 
					 | 
				
			||||||
	struct file_line *fl = file_line__new(file, lineno);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (fl == NULL)
 | 
					 | 
				
			||||||
		goto out;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	fl->next    = self->files;
 | 
					 | 
				
			||||||
	self->files = fl;
 | 
					 | 
				
			||||||
	rc = 0;
 | 
					 | 
				
			||||||
out:
 | 
					 | 
				
			||||||
	return rc;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int message__add(const char *msg, char *option, const char *file,
 | 
					 | 
				
			||||||
			int lineno)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	int rc = 0;
 | 
					 | 
				
			||||||
	char bf[16384];
 | 
					 | 
				
			||||||
	char *escaped = escape(msg, bf, sizeof(bf));
 | 
					 | 
				
			||||||
	struct message *m = mesage__find(escaped);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (m != NULL)
 | 
					 | 
				
			||||||
		rc = message__add_file_line(m, file, lineno);
 | 
					 | 
				
			||||||
	else {
 | 
					 | 
				
			||||||
		m = message__new(escaped, option, file, lineno);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (m != NULL) {
 | 
					 | 
				
			||||||
			m->next	      = message__list;
 | 
					 | 
				
			||||||
			message__list = m;
 | 
					 | 
				
			||||||
		} else
 | 
					 | 
				
			||||||
			rc = -1;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return rc;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void menu_build_message_list(struct menu *menu)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct menu *child;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	message__add(menu_get_prompt(menu), NULL,
 | 
					 | 
				
			||||||
		     menu->file == NULL ? "Root Menu" : menu->file->name,
 | 
					 | 
				
			||||||
		     menu->lineno);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (menu->sym != NULL && menu_has_help(menu))
 | 
					 | 
				
			||||||
		message__add(menu_get_help(menu), menu->sym->name,
 | 
					 | 
				
			||||||
			     menu->file == NULL ? "Root Menu" : menu->file->name,
 | 
					 | 
				
			||||||
			     menu->lineno);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (child = menu->list; child != NULL; child = child->next)
 | 
					 | 
				
			||||||
		if (child->prompt != NULL)
 | 
					 | 
				
			||||||
			menu_build_message_list(child);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void message__print_file_lineno(struct message *self)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct file_line *fl = self->files;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	putchar('\n');
 | 
					 | 
				
			||||||
	if (self->option != NULL)
 | 
					 | 
				
			||||||
		printf("# %s:00000\n", self->option);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	printf("#: %s:%d", fl->file, fl->lineno);
 | 
					 | 
				
			||||||
	fl = fl->next;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	while (fl != NULL) {
 | 
					 | 
				
			||||||
		printf(", %s:%d", fl->file, fl->lineno);
 | 
					 | 
				
			||||||
		fl = fl->next;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	putchar('\n');
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void message__print_gettext_msgid_msgstr(struct message *self)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	message__print_file_lineno(self);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	printf("msgid %s\n"
 | 
					 | 
				
			||||||
	       "msgstr \"\"\n", self->msg);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void menu__xgettext(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct message *m = message__list;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	while (m != NULL) {
 | 
					 | 
				
			||||||
		/* skip empty lines ("") */
 | 
					 | 
				
			||||||
		if (strlen(m->msg) > sizeof("\"\""))
 | 
					 | 
				
			||||||
			message__print_gettext_msgid_msgstr(m);
 | 
					 | 
				
			||||||
		m = m->next;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int main(int ac, char **av)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	conf_parse(av[1]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	menu_build_message_list(menu_get_root_menu(NULL));
 | 
					 | 
				
			||||||
	menu__xgettext();
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -8,15 +8,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "expr.h"
 | 
					#include "expr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef KBUILD_NO_NLS
 | 
					 | 
				
			||||||
# include <libintl.h>
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
static inline const char *gettext(const char *txt) { return txt; }
 | 
					 | 
				
			||||||
static inline void textdomain(const char *domainname) {}
 | 
					 | 
				
			||||||
static inline void bindtextdomain(const char *name, const char *dir) {}
 | 
					 | 
				
			||||||
static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; }
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef __cplusplus
 | 
					#ifdef __cplusplus
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -29,11 +20,6 @@ extern "C" {
 | 
				
			||||||
#define PACKAGE "linux"
 | 
					#define PACKAGE "linux"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define LOCALEDIR "/usr/share/locale"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define _(text) gettext(text)
 | 
					 | 
				
			||||||
#define N_(text) (text)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef CONFIG_
 | 
					#ifndef CONFIG_
 | 
				
			||||||
#define CONFIG_ "CONFIG_"
 | 
					#define CONFIG_ "CONFIG_"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -103,8 +103,8 @@ static void 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, gettext("Select"), y, x, selected == 0);
 | 
						print_button(dialog, "Select", y, x, selected == 0);
 | 
				
			||||||
	print_button(dialog, gettext(" 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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,12 +26,6 @@
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef KBUILD_NO_NLS
 | 
					 | 
				
			||||||
# include <libintl.h>
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
# define gettext(Msgid) ((const char *) (Msgid))
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef __sun__
 | 
					#ifdef __sun__
 | 
				
			||||||
#define CURS_MACROS
 | 
					#define CURS_MACROS
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,8 +31,8 @@ static void 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, gettext("  Ok  "), y, x, selected == 0);
 | 
						print_button(dialog, "  Ok  ", y, x, selected == 0);
 | 
				
			||||||
	print_button(dialog, gettext(" 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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,11 +157,11 @@ static void print_buttons(WINDOW * win, int height, int width, int selected)
 | 
				
			||||||
	int x = width / 2 - 28;
 | 
						int x = width / 2 - 28;
 | 
				
			||||||
	int y = height - 2;
 | 
						int y = height - 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	print_button(win, gettext("Select"), y, x, selected == 0);
 | 
						print_button(win, "Select", y, x, selected == 0);
 | 
				
			||||||
	print_button(win, gettext(" Exit "), y, x + 12, selected == 1);
 | 
						print_button(win, " Exit ", y, x + 12, selected == 1);
 | 
				
			||||||
	print_button(win, gettext(" Help "), y, x + 24, selected == 2);
 | 
						print_button(win, " Help ", y, x + 24, selected == 2);
 | 
				
			||||||
	print_button(win, gettext(" Save "), y, x + 36, selected == 3);
 | 
						print_button(win, " Save ", y, x + 36, selected == 3);
 | 
				
			||||||
	print_button(win, gettext(" Load "), y, x + 48, selected == 4);
 | 
						print_button(win, " Load ", y, x + 48, selected == 4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wmove(win, y, x + 1 + 12 * selected);
 | 
						wmove(win, y, x + 1 + 12 * selected);
 | 
				
			||||||
	wrefresh(win);
 | 
						wrefresh(win);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,7 +129,7 @@ int dialog_textbox(const char *title, char *tbuf, int initial_height,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	print_title(dialog, title, width);
 | 
						print_title(dialog, title, width);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	print_button(dialog, gettext(" Exit "), height - 2, width / 2 - 4, TRUE);
 | 
						print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
 | 
				
			||||||
	wnoutrefresh(dialog);
 | 
						wnoutrefresh(dialog);
 | 
				
			||||||
	getyx(dialog, cur_y, cur_x);	/* Save cursor position */
 | 
						getyx(dialog, cur_y, cur_x);	/* Save cursor position */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,8 +29,8 @@ static void 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, gettext(" Yes "), y, x, selected == 0);
 | 
						print_button(dialog, " Yes ", y, x, selected == 0);
 | 
				
			||||||
	print_button(dialog, gettext("  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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,12 +17,11 @@
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <signal.h>
 | 
					#include <signal.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <locale.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "lkc.h"
 | 
					#include "lkc.h"
 | 
				
			||||||
#include "lxdialog/dialog.h"
 | 
					#include "lxdialog/dialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char mconf_readme[] = N_(
 | 
					static const char mconf_readme[] =
 | 
				
			||||||
"Overview\n"
 | 
					"Overview\n"
 | 
				
			||||||
"--------\n"
 | 
					"--------\n"
 | 
				
			||||||
"This interface lets you select features and parameters for the build.\n"
 | 
					"This interface lets you select features and parameters for the build.\n"
 | 
				
			||||||
| 
						 | 
					@ -171,37 +170,37 @@ static const char mconf_readme[] = N_(
 | 
				
			||||||
" blackbg    => selects a color scheme with black background\n"
 | 
					" blackbg    => selects a color scheme with black background\n"
 | 
				
			||||||
" classic    => theme with blue background. The classic look\n"
 | 
					" classic    => theme with blue background. The classic look\n"
 | 
				
			||||||
" bluetitle  => an LCD friendly version of classic. (default)\n"
 | 
					" bluetitle  => an LCD friendly version of classic. (default)\n"
 | 
				
			||||||
"\n"),
 | 
					"\n",
 | 
				
			||||||
menu_instructions[] = N_(
 | 
					menu_instructions[] =
 | 
				
			||||||
	"Arrow keys navigate the menu.  "
 | 
						"Arrow keys navigate the menu.  "
 | 
				
			||||||
	"<Enter> selects submenus ---> (or empty submenus ----).  "
 | 
						"<Enter> selects submenus ---> (or empty submenus ----).  "
 | 
				
			||||||
	"Highlighted letters are hotkeys.  "
 | 
						"Highlighted letters are hotkeys.  "
 | 
				
			||||||
	"Pressing <Y> includes, <N> excludes, <M> modularizes features.  "
 | 
						"Pressing <Y> includes, <N> excludes, <M> modularizes features.  "
 | 
				
			||||||
	"Press <Esc><Esc> to exit, <?> for Help, </> for Search.  "
 | 
						"Press <Esc><Esc> to exit, <?> for Help, </> for Search.  "
 | 
				
			||||||
	"Legend: [*] built-in  [ ] excluded  <M> module  < > module capable"),
 | 
						"Legend: [*] built-in  [ ] excluded  <M> module  < > module capable",
 | 
				
			||||||
radiolist_instructions[] = N_(
 | 
					radiolist_instructions[] =
 | 
				
			||||||
	"Use the arrow keys to navigate this window or "
 | 
						"Use the arrow keys to navigate this window or "
 | 
				
			||||||
	"press the hotkey of the item you wish to select "
 | 
						"press the hotkey of the item you wish to select "
 | 
				
			||||||
	"followed by the <SPACE BAR>. "
 | 
						"followed by the <SPACE BAR>. "
 | 
				
			||||||
	"Press <?> for additional information about this option."),
 | 
						"Press <?> for additional information about this option.",
 | 
				
			||||||
inputbox_instructions_int[] = N_(
 | 
					inputbox_instructions_int[] =
 | 
				
			||||||
	"Please enter a decimal value. "
 | 
						"Please enter a decimal value. "
 | 
				
			||||||
	"Fractions will not be accepted.  "
 | 
						"Fractions will not be accepted.  "
 | 
				
			||||||
	"Use the <TAB> key to move from the input field to the buttons below it."),
 | 
						"Use the <TAB> key to move from the input field to the buttons below it.",
 | 
				
			||||||
inputbox_instructions_hex[] = N_(
 | 
					inputbox_instructions_hex[] =
 | 
				
			||||||
	"Please enter a hexadecimal value. "
 | 
						"Please enter a hexadecimal value. "
 | 
				
			||||||
	"Use the <TAB> key to move from the input field to the buttons below it."),
 | 
						"Use the <TAB> key to move from the input field to the buttons below it.",
 | 
				
			||||||
inputbox_instructions_string[] = N_(
 | 
					inputbox_instructions_string[] =
 | 
				
			||||||
	"Please enter a string value. "
 | 
						"Please enter a string value. "
 | 
				
			||||||
	"Use the <TAB> key to move from the input field to the buttons below it."),
 | 
						"Use the <TAB> key to move from the input field to the buttons below it.",
 | 
				
			||||||
setmod_text[] = N_(
 | 
					setmod_text[] =
 | 
				
			||||||
	"This feature depends on another which has been configured as a module.\n"
 | 
						"This feature depends on another which has been configured as a module.\n"
 | 
				
			||||||
	"As a result, this feature will be built as a module."),
 | 
						"As a result, this feature will be built as a module.",
 | 
				
			||||||
load_config_text[] = N_(
 | 
					load_config_text[] =
 | 
				
			||||||
	"Enter the name of the configuration file you wish to load.  "
 | 
						"Enter the name of the configuration file you wish to load.  "
 | 
				
			||||||
	"Accept the name shown to restore the configuration you "
 | 
						"Accept the name shown to restore the configuration you "
 | 
				
			||||||
	"last retrieved.  Leave blank to abort."),
 | 
						"last retrieved.  Leave blank to abort.",
 | 
				
			||||||
load_config_help[] = N_(
 | 
					load_config_help[] =
 | 
				
			||||||
	"\n"
 | 
						"\n"
 | 
				
			||||||
	"For various reasons, one may wish to keep several different\n"
 | 
						"For various reasons, one may wish to keep several different\n"
 | 
				
			||||||
	"configurations available on a single machine.\n"
 | 
						"configurations available on a single machine.\n"
 | 
				
			||||||
| 
						 | 
					@ -211,11 +210,11 @@ load_config_help[] = N_(
 | 
				
			||||||
	"configuration.\n"
 | 
						"configuration.\n"
 | 
				
			||||||
	"\n"
 | 
						"\n"
 | 
				
			||||||
	"If you are uncertain, then you have probably never used alternate\n"
 | 
						"If you are uncertain, then you have probably never used alternate\n"
 | 
				
			||||||
	"configuration files. You should therefore leave this blank to abort.\n"),
 | 
						"configuration files. You should therefore leave this blank to abort.\n",
 | 
				
			||||||
save_config_text[] = N_(
 | 
					save_config_text[] =
 | 
				
			||||||
	"Enter a filename to which this configuration should be saved "
 | 
						"Enter a filename to which this configuration should be saved "
 | 
				
			||||||
	"as an alternate.  Leave blank to abort."),
 | 
						"as an alternate.  Leave blank to abort.",
 | 
				
			||||||
save_config_help[] = N_(
 | 
					save_config_help[] =
 | 
				
			||||||
	"\n"
 | 
						"\n"
 | 
				
			||||||
	"For various reasons, one may wish to keep different configurations\n"
 | 
						"For various reasons, one may wish to keep different configurations\n"
 | 
				
			||||||
	"available on a single machine.\n"
 | 
						"available on a single machine.\n"
 | 
				
			||||||
| 
						 | 
					@ -225,8 +224,8 @@ save_config_help[] = N_(
 | 
				
			||||||
	"configuration options you have selected at that time.\n"
 | 
						"configuration options you have selected at that time.\n"
 | 
				
			||||||
	"\n"
 | 
						"\n"
 | 
				
			||||||
	"If you are uncertain what all this means then you should probably\n"
 | 
						"If you are uncertain what all this means then you should probably\n"
 | 
				
			||||||
	"leave this blank.\n"),
 | 
						"leave this blank.\n",
 | 
				
			||||||
search_help[] = N_(
 | 
					search_help[] =
 | 
				
			||||||
	"\n"
 | 
						"\n"
 | 
				
			||||||
	"Search for symbols and display their relations.\n"
 | 
						"Search for symbols and display their relations.\n"
 | 
				
			||||||
	"Regular expressions are allowed.\n"
 | 
						"Regular expressions are allowed.\n"
 | 
				
			||||||
| 
						 | 
					@ -271,7 +270,7 @@ search_help[] = N_(
 | 
				
			||||||
	"Examples: USB	=> find all symbols containing USB\n"
 | 
						"Examples: USB	=> find all symbols containing USB\n"
 | 
				
			||||||
	"          ^USB => find all symbols starting with USB\n"
 | 
						"          ^USB => find all symbols starting with USB\n"
 | 
				
			||||||
	"          USB$ => find all symbols ending with USB\n"
 | 
						"          USB$ => find all symbols ending with USB\n"
 | 
				
			||||||
	"\n");
 | 
						"\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int indent;
 | 
					static int indent;
 | 
				
			||||||
static struct menu *current_menu;
 | 
					static struct menu *current_menu;
 | 
				
			||||||
| 
						 | 
					@ -400,19 +399,19 @@ static void search_conf(void)
 | 
				
			||||||
	struct subtitle_part stpart;
 | 
						struct subtitle_part stpart;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	title = str_new();
 | 
						title = str_new();
 | 
				
			||||||
	str_printf( &title, _("Enter (sub)string or regexp to search for "
 | 
						str_printf( &title, "Enter (sub)string or regexp to search for "
 | 
				
			||||||
			      "(with or without \"%s\")"), CONFIG_);
 | 
								      "(with or without \"%s\")", CONFIG_);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
again:
 | 
					again:
 | 
				
			||||||
	dialog_clear();
 | 
						dialog_clear();
 | 
				
			||||||
	dres = dialog_inputbox(_("Search Configuration Parameter"),
 | 
						dres = dialog_inputbox("Search Configuration Parameter",
 | 
				
			||||||
			      str_get(&title),
 | 
								      str_get(&title),
 | 
				
			||||||
			      10, 75, "");
 | 
								      10, 75, "");
 | 
				
			||||||
	switch (dres) {
 | 
						switch (dres) {
 | 
				
			||||||
	case 0:
 | 
						case 0:
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 1:
 | 
						case 1:
 | 
				
			||||||
		show_helptext(_("Search Configuration"), search_help);
 | 
							show_helptext("Search Configuration", search_help);
 | 
				
			||||||
		goto again;
 | 
							goto again;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		str_free(&title);
 | 
							str_free(&title);
 | 
				
			||||||
| 
						 | 
					@ -443,7 +442,7 @@ static void search_conf(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		res = get_relations_str(sym_arr, &head);
 | 
							res = get_relations_str(sym_arr, &head);
 | 
				
			||||||
		set_subtitle();
 | 
							set_subtitle();
 | 
				
			||||||
		dres = show_textbox_ext(_("Search Results"), (char *)
 | 
							dres = show_textbox_ext("Search Results", (char *)
 | 
				
			||||||
					str_get(&res), 0, 0, keys, &vscroll,
 | 
										str_get(&res), 0, 0, keys, &vscroll,
 | 
				
			||||||
					&hscroll, &update_text, (void *)
 | 
										&hscroll, &update_text, (void *)
 | 
				
			||||||
					&data);
 | 
										&data);
 | 
				
			||||||
| 
						 | 
					@ -491,7 +490,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
			switch (prop->type) {
 | 
								switch (prop->type) {
 | 
				
			||||||
			case P_MENU:
 | 
								case P_MENU:
 | 
				
			||||||
				child_count++;
 | 
									child_count++;
 | 
				
			||||||
				prompt = _(prompt);
 | 
									prompt = prompt;
 | 
				
			||||||
				if (single_menu_mode) {
 | 
									if (single_menu_mode) {
 | 
				
			||||||
					item_make("%s%*c%s",
 | 
										item_make("%s%*c%s",
 | 
				
			||||||
						  menu->data ? "-->" : "++>",
 | 
											  menu->data ? "-->" : "++>",
 | 
				
			||||||
| 
						 | 
					@ -508,7 +507,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
			case P_COMMENT:
 | 
								case P_COMMENT:
 | 
				
			||||||
				if (prompt) {
 | 
									if (prompt) {
 | 
				
			||||||
					child_count++;
 | 
										child_count++;
 | 
				
			||||||
					item_make("   %*c*** %s ***", indent + 1, ' ', _(prompt));
 | 
										item_make("   %*c*** %s ***", indent + 1, ' ', prompt);
 | 
				
			||||||
					item_set_tag(':');
 | 
										item_set_tag(':');
 | 
				
			||||||
					item_set_data(menu);
 | 
										item_set_data(menu);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					@ -516,7 +515,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				if (prompt) {
 | 
									if (prompt) {
 | 
				
			||||||
					child_count++;
 | 
										child_count++;
 | 
				
			||||||
					item_make("---%*c%s", indent + 1, ' ', _(prompt));
 | 
										item_make("---%*c%s", indent + 1, ' ', prompt);
 | 
				
			||||||
					item_set_tag(':');
 | 
										item_set_tag(':');
 | 
				
			||||||
					item_set_data(menu);
 | 
										item_set_data(menu);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					@ -560,10 +559,10 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
			item_set_data(menu);
 | 
								item_set_data(menu);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		item_add_str("%*c%s", indent + 1, ' ', _(menu_get_prompt(menu)));
 | 
							item_add_str("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
 | 
				
			||||||
		if (val == yes) {
 | 
							if (val == yes) {
 | 
				
			||||||
			if (def_menu) {
 | 
								if (def_menu) {
 | 
				
			||||||
				item_add_str(" (%s)", _(menu_get_prompt(def_menu)));
 | 
									item_add_str(" (%s)", menu_get_prompt(def_menu));
 | 
				
			||||||
				item_add_str("  --->");
 | 
									item_add_str("  --->");
 | 
				
			||||||
				if (def_menu->list) {
 | 
									if (def_menu->list) {
 | 
				
			||||||
					indent += 2;
 | 
										indent += 2;
 | 
				
			||||||
| 
						 | 
					@ -575,7 +574,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		if (menu == current_menu) {
 | 
							if (menu == current_menu) {
 | 
				
			||||||
			item_make("---%*c%s", indent + 1, ' ', _(menu_get_prompt(menu)));
 | 
								item_make("---%*c%s", indent + 1, ' ', menu_get_prompt(menu));
 | 
				
			||||||
			item_set_tag(':');
 | 
								item_set_tag(':');
 | 
				
			||||||
			item_set_data(menu);
 | 
								item_set_data(menu);
 | 
				
			||||||
			goto conf_childs;
 | 
								goto conf_childs;
 | 
				
			||||||
| 
						 | 
					@ -618,17 +617,17 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
				tmp = indent - tmp + 4;
 | 
									tmp = indent - tmp + 4;
 | 
				
			||||||
				if (tmp < 0)
 | 
									if (tmp < 0)
 | 
				
			||||||
					tmp = 0;
 | 
										tmp = 0;
 | 
				
			||||||
				item_add_str("%*c%s%s", tmp, ' ', _(menu_get_prompt(menu)),
 | 
									item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
 | 
				
			||||||
					     (sym_has_value(sym) || !sym_is_changable(sym)) ?
 | 
										     (sym_has_value(sym) || !sym_is_changable(sym)) ?
 | 
				
			||||||
					     "" : _(" (NEW)"));
 | 
										     "" : " (NEW)");
 | 
				
			||||||
				item_set_tag('s');
 | 
									item_set_tag('s');
 | 
				
			||||||
				item_set_data(menu);
 | 
									item_set_data(menu);
 | 
				
			||||||
				goto conf_childs;
 | 
									goto conf_childs;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		item_add_str("%*c%s%s", indent + 1, ' ', _(menu_get_prompt(menu)),
 | 
							item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
 | 
				
			||||||
			  (sym_has_value(sym) || !sym_is_changable(sym)) ?
 | 
								  (sym_has_value(sym) || !sym_is_changable(sym)) ?
 | 
				
			||||||
			  "" : _(" (NEW)"));
 | 
								  "" : " (NEW)");
 | 
				
			||||||
		if (menu->prompt->type == P_MENU) {
 | 
							if (menu->prompt->type == P_MENU) {
 | 
				
			||||||
			item_add_str("  %s", menu_is_empty(menu) ? "----" : "--->");
 | 
								item_add_str("  %s", menu_is_empty(menu) ? "----" : "--->");
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
| 
						 | 
					@ -665,8 +664,8 @@ static void conf(struct menu *menu, struct menu *active_menu)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		set_subtitle();
 | 
							set_subtitle();
 | 
				
			||||||
		dialog_clear();
 | 
							dialog_clear();
 | 
				
			||||||
		res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
 | 
							res = dialog_menu(prompt ? prompt : "Main Menu",
 | 
				
			||||||
				  _(menu_instructions),
 | 
									  menu_instructions,
 | 
				
			||||||
				  active_menu, &s_scroll);
 | 
									  active_menu, &s_scroll);
 | 
				
			||||||
		if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
 | 
							if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
| 
						 | 
					@ -708,7 +707,7 @@ static void conf(struct menu *menu, struct menu *active_menu)
 | 
				
			||||||
				show_help(submenu);
 | 
									show_help(submenu);
 | 
				
			||||||
			else {
 | 
								else {
 | 
				
			||||||
				reset_subtitle();
 | 
									reset_subtitle();
 | 
				
			||||||
				show_helptext(_("README"), _(mconf_readme));
 | 
									show_helptext("README", mconf_readme);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 3:
 | 
							case 3:
 | 
				
			||||||
| 
						 | 
					@ -793,13 +792,13 @@ static void show_help(struct menu *menu)
 | 
				
			||||||
	help.max_width = getmaxx(stdscr) - 10;
 | 
						help.max_width = getmaxx(stdscr) - 10;
 | 
				
			||||||
	menu_get_ext_help(menu, &help);
 | 
						menu_get_ext_help(menu, &help);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	show_helptext(_(menu_get_prompt(menu)), str_get(&help));
 | 
						show_helptext(menu_get_prompt(menu), str_get(&help));
 | 
				
			||||||
	str_free(&help);
 | 
						str_free(&help);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void conf_choice(struct menu *menu)
 | 
					static void conf_choice(struct menu *menu)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	const char *prompt = _(menu_get_prompt(menu));
 | 
						const char *prompt = menu_get_prompt(menu);
 | 
				
			||||||
	struct menu *child;
 | 
						struct menu *child;
 | 
				
			||||||
	struct symbol *active;
 | 
						struct symbol *active;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -814,9 +813,9 @@ static void conf_choice(struct menu *menu)
 | 
				
			||||||
			if (!menu_is_visible(child))
 | 
								if (!menu_is_visible(child))
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
			if (child->sym)
 | 
								if (child->sym)
 | 
				
			||||||
				item_make("%s", _(menu_get_prompt(child)));
 | 
									item_make("%s", menu_get_prompt(child));
 | 
				
			||||||
			else {
 | 
								else {
 | 
				
			||||||
				item_make("*** %s ***", _(menu_get_prompt(child)));
 | 
									item_make("*** %s ***", menu_get_prompt(child));
 | 
				
			||||||
				item_set_tag(':');
 | 
									item_set_tag(':');
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			item_set_data(child);
 | 
								item_set_data(child);
 | 
				
			||||||
| 
						 | 
					@ -826,8 +825,8 @@ static void conf_choice(struct menu *menu)
 | 
				
			||||||
				item_set_tag('X');
 | 
									item_set_tag('X');
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		dialog_clear();
 | 
							dialog_clear();
 | 
				
			||||||
		res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
 | 
							res = dialog_checklist(prompt ? prompt : "Main Menu",
 | 
				
			||||||
					_(radiolist_instructions),
 | 
										radiolist_instructions,
 | 
				
			||||||
					MENUBOX_HEIGTH_MIN,
 | 
										MENUBOX_HEIGTH_MIN,
 | 
				
			||||||
					MENUBOX_WIDTH_MIN,
 | 
										MENUBOX_WIDTH_MIN,
 | 
				
			||||||
					CHECKLIST_HEIGTH_MIN);
 | 
										CHECKLIST_HEIGTH_MIN);
 | 
				
			||||||
| 
						 | 
					@ -868,26 +867,26 @@ static void conf_string(struct menu *menu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		switch (sym_get_type(menu->sym)) {
 | 
							switch (sym_get_type(menu->sym)) {
 | 
				
			||||||
		case S_INT:
 | 
							case S_INT:
 | 
				
			||||||
			heading = _(inputbox_instructions_int);
 | 
								heading = inputbox_instructions_int;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case S_HEX:
 | 
							case S_HEX:
 | 
				
			||||||
			heading = _(inputbox_instructions_hex);
 | 
								heading = inputbox_instructions_hex;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case S_STRING:
 | 
							case S_STRING:
 | 
				
			||||||
			heading = _(inputbox_instructions_string);
 | 
								heading = inputbox_instructions_string;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			heading = _("Internal mconf error!");
 | 
								heading = "Internal mconf error!";
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		dialog_clear();
 | 
							dialog_clear();
 | 
				
			||||||
		res = dialog_inputbox(prompt ? _(prompt) : _("Main Menu"),
 | 
							res = dialog_inputbox(prompt ? prompt : "Main Menu",
 | 
				
			||||||
				      heading, 10, 75,
 | 
									      heading, 10, 75,
 | 
				
			||||||
				      sym_get_string_value(menu->sym));
 | 
									      sym_get_string_value(menu->sym));
 | 
				
			||||||
		switch (res) {
 | 
							switch (res) {
 | 
				
			||||||
		case 0:
 | 
							case 0:
 | 
				
			||||||
			if (sym_set_string_value(menu->sym, dialog_input_result))
 | 
								if (sym_set_string_value(menu->sym, dialog_input_result))
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			show_textbox(NULL, _("You have made an invalid entry."), 5, 43);
 | 
								show_textbox(NULL, "You have made an invalid entry.", 5, 43);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 1:
 | 
							case 1:
 | 
				
			||||||
			show_help(menu);
 | 
								show_help(menu);
 | 
				
			||||||
| 
						 | 
					@ -915,10 +914,10 @@ static void conf_load(void)
 | 
				
			||||||
				sym_set_change_count(1);
 | 
									sym_set_change_count(1);
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			show_textbox(NULL, _("File does not exist!"), 5, 38);
 | 
								show_textbox(NULL, "File does not exist!", 5, 38);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 1:
 | 
							case 1:
 | 
				
			||||||
			show_helptext(_("Load Alternate Configuration"), load_config_help);
 | 
								show_helptext("Load Alternate Configuration", load_config_help);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case KEY_ESC:
 | 
							case KEY_ESC:
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
| 
						 | 
					@ -941,10 +940,10 @@ static void conf_save(void)
 | 
				
			||||||
				set_config_filename(dialog_input_result);
 | 
									set_config_filename(dialog_input_result);
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			show_textbox(NULL, _("Can't create file!  Probably a nonexistent directory."), 5, 60);
 | 
								show_textbox(NULL, "Can't create file!  Probably a nonexistent directory.", 5, 60);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 1:
 | 
							case 1:
 | 
				
			||||||
			show_helptext(_("Save Alternate Configuration"), save_config_help);
 | 
								show_helptext("Save Alternate Configuration", save_config_help);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case KEY_ESC:
 | 
							case KEY_ESC:
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
| 
						 | 
					@ -961,8 +960,8 @@ static int handle_exit(void)
 | 
				
			||||||
	dialog_clear();
 | 
						dialog_clear();
 | 
				
			||||||
	if (conf_get_changed())
 | 
						if (conf_get_changed())
 | 
				
			||||||
		res = dialog_yesno(NULL,
 | 
							res = dialog_yesno(NULL,
 | 
				
			||||||
				   _("Do you wish to save your new configuration?\n"
 | 
									   "Do you wish to save your new configuration?\n"
 | 
				
			||||||
				     "(Press <ESC><ESC> to continue kernel configuration.)"),
 | 
									     "(Press <ESC><ESC> to continue kernel configuration.)",
 | 
				
			||||||
				   6, 60);
 | 
									   6, 60);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		res = -1;
 | 
							res = -1;
 | 
				
			||||||
| 
						 | 
					@ -972,26 +971,26 @@ static int handle_exit(void)
 | 
				
			||||||
	switch (res) {
 | 
						switch (res) {
 | 
				
			||||||
	case 0:
 | 
						case 0:
 | 
				
			||||||
		if (conf_write(filename)) {
 | 
							if (conf_write(filename)) {
 | 
				
			||||||
			fprintf(stderr, _("\n\n"
 | 
								fprintf(stderr, "\n\n"
 | 
				
			||||||
					  "Error while writing of the configuration.\n"
 | 
										  "Error while writing of the configuration.\n"
 | 
				
			||||||
					  "Your configuration changes were NOT saved."
 | 
										  "Your configuration changes were NOT saved."
 | 
				
			||||||
					  "\n\n"));
 | 
										  "\n\n");
 | 
				
			||||||
			return 1;
 | 
								return 1;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/* fall through */
 | 
							/* fall through */
 | 
				
			||||||
	case -1:
 | 
						case -1:
 | 
				
			||||||
		if (!silent)
 | 
							if (!silent)
 | 
				
			||||||
			printf(_("\n\n"
 | 
								printf("\n\n"
 | 
				
			||||||
				 "*** End of the configuration.\n"
 | 
									 "*** End of the configuration.\n"
 | 
				
			||||||
				 "*** Execute 'make' to start the build or try 'make help'."
 | 
									 "*** Execute 'make' to start the build or try 'make help'."
 | 
				
			||||||
				 "\n\n"));
 | 
									 "\n\n");
 | 
				
			||||||
		res = 0;
 | 
							res = 0;
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		if (!silent)
 | 
							if (!silent)
 | 
				
			||||||
			fprintf(stderr, _("\n\n"
 | 
								fprintf(stderr, "\n\n"
 | 
				
			||||||
					  "Your configuration changes were NOT saved."
 | 
										  "Your configuration changes were NOT saved."
 | 
				
			||||||
					  "\n\n"));
 | 
										  "\n\n");
 | 
				
			||||||
		if (res != KEY_ESC)
 | 
							if (res != KEY_ESC)
 | 
				
			||||||
			res = 0;
 | 
								res = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1009,10 +1008,6 @@ int main(int ac, char **av)
 | 
				
			||||||
	char *mode;
 | 
						char *mode;
 | 
				
			||||||
	int res;
 | 
						int res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setlocale(LC_ALL, "");
 | 
					 | 
				
			||||||
	bindtextdomain(PACKAGE, LOCALEDIR);
 | 
					 | 
				
			||||||
	textdomain(PACKAGE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	signal(SIGINT, sig_handler);
 | 
						signal(SIGINT, sig_handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (ac > 1 && strcmp(av[1], "-s") == 0) {
 | 
						if (ac > 1 && strcmp(av[1], "-s") == 0) {
 | 
				
			||||||
| 
						 | 
					@ -1031,8 +1026,8 @@ int main(int ac, char **av)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (init_dialog(NULL)) {
 | 
						if (init_dialog(NULL)) {
 | 
				
			||||||
		fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
 | 
							fprintf(stderr, "Your display is too small to run Menuconfig!\n");
 | 
				
			||||||
		fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
 | 
							fprintf(stderr, "It must be at least 19 lines by 80 columns.\n");
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -711,7 +711,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
 | 
				
			||||||
	struct menu *submenu[8], *menu, *location = NULL;
 | 
						struct menu *submenu[8], *menu, *location = NULL;
 | 
				
			||||||
	struct jump_key *jump = NULL;
 | 
						struct jump_key *jump = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	str_printf(r, _("Prompt: %s\n"), _(prop->text));
 | 
						str_printf(r, "Prompt: %s\n", prop->text);
 | 
				
			||||||
	menu = prop->menu->parent;
 | 
						menu = prop->menu->parent;
 | 
				
			||||||
	for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
 | 
						for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
 | 
				
			||||||
		bool accessible = menu_is_visible(menu);
 | 
							bool accessible = menu_is_visible(menu);
 | 
				
			||||||
| 
						 | 
					@ -744,16 +744,16 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (i > 0) {
 | 
						if (i > 0) {
 | 
				
			||||||
		str_printf(r, _("  Location:\n"));
 | 
							str_printf(r, "  Location:\n");
 | 
				
			||||||
		for (j = 4; --i >= 0; j += 2) {
 | 
							for (j = 4; --i >= 0; j += 2) {
 | 
				
			||||||
			menu = submenu[i];
 | 
								menu = submenu[i];
 | 
				
			||||||
			if (jump && menu == location)
 | 
								if (jump && menu == location)
 | 
				
			||||||
				jump->offset = strlen(r->s);
 | 
									jump->offset = strlen(r->s);
 | 
				
			||||||
			str_printf(r, "%*c-> %s", j, ' ',
 | 
								str_printf(r, "%*c-> %s", j, ' ',
 | 
				
			||||||
				   _(menu_get_prompt(menu)));
 | 
									   menu_get_prompt(menu));
 | 
				
			||||||
			if (menu->sym) {
 | 
								if (menu->sym) {
 | 
				
			||||||
				str_printf(r, " (%s [=%s])", menu->sym->name ?
 | 
									str_printf(r, " (%s [=%s])", menu->sym->name ?
 | 
				
			||||||
					menu->sym->name : _("<choice>"),
 | 
										menu->sym->name : "<choice>",
 | 
				
			||||||
					sym_get_string_value(menu->sym));
 | 
										sym_get_string_value(menu->sym));
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			str_append(r, "\n");
 | 
								str_append(r, "\n");
 | 
				
			||||||
| 
						 | 
					@ -817,23 +817,23 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	prop = get_symbol_prop(sym);
 | 
						prop = get_symbol_prop(sym);
 | 
				
			||||||
	if (prop) {
 | 
						if (prop) {
 | 
				
			||||||
		str_printf(r, _("  Defined at %s:%d\n"), prop->menu->file->name,
 | 
							str_printf(r, "  Defined at %s:%d\n", prop->menu->file->name,
 | 
				
			||||||
			prop->menu->lineno);
 | 
								prop->menu->lineno);
 | 
				
			||||||
		if (!expr_is_yes(prop->visible.expr)) {
 | 
							if (!expr_is_yes(prop->visible.expr)) {
 | 
				
			||||||
			str_append(r, _("  Depends on: "));
 | 
								str_append(r, "  Depends on: ");
 | 
				
			||||||
			expr_gstr_print(prop->visible.expr, r);
 | 
								expr_gstr_print(prop->visible.expr, r);
 | 
				
			||||||
			str_append(r, "\n");
 | 
								str_append(r, "\n");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	get_symbol_props_str(r, sym, P_SELECT, _("  Selects: "));
 | 
						get_symbol_props_str(r, sym, P_SELECT, "  Selects: ");
 | 
				
			||||||
	if (sym->rev_dep.expr) {
 | 
						if (sym->rev_dep.expr) {
 | 
				
			||||||
		expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, "  Selected by [y]:\n");
 | 
							expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, "  Selected by [y]:\n");
 | 
				
			||||||
		expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, "  Selected by [m]:\n");
 | 
							expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, "  Selected by [m]:\n");
 | 
				
			||||||
		expr_gstr_print_revdep(sym->rev_dep.expr, r, no, "  Selected by [n]:\n");
 | 
							expr_gstr_print_revdep(sym->rev_dep.expr, r, no, "  Selected by [n]:\n");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	get_symbol_props_str(r, sym, P_IMPLY, _("  Implies: "));
 | 
						get_symbol_props_str(r, sym, P_IMPLY, "  Implies: ");
 | 
				
			||||||
	if (sym->implied.expr) {
 | 
						if (sym->implied.expr) {
 | 
				
			||||||
		expr_gstr_print_revdep(sym->implied.expr, r, yes, "  Implied by [y]:\n");
 | 
							expr_gstr_print_revdep(sym->implied.expr, r, yes, "  Implied by [y]:\n");
 | 
				
			||||||
		expr_gstr_print_revdep(sym->implied.expr, r, mod, "  Implied by [m]:\n");
 | 
							expr_gstr_print_revdep(sym->implied.expr, r, mod, "  Implied by [m]:\n");
 | 
				
			||||||
| 
						 | 
					@ -852,7 +852,7 @@ struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head)
 | 
				
			||||||
	for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
 | 
						for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
 | 
				
			||||||
		get_symbol_str(&res, sym, head);
 | 
							get_symbol_str(&res, sym, head);
 | 
				
			||||||
	if (!i)
 | 
						if (!i)
 | 
				
			||||||
		str_append(&res, _("No matches found.\n"));
 | 
							str_append(&res, "No matches found.\n");
 | 
				
			||||||
	return res;
 | 
						return res;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -867,7 +867,7 @@ void menu_get_ext_help(struct menu *menu, struct gstr *help)
 | 
				
			||||||
			str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
 | 
								str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
 | 
				
			||||||
		help_text = menu_get_help(menu);
 | 
							help_text = menu_get_help(menu);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	str_printf(help, "%s\n", _(help_text));
 | 
						str_printf(help, "%s\n", help_text);
 | 
				
			||||||
	if (sym)
 | 
						if (sym)
 | 
				
			||||||
		get_symbol_str(help, sym, NULL);
 | 
							get_symbol_str(help, sym, NULL);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,7 @@
 | 
				
			||||||
#include "nconf.h"
 | 
					#include "nconf.h"
 | 
				
			||||||
#include <ctype.h>
 | 
					#include <ctype.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char nconf_global_help[] = N_(
 | 
					static const char nconf_global_help[] =
 | 
				
			||||||
"Help windows\n"
 | 
					"Help windows\n"
 | 
				
			||||||
"------------\n"
 | 
					"------------\n"
 | 
				
			||||||
"o  Global help:  Unless in a data entry window, pressing <F1> will give \n"
 | 
					"o  Global help:  Unless in a data entry window, pressing <F1> will give \n"
 | 
				
			||||||
| 
						 | 
					@ -130,8 +130,8 @@ static const char nconf_global_help[] = N_(
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Note that this mode can eventually be a little more CPU expensive than\n"
 | 
					"Note that this mode can eventually be a little more CPU expensive than\n"
 | 
				
			||||||
"the default mode, especially with a larger number of unfolded submenus.\n"
 | 
					"the default mode, especially with a larger number of unfolded submenus.\n"
 | 
				
			||||||
"\n"),
 | 
					"\n",
 | 
				
			||||||
menu_no_f_instructions[] = N_(
 | 
					menu_no_f_instructions[] =
 | 
				
			||||||
"Legend:  [*] built-in  [ ] excluded  <M> module  < > module capable.\n"
 | 
					"Legend:  [*] built-in  [ ] excluded  <M> module  < > module capable.\n"
 | 
				
			||||||
"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
 | 
					"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -147,8 +147,8 @@ menu_no_f_instructions[] = N_(
 | 
				
			||||||
"You do not have function keys support.\n"
 | 
					"You do not have function keys support.\n"
 | 
				
			||||||
"Press <1> instead of <F1>, <2> instead of <F2>, etc.\n"
 | 
					"Press <1> instead of <F1>, <2> instead of <F2>, etc.\n"
 | 
				
			||||||
"For verbose global help use key <1>.\n"
 | 
					"For verbose global help use key <1>.\n"
 | 
				
			||||||
"For help related to the current menu entry press <?> or <h>.\n"),
 | 
					"For help related to the current menu entry press <?> or <h>.\n",
 | 
				
			||||||
menu_instructions[] = N_(
 | 
					menu_instructions[] =
 | 
				
			||||||
"Legend:  [*] built-in  [ ] excluded  <M> module  < > module capable.\n"
 | 
					"Legend:  [*] built-in  [ ] excluded  <M> module  < > module capable.\n"
 | 
				
			||||||
"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
 | 
					"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -163,30 +163,30 @@ menu_instructions[] = N_(
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Pressing <1> may be used instead of <F1>, <2> instead of <F2>, etc.\n"
 | 
					"Pressing <1> may be used instead of <F1>, <2> instead of <F2>, etc.\n"
 | 
				
			||||||
"For verbose global help press <F1>.\n"
 | 
					"For verbose global help press <F1>.\n"
 | 
				
			||||||
"For help related to the current menu entry press <?> or <h>.\n"),
 | 
					"For help related to the current menu entry press <?> or <h>.\n",
 | 
				
			||||||
radiolist_instructions[] = N_(
 | 
					radiolist_instructions[] =
 | 
				
			||||||
"Press <Up>, <Down>, <Home> or <End> to navigate a radiolist, select\n"
 | 
					"Press <Up>, <Down>, <Home> or <End> to navigate a radiolist, select\n"
 | 
				
			||||||
"with <Space>.\n"
 | 
					"with <Space>.\n"
 | 
				
			||||||
"For help related to the current entry press <?> or <h>.\n"
 | 
					"For help related to the current entry press <?> or <h>.\n"
 | 
				
			||||||
"For global help press <F1>.\n"),
 | 
					"For global help press <F1>.\n",
 | 
				
			||||||
inputbox_instructions_int[] = N_(
 | 
					inputbox_instructions_int[] =
 | 
				
			||||||
"Please enter a decimal value.\n"
 | 
					"Please enter a decimal value.\n"
 | 
				
			||||||
"Fractions will not be accepted.\n"
 | 
					"Fractions will not be accepted.\n"
 | 
				
			||||||
"Press <Enter> to apply, <Esc> to cancel."),
 | 
					"Press <Enter> to apply, <Esc> to cancel.",
 | 
				
			||||||
inputbox_instructions_hex[] = N_(
 | 
					inputbox_instructions_hex[] =
 | 
				
			||||||
"Please enter a hexadecimal value.\n"
 | 
					"Please enter a hexadecimal value.\n"
 | 
				
			||||||
"Press <Enter> to apply, <Esc> to cancel."),
 | 
					"Press <Enter> to apply, <Esc> to cancel.",
 | 
				
			||||||
inputbox_instructions_string[] = N_(
 | 
					inputbox_instructions_string[] =
 | 
				
			||||||
"Please enter a string value.\n"
 | 
					"Please enter a string value.\n"
 | 
				
			||||||
"Press <Enter> to apply, <Esc> to cancel."),
 | 
					"Press <Enter> to apply, <Esc> to cancel.",
 | 
				
			||||||
setmod_text[] = N_(
 | 
					setmod_text[] =
 | 
				
			||||||
"This feature depends on another feature which has been configured as a\n"
 | 
					"This feature depends on another feature which has been configured as a\n"
 | 
				
			||||||
"module.  As a result, the current feature will be built as a module too."),
 | 
					"module.  As a result, the current feature will be built as a module too.",
 | 
				
			||||||
load_config_text[] = N_(
 | 
					load_config_text[] =
 | 
				
			||||||
"Enter the name of the configuration file you wish to load.\n"
 | 
					"Enter the name of the configuration file you wish to load.\n"
 | 
				
			||||||
"Accept the name shown to restore the configuration you last\n"
 | 
					"Accept the name shown to restore the configuration you last\n"
 | 
				
			||||||
"retrieved.  Leave empty to abort."),
 | 
					"retrieved.  Leave empty to abort.",
 | 
				
			||||||
load_config_help[] = N_(
 | 
					load_config_help[] =
 | 
				
			||||||
"For various reasons, one may wish to keep several different\n"
 | 
					"For various reasons, one may wish to keep several different\n"
 | 
				
			||||||
"configurations available on a single machine.\n"
 | 
					"configurations available on a single machine.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -194,11 +194,11 @@ load_config_help[] = N_(
 | 
				
			||||||
"default one, entering its name here will allow you to load and modify\n"
 | 
					"default one, entering its name here will allow you to load and modify\n"
 | 
				
			||||||
"that configuration.\n"
 | 
					"that configuration.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Leave empty to abort.\n"),
 | 
					"Leave empty to abort.\n",
 | 
				
			||||||
save_config_text[] = N_(
 | 
					save_config_text[] =
 | 
				
			||||||
"Enter a filename to which this configuration should be saved\n"
 | 
					"Enter a filename to which this configuration should be saved\n"
 | 
				
			||||||
"as an alternate.  Leave empty to abort."),
 | 
					"as an alternate.  Leave empty to abort.",
 | 
				
			||||||
save_config_help[] = N_(
 | 
					save_config_help[] =
 | 
				
			||||||
"For various reasons, one may wish to keep several different\n"
 | 
					"For various reasons, one may wish to keep several different\n"
 | 
				
			||||||
"configurations available on a single machine.\n"
 | 
					"configurations available on a single machine.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
| 
						 | 
					@ -206,8 +206,8 @@ save_config_help[] = N_(
 | 
				
			||||||
"and use the current configuration as an alternate to whatever\n"
 | 
					"and use the current configuration as an alternate to whatever\n"
 | 
				
			||||||
"configuration options you have selected at that time.\n"
 | 
					"configuration options you have selected at that time.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Leave empty to abort.\n"),
 | 
					"Leave empty to abort.\n",
 | 
				
			||||||
search_help[] = N_(
 | 
					search_help[] =
 | 
				
			||||||
"Search for symbols (configuration variable names CONFIG_*) and display\n"
 | 
					"Search for symbols (configuration variable names CONFIG_*) and display\n"
 | 
				
			||||||
"their relations.  Regular expressions are supported.\n"
 | 
					"their relations.  Regular expressions are supported.\n"
 | 
				
			||||||
"Example:  Search for \"^FOO\".\n"
 | 
					"Example:  Search for \"^FOO\".\n"
 | 
				
			||||||
| 
						 | 
					@ -244,7 +244,7 @@ search_help[] = N_(
 | 
				
			||||||
"USB  => find all symbols containing USB\n"
 | 
					"USB  => find all symbols containing USB\n"
 | 
				
			||||||
"^USB => find all symbols starting with USB\n"
 | 
					"^USB => find all symbols starting with USB\n"
 | 
				
			||||||
"USB$ => find all symbols ending with USB\n"
 | 
					"USB$ => find all symbols ending with USB\n"
 | 
				
			||||||
"\n");
 | 
					"\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct mitem {
 | 
					struct mitem {
 | 
				
			||||||
	char str[256];
 | 
						char str[256];
 | 
				
			||||||
| 
						 | 
					@ -388,7 +388,7 @@ static void print_function_line(void)
 | 
				
			||||||
static void handle_f1(int *key, struct menu *current_item)
 | 
					static void handle_f1(int *key, struct menu *current_item)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	show_scroll_win(main_window,
 | 
						show_scroll_win(main_window,
 | 
				
			||||||
			_("Global help"), _(nconf_global_help));
 | 
								"Global help", nconf_global_help);
 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -403,8 +403,8 @@ static void handle_f2(int *key, struct menu *current_item)
 | 
				
			||||||
static void handle_f3(int *key, struct menu *current_item)
 | 
					static void handle_f3(int *key, struct menu *current_item)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	show_scroll_win(main_window,
 | 
						show_scroll_win(main_window,
 | 
				
			||||||
			_("Short help"),
 | 
								"Short help",
 | 
				
			||||||
			_(current_instructions));
 | 
								current_instructions);
 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -412,7 +412,7 @@ static void handle_f3(int *key, struct menu *current_item)
 | 
				
			||||||
static void handle_f4(int *key, struct menu *current_item)
 | 
					static void handle_f4(int *key, struct menu *current_item)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int res = btn_dialog(main_window,
 | 
						int res = btn_dialog(main_window,
 | 
				
			||||||
			_("Show all symbols?"),
 | 
								"Show all symbols?",
 | 
				
			||||||
			2,
 | 
								2,
 | 
				
			||||||
			"   <Show All>   ",
 | 
								"   <Show All>   ",
 | 
				
			||||||
			"<Don't show all>");
 | 
								"<Don't show all>");
 | 
				
			||||||
| 
						 | 
					@ -653,8 +653,8 @@ static int do_exit(void)
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	res = btn_dialog(main_window,
 | 
						res = btn_dialog(main_window,
 | 
				
			||||||
			_("Do you wish to save your new configuration?\n"
 | 
								"Do you wish to save your new configuration?\n"
 | 
				
			||||||
				"<ESC> to cancel and resume nconfig."),
 | 
									"<ESC> to cancel and resume nconfig.",
 | 
				
			||||||
			2,
 | 
								2,
 | 
				
			||||||
			"   <save>   ",
 | 
								"   <save>   ",
 | 
				
			||||||
			"<don't save>");
 | 
								"<don't save>");
 | 
				
			||||||
| 
						 | 
					@ -670,15 +670,15 @@ static int do_exit(void)
 | 
				
			||||||
		if (res)
 | 
							if (res)
 | 
				
			||||||
			btn_dialog(
 | 
								btn_dialog(
 | 
				
			||||||
				main_window,
 | 
									main_window,
 | 
				
			||||||
				_("Error during writing of configuration.\n"
 | 
									"Error during writing of configuration.\n"
 | 
				
			||||||
				  "Your configuration changes were NOT saved."),
 | 
									  "Your configuration changes were NOT saved.",
 | 
				
			||||||
				  1,
 | 
									  1,
 | 
				
			||||||
				  "<OK>");
 | 
									  "<OK>");
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		btn_dialog(
 | 
							btn_dialog(
 | 
				
			||||||
			main_window,
 | 
								main_window,
 | 
				
			||||||
			_("Your configuration changes were NOT saved."),
 | 
								"Your configuration changes were NOT saved.",
 | 
				
			||||||
			1,
 | 
								1,
 | 
				
			||||||
			"<OK>");
 | 
								"<OK>");
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
| 
						 | 
					@ -697,12 +697,12 @@ static void search_conf(void)
 | 
				
			||||||
	int dres;
 | 
						int dres;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	title = str_new();
 | 
						title = str_new();
 | 
				
			||||||
	str_printf( &title, _("Enter (sub)string or regexp to search for "
 | 
						str_printf( &title, "Enter (sub)string or regexp to search for "
 | 
				
			||||||
			      "(with or without \"%s\")"), CONFIG_);
 | 
								      "(with or without \"%s\")", CONFIG_);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
again:
 | 
					again:
 | 
				
			||||||
	dres = dialog_inputbox(main_window,
 | 
						dres = dialog_inputbox(main_window,
 | 
				
			||||||
			_("Search Configuration Parameter"),
 | 
								"Search Configuration Parameter",
 | 
				
			||||||
			str_get(&title),
 | 
								str_get(&title),
 | 
				
			||||||
			"", &dialog_input_result, &dialog_input_result_len);
 | 
								"", &dialog_input_result, &dialog_input_result_len);
 | 
				
			||||||
	switch (dres) {
 | 
						switch (dres) {
 | 
				
			||||||
| 
						 | 
					@ -710,7 +710,7 @@ static void search_conf(void)
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 1:
 | 
						case 1:
 | 
				
			||||||
		show_scroll_win(main_window,
 | 
							show_scroll_win(main_window,
 | 
				
			||||||
				_("Search Configuration"), search_help);
 | 
									"Search Configuration", search_help);
 | 
				
			||||||
		goto again;
 | 
							goto again;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		str_free(&title);
 | 
							str_free(&title);
 | 
				
			||||||
| 
						 | 
					@ -726,7 +726,7 @@ static void search_conf(void)
 | 
				
			||||||
	res = get_relations_str(sym_arr, NULL);
 | 
						res = get_relations_str(sym_arr, NULL);
 | 
				
			||||||
	free(sym_arr);
 | 
						free(sym_arr);
 | 
				
			||||||
	show_scroll_win(main_window,
 | 
						show_scroll_win(main_window,
 | 
				
			||||||
			_("Search Results"), str_get(&res));
 | 
								"Search Results", str_get(&res));
 | 
				
			||||||
	str_free(&res);
 | 
						str_free(&res);
 | 
				
			||||||
	str_free(&title);
 | 
						str_free(&title);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -754,7 +754,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
			switch (ptype) {
 | 
								switch (ptype) {
 | 
				
			||||||
			case P_MENU:
 | 
								case P_MENU:
 | 
				
			||||||
				child_count++;
 | 
									child_count++;
 | 
				
			||||||
				prompt = _(prompt);
 | 
									prompt = prompt;
 | 
				
			||||||
				if (single_menu_mode) {
 | 
									if (single_menu_mode) {
 | 
				
			||||||
					item_make(menu, 'm',
 | 
										item_make(menu, 'm',
 | 
				
			||||||
						"%s%*c%s",
 | 
											"%s%*c%s",
 | 
				
			||||||
| 
						 | 
					@ -775,7 +775,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
					item_make(menu, ':',
 | 
										item_make(menu, ':',
 | 
				
			||||||
						"   %*c*** %s ***",
 | 
											"   %*c*** %s ***",
 | 
				
			||||||
						indent + 1, ' ',
 | 
											indent + 1, ' ',
 | 
				
			||||||
						_(prompt));
 | 
											prompt);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
| 
						 | 
					@ -783,7 +783,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
					child_count++;
 | 
										child_count++;
 | 
				
			||||||
					item_make(menu, ':', "---%*c%s",
 | 
										item_make(menu, ':', "---%*c%s",
 | 
				
			||||||
						indent + 1, ' ',
 | 
											indent + 1, ' ',
 | 
				
			||||||
						_(prompt));
 | 
											prompt);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else
 | 
							} else
 | 
				
			||||||
| 
						 | 
					@ -829,11 +829,11 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		item_add_str("%*c%s", indent + 1,
 | 
							item_add_str("%*c%s", indent + 1,
 | 
				
			||||||
				' ', _(menu_get_prompt(menu)));
 | 
									' ', menu_get_prompt(menu));
 | 
				
			||||||
		if (val == yes) {
 | 
							if (val == yes) {
 | 
				
			||||||
			if (def_menu) {
 | 
								if (def_menu) {
 | 
				
			||||||
				item_add_str(" (%s)",
 | 
									item_add_str(" (%s)",
 | 
				
			||||||
					_(menu_get_prompt(def_menu)));
 | 
										menu_get_prompt(def_menu));
 | 
				
			||||||
				item_add_str("  --->");
 | 
									item_add_str("  --->");
 | 
				
			||||||
				if (def_menu->list) {
 | 
									if (def_menu->list) {
 | 
				
			||||||
					indent += 2;
 | 
										indent += 2;
 | 
				
			||||||
| 
						 | 
					@ -847,7 +847,7 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
		if (menu == current_menu) {
 | 
							if (menu == current_menu) {
 | 
				
			||||||
			item_make(menu, ':',
 | 
								item_make(menu, ':',
 | 
				
			||||||
				"---%*c%s", indent + 1,
 | 
									"---%*c%s", indent + 1,
 | 
				
			||||||
				' ', _(menu_get_prompt(menu)));
 | 
									' ', menu_get_prompt(menu));
 | 
				
			||||||
			goto conf_childs;
 | 
								goto conf_childs;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		child_count++;
 | 
							child_count++;
 | 
				
			||||||
| 
						 | 
					@ -894,17 +894,17 @@ static void build_conf(struct menu *menu)
 | 
				
			||||||
				if (tmp < 0)
 | 
									if (tmp < 0)
 | 
				
			||||||
					tmp = 0;
 | 
										tmp = 0;
 | 
				
			||||||
				item_add_str("%*c%s%s", tmp, ' ',
 | 
									item_add_str("%*c%s%s", tmp, ' ',
 | 
				
			||||||
						_(menu_get_prompt(menu)),
 | 
											menu_get_prompt(menu),
 | 
				
			||||||
						(sym_has_value(sym) ||
 | 
											(sym_has_value(sym) ||
 | 
				
			||||||
						 !sym_is_changable(sym)) ? "" :
 | 
											 !sym_is_changable(sym)) ? "" :
 | 
				
			||||||
						_(" (NEW)"));
 | 
											" (NEW)");
 | 
				
			||||||
				goto conf_childs;
 | 
									goto conf_childs;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		item_add_str("%*c%s%s", indent + 1, ' ',
 | 
							item_add_str("%*c%s%s", indent + 1, ' ',
 | 
				
			||||||
				_(menu_get_prompt(menu)),
 | 
									menu_get_prompt(menu),
 | 
				
			||||||
				(sym_has_value(sym) || !sym_is_changable(sym)) ?
 | 
									(sym_has_value(sym) || !sym_is_changable(sym)) ?
 | 
				
			||||||
				"" : _(" (NEW)"));
 | 
									"" : " (NEW)");
 | 
				
			||||||
		if (menu->prompt && menu->prompt->type == P_MENU) {
 | 
							if (menu->prompt && menu->prompt->type == P_MENU) {
 | 
				
			||||||
			item_add_str("  %s", menu_is_empty(menu) ? "----" : "--->");
 | 
								item_add_str("  %s", menu_is_empty(menu) ? "----" : "--->");
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
| 
						 | 
					@ -1086,8 +1086,8 @@ static void conf(struct menu *menu)
 | 
				
			||||||
		if (!child_count)
 | 
							if (!child_count)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		show_menu(prompt ? _(prompt) : _("Main Menu"),
 | 
							show_menu(prompt ? prompt : "Main Menu",
 | 
				
			||||||
				_(menu_instructions),
 | 
									menu_instructions,
 | 
				
			||||||
				current_index, &last_top_row);
 | 
									current_index, &last_top_row);
 | 
				
			||||||
		keypad((menu_win(curses_menu)), TRUE);
 | 
							keypad((menu_win(curses_menu)), TRUE);
 | 
				
			||||||
		while (!global_exit) {
 | 
							while (!global_exit) {
 | 
				
			||||||
| 
						 | 
					@ -1227,13 +1227,13 @@ static void show_help(struct menu *menu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	help = str_new();
 | 
						help = str_new();
 | 
				
			||||||
	menu_get_ext_help(menu, &help);
 | 
						menu_get_ext_help(menu, &help);
 | 
				
			||||||
	show_scroll_win(main_window, _(menu_get_prompt(menu)), str_get(&help));
 | 
						show_scroll_win(main_window, menu_get_prompt(menu), str_get(&help));
 | 
				
			||||||
	str_free(&help);
 | 
						str_free(&help);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void conf_choice(struct menu *menu)
 | 
					static void conf_choice(struct menu *menu)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	const char *prompt = _(menu_get_prompt(menu));
 | 
						const char *prompt = menu_get_prompt(menu);
 | 
				
			||||||
	struct menu *child = NULL;
 | 
						struct menu *child = NULL;
 | 
				
			||||||
	struct symbol *active;
 | 
						struct symbol *active;
 | 
				
			||||||
	int selected_index = 0;
 | 
						int selected_index = 0;
 | 
				
			||||||
| 
						 | 
					@ -1256,13 +1256,13 @@ static void conf_choice(struct menu *menu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (child->sym == sym_get_choice_value(menu->sym))
 | 
								if (child->sym == sym_get_choice_value(menu->sym))
 | 
				
			||||||
				item_make(child, ':', "<X> %s",
 | 
									item_make(child, ':', "<X> %s",
 | 
				
			||||||
						_(menu_get_prompt(child)));
 | 
											menu_get_prompt(child));
 | 
				
			||||||
			else if (child->sym)
 | 
								else if (child->sym)
 | 
				
			||||||
				item_make(child, ':', "    %s",
 | 
									item_make(child, ':', "    %s",
 | 
				
			||||||
						_(menu_get_prompt(child)));
 | 
											menu_get_prompt(child));
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				item_make(child, ':', "*** %s ***",
 | 
									item_make(child, ':', "*** %s ***",
 | 
				
			||||||
						_(menu_get_prompt(child)));
 | 
											menu_get_prompt(child));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (child->sym == active){
 | 
								if (child->sym == active){
 | 
				
			||||||
				last_top_row = top_row(curses_menu);
 | 
									last_top_row = top_row(curses_menu);
 | 
				
			||||||
| 
						 | 
					@ -1270,8 +1270,8 @@ static void conf_choice(struct menu *menu)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			i++;
 | 
								i++;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		show_menu(prompt ? _(prompt) : _("Choice Menu"),
 | 
							show_menu(prompt ? prompt : "Choice Menu",
 | 
				
			||||||
				_(radiolist_instructions),
 | 
									radiolist_instructions,
 | 
				
			||||||
				selected_index,
 | 
									selected_index,
 | 
				
			||||||
				&last_top_row);
 | 
									&last_top_row);
 | 
				
			||||||
		while (!global_exit) {
 | 
							while (!global_exit) {
 | 
				
			||||||
| 
						 | 
					@ -1358,19 +1358,19 @@ static void conf_string(struct menu *menu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		switch (sym_get_type(menu->sym)) {
 | 
							switch (sym_get_type(menu->sym)) {
 | 
				
			||||||
		case S_INT:
 | 
							case S_INT:
 | 
				
			||||||
			heading = _(inputbox_instructions_int);
 | 
								heading = inputbox_instructions_int;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case S_HEX:
 | 
							case S_HEX:
 | 
				
			||||||
			heading = _(inputbox_instructions_hex);
 | 
								heading = inputbox_instructions_hex;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case S_STRING:
 | 
							case S_STRING:
 | 
				
			||||||
			heading = _(inputbox_instructions_string);
 | 
								heading = inputbox_instructions_string;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			heading = _("Internal nconf error!");
 | 
								heading = "Internal nconf error!";
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		res = dialog_inputbox(main_window,
 | 
							res = dialog_inputbox(main_window,
 | 
				
			||||||
				prompt ? _(prompt) : _("Main Menu"),
 | 
									prompt ? prompt : "Main Menu",
 | 
				
			||||||
				heading,
 | 
									heading,
 | 
				
			||||||
				sym_get_string_value(menu->sym),
 | 
									sym_get_string_value(menu->sym),
 | 
				
			||||||
				&dialog_input_result,
 | 
									&dialog_input_result,
 | 
				
			||||||
| 
						 | 
					@ -1381,7 +1381,7 @@ static void conf_string(struct menu *menu)
 | 
				
			||||||
						dialog_input_result))
 | 
											dialog_input_result))
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			btn_dialog(main_window,
 | 
								btn_dialog(main_window,
 | 
				
			||||||
				_("You have made an invalid entry."), 0);
 | 
									"You have made an invalid entry.", 0);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 1:
 | 
							case 1:
 | 
				
			||||||
			show_help(menu);
 | 
								show_help(menu);
 | 
				
			||||||
| 
						 | 
					@ -1410,11 +1410,11 @@ static void conf_load(void)
 | 
				
			||||||
				sym_set_change_count(1);
 | 
									sym_set_change_count(1);
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			btn_dialog(main_window, _("File does not exist!"), 0);
 | 
								btn_dialog(main_window, "File does not exist!", 0);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 1:
 | 
							case 1:
 | 
				
			||||||
			show_scroll_win(main_window,
 | 
								show_scroll_win(main_window,
 | 
				
			||||||
					_("Load Alternate Configuration"),
 | 
										"Load Alternate Configuration",
 | 
				
			||||||
					load_config_help);
 | 
										load_config_help);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case KEY_EXIT:
 | 
							case KEY_EXIT:
 | 
				
			||||||
| 
						 | 
					@ -1441,13 +1441,13 @@ static void conf_save(void)
 | 
				
			||||||
				set_config_filename(dialog_input_result);
 | 
									set_config_filename(dialog_input_result);
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			btn_dialog(main_window, _("Can't create file! "
 | 
								btn_dialog(main_window, "Can't create file! "
 | 
				
			||||||
				"Probably a nonexistent directory."),
 | 
									"Probably a nonexistent directory.",
 | 
				
			||||||
				1, "<OK>");
 | 
									1, "<OK>");
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 1:
 | 
							case 1:
 | 
				
			||||||
			show_scroll_win(main_window,
 | 
								show_scroll_win(main_window,
 | 
				
			||||||
				_("Save Alternate Configuration"),
 | 
									"Save Alternate Configuration",
 | 
				
			||||||
				save_config_help);
 | 
									save_config_help);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case KEY_EXIT:
 | 
							case KEY_EXIT:
 | 
				
			||||||
| 
						 | 
					@ -1480,10 +1480,6 @@ int main(int ac, char **av)
 | 
				
			||||||
	int lines, columns;
 | 
						int lines, columns;
 | 
				
			||||||
	char *mode;
 | 
						char *mode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setlocale(LC_ALL, "");
 | 
					 | 
				
			||||||
	bindtextdomain(PACKAGE, LOCALEDIR);
 | 
					 | 
				
			||||||
	textdomain(PACKAGE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (ac > 1 && strcmp(av[1], "-s") == 0) {
 | 
						if (ac > 1 && strcmp(av[1], "-s") == 0) {
 | 
				
			||||||
		/* Silence conf_read() until the real callback is set up */
 | 
							/* Silence conf_read() until the real callback is set up */
 | 
				
			||||||
		conf_set_message_callback(NULL);
 | 
							conf_set_message_callback(NULL);
 | 
				
			||||||
| 
						 | 
					@ -1541,8 +1537,8 @@ int main(int ac, char **av)
 | 
				
			||||||
	/* check for KEY_FUNC(1) */
 | 
						/* check for KEY_FUNC(1) */
 | 
				
			||||||
	if (has_key(KEY_F(1)) == FALSE) {
 | 
						if (has_key(KEY_F(1)) == FALSE) {
 | 
				
			||||||
		show_scroll_win(main_window,
 | 
							show_scroll_win(main_window,
 | 
				
			||||||
				_("Instructions"),
 | 
									"Instructions",
 | 
				
			||||||
				_(menu_no_f_instructions));
 | 
									menu_no_f_instructions);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	conf_set_message_callback(conf_message_callback);
 | 
						conf_set_message_callback(conf_message_callback);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,6 @@
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <locale.h>
 | 
					 | 
				
			||||||
#include <ncurses.h>
 | 
					#include <ncurses.h>
 | 
				
			||||||
#include <menu.h>
 | 
					#include <menu.h>
 | 
				
			||||||
#include <panel.h>
 | 
					#include <panel.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,10 +34,6 @@
 | 
				
			||||||
#include "qconf.moc"
 | 
					#include "qconf.moc"
 | 
				
			||||||
#include "images.c"
 | 
					#include "images.c"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef _
 | 
					 | 
				
			||||||
# undef _
 | 
					 | 
				
			||||||
# define _ qgettext
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static QApplication *configApp;
 | 
					static QApplication *configApp;
 | 
				
			||||||
static ConfigSettings *configSettings;
 | 
					static ConfigSettings *configSettings;
 | 
				
			||||||
| 
						 | 
					@ -46,12 +42,7 @@ QAction *ConfigMainWindow::saveAction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline QString qgettext(const char* str)
 | 
					static inline QString qgettext(const char* str)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return QString::fromLocal8Bit(gettext(str));
 | 
						return QString::fromLocal8Bit(str);
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline QString qgettext(const QString& str)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return QString::fromLocal8Bit(gettext(str.toLatin1()));
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ConfigSettings::ConfigSettings()
 | 
					ConfigSettings::ConfigSettings()
 | 
				
			||||||
| 
						 | 
					@ -127,7 +118,7 @@ void ConfigItem::updateMenu(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sym = menu->sym;
 | 
						sym = menu->sym;
 | 
				
			||||||
	prop = menu->prompt;
 | 
						prop = menu->prompt;
 | 
				
			||||||
	prompt = _(menu_get_prompt(menu));
 | 
						prompt = qgettext(menu_get_prompt(menu));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (prop) switch (prop->type) {
 | 
						if (prop) switch (prop->type) {
 | 
				
			||||||
	case P_MENU:
 | 
						case P_MENU:
 | 
				
			||||||
| 
						 | 
					@ -216,7 +207,7 @@ void ConfigItem::updateMenu(void)
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (!sym_has_value(sym) && visible)
 | 
						if (!sym_has_value(sym) && visible)
 | 
				
			||||||
		prompt += _(" (NEW)");
 | 
							prompt += " (NEW)";
 | 
				
			||||||
set_prompt:
 | 
					set_prompt:
 | 
				
			||||||
	setText(promptColIdx, prompt);
 | 
						setText(promptColIdx, prompt);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -327,7 +318,7 @@ ConfigList::ConfigList(ConfigView* p, const char *name)
 | 
				
			||||||
	setVerticalScrollMode(ScrollPerPixel);
 | 
						setVerticalScrollMode(ScrollPerPixel);
 | 
				
			||||||
	setHorizontalScrollMode(ScrollPerPixel);
 | 
						setHorizontalScrollMode(ScrollPerPixel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setHeaderLabels(QStringList() << _("Option") << _("Name") << "N" << "M" << "Y" << _("Value"));
 | 
						setHeaderLabels(QStringList() << "Option" << "Name" << "N" << "M" << "Y" << "Value");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	connect(this, SIGNAL(itemSelectionChanged(void)),
 | 
						connect(this, SIGNAL(itemSelectionChanged(void)),
 | 
				
			||||||
		SLOT(updateSelection(void)));
 | 
							SLOT(updateSelection(void)));
 | 
				
			||||||
| 
						 | 
					@ -883,7 +874,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
 | 
				
			||||||
			QAction *action;
 | 
								QAction *action;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			headerPopup = new QMenu(this);
 | 
								headerPopup = new QMenu(this);
 | 
				
			||||||
			action = new QAction(_("Show Name"), this);
 | 
								action = new QAction("Show Name", this);
 | 
				
			||||||
			  action->setCheckable(true);
 | 
								  action->setCheckable(true);
 | 
				
			||||||
			  connect(action, SIGNAL(toggled(bool)),
 | 
								  connect(action, SIGNAL(toggled(bool)),
 | 
				
			||||||
				  parent(), SLOT(setShowName(bool)));
 | 
									  parent(), SLOT(setShowName(bool)));
 | 
				
			||||||
| 
						 | 
					@ -891,7 +882,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
 | 
				
			||||||
				  action, SLOT(setOn(bool)));
 | 
									  action, SLOT(setOn(bool)));
 | 
				
			||||||
			  action->setChecked(showName);
 | 
								  action->setChecked(showName);
 | 
				
			||||||
			  headerPopup->addAction(action);
 | 
								  headerPopup->addAction(action);
 | 
				
			||||||
			action = new QAction(_("Show Range"), this);
 | 
								action = new QAction("Show Range", this);
 | 
				
			||||||
			  action->setCheckable(true);
 | 
								  action->setCheckable(true);
 | 
				
			||||||
			  connect(action, SIGNAL(toggled(bool)),
 | 
								  connect(action, SIGNAL(toggled(bool)),
 | 
				
			||||||
				  parent(), SLOT(setShowRange(bool)));
 | 
									  parent(), SLOT(setShowRange(bool)));
 | 
				
			||||||
| 
						 | 
					@ -899,7 +890,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
 | 
				
			||||||
				  action, SLOT(setOn(bool)));
 | 
									  action, SLOT(setOn(bool)));
 | 
				
			||||||
			  action->setChecked(showRange);
 | 
								  action->setChecked(showRange);
 | 
				
			||||||
			  headerPopup->addAction(action);
 | 
								  headerPopup->addAction(action);
 | 
				
			||||||
			action = new QAction(_("Show Data"), this);
 | 
								action = new QAction("Show Data", this);
 | 
				
			||||||
			  action->setCheckable(true);
 | 
								  action->setCheckable(true);
 | 
				
			||||||
			  connect(action, SIGNAL(toggled(bool)),
 | 
								  connect(action, SIGNAL(toggled(bool)),
 | 
				
			||||||
				  parent(), SLOT(setShowData(bool)));
 | 
									  parent(), SLOT(setShowData(bool)));
 | 
				
			||||||
| 
						 | 
					@ -1086,7 +1077,7 @@ void ConfigInfoView::menuInfo(void)
 | 
				
			||||||
	if (sym) {
 | 
						if (sym) {
 | 
				
			||||||
		if (_menu->prompt) {
 | 
							if (_menu->prompt) {
 | 
				
			||||||
			head += "<big><b>";
 | 
								head += "<big><b>";
 | 
				
			||||||
			head += print_filter(_(_menu->prompt->text));
 | 
								head += print_filter(_menu->prompt->text);
 | 
				
			||||||
			head += "</b></big>";
 | 
								head += "</b></big>";
 | 
				
			||||||
			if (sym->name) {
 | 
								if (sym->name) {
 | 
				
			||||||
				head += " (";
 | 
									head += " (";
 | 
				
			||||||
| 
						 | 
					@ -1117,7 +1108,7 @@ void ConfigInfoView::menuInfo(void)
 | 
				
			||||||
		str_free(&help_gstr);
 | 
							str_free(&help_gstr);
 | 
				
			||||||
	} else if (_menu->prompt) {
 | 
						} else if (_menu->prompt) {
 | 
				
			||||||
		head += "<big><b>";
 | 
							head += "<big><b>";
 | 
				
			||||||
		head += print_filter(_(_menu->prompt->text));
 | 
							head += print_filter(_menu->prompt->text);
 | 
				
			||||||
		head += "</b></big><br><br>";
 | 
							head += "</b></big><br><br>";
 | 
				
			||||||
		if (showDebug()) {
 | 
							if (showDebug()) {
 | 
				
			||||||
			if (_menu->prompt->visible.expr) {
 | 
								if (_menu->prompt->visible.expr) {
 | 
				
			||||||
| 
						 | 
					@ -1152,7 +1143,7 @@ QString ConfigInfoView::debug_info(struct symbol *sym)
 | 
				
			||||||
		case P_PROMPT:
 | 
							case P_PROMPT:
 | 
				
			||||||
		case P_MENU:
 | 
							case P_MENU:
 | 
				
			||||||
			debug += QString().sprintf("prompt: <a href=\"m%p\">", prop->menu);
 | 
								debug += QString().sprintf("prompt: <a href=\"m%p\">", prop->menu);
 | 
				
			||||||
			debug += print_filter(_(prop->text));
 | 
								debug += print_filter(prop->text);
 | 
				
			||||||
			debug += "</a><br>";
 | 
								debug += "</a><br>";
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case P_DEFAULT:
 | 
							case P_DEFAULT:
 | 
				
			||||||
| 
						 | 
					@ -1234,7 +1225,7 @@ void ConfigInfoView::expr_print_help(void *data, struct symbol *sym, const char
 | 
				
			||||||
QMenu* ConfigInfoView::createStandardContextMenu(const QPoint & pos)
 | 
					QMenu* ConfigInfoView::createStandardContextMenu(const QPoint & pos)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	QMenu* popup = Parent::createStandardContextMenu(pos);
 | 
						QMenu* popup = Parent::createStandardContextMenu(pos);
 | 
				
			||||||
	QAction* action = new QAction(_("Show Debug Info"), popup);
 | 
						QAction* action = new QAction("Show Debug Info", popup);
 | 
				
			||||||
	  action->setCheckable(true);
 | 
						  action->setCheckable(true);
 | 
				
			||||||
	  connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
 | 
						  connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
 | 
				
			||||||
	  connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
 | 
						  connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
 | 
				
			||||||
| 
						 | 
					@ -1261,11 +1252,11 @@ ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent, const char *nam
 | 
				
			||||||
	QHBoxLayout* layout2 = new QHBoxLayout(0);
 | 
						QHBoxLayout* layout2 = new QHBoxLayout(0);
 | 
				
			||||||
	layout2->setContentsMargins(0, 0, 0, 0);
 | 
						layout2->setContentsMargins(0, 0, 0, 0);
 | 
				
			||||||
	layout2->setSpacing(6);
 | 
						layout2->setSpacing(6);
 | 
				
			||||||
	layout2->addWidget(new QLabel(_("Find:"), this));
 | 
						layout2->addWidget(new QLabel("Find:", this));
 | 
				
			||||||
	editField = new QLineEdit(this);
 | 
						editField = new QLineEdit(this);
 | 
				
			||||||
	connect(editField, SIGNAL(returnPressed()), SLOT(search()));
 | 
						connect(editField, SIGNAL(returnPressed()), SLOT(search()));
 | 
				
			||||||
	layout2->addWidget(editField);
 | 
						layout2->addWidget(editField);
 | 
				
			||||||
	searchButton = new QPushButton(_("Search"), this);
 | 
						searchButton = new QPushButton("Search", this);
 | 
				
			||||||
	searchButton->setAutoDefault(false);
 | 
						searchButton->setAutoDefault(false);
 | 
				
			||||||
	connect(searchButton, SIGNAL(clicked()), SLOT(search()));
 | 
						connect(searchButton, SIGNAL(clicked()), SLOT(search()));
 | 
				
			||||||
	layout2->addWidget(searchButton);
 | 
						layout2->addWidget(searchButton);
 | 
				
			||||||
| 
						 | 
					@ -1387,44 +1378,44 @@ ConfigMainWindow::ConfigMainWindow(void)
 | 
				
			||||||
	toolBar = new QToolBar("Tools", this);
 | 
						toolBar = new QToolBar("Tools", this);
 | 
				
			||||||
	addToolBar(toolBar);
 | 
						addToolBar(toolBar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	backAction = new QAction(QPixmap(xpm_back), _("Back"), this);
 | 
						backAction = new QAction(QPixmap(xpm_back), "Back", this);
 | 
				
			||||||
	  connect(backAction, SIGNAL(triggered(bool)), SLOT(goBack()));
 | 
						  connect(backAction, SIGNAL(triggered(bool)), SLOT(goBack()));
 | 
				
			||||||
	  backAction->setEnabled(false);
 | 
						  backAction->setEnabled(false);
 | 
				
			||||||
	QAction *quitAction = new QAction(_("&Quit"), this);
 | 
						QAction *quitAction = new QAction("&Quit", this);
 | 
				
			||||||
	quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
 | 
						quitAction->setShortcut(Qt::CTRL + Qt::Key_Q);
 | 
				
			||||||
	  connect(quitAction, SIGNAL(triggered(bool)), SLOT(close()));
 | 
						  connect(quitAction, SIGNAL(triggered(bool)), SLOT(close()));
 | 
				
			||||||
	QAction *loadAction = new QAction(QPixmap(xpm_load), _("&Load"), this);
 | 
						QAction *loadAction = new QAction(QPixmap(xpm_load), "&Load", this);
 | 
				
			||||||
	loadAction->setShortcut(Qt::CTRL + Qt::Key_L);
 | 
						loadAction->setShortcut(Qt::CTRL + Qt::Key_L);
 | 
				
			||||||
	  connect(loadAction, SIGNAL(triggered(bool)), SLOT(loadConfig()));
 | 
						  connect(loadAction, SIGNAL(triggered(bool)), SLOT(loadConfig()));
 | 
				
			||||||
	saveAction = new QAction(QPixmap(xpm_save), _("&Save"), this);
 | 
						saveAction = new QAction(QPixmap(xpm_save), "&Save", this);
 | 
				
			||||||
	saveAction->setShortcut(Qt::CTRL + Qt::Key_S);
 | 
						saveAction->setShortcut(Qt::CTRL + Qt::Key_S);
 | 
				
			||||||
	  connect(saveAction, SIGNAL(triggered(bool)), SLOT(saveConfig()));
 | 
						  connect(saveAction, SIGNAL(triggered(bool)), SLOT(saveConfig()));
 | 
				
			||||||
	conf_set_changed_callback(conf_changed);
 | 
						conf_set_changed_callback(conf_changed);
 | 
				
			||||||
	// Set saveAction's initial state
 | 
						// Set saveAction's initial state
 | 
				
			||||||
	conf_changed();
 | 
						conf_changed();
 | 
				
			||||||
	QAction *saveAsAction = new QAction(_("Save &As..."), this);
 | 
						QAction *saveAsAction = new QAction("Save &As...", this);
 | 
				
			||||||
	  connect(saveAsAction, SIGNAL(triggered(bool)), SLOT(saveConfigAs()));
 | 
						  connect(saveAsAction, SIGNAL(triggered(bool)), SLOT(saveConfigAs()));
 | 
				
			||||||
	QAction *searchAction = new QAction(_("&Find"), this);
 | 
						QAction *searchAction = new QAction("&Find", this);
 | 
				
			||||||
	searchAction->setShortcut(Qt::CTRL + Qt::Key_F);
 | 
						searchAction->setShortcut(Qt::CTRL + Qt::Key_F);
 | 
				
			||||||
	  connect(searchAction, SIGNAL(triggered(bool)), SLOT(searchConfig()));
 | 
						  connect(searchAction, SIGNAL(triggered(bool)), SLOT(searchConfig()));
 | 
				
			||||||
	singleViewAction = new QAction(QPixmap(xpm_single_view), _("Single View"), this);
 | 
						singleViewAction = new QAction(QPixmap(xpm_single_view), "Single View", this);
 | 
				
			||||||
	singleViewAction->setCheckable(true);
 | 
						singleViewAction->setCheckable(true);
 | 
				
			||||||
	  connect(singleViewAction, SIGNAL(triggered(bool)), SLOT(showSingleView()));
 | 
						  connect(singleViewAction, SIGNAL(triggered(bool)), SLOT(showSingleView()));
 | 
				
			||||||
	splitViewAction = new QAction(QPixmap(xpm_split_view), _("Split View"), this);
 | 
						splitViewAction = new QAction(QPixmap(xpm_split_view), "Split View", this);
 | 
				
			||||||
	splitViewAction->setCheckable(true);
 | 
						splitViewAction->setCheckable(true);
 | 
				
			||||||
	  connect(splitViewAction, SIGNAL(triggered(bool)), SLOT(showSplitView()));
 | 
						  connect(splitViewAction, SIGNAL(triggered(bool)), SLOT(showSplitView()));
 | 
				
			||||||
	fullViewAction = new QAction(QPixmap(xpm_tree_view), _("Full View"), this);
 | 
						fullViewAction = new QAction(QPixmap(xpm_tree_view), "Full View", this);
 | 
				
			||||||
	fullViewAction->setCheckable(true);
 | 
						fullViewAction->setCheckable(true);
 | 
				
			||||||
	  connect(fullViewAction, SIGNAL(triggered(bool)), SLOT(showFullView()));
 | 
						  connect(fullViewAction, SIGNAL(triggered(bool)), SLOT(showFullView()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QAction *showNameAction = new QAction(_("Show Name"), this);
 | 
						QAction *showNameAction = new QAction("Show Name", this);
 | 
				
			||||||
	  showNameAction->setCheckable(true);
 | 
						  showNameAction->setCheckable(true);
 | 
				
			||||||
	  connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
 | 
						  connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
 | 
				
			||||||
	  showNameAction->setChecked(configView->showName());
 | 
						  showNameAction->setChecked(configView->showName());
 | 
				
			||||||
	QAction *showRangeAction = new QAction(_("Show Range"), this);
 | 
						QAction *showRangeAction = new QAction("Show Range", this);
 | 
				
			||||||
	  showRangeAction->setCheckable(true);
 | 
						  showRangeAction->setCheckable(true);
 | 
				
			||||||
	  connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
 | 
						  connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
 | 
				
			||||||
	QAction *showDataAction = new QAction(_("Show Data"), this);
 | 
						QAction *showDataAction = new QAction("Show Data", this);
 | 
				
			||||||
	  showDataAction->setCheckable(true);
 | 
						  showDataAction->setCheckable(true);
 | 
				
			||||||
	  connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
 | 
						  connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1435,21 +1426,21 @@ ConfigMainWindow::ConfigMainWindow(void)
 | 
				
			||||||
	connect(optGroup, SIGNAL(triggered(QAction *)), menuView,
 | 
						connect(optGroup, SIGNAL(triggered(QAction *)), menuView,
 | 
				
			||||||
		SLOT(setOptionMode(QAction *)));
 | 
							SLOT(setOptionMode(QAction *)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	configView->showNormalAction = new QAction(_("Show Normal Options"), optGroup);
 | 
						configView->showNormalAction = new QAction("Show Normal Options", optGroup);
 | 
				
			||||||
	configView->showAllAction = new QAction(_("Show All Options"), optGroup);
 | 
						configView->showAllAction = new QAction("Show All Options", optGroup);
 | 
				
			||||||
	configView->showPromptAction = new QAction(_("Show Prompt Options"), optGroup);
 | 
						configView->showPromptAction = new QAction("Show Prompt Options", optGroup);
 | 
				
			||||||
	configView->showNormalAction->setCheckable(true);
 | 
						configView->showNormalAction->setCheckable(true);
 | 
				
			||||||
	configView->showAllAction->setCheckable(true);
 | 
						configView->showAllAction->setCheckable(true);
 | 
				
			||||||
	configView->showPromptAction->setCheckable(true);
 | 
						configView->showPromptAction->setCheckable(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QAction *showDebugAction = new QAction( _("Show Debug Info"), this);
 | 
						QAction *showDebugAction = new QAction("Show Debug Info", this);
 | 
				
			||||||
	  showDebugAction->setCheckable(true);
 | 
						  showDebugAction->setCheckable(true);
 | 
				
			||||||
	  connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
 | 
						  connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
 | 
				
			||||||
	  showDebugAction->setChecked(helpText->showDebug());
 | 
						  showDebugAction->setChecked(helpText->showDebug());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QAction *showIntroAction = new QAction( _("Introduction"), this);
 | 
						QAction *showIntroAction = new QAction("Introduction", this);
 | 
				
			||||||
	  connect(showIntroAction, SIGNAL(triggered(bool)), SLOT(showIntro()));
 | 
						  connect(showIntroAction, SIGNAL(triggered(bool)), SLOT(showIntro()));
 | 
				
			||||||
	QAction *showAboutAction = new QAction( _("About"), this);
 | 
						QAction *showAboutAction = new QAction("About", this);
 | 
				
			||||||
	  connect(showAboutAction, SIGNAL(triggered(bool)), SLOT(showAbout()));
 | 
						  connect(showAboutAction, SIGNAL(triggered(bool)), SLOT(showAbout()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// init tool bar
 | 
						// init tool bar
 | 
				
			||||||
| 
						 | 
					@ -1463,7 +1454,7 @@ ConfigMainWindow::ConfigMainWindow(void)
 | 
				
			||||||
	toolBar->addAction(fullViewAction);
 | 
						toolBar->addAction(fullViewAction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// create config menu
 | 
						// create config menu
 | 
				
			||||||
	QMenu* config = menu->addMenu(_("&File"));
 | 
						QMenu* config = menu->addMenu("&File");
 | 
				
			||||||
	config->addAction(loadAction);
 | 
						config->addAction(loadAction);
 | 
				
			||||||
	config->addAction(saveAction);
 | 
						config->addAction(saveAction);
 | 
				
			||||||
	config->addAction(saveAsAction);
 | 
						config->addAction(saveAsAction);
 | 
				
			||||||
| 
						 | 
					@ -1471,11 +1462,11 @@ ConfigMainWindow::ConfigMainWindow(void)
 | 
				
			||||||
	config->addAction(quitAction);
 | 
						config->addAction(quitAction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// create edit menu
 | 
						// create edit menu
 | 
				
			||||||
	QMenu* editMenu = menu->addMenu(_("&Edit"));
 | 
						QMenu* editMenu = menu->addMenu("&Edit");
 | 
				
			||||||
	editMenu->addAction(searchAction);
 | 
						editMenu->addAction(searchAction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// create options menu
 | 
						// create options menu
 | 
				
			||||||
	QMenu* optionMenu = menu->addMenu(_("&Option"));
 | 
						QMenu* optionMenu = menu->addMenu("&Option");
 | 
				
			||||||
	optionMenu->addAction(showNameAction);
 | 
						optionMenu->addAction(showNameAction);
 | 
				
			||||||
	optionMenu->addAction(showRangeAction);
 | 
						optionMenu->addAction(showRangeAction);
 | 
				
			||||||
	optionMenu->addAction(showDataAction);
 | 
						optionMenu->addAction(showDataAction);
 | 
				
			||||||
| 
						 | 
					@ -1486,7 +1477,7 @@ ConfigMainWindow::ConfigMainWindow(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// create help menu
 | 
						// create help menu
 | 
				
			||||||
	menu->addSeparator();
 | 
						menu->addSeparator();
 | 
				
			||||||
	QMenu* helpMenu = menu->addMenu(_("&Help"));
 | 
						QMenu* helpMenu = menu->addMenu("&Help");
 | 
				
			||||||
	helpMenu->addAction(showIntroAction);
 | 
						helpMenu->addAction(showIntroAction);
 | 
				
			||||||
	helpMenu->addAction(showAboutAction);
 | 
						helpMenu->addAction(showAboutAction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1534,14 +1525,14 @@ void ConfigMainWindow::loadConfig(void)
 | 
				
			||||||
	if (s.isNull())
 | 
						if (s.isNull())
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	if (conf_read(QFile::encodeName(s)))
 | 
						if (conf_read(QFile::encodeName(s)))
 | 
				
			||||||
		QMessageBox::information(this, "qconf", _("Unable to load configuration!"));
 | 
							QMessageBox::information(this, "qconf", "Unable to load configuration!");
 | 
				
			||||||
	ConfigView::updateListAll();
 | 
						ConfigView::updateListAll();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ConfigMainWindow::saveConfig(void)
 | 
					bool ConfigMainWindow::saveConfig(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (conf_write(NULL)) {
 | 
						if (conf_write(NULL)) {
 | 
				
			||||||
		QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
 | 
							QMessageBox::information(this, "qconf", "Unable to save configuration!");
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
| 
						 | 
					@ -1723,11 +1714,11 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
 | 
				
			||||||
		e->accept();
 | 
							e->accept();
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	QMessageBox mb("qconf", _("Save configuration?"), QMessageBox::Warning,
 | 
						QMessageBox mb("qconf", "Save configuration?", QMessageBox::Warning,
 | 
				
			||||||
			QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape);
 | 
								QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape);
 | 
				
			||||||
	mb.setButtonText(QMessageBox::Yes, _("&Save Changes"));
 | 
						mb.setButtonText(QMessageBox::Yes, "&Save Changes");
 | 
				
			||||||
	mb.setButtonText(QMessageBox::No, _("&Discard Changes"));
 | 
						mb.setButtonText(QMessageBox::No, "&Discard Changes");
 | 
				
			||||||
	mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
 | 
						mb.setButtonText(QMessageBox::Cancel, "Cancel Exit");
 | 
				
			||||||
	switch (mb.exec()) {
 | 
						switch (mb.exec()) {
 | 
				
			||||||
	case QMessageBox::Yes:
 | 
						case QMessageBox::Yes:
 | 
				
			||||||
		if (saveConfig())
 | 
							if (saveConfig())
 | 
				
			||||||
| 
						 | 
					@ -1746,7 +1737,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ConfigMainWindow::showIntro(void)
 | 
					void ConfigMainWindow::showIntro(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"
 | 
						static const QString str = "Welcome to the qconf graphical configuration tool.\n\n"
 | 
				
			||||||
		"For each option, a blank box indicates the feature is disabled, a check\n"
 | 
							"For each option, a blank box indicates the feature is disabled, a check\n"
 | 
				
			||||||
		"indicates it is enabled, and a dot indicates that it is to be compiled\n"
 | 
							"indicates it is enabled, and a dot indicates that it is to be compiled\n"
 | 
				
			||||||
		"as a module.  Clicking on the box will cycle through the three states.\n\n"
 | 
							"as a module.  Clicking on the box will cycle through the three states.\n\n"
 | 
				
			||||||
| 
						 | 
					@ -1756,16 +1747,16 @@ void ConfigMainWindow::showIntro(void)
 | 
				
			||||||
		"options must be enabled to support the option you are interested in, you can\n"
 | 
							"options must be enabled to support the option you are interested in, you can\n"
 | 
				
			||||||
		"still view the help of a grayed-out option.\n\n"
 | 
							"still view the help of a grayed-out option.\n\n"
 | 
				
			||||||
		"Toggling Show Debug Info under the Options menu will show the dependencies,\n"
 | 
							"Toggling Show Debug Info under the Options menu will show the dependencies,\n"
 | 
				
			||||||
		"which you can then match by examining other options.\n\n");
 | 
							"which you can then match by examining other options.\n\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QMessageBox::information(this, "qconf", str);
 | 
						QMessageBox::information(this, "qconf", str);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ConfigMainWindow::showAbout(void)
 | 
					void ConfigMainWindow::showAbout(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n"
 | 
						static const QString str = "qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n"
 | 
				
			||||||
		"Copyright (C) 2015 Boris Barbulovski <bbarbulovski@gmail.com>.\n\n"
 | 
							"Copyright (C) 2015 Boris Barbulovski <bbarbulovski@gmail.com>.\n\n"
 | 
				
			||||||
		"Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n");
 | 
							"Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QMessageBox::information(this, "qconf", str);
 | 
						QMessageBox::information(this, "qconf", str);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1826,7 +1817,7 @@ static const char *progname;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void usage(void)
 | 
					static void usage(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	printf(_("%s [-s] <config>\n").toLatin1().constData(), progname);
 | 
						printf("%s [-s] <config>\n", progname);
 | 
				
			||||||
	exit(0);
 | 
						exit(0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1835,9 +1826,6 @@ int main(int ac, char** av)
 | 
				
			||||||
	ConfigMainWindow* v;
 | 
						ConfigMainWindow* v;
 | 
				
			||||||
	const char *name;
 | 
						const char *name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bindtextdomain(PACKAGE, LOCALEDIR);
 | 
					 | 
				
			||||||
	textdomain(PACKAGE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	progname = av[0];
 | 
						progname = av[0];
 | 
				
			||||||
	configApp = new QApplication(ac, av);
 | 
						configApp = new QApplication(ac, av);
 | 
				
			||||||
	if (ac > 1 && av[1][0] == '-') {
 | 
						if (ac > 1 && av[1][0] == '-') {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -546,7 +546,7 @@ void conf_parse(const char *name)
 | 
				
			||||||
		modules_sym = sym_find( "n" );
 | 
							modules_sym = sym_find( "n" );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tmp = rootmenu.prompt->text;
 | 
						tmp = rootmenu.prompt->text;
 | 
				
			||||||
	rootmenu.prompt->text = _(rootmenu.prompt->text);
 | 
						rootmenu.prompt->text = rootmenu.prompt->text;
 | 
				
			||||||
	rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
 | 
						rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
 | 
				
			||||||
	free((char*)tmp);
 | 
						free((char*)tmp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue