gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r3255 - in GNUnet/src/setup: . gtk lib ncurses text


From: grothoff
Subject: [GNUnet-SVN] r3255 - in GNUnet/src/setup: . gtk lib ncurses text
Date: Sat, 19 Aug 2006 12:42:39 -0700 (PDT)

Author: grothoff
Date: 2006-08-19 12:42:12 -0700 (Sat, 19 Aug 2006)
New Revision: 3255

Added:
   GNUnet/src/setup/gtk/
   GNUnet/src/setup/gtk/gconf.c
   GNUnet/src/setup/gtk/gconf.h
   GNUnet/src/setup/gtk/glade_support.c
   GNUnet/src/setup/gtk/glade_support.h
   GNUnet/src/setup/gtk/images.c
   GNUnet/src/setup/gtk/wizard.glade
   GNUnet/src/setup/gtk/wizard_gtk.c
   GNUnet/src/setup/gtk/wizard_gtk.h
   GNUnet/src/setup/lib/
   GNUnet/src/setup/lib/bool.h
   GNUnet/src/setup/lib/confdata.c
   GNUnet/src/setup/lib/confdata.h
   GNUnet/src/setup/lib/expr.c
   GNUnet/src/setup/lib/expr.h
   GNUnet/src/setup/lib/lex.zconf.c
   GNUnet/src/setup/lib/lkc.h
   GNUnet/src/setup/lib/lkc_defs.h
   GNUnet/src/setup/lib/lkc_proto.h
   GNUnet/src/setup/lib/menu.c
   GNUnet/src/setup/lib/recreate.c
   GNUnet/src/setup/lib/recreate.h
   GNUnet/src/setup/lib/symbol.c
   GNUnet/src/setup/lib/wizard_util.c
   GNUnet/src/setup/lib/wizard_util.h
   GNUnet/src/setup/lib/zconf.l
   GNUnet/src/setup/lib/zconf.tab.h
   GNUnet/src/setup/lib/zconf.y
   GNUnet/src/setup/lib/zconf_tab.c
   GNUnet/src/setup/lib/zconf_tab.h
   GNUnet/src/setup/ncurses/
   GNUnet/src/setup/ncurses/mconf.c
   GNUnet/src/setup/ncurses/mconf.h
   GNUnet/src/setup/ncurses/mconf_checklist.c
   GNUnet/src/setup/ncurses/mconf_colors.h
   GNUnet/src/setup/ncurses/mconf_dialog.h
   GNUnet/src/setup/ncurses/mconf_inputbox.c
   GNUnet/src/setup/ncurses/mconf_menubox.c
   GNUnet/src/setup/ncurses/mconf_msgbox.c
   GNUnet/src/setup/ncurses/mconf_textbox.c
   GNUnet/src/setup/ncurses/mconf_util.c
   GNUnet/src/setup/ncurses/mconf_yesno.c
   GNUnet/src/setup/ncurses/wizard_curs.c
   GNUnet/src/setup/ncurses/wizard_curs.h
   GNUnet/src/setup/text/
   GNUnet/src/setup/text/conf.c
   GNUnet/src/setup/text/conf.h
Removed:
   GNUnet/src/setup/basic.gladep
   GNUnet/src/setup/bool.h
   GNUnet/src/setup/conf.c
   GNUnet/src/setup/conf.h
   GNUnet/src/setup/confdata.c
   GNUnet/src/setup/confdata.h
   GNUnet/src/setup/config.in
   GNUnet/src/setup/expr.c
   GNUnet/src/setup/expr.h
   GNUnet/src/setup/gconf.c
   GNUnet/src/setup/gconf.gladep
   GNUnet/src/setup/gconf.h
   GNUnet/src/setup/gconf_callbacks.h
   GNUnet/src/setup/glade_support.c
   GNUnet/src/setup/glade_support.h
   GNUnet/src/setup/images.c
   GNUnet/src/setup/lex.zconf.c
   GNUnet/src/setup/lkc.h
   GNUnet/src/setup/lkc_defs.h
   GNUnet/src/setup/lkc_proto.h
   GNUnet/src/setup/mconf.c
   GNUnet/src/setup/mconf.h
   GNUnet/src/setup/mconf_checklist.c
   GNUnet/src/setup/mconf_colors.h
   GNUnet/src/setup/mconf_dialog.h
   GNUnet/src/setup/mconf_inputbox.c
   GNUnet/src/setup/mconf_menubox.c
   GNUnet/src/setup/mconf_msgbox.c
   GNUnet/src/setup/mconf_textbox.c
   GNUnet/src/setup/mconf_util.c
   GNUnet/src/setup/mconf_yesno.c
   GNUnet/src/setup/menu.c
   GNUnet/src/setup/pixmaps/
   GNUnet/src/setup/recreate.c
   GNUnet/src/setup/recreate.h
   GNUnet/src/setup/symbol.c
   GNUnet/src/setup/wizard.glade
   GNUnet/src/setup/wizard.gladep
   GNUnet/src/setup/wizard_curs.c
   GNUnet/src/setup/wizard_curs.h
   GNUnet/src/setup/wizard_gtk.c
   GNUnet/src/setup/wizard_gtk.h
   GNUnet/src/setup/wizard_util.c
   GNUnet/src/setup/wizard_util.h
   GNUnet/src/setup/zconf.l
   GNUnet/src/setup/zconf.tab.h
   GNUnet/src/setup/zconf.y
   GNUnet/src/setup/zconf_tab.c
   GNUnet/src/setup/zconf_tab.h
Modified:
   GNUnet/src/setup/Makefile.am
Log:
gnunet-setup reorganization

Modified: GNUnet/src/setup/Makefile.am
===================================================================
--- GNUnet/src/setup/Makefile.am        2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/Makefile.am        2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,7 +1,14 @@
 INCLUDES = -I$(top_srcdir)/src/include
 
-AM_CFLAGS = $(GTK_CFLAGS)
+if HAVE_GTK
+ gtk_dir = gtk
+endif
+if HAVE_CURSES
+ curses_dir = ncurses
+endif
 
+SUBDIRS = lib text $(curses_dir) $(gtk_dir) .
+
 plugindir = $(libdir)/GNUnet
 
 # GNU Gettext support
@@ -15,136 +22,18 @@
  gnunet-setup \
  $(WINTOOL)
 
-if HAVE_CURSES
- curses_libs = \
-       libgnunetsetup_curses.la
-endif
-
-if HAVE_GTK
- gtk_libs = \
-       libgnunetsetup_gtk.la
-endif
-
-lib_LTLIBRARIES = libgnunetsetup.la
-
-plugin_LTLIBRARIES = \
- libgnunetsetup_text.la \
- $(curses_libs) \
- $(gtk_libs)
-
-BUILT_SOURCES = \
- lkc_defs.h
-
-EXTRA_DIST = \
- wizard.glade \
- images.c \
- lex.zconf.c \
- lkc_proto.h \
- bool.h \
- wizard_gtk.h
-
-install-data-local:
-       $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
-       $(INSTALL_DATA) wizard.glade $(DESTDIR)$(pkgdatadir)
-       @$(NORMAL_INSTALL)
-
-if HAVE_CURSES
-if HAVE_PDCURSES
- pdcurses_lib = -lpdcurses
-else
- curses_lib = -lncurses
-endif
-endif
-
-lkc_defs.h: $(srcdir)/lkc_proto.h
-       sed < $(srcdir)/lkc_proto.h > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
-
-libgnunetsetup_la_SOURCES = \
- confdata.c confdata.h \
- expr.c \
- expr.h \
- lkc.h \
- menu.c \
- recreate.c recreate.h \
- symbol.c \
- zconf.tab.h \
- zconf_tab.c zconf_tab.h \
- wizard_util.c \
- wizard_util.h
-
-libgnunetsetup_la_LIBADD = \
- $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/util/loggers/libgnunetutil_logging.la \
- $(top_builddir)/src/util/config_impl/libgnunetutil_config.la 
-
-libgnunetsetup_la_LDFLAGS = \
- -export-dynamic
-
-libgnunetsetup_curses_la_SOURCES = \
- mconf.c mconf.h \
- mconf_checklist.c \
- mconf_colors.h \
- mconf_dialog.h \
- mconf_inputbox.c \
- mconf_menubox.c \
- mconf_msgbox.c \
- mconf_textbox.c \
- mconf_util.c \
- mconf_yesno.c \
- wizard_curs.c \
- wizard_curs.h
-
-libgnunetsetup_curses_la_LDFLAGS = \
- $(curses_lib) $(pdcurses_lib) \
- -export-dynamic -avoid-version -module
-
-libgnunetsetup_curses_la_LIBADD = \
- $(top_builddir)/src/util/libgnunetutil.la \
- libgnunetsetup.la
-
-
-libgnunetsetup_text_la_SOURCES = \
-  conf.c conf.h
-
-libgnunetsetup_text_la_LDFLAGS = \
- -export-dynamic -avoid-version -module
-
-libgnunetsetup_text_la_LIBADD = \
- $(top_builddir)/src/util/libgnunetutil.la \
- libgnunetsetup.la
-
-
-libgnunetsetup_gtk_la_SOURCES = \
- gconf.c gconf.h \
- glade_support.h glade_support.c \
- wizard_gtk.c wizard_gtk.h
-
-libgnunetsetup_gtk_la_LDFLAGS = \
- $(GTK_LIBS) @EXT_LIB_PATH@ @EXT_LIBS@ \
- -export-dynamic -avoid-version -module
-
-libgnunetsetup_gtk_la_CFLAGS = \
- -I$(top_scrdir)/include \
- @GNUNETGTK_CFLAGS@ \
- @GTK_CFLAGS@ 
-
-libgnunetsetup_gtk_la_LIBADD = \
- @GTK_LIBS@ @EXT_LIB_PATH@ @EXT_LIBS@ \
- @GNUNETGTK_LIBS@ \
-  $(INTLLIBS) \
-  -lgthread-2.0 \
- $(top_builddir)/src/util/libgnunetutil.la \
- libgnunetsetup.la
-
 gnunet_setup_SOURCES = \
  gnunet-setup.c
 
 gnunet_setup_LDADD = \
  $(top_builddir)/src/util/libgnunetutil.la \
- libgnunetsetup.la
+ $(top_builddir)/src/util/loggers/libgnunetutil_logging.la \
+ $(top_builddir)/src/util/config_impl/libgnunetutil_config.la 
 
 gnunet_win_tool_SOURCE = \
  gnunet-win-tool.c
 
 gnunet_win_tool_LDADD = \
-  $(top_builddir)/src/util/libgnunetutil.la
+ $(top_builddir)/src/util/libgnunetutil.la \
+ $(top_builddir)/src/util/loggers/libgnunetutil_logging.la \
+ $(top_builddir)/src/util/config_impl/libgnunetutil_config.la 

Deleted: GNUnet/src/setup/basic.gladep
===================================================================
--- GNUnet/src/setup/basic.gladep       2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/basic.gladep       2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,15 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd";>
-
-<glade-project>
-  <name>Basic-conf</name>
-  <program_name>basic-conf</program_name>
-  <style>GNU</style>
-  <gnome_support>FALSE</gnome_support>
-  <main_source_file>wizard_interface.c</main_source_file>
-  <main_header_file>wizard_interface.h</main_header_file>
-  <handler_source_file>wizard_callbacks.c</handler_source_file>
-  <handler_header_file>wizard_callbacks.h</handler_header_file>
-  <support_source_file>wizard_support.c</support_source_file>
-  <support_header_file>wizard_support.h</support_header_file>
-</glade-project>

Deleted: GNUnet/src/setup/bool.h
===================================================================
--- GNUnet/src/setup/bool.h     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/bool.h     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,45 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2003 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file conf/bool.h
- * @brief Definition of "bool"
- * @author Nils Durner
- **/
-
-#ifndef CONF_BOOL_H
-#define CONF_BOOL_H
-
-#ifndef __cplusplus
- #ifdef CURSES_LOC
-  #include CURSES_LOC
- #else
-  #ifndef bool
-   #define bool int
-  #endif
- #endif
-
- #ifndef true
-  #define true 1
-  #define false 0
- #endif
-#endif
-
-#endif

Deleted: GNUnet/src/setup/conf.c
===================================================================
--- GNUnet/src/setup/conf.c     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/conf.c     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,535 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @file conf/conf.c
- * @brief GNUnet Setup
- * @author Roman Zippel
- * @author Nils Durner
- */
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#include "confdata.h"
-
-static void conf(struct menu *menu);
-static void check_conf(struct menu *menu);
-
-enum {
-       ask_all,
-       ask_new,
-       ask_silent,
-       set_default,
-       set_yes,
-       set_mod,
-       set_no,
-       set_random
-} input_mode = ask_all;
-char *defconfig_file;
-
-static int indent = 1;
-static int valid_stdin = 1;
-static int conf_cnt;
-static char line[128];
-static struct menu *rootEntry;
-
-static char nohelp_text[] = "Sorry, no help available for this option yet.\n";
-
-static void strip(char *str)
-{
-       char *p = str;
-       int l;
-
-       while ((isspace(*p)))
-               p++;
-       l = strlen(p);
-       if (p != str)
-               memmove(str, p, l + 1);
-       if (!l)
-               return;
-       p = str + l - 1;
-       while ((isspace(*p)))
-               *p-- = 0;
-}
-
-static void check_stdin(void)
-{
-       if (!valid_stdin && input_mode == ask_silent) {
-               printf("aborted!\n\n");
-               printf("Console input/output is redirected. ");
-               printf("Run 'make oldconfig' to update configuration.\n\n");
-               exit(1);
-       }
-}
-
-static void conf_askvalue(struct symbol *sym, const char *def)
-{
-       enum symbol_type type = sym_get_type(sym);
-       tristate val;
-
-       if (!sym_has_value(sym))
-               printf("(NEW) ");
-
-       line[0] = '\n';
-       line[1] = 0;
-
-       if (!sym_is_changable(sym)) {
-               printf("%s\n", def);
-               line[0] = '\n';
-               line[1] = 0;
-               return;
-       }
-
-       switch (input_mode) {
-       case ask_new:
-       case ask_silent:
-               if (sym_has_value(sym)) {
-                       printf("%s\n", def);
-                       return;
-               }
-               check_stdin();
-       case ask_all:
-               fflush(stdout);
-               fgets(line, 128, stdin);
-               return;
-       case set_default:
-               printf("%s\n", def);
-               return;
-       default:
-               break;
-       }
-
-       switch (type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               printf("%s\n", def);
-               return;
-       default:
-               ;
-       }
-       switch (input_mode) {
-       case set_yes:
-               if (sym_tristate_within_range(sym, yes)) {
-                       line[0] = 'y';
-                       line[1] = '\n';
-                       line[2] = 0;
-                       break;
-               }
-       case set_mod:
-               if (type == S_TRISTATE) {
-                       if (sym_tristate_within_range(sym, mod)) {
-                               line[0] = 'm';
-                               line[1] = '\n';
-                               line[2] = 0;
-                               break;
-                       }
-               } else {
-                       if (sym_tristate_within_range(sym, yes)) {
-                               line[0] = 'y';
-                               line[1] = '\n';
-                               line[2] = 0;
-                               break;
-                       }
-               }
-       case set_no:
-               if (sym_tristate_within_range(sym, no)) {
-                       line[0] = 'n';
-                       line[1] = '\n';
-                       line[2] = 0;
-                       break;
-               }
-       case set_random:
-               do {
-                       val = (tristate)(rand() % 3);
-               } while (!sym_tristate_within_range(sym, val));
-               switch (val) {
-               case no: line[0] = 'n'; break;
-               case mod: line[0] = 'm'; break;
-               case yes: line[0] = 'y'; break;
-               }
-               line[1] = '\n';
-               line[2] = 0;
-               break;
-       default:
-               break;
-       }
-       printf("%s", line);
-}
-
-int conf_string(struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       const char *def, *help;
-
-       while (1) {
-               printf("%*s%s ", indent - 1, "", menu->prompt->text);
-               printf("(%s) ", sym->name);
-               def = sym_get_string_value(sym);
-               if (sym_get_string_value(sym))
-                       printf("[%s] ", def);
-               conf_askvalue(sym, def);
-               switch (line[0]) {
-               case '\n':
-                       break;
-               case '?':
-                       /* print help */
-                       if (line[1] == 0) {
-                               help = nohelp_text;
-                               if (menu->sym->help)
-                                       help = menu->sym->help;
-                               printf("\n%s\n", menu->sym->help);
-                               def = NULL;
-                               break;
-                       }
-               default:
-                       line[strlen(line)-1] = 0;
-                       def = line;
-               }
-               if (def && sym_set_string_value(sym, def))
-                       return 0;
-       }
-}
-
-static int conf_sym(struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       int type;
-       tristate oldval, newval;
-       const char *help;
-
-       while (1) {
-               printf("%*s%s ", indent - 1, "", menu->prompt->text);
-               if (sym->name)
-                       printf("(%s) ", sym->name);
-               type = sym_get_type(sym);
-               putchar('$');
-               oldval = sym_get_tristate_value(sym);
-               switch (oldval) {
-               case no:
-                       putchar('N');
-                       break;
-               case mod:
-                       putchar('M');
-                       break;
-               case yes:
-                       putchar('Y');
-                       break;
-               }
-               if (oldval != no && sym_tristate_within_range(sym, no))
-                       printf("/n");
-               if (oldval != mod && sym_tristate_within_range(sym, mod))
-                       printf("/m");
-               if (oldval != yes && sym_tristate_within_range(sym, yes))
-                       printf("/y");
-               if (sym->help)
-                       printf("/?");
-               printf("] ");
-               conf_askvalue(sym, sym_get_string_value(sym));
-               strip(line);
-
-               switch (line[0]) {
-               case 'n':
-               case 'N':
-                       newval = no;
-                       if (!line[1] || !strcmp(&line[1], "o"))
-                               break;
-                       continue;
-               case 'm':
-               case 'M':
-                       newval = mod;
-                       if (!line[1])
-                               break;
-                       continue;
-               case 'y':
-               case 'Y':
-                       newval = yes;
-                       if (!line[1] || !strcmp(&line[1], "es"))
-                               break;
-                       continue;
-               case 0:
-                       newval = oldval;
-                       break;
-               case '?':
-                       goto help;
-               default:
-                       continue;
-               }
-               if (sym_set_tristate_value(sym, newval))
-                       return 0;
-help:
-               help = nohelp_text;
-               if (sym->help)
-                       help = sym->help;
-               printf("\n%s\n", help);
-       }
-}
-
-static int conf_choice(struct menu *menu)
-{
-       struct symbol *sym, *def_sym;
-       struct menu *child;
-       int type;
-       bool is_new;
-
-       sym = menu->sym;
-       type = sym_get_type(sym);
-       is_new = !sym_has_value(sym);
-       if (sym_is_changable(sym)) {
-               conf_sym(menu);
-               sym_calc_value(sym);
-               switch (sym_get_tristate_value(sym)) {
-               case no:
-                       return 1;
-               case mod:
-                       return 0;
-               case yes:
-                       break;
-               }
-       } else {
-               switch (sym_get_tristate_value(sym)) {
-               case no:
-                       return 1;
-               case mod:
-                       printf("%*s%s\n", indent - 1, "", 
menu_get_prompt(menu));
-                       return 0;
-               case yes:
-                       break;
-               }
-       }
-
-       while (1) {
-               int cnt, def;
-
-               printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
-               def_sym = sym_get_choice_value(sym);
-               cnt = def = 0;
-               line[0] = '0';
-               line[1] = 0;
-               for (child = menu->list; child; child = child->next) {
-                       if (!menu_is_visible(child))
-                               continue;
-                       if (!child->sym) {
-                               printf("%*c %s\n", indent, '*', 
menu_get_prompt(child));
-                               continue;
-                       }
-                       cnt++;
-                       if (child->sym == def_sym) {
-                               def = cnt;
-                               printf("%*c", indent, '>');
-                       } else
-                               printf("%*c", indent, ' ');
-                       printf(" %d. %s", cnt, menu_get_prompt(child));
-                       if (child->sym->name)
-                               printf(" (%s)", child->sym->name);
-                       if (!sym_has_value(child->sym))
-                               printf(" (NEW)");
-                       printf("\n");
-               }
-               printf("%*schoice", indent - 1, "");
-               if (cnt == 1) {
-                       printf("[1]: 1\n");
-                       goto conf_childs;
-               }
-               printf("[1-%d", cnt);
-               if (sym->help)
-                       printf("?");
-               printf("]: ");
-               switch (input_mode) {
-               case ask_new:
-               case ask_silent:
-                       if (!is_new) {
-                               cnt = def;
-                               printf("%d\n", cnt);
-                               break;
-                       }
-                       check_stdin();
-               case ask_all:
-                       fflush(stdout);
-                       fgets(line, 128, stdin);
-                       strip(line);
-                       if (line[0] == '?') {
-                               printf("\n%s\n", menu->sym->help ?
-                                       menu->sym->help : nohelp_text);
-                               continue;
-                       }
-                       if (!line[0])
-                               cnt = def;
-                       else if (isdigit(line[0]))
-                               cnt = atoi(line);
-                       else
-                               continue;
-                       break;
-               case set_random:
-                       def = (rand() % cnt) + 1;
-               case set_default:
-               case set_yes:
-               case set_mod:
-               case set_no:
-                       cnt = def;
-                       printf("%d\n", cnt);
-                       break;
-               }
-
-       conf_childs:
-               for (child = menu->list; child; child = child->next) {
-                       if (!child->sym || !menu_is_visible(child))
-                               continue;
-                       if (!--cnt)
-                               break;
-               }
-               if (!child)
-                       continue;
-               if (line[strlen(line) - 1] == '?') {
-                       printf("\n%s\n", child->sym->help ?
-                               child->sym->help : nohelp_text);
-                       continue;
-               }
-               sym_set_choice_value(sym, child->sym);
-               if (child->list) {
-                       indent += 2;
-                       conf(child->list);
-                       indent -= 2;
-               }
-               return 1;
-       }
-}
-
-static void conf(struct menu *menu)
-{
-       struct symbol *sym;
-       struct property *prop;
-       struct menu *child;
-
-       if (!menu_is_visible(menu))
-               return;
-
-       sym = menu->sym;
-       prop = menu->prompt;
-       if (prop) {
-               const char *prompt;
-
-               switch (prop->type) {
-               case P_MENU:
-                       if (input_mode == ask_silent && rootEntry != menu) {
-                               check_conf(menu);
-                               return;
-                       }
-               case P_COMMENT:
-                       prompt = menu_get_prompt(menu);
-                       if (prompt)
-                               printf("%*c\n%*c %s\n%*c\n",
-                                       indent, '*',
-                                       indent, '*', prompt,
-                                       indent, '*');
-               default:
-                       ;
-               }
-       }
-
-       if (!sym)
-               goto conf_childs;
-
-       if (sym_is_choice(sym)) {
-               conf_choice(menu);
-               if (sym->curr.tri != mod)
-                       return;
-               goto conf_childs;
-       }
-
-       switch (sym->type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               conf_string(menu);
-               break;
-       default:
-               conf_sym(menu);
-               break;
-       }
-
-conf_childs:
-       if (sym)
-               indent += 2;
-       for (child = menu->list; child; child = child->next)
-               conf(child);
-       if (sym)
-               indent -= 2;
-}
-
-static void check_conf(struct menu *menu)
-{
-       struct symbol *sym;
-       struct menu *child;
-
-       if (!menu_is_visible(menu))
-               return;
-
-       sym = menu->sym;
-       if (sym) {
-               if (sym_is_changable(sym) && !sym_has_value(sym)) {
-                       if (!conf_cnt++)
-                               printf("*\n* Restart config...\n*\n");
-                       rootEntry = menu_get_parent_menu(menu);
-                       conf(rootEntry);
-               }
-               if (sym_is_choice(sym) && sym_get_tristate_value(sym) != mod)
-                       return;
-       }
-
-       for (child = menu->list; child; child = child->next)
-               check_conf(child);
-}
-
-int conf_main(int argc, 
-             char **argv, 
-             void * lib) {
-  char * filename;
-
-  filename = getConfigurationString("GNUNET-SETUP",
-                                   "FILENAME");
-  conf_read(filename);
-  input_mode = ask_all; /* for now */
-  rootEntry = &rootmenu;
-  conf(&rootmenu);
-  do {
-    conf_cnt = 0;
-    check_conf(&rootmenu);
-  } while (conf_cnt);
-
-  if (conf_write(filename)) {
-    printf(_("Unable to save configuration file `%s': %s.\n"),
-          filename,
-          STRERROR(errno));
-    FREE(filename);
-    return 1;
-  }
-  else {
-    printf(_("Configuration file `%s' created.\n"),
-          filename);
-    FREE(filename);
-    return 0;
-  }
-}

Deleted: GNUnet/src/setup/conf.h
===================================================================
--- GNUnet/src/setup/conf.h     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/conf.h     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,35 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/conf.h
- * @brief GNUnet text mode Setup
- * @author Nils Durner
- */
-
-#ifndef CONF_H
-#define CONF_H
-
-int conf_main(int argc, 
-             char **argv, 
-             void * lib);
-
-#endif

Deleted: GNUnet/src/setup/confdata.c
===================================================================
--- GNUnet/src/setup/confdata.c 2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/confdata.c 2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,263 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other 
contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/confdata.c
- * @brief GNUnet Setup
- * @author Roman Zippel
- * @author Nils Durner
- */
-
-/*
- * Originally Copyright (C) 2002 Roman Zippel <address@hidden>
- */
-
-#include <sys/stat.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <limits.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#include "platform.h"
-#include "gnunet_util.h"
-
-int conf_read(struct GE_Context * ectx,
-             struct GC_Configuration * cfg)
-{
-  char *val;
-  struct symbol *sym;
-  struct property *prop;
-  struct expr *e;
-  int i = 0;
-
-  for_all_symbols(i, sym) {
-    sym->flags |= SYMBOL_NEW | SYMBOL_CHANGED;
-    sym->flags &= ~SYMBOL_VALID;
-
-    if (0 == GC_get_configuration_value_string(cfg,
-                                              sym->sect,
-                                              sym->name,
-                                              NULL,
-                                              &val)) {
-      switch (sym->type) {
-      case S_TRISTATE:
-       if (*val == 'm') {
-         sym->user.tri = mod;
-         sym->flags &= ~SYMBOL_NEW;
-         break;
-       }
-      case S_BOOLEAN:
-       sym->user.tri = (*val == 'Y') ? yes : no;
-       sym->flags &= ~SYMBOL_NEW;
-       break;
-      case S_STRING:
-      case S_INT:
-      case S_HEX:
-       if (sym->user.val)
-         free(sym->user.val);
-       
-       if (sym_string_valid(sym, val)) {
-         sym->user.val = STRDUP(val);
-         sym->flags &= ~SYMBOL_NEW;
-       }
-       else {
-         GE_LOG(ectx, 
-                GE_ERROR | GE_BULK | GE_USER,
-                _("Symbol value `%s' invalid for %s\n"),
-                val,
-                sym->name);
-         sym->user.val = NULL;
-         sym->flags |= SYMBOL_NEW;
-       }
-       
-       if (!sym_string_within_range(sym, val))
-         sym->flags |= SYMBOL_NEW;
-       
-       break;
-      default:
-       sym->user.val = NULL;
-       sym->user.tri = no;
-       
-      }
-
-      if (sym && sym_is_choice_value(sym)) {
-       struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
-       switch (sym->user.tri) {
-       case no:
-         break;
-       case mod:
-         if (cs->user.tri == yes)
-           /* warn? */;
-         break;
-       case yes:
-         if (cs->user.tri != no)
-           /* warn? */;
-         cs->user.val = sym;
-         break;
-       }
-       cs->user.tri = E_OR(cs->user.tri, sym->user.tri);
-       cs->flags &= ~SYMBOL_NEW;
-      }
-
-      sym_calc_value(sym);
-      if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
-       if (sym->visible == no)
-         sym->flags |= SYMBOL_NEW;
-      }
-      if (!sym_is_choice(sym)) {
-       FREE(val);
-       continue;
-      }
-      prop = sym_get_choice_prop(sym);
-      for (e = prop->expr; e; e = e->left.expr)
-       if (e->right.sym->visible != no)
-         sym->flags |= e->right.sym->flags & SYMBOL_NEW;
-      FREE(val);
-    }
-  }
-
-  sym_change_count = 1;
-
-  return 0;
-}
-
-int conf_write(const char * filename)
-{
-  FILE *out = NULL;
-  struct symbol *sym;
-  struct menu *menu;
-  int type;
-  const char *str;
-
-  sym_clear_all_valid();
-
-  out = FOPEN(filename, "w+"); 
-  if (NULL == out)
-    return 1;
-  fprintf(out,
-         "#%s"
-         "# Automatically generated by gnunet-setup%s"
-         "#%s",
-         NEWLINE,
-         NEWLINE,
-         NEWLINE);
-  menu = rootmenu.list;
-  while (menu) {
-    sym = menu->sym;
-    if (!sym) {
-      str = menu_get_prompt(menu);
-      if (str && strlen(str) > 0) {                    
-       fprintf(out,
-               "%s"
-               "#%s"
-               "# %s%s"
-               "#%s",
-               NEWLINE,
-               NEWLINE,
-               str,
-               NEWLINE,
-               NEWLINE);
-      }
-      if (menu->section && strlen(menu->section) > 0)
-       fprintf(out,
-               "[%s]%s",
-               menu->section,
-               NEWLINE);
-    } else if (!(sym->flags & SYMBOL_CHOICE)) {
-      sym_calc_value_ext(sym, 1);
-      sym->flags &= ~SYMBOL_WRITE;
-      type = sym->type;
-      if (type == S_TRISTATE) {
-       sym_calc_value_ext(modules_sym, 1);
-       if (modules_sym->curr.tri == no)
-         type = S_BOOLEAN;
-      }
-      switch (type) {
-      case S_BOOLEAN:
-      case S_TRISTATE:
-       switch (sym_get_tristate_value(sym)) {
-       case no:
-         fprintf(out,
-                 "%s = NO",
-                 sym->name);
-         break;
-       case mod:
-         fprintf(out,
-                 "%s = m",
-                 sym->name);
-         break;
-       case yes:
-         fprintf(out,
-                 "%s = YES",
-                 sym->name);
-         break;
-       }
-       break;
-      case S_STRING:
-        fprintf(out,
-               "%s = \"%s\"",
-               sym->name,
-               sym_get_string_value(sym));
-       break;
-      case S_HEX:
-       str = sym_get_string_value(sym);
-       if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
-         fprintf(out,
-                 "%s = 0x%s",
-                 sym->name,
-                 str);
-         break;
-       }
-      case S_INT:
-       fprintf(out,
-               "%s = %s",
-               sym->name,
-               sym_get_string_value(sym));
-       break;
-      }
-      fprintf(out,
-             "%s",
-             NEWLINE);
-    }
-    if (menu->list) {
-      menu = menu->list;
-      continue;
-    }
-    if (menu->next)
-      menu = menu->next;
-    else while ((menu = menu->parent)) {
-      if (menu->next) {
-       menu = menu->next;
-       break;
-      }
-    }
-  }
-
-  fclose(out);
-  sym_change_count = 0;
-
-  return 0;
-}

Deleted: GNUnet/src/setup/confdata.h
===================================================================
--- GNUnet/src/setup/confdata.h 2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/confdata.h 2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,40 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/confdata.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef CONFDATA_H
-#define CONFDATA_H
-
-/**
- * Convert the configuration specified in "cfg"
- * into the internal configuration of the conf module.
- */
-int conf_read(struct GE_Context * ectx,
-             struct GC_Configuration * cfg);
-
-int conf_write(const char * filename);
-
-#endif

Deleted: GNUnet/src/setup/config.in
===================================================================
--- GNUnet/src/setup/config.in  2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/config.in  2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,453 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see linux/Documentation/kbuild/config-language.txt.
-#
-mainmenu "GNUnet Configuration"
-
-menu "Meta-configuration"
-# Three options to toggle what options the user may
-# or may not see.  Essentially, all options are 
-# categorized (and they may fall into any combination
-# of the categories) and only if all corresponding bits
-# are set, the user is prompted.
-# Thus, if you are a beginner in a standard setting,
-# not selecting any of the options should work.
-# If you are a beginner but have special needs,
-# select "rare".  
-# If you are a beginner and don't care about bugs,
-# select "experimental"
-# If you know what you're doing, select "advanced".
-
-# experimental: may not work too well
-config EXPERIMENTAL
-       bool "Prompt for development and/or incomplete code"
-       default n
-       help
-         Choose this if you want to test the latest developments
-         no matter how incomplete and buggy they are.
-
-# advanced: may be difficult to understand
-config ADVANCED
-       bool "Show options for advanced users"
-       default n
-       help
-         Choose this if you want to see options for advanced users
-
-# rare: not useful for most users
-config RARE
-       bool "Show rarely used options"
-       default n
-       help
-         Choose this if you want to see rarely used options
-
-endmenu
-
-menu "General settings"
-
-config GNUNET_HOME
-       string "Full pathname of GNUnet HOME directory"
-       default ~/.gnunet/
-       help
-         Where GNUnet stores its data
-
-choice
-       prompt "Log level"
-       default WARNING
-
-config NOTHING
-       bool "Nothing"
-       help
-          Don't log anything
-
-config FATAL
-       bool "Fatal"
-       help
-          Log fatal errors only
-
-config ERROR
-       bool "Failure"
-       help
-         Log failures only
-
-config WARNING
-       bool "Warning"
-       help
-         Log warnings
-
-config MESSAGE
-       bool "Message"
-       help
-         Log GNUnet messsages
-
-config INFO
-       bool "Info"
-       help
-         Log GNUnet information
-
-config DEBUG
-       bool "Debug"
-       help
-         Log GNUnet debugging information
-
-config CRON
-       bool "Cron"
-       help
-         Log GNUnet-Cron status
-
-config EVERYTHING
-       bool "Everything"
-       help
-         Log all available information
-
-endchoice
-
-config NETWORK_HOSTLISTURL
-       string "Where can GNUnet find an initial list of peers"
-       default "http://www.ovmj.org/GNUnet/download/hostlist";
-       help
-         GNUnet needs to get an initial list of other nodes.
-          This tells GNUnet where to get it.
-
-config USE_HTTP_PROXY
-       bool "Use HTTP Proxy to download hostlist"
-       default n
-       depends on RARE
-       help 
-         If you are not connected to the internet directly, you
-          can specify your proxy server here.
-
-config NETWORK_HTTP_PROXY
-       string "HTTP proxy server"
-       depends on USE_HTTP_PROXY
-       default localhost
-       help
-         The hostname of your proxy server
-
-config NETWORK_HTTP_PROXY_PORT
-       int "HTTP Proxy Port"
-       depends on USE_HTTP_PROXY
-       default 1080
-       help
-         The port of your proxy server
-
-config NETWORK_HOST
-       string "Default server running gnunetd (for remote clients)"
-       depends on ADVANCED
-       default localhost
-       help
-         To which host do the GNUnet client tools have to connect to?
-
-config NETWORK_PORT
-       int "CS Port"
-       depends on ADVANCED
-       default 2087
-       help
-         The port on which gnunetd listens for client connections
-
-config NETWORK_INTERFACE
-       string "Interface to probe for external IP"
-       depends on ADVANCED
-       default eth0
-       help
-         Specifies the network interface used to determine your
-         computer's IP-Address.
-
-config NETWORK_IP
-       string "Forced value of external IP"
-       depends on ADVANCED
-       help
-         If your IP-Address cannot be determined automatically (because
-         you're behind NAT, for example), you have to specify it here.
-         You can also use a hostname here.
-
-config NETWORK_HELOEXCHANGE
-       string "Participate in network topology management"
-       depends on ADVANCED
-       default y
-       help
-         Exchange contact information with other nodes
-
-config NETWORK_TRUSTED
-       string "IPs allowed to use gnunetd server"
-       depends on ADVANCED
-       default 127.0.0.0/8;
-       help
-         Enter all IP-Adresses/IP-Address-Ranges here, which are allowed to
-         use this server.
-
-config NETWORK_HELOEXPIRES
-       int "How many minutes should peer advertisements last?"
-       depends on ADVANCED
-       default 1440
-
-config NETWORK_LOGFILE
-       string "Where should logs go by default"
-       depends on ADVANCED
-       default $GNUNET_HOME/logs
-
-config NETWORK_PIDFILE
-       string "Where should gnunetd write the pid"
-       depends on ADVANCED
-       default $GNUNET_HOME/gnunet.pid
-
-config NETWORK_HOSTS
-       string "Where should gnunetd keep the list of peers"
-       depends on ADVANCED
-       default $GNUNET_HOME/data/hosts/
-
-endmenu
-
-menu "Resource limitations"
-
-config LOAD_MAXCPULOAD
-       int "Maximum CPU load (percentage)"
-       default 50
-
-config LOAD_MAXNETDOWNBPSTOTAL
-       int "Maximum download (bytes per second)"
-       default 50000
-
-config LOAD_MAXNETDOWNBPSTOTAL
-       int "Maximum upload (bytes per second)"
-       default 50000
-
-config LOAD_ADVANCEDLIMITING
-       bool "Advanced bandwidth limiting"
-       depends on ADVANCED
-
-config LOAD_INTERFACES
-       string "Network interface to monitor"
-       depends on LOAD_ADVANCEDLIMITING
-
-endmenu
-
-menu "Transports"
-
-config UDP_TRANSPORT
-       bool "UDP Transport"
-       default y
-
-config UDP_PORT
-       int "Port"
-       default 2086
-       depends on UDP_TRANSPORT
-
-config UDP_MTU
-       int "MTU"
-       depends on UDP_TRANSPORT
-       default 1472
-       
-config UDP_BLACKLIST
-       string "Disallow connections from"
-       depends on UDP_TRANSPORT
-       default "127.0.0.1/8;172.16.0.0/12;192.168.0.0/16;10.0.0.0/255.0.0.0;"
-
-config TCP_TRANSPORT
-       int "Port"
-       depends on TCP_TRANSPORT
-       default 2086
-
-config TCP_MTU
-       int "MTU"
-       depends on TCP_TRANSPORT
-       default 1460
-
-config TCP_BLACKLIST
-       string "Disallow connections from"
-       depends on TCP_BLACKLIST
-       default "127.0.0.1/8;172.16.0.0/12;192.168.0.0/16;10.0.0.0/255.0.0.0;"
-
-config UDP6_TRANSPORT
-       bool "UDP6 Transport"
-       depends on EXPERIMENTAL && RARE
-
-config UDP6_PORT
-       int "Port"
-       depends on UDP6_TRANSPORT
-       default 2088
-
-config UDP6_MTU
-       int "MTU"
-       depends on UDP6_TRANSPORT
-       default 1452
-
-config UDP6_BLACKLIST
-       string "Disallow connections from"
-       depends on UDP6_TRANSPORT
- 
-config TCP6_TRANSPORT
-       string "TCP6 Transport"
-       depends on EXPERIMENTAL && RARE
-
-config TCP6_PORT
-       int "Port"
-       depends on TCP6_TRANSPORT
-       default 2088
-
-config TCP6_MTU
-       int "MTU"
-       depends on TCP6_TRANSPORT
-       default 1440
-
-config TCP6_BALCKLIST
-       string "Disallow connections from"
-       depends on TCP6_TRANSPORT
-
-config SMTP_TRANSPORT
-       bool "SMTP Transport"
-       depends on ADVANCED
-
-config SMTP_PORT
-       int "Port of the SMTP server for outbound mail"
-       depends on SMTP_TRANSPORT
-       default 25
-
-config SMTP_SERVER
-       string "Hostname of the SMTP server"
-       depends on SMTP_TRANSPORT
-       default localhost
-
-config SMTP_MTU
-       int "MTU"
-       depends on SMTP_TRANSPORT
-       default 65535
-
-config SMTP_EMAIL_SENDER
-       string "Sender address for outbound E-mail"
-       depends on SMTP_TRANSPORT
-       default "address@hidden"
-
-config SMTP_EMAIL
-       string "Receiver address for inbound E-mail"
-       depends on SMTP_TRANSPORT
-
-config SMTP_FILTER
-       string "Filter-line to use in the E-mail header"
-       depends on SMTP_TRANSPORT
-       default "X-mailer: 590N"
-
-config SMTP_PIPE
-       string "Name of the pipe via which procmail sends filterd E-mails"
-       depends on SMTP_TRANSPORT
-       default "/tmp/gnunet.smtp"
-
-config HTTP_TRANSPORT
-       bool "HTTP Transport"
-       default y
-
-config HTTP_PORT
-       int "Port"
-       depends on HTTP_TRANSPORT
-       default 1080
-
-config HTTP_MTU
-       int "MTU"
-       depends on HTTP_TRANSPORT
-       default 1400
-
-config HTTP_BLACKLIST
-       string "Disallow connections from"
-       depends on HTTP_TRANSPORT
-       default "127.0.0.1/8;172.16.0.0/12;192.168.0.0/16;10.0.0.0/255.0.0.0;"
-
-endmenu
-
-menu "Applications"
-
-config APPLICATION_AFS
-       bool "Anonymous file sharing"
-       default y
-
-config AFS_DISKQUOTA
-       int "MB of diskspace GNUnet can use for anonymous file sharing" 
-       depends on APPLICATION_AFS
-       default 1024
-
-config AFS_ANONYMITY_RECEIVE
-       int "Level of anonymity desired for receiving"
-       depends on APPLICATION_AFS && ADVANCED && RARE
-       default 0
-
-config AFS_ANONYMITY_SEND
-       int "Level of anonymity desired for sending"
-       depends on APPLICATION_AFS && ADVANCED && RARE  
-       default 0
-
-config AFS_AFSDIR
-       string "Directory for storing AFS data"
-       depends on APPLICATION_AFS && ADVANCED && RARE
-       default $GNUNET_HOME/data/afs/
-
-config AFS_DOWNLOADDIR
-       string "Directory for saving AFS downloads"
-       depends on APPLICATION_AFS && ADVANCED && RARE && EXPERIMENTAL
-       default /tmp/gnunet-downloads/
-
-config AFS_ACTIVEMIGRATION
-       bool "Allow migrating content"
-       depends on APPLICATION_AFS && ADVANCED
-       default n
-
-config AFS_SEARCHTIMEOUT
-       int "Number of seconds after which searches timeout"
-       depends on APPLICATION_AFS && ADVANCED
-       default 3000
-
-config GNUNET_INSERT_CONTENT_PRIORITY
-       int "Initial proprity for content inserted locally"
-       depends on APPLICATION_AFS && ADVANCED
-       default 65535
-
-config APPLICATION_TRACEKIT
-       bool "Overlay tracing"
-       depends on ADVANCED
-       default n
-
-config GNUNET_TRACEKIT_WAIT
-       int "How long to wait for replies (in seconds)"
-       depends on APPLICATION_TRACEKIT
-       default 30
-
-config GNUNET_TRACEKIT_HOPS
-       int "How many hops should the trace go"
-       depends on APPLICATION_TRACEKIT
-       default 5
-
-config GNUNET_TRACEKIT_PRIORITY
-       int "How important is the trace message"
-       depends on APPLICATION_TRACEKIT
-       default 1000
-
-choice
-       prompt "What is the desired output format"
-       default GNUNET_TRACEKIT_FORMAT_1
-       depends on APPLICATION_TRACEKIT
-
-config GNUNET_TRACEKIT_FORMAT_0
-       bool "Human-readable"
-
-config GNUNET_TRACEKIT_FORMAT_1
-       bool "AT&T dot"
-
-endchoice
-
-config APPLICATION_CHAT
-       bool "Broadcast chat"
-       default n
-
-config GNUNET_CHAT_NICK
-       string "Default nickname"
-       depends on APPLICATION_CHAT
-       default "my nickname"
-
-config APPLICATIONS_TBENCH
-       bool "Transport benchmark"
-       depends on RARE
-       default n
-
-config APPLICATION_TESTBED
-       bool "P2P testbed"
-       depends on RARE
-       default n
-
-endmenu

Deleted: GNUnet/src/setup/expr.c
===================================================================
--- GNUnet/src/setup/expr.c     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/expr.c     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,1091 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/expr.c
- * @author Roman Zippel
- * @author Nils Durner
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-struct expr *expr_alloc_symbol(struct symbol *sym)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = E_SYMBOL;
-       e->left.sym = sym;
-       return e;
-}
-
-struct expr *expr_alloc_one(enum expr_type type, struct expr *ce)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = type;
-       e->left.expr = ce;
-       return e;
-}
-
-struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr 
*e2)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = type;
-       e->left.expr = e1;
-       e->right.expr = e2;
-       return e;
-}
-
-struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct 
symbol *s2)
-{
-       struct expr *e = malloc(sizeof(*e));
-       memset(e, 0, sizeof(*e));
-       e->type = type;
-       e->left.sym = s1;
-       e->right.sym = s2;
-       return e;
-}
-
-struct expr *expr_alloc_and(struct expr *e1, struct expr *e2)
-{
-       if (!e1)
-               return e2;
-       return e2 ? expr_alloc_two(E_AND, e1, e2) : e1;
-}
-
-struct expr *expr_alloc_or(struct expr *e1, struct expr *e2)
-{
-       if (!e1)
-               return e2;
-       return e2 ? expr_alloc_two(E_OR, e1, e2) : e1;
-}
-
-struct expr *expr_copy(struct expr *org)
-{
-       struct expr *e;
-
-       if (!org)
-               return NULL;
-
-       e = malloc(sizeof(*org));
-       memcpy(e, org, sizeof(*org));
-       switch (org->type) {
-       case E_SYMBOL:
-               e->left = org->left;
-               break;
-       case E_NOT:
-               e->left.expr = expr_copy(org->left.expr);
-               break;
-       case E_EQUAL:
-       case E_UNEQUAL:
-               e->left.sym = org->left.sym;
-               e->right.sym = org->right.sym;
-               break;
-       case E_AND:
-       case E_OR:
-       case E_CHOICE:
-               e->left.expr = expr_copy(org->left.expr);
-               e->right.expr = expr_copy(org->right.expr);
-               break;
-       default:
-               printf("can't copy type %d\n", e->type);
-               free(e);
-               e = NULL;
-               break;
-       }
-
-       return e;
-}
-
-void expr_free(struct expr *e)
-{
-       if (!e)
-               return;
-
-       switch (e->type) {
-       case E_SYMBOL:
-               break;
-       case E_NOT:
-               expr_free(e->left.expr);
-               break;
-       case E_EQUAL:
-       case E_UNEQUAL:
-               break;
-       case E_OR:
-       case E_AND:
-               expr_free(e->left.expr);
-               expr_free(e->right.expr);
-               break;
-       default:
-               printf("how to free type %d?\n", e->type);
-               break;
-       }
-       free(e);
-}
-
-static int trans_count;
-
-#define e1 (*ep1)
-#define e2 (*ep2)
-
-static void __expr_eliminate_eq(enum expr_type type, struct expr **ep1, struct 
expr **ep2)
-{
-       if (e1->type == type) {
-               __expr_eliminate_eq(type, &e1->left.expr, &e2);
-               __expr_eliminate_eq(type, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               __expr_eliminate_eq(type, &e1, &e2->left.expr);
-               __expr_eliminate_eq(type, &e1, &e2->right.expr);
-               return;
-       }
-       if (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
-           e1->left.sym == e2->left.sym && (e1->left.sym->flags & 
(SYMBOL_YES|SYMBOL_NO)))
-               return;
-       if (!expr_eq(e1, e2))
-               return;
-       trans_count++;
-       expr_free(e1); expr_free(e2);
-       switch (type) {
-       case E_OR:
-               e1 = expr_alloc_symbol(&symbol_no);
-               e2 = expr_alloc_symbol(&symbol_no);
-               break;
-       case E_AND:
-               e1 = expr_alloc_symbol(&symbol_yes);
-               e2 = expr_alloc_symbol(&symbol_yes);
-               break;
-       default:
-               ;
-       }
-}
-
-void expr_eliminate_eq(struct expr **ep1, struct expr **ep2)
-{
-       if (!e1 || !e2)
-               return;
-       switch (e1->type) {
-       case E_OR:
-       case E_AND:
-               __expr_eliminate_eq(e1->type, ep1, ep2);
-       default:
-               ;
-       }
-       if (e1->type != e2->type) switch (e2->type) {
-       case E_OR:
-       case E_AND:
-               __expr_eliminate_eq(e2->type, ep1, ep2);
-       default:
-               ;
-       }
-       e1 = expr_eliminate_yn(e1);
-       e2 = expr_eliminate_yn(e2);
-}
-
-#undef e1
-#undef e2
-
-int expr_eq(struct expr *e1, struct expr *e2)
-{
-       int res, old_count;
-
-       if (e1->type != e2->type)
-               return 0;
-       switch (e1->type) {
-       case E_EQUAL:
-       case E_UNEQUAL:
-               return e1->left.sym == e2->left.sym && e1->right.sym == 
e2->right.sym;
-       case E_SYMBOL:
-               return e1->left.sym == e2->left.sym;
-       case E_NOT:
-               return expr_eq(e1->left.expr, e2->left.expr);
-       case E_AND:
-       case E_OR:
-               e1 = expr_copy(e1);
-               e2 = expr_copy(e2);
-               old_count = trans_count;
-               expr_eliminate_eq(&e1, &e2);
-               res = (e1->type == E_SYMBOL && e2->type == E_SYMBOL &&
-                      e1->left.sym == e2->left.sym);
-               expr_free(e1);
-               expr_free(e2);
-               trans_count = old_count;
-               return res;
-       case E_CHOICE:
-       case E_RANGE:
-       case E_NONE:
-               /* panic */;
-       }
-
-       print_expr(0, e1, 0);
-       printf(" = ");
-       print_expr(0, e2, 0);
-       printf(" ?\n");
-
-       return 0;
-}
-
-struct expr *expr_eliminate_yn(struct expr *e)
-{
-       struct expr *tmp;
-
-       if (e) switch (e->type) {
-       case E_AND:
-               e->left.expr = expr_eliminate_yn(e->left.expr);
-               e->right.expr = expr_eliminate_yn(e->right.expr);
-               if (e->left.expr->type == E_SYMBOL) {
-                       if (e->left.expr->left.sym == &symbol_no) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_no;
-                               e->right.expr = NULL;
-                               return e;
-                       } else if (e->left.expr->left.sym == &symbol_yes) {
-                               free(e->left.expr);
-                               tmp = e->right.expr;
-                               *e = *(e->right.expr);
-                               free(tmp);
-                               return e;
-                       }
-               }
-               if (e->right.expr->type == E_SYMBOL) {
-                       if (e->right.expr->left.sym == &symbol_no) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_no;
-                               e->right.expr = NULL;
-                               return e;
-                       } else if (e->right.expr->left.sym == &symbol_yes) {
-                               free(e->right.expr);
-                               tmp = e->left.expr;
-                               *e = *(e->left.expr);
-                               free(tmp);
-                               return e;
-                       }
-               }
-               break;
-       case E_OR:
-               e->left.expr = expr_eliminate_yn(e->left.expr);
-               e->right.expr = expr_eliminate_yn(e->right.expr);
-               if (e->left.expr->type == E_SYMBOL) {
-                       if (e->left.expr->left.sym == &symbol_no) {
-                               free(e->left.expr);
-                               tmp = e->right.expr;
-                               *e = *(e->right.expr);
-                               free(tmp);
-                               return e;
-                       } else if (e->left.expr->left.sym == &symbol_yes) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_yes;
-                               e->right.expr = NULL;
-                               return e;
-                       }
-               }
-               if (e->right.expr->type == E_SYMBOL) {
-                       if (e->right.expr->left.sym == &symbol_no) {
-                               free(e->right.expr);
-                               tmp = e->left.expr;
-                               *e = *(e->left.expr);
-                               free(tmp);
-                               return e;
-                       } else if (e->right.expr->left.sym == &symbol_yes) {
-                               expr_free(e->left.expr);
-                               expr_free(e->right.expr);
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_yes;
-                               e->right.expr = NULL;
-                               return e;
-                       }
-               }
-               break;
-       default:
-               ;
-       }
-       return e;
-}
-
-/*
- * bool FOO!=n => FOO
- */
-struct expr *expr_trans_bool(struct expr *e)
-{
-       if (!e)
-               return NULL;
-       switch (e->type) {
-       case E_AND:
-       case E_OR:
-       case E_NOT:
-               e->left.expr = expr_trans_bool(e->left.expr);
-               e->right.expr = expr_trans_bool(e->right.expr);
-               break;
-       case E_UNEQUAL:
-         /* FOO!=n -> FOO */
-               if (e->left.sym->type == S_TRISTATE) {
-                       if (e->right.sym == &symbol_no) {
-                               e->type = E_SYMBOL;
-                               e->right.sym = NULL;
-                       }
-               }
-               break;
-       default:
-               ;
-       }
-       return e;
-}
-
-/*
- * e1 || e2 -> ?
- */
-struct expr *expr_join_or(struct expr *e1, struct expr *e2)
-{
-       struct expr *tmp;
-       struct symbol *sym1, *sym2;
-
-       if (expr_eq(e1, e2))
-               return expr_copy(e1);
-       if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != 
E_SYMBOL && e1->type != E_NOT)
-               return NULL;
-       if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != 
E_SYMBOL && e2->type != E_NOT)
-               return NULL;
-       if (e1->type == E_NOT) {
-               tmp = e1->left.expr;
-               if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type 
!= E_SYMBOL)
-                       return NULL;
-               sym1 = tmp->left.sym;
-       } else
-               sym1 = e1->left.sym;
-       if (e2->type == E_NOT) {
-               if (e2->left.expr->type != E_SYMBOL)
-                       return NULL;
-               sym2 = e2->left.expr->left.sym;
-       } else
-               sym2 = e2->left.sym;
-       if (sym1 != sym2)
-               return NULL;
-       if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE)
-               return NULL;
-       if (sym1->type == S_TRISTATE) {
-               if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
-                   ((e1->right.sym == &symbol_yes && e2->right.sym == 
&symbol_mod) ||
-                    (e1->right.sym == &symbol_mod && e2->right.sym == 
&symbol_yes))) {
-                 /* (a='y') || (a='m') -> (a!='n') */
-                       return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_no);
-               }
-               if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
-                   ((e1->right.sym == &symbol_yes && e2->right.sym == 
&symbol_no) ||
-                    (e1->right.sym == &symbol_no && e2->right.sym == 
&symbol_yes))) {
-                 /* (a='y') || (a='n') -> (a!='m') */
-                       return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_mod);
-               }
-               if (e1->type == E_EQUAL && e2->type == E_EQUAL &&
-                   ((e1->right.sym == &symbol_mod && e2->right.sym == 
&symbol_no) ||
-                    (e1->right.sym == &symbol_no && e2->right.sym == 
&symbol_mod))) {
-                 /* (a='m') || (a='n') -> (a!='y') */
-                       return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
-               }
-       }
-       if (sym1->type == S_BOOLEAN && sym1 == sym2) {
-               if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && 
e2->type == E_SYMBOL) ||
-                   (e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && 
e1->type == E_SYMBOL))
-                       return expr_alloc_symbol(&symbol_yes);
-       }
-
-       printf("optimize ");
-       print_expr(0, e1, 0);
-       printf(" || ");
-       print_expr(0, e2, 0);
-       printf(" ?\n");
-       return NULL;
-}
-
-struct expr *expr_join_and(struct expr *e1, struct expr *e2)
-{
-       struct expr *tmp;
-       struct symbol *sym1, *sym2;
-
-       if (expr_eq(e1, e2))
-               return expr_copy(e1);
-       if (e1->type != E_EQUAL && e1->type != E_UNEQUAL && e1->type != 
E_SYMBOL && e1->type != E_NOT)
-               return NULL;
-       if (e2->type != E_EQUAL && e2->type != E_UNEQUAL && e2->type != 
E_SYMBOL && e2->type != E_NOT)
-               return NULL;
-       if (e1->type == E_NOT) {
-               tmp = e1->left.expr;
-               if (tmp->type != E_EQUAL && tmp->type != E_UNEQUAL && tmp->type 
!= E_SYMBOL)
-                       return NULL;
-               sym1 = tmp->left.sym;
-       } else
-               sym1 = e1->left.sym;
-       if (e2->type == E_NOT) {
-               if (e2->left.expr->type != E_SYMBOL)
-                       return NULL;
-               sym2 = e2->left.expr->left.sym;
-       } else
-               sym2 = e2->left.sym;
-       if (sym1 != sym2)
-               return NULL;
-       if (sym1->type != S_BOOLEAN && sym1->type != S_TRISTATE)
-               return NULL;
-
-       if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && e2->right.sym == 
&symbol_yes) ||
-           (e2->type == E_SYMBOL && e1->type == E_EQUAL && e1->right.sym == 
&symbol_yes))
-         /* (a) && (a='y') -> (a='y') */
-               return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
-
-       if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == 
&symbol_no) ||
-           (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == 
&symbol_no))
-         /* (a) && (a!='n') -> (a) */
-               return expr_alloc_symbol(sym1);
-
-       if (sym1->type == S_TRISTATE) {
-               if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) {
-                 /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
-                       sym2 = e1->right.sym;
-                       if ((e2->right.sym->flags & SYMBOL_CONST) && 
(sym2->flags & SYMBOL_CONST))
-                               return sym2 != e2->right.sym ? 
expr_alloc_comp(E_EQUAL, sym1, sym2)
-                                                            : 
expr_alloc_symbol(&symbol_no);
-               }
-               if (e1->type == E_UNEQUAL && e2->type == E_EQUAL) {
-                 /* (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' */
-                       sym2 = e2->right.sym;
-                       if ((e1->right.sym->flags & SYMBOL_CONST) && 
(sym2->flags & SYMBOL_CONST))
-                               return sym2 != e1->right.sym ? 
expr_alloc_comp(E_EQUAL, sym1, sym2)
-                                                            : 
expr_alloc_symbol(&symbol_no);
-               }
-               if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
-                          ((e1->right.sym == &symbol_yes && e2->right.sym == 
&symbol_no) ||
-                           (e1->right.sym == &symbol_no && e2->right.sym == 
&symbol_yes)))
-                 /* (a!='y') && (a!='n') -> (a='m') */
-                       return expr_alloc_comp(E_EQUAL, sym1, &symbol_mod);
-
-               if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
-                          ((e1->right.sym == &symbol_yes && e2->right.sym == 
&symbol_mod) ||
-                           (e1->right.sym == &symbol_mod && e2->right.sym == 
&symbol_yes)))
-                 /*(a!='y') && (a!='m') -> (a='n') */
-                       return expr_alloc_comp(E_EQUAL, sym1, &symbol_no);
-
-               if (e1->type == E_UNEQUAL && e2->type == E_UNEQUAL &&
-                          ((e1->right.sym == &symbol_mod && e2->right.sym == 
&symbol_no) ||
-                           (e1->right.sym == &symbol_no && e2->right.sym == 
&symbol_mod)))
-                 /*(a!='m') && (a!='n') -> (a='m') */
-                       return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes);
-
-               if ((e1->type == E_SYMBOL && e2->type == E_EQUAL && 
e2->right.sym == &symbol_mod) ||
-                   (e2->type == E_SYMBOL && e1->type == E_EQUAL && 
e1->right.sym == &symbol_mod) ||
-                   (e1->type == E_SYMBOL && e2->type == E_UNEQUAL && 
e2->right.sym == &symbol_yes) ||
-                   (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && 
e1->right.sym == &symbol_yes))
-                       return NULL;
-       }
-       printf("optimize ");
-       print_expr(0, e1, 0);
-       printf(" && ");
-       print_expr(0, e2, 0);
-       printf(" ?\n");
-       return NULL;
-}
-
-static void expr_eliminate_dups1(enum expr_type type, struct expr **ep1, 
struct expr **ep2)
-{
-#define e1 (*ep1)
-#define e2 (*ep2)
-       struct expr *tmp;
-
-       if (e1->type == type) {
-               expr_eliminate_dups1(type, &e1->left.expr, &e2);
-               expr_eliminate_dups1(type, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               expr_eliminate_dups1(type, &e1, &e2->left.expr);
-               expr_eliminate_dups1(type, &e1, &e2->right.expr);
-               return;
-       }
-       if (e1 == e2)
-               return;
-
-       switch (e1->type) {
-       case E_OR: case E_AND:
-               expr_eliminate_dups1(e1->type, &e1, &e1);
-       default:
-               ;
-       }
-
-       switch (type) {
-       case E_OR:
-               tmp = expr_join_or(e1, e2);
-               if (tmp) {
-                       expr_free(e1); expr_free(e2);
-                       e1 = expr_alloc_symbol(&symbol_no);
-                       e2 = tmp;
-                       trans_count++;
-               }
-               break;
-       case E_AND:
-               tmp = expr_join_and(e1, e2);
-               if (tmp) {
-                       expr_free(e1); expr_free(e2);
-                       e1 = expr_alloc_symbol(&symbol_yes);
-                       e2 = tmp;
-                       trans_count++;
-               }
-               break;
-       default:
-               ;
-       }
-#undef e1
-#undef e2
-}
-
-static void expr_eliminate_dups2(enum expr_type type, struct expr **ep1, 
struct expr **ep2)
-{
-#define e1 (*ep1)
-#define e2 (*ep2)
-       struct expr *tmp, *tmp1, *tmp2;
-
-       if (e1->type == type) {
-               expr_eliminate_dups2(type, &e1->left.expr, &e2);
-               expr_eliminate_dups2(type, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               expr_eliminate_dups2(type, &e1, &e2->left.expr);
-               expr_eliminate_dups2(type, &e1, &e2->right.expr);
-       }
-       if (e1 == e2)
-               return;
-
-       switch (e1->type) {
-       case E_OR:
-               expr_eliminate_dups2(e1->type, &e1, &e1);
-               /* (FOO || BAR) && (!FOO && !BAR) -> n */
-               tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
-               tmp2 = expr_copy(e2);
-               tmp = expr_extract_eq_and(&tmp1, &tmp2);
-               if (expr_is_yes(tmp1)) {
-                       expr_free(e1);
-                       e1 = expr_alloc_symbol(&symbol_no);
-                       trans_count++;
-               }
-               expr_free(tmp2);
-               expr_free(tmp1);
-               expr_free(tmp);
-               break;
-       case E_AND:
-               expr_eliminate_dups2(e1->type, &e1, &e1);
-               /* (FOO && BAR) || (!FOO || !BAR) -> y */
-               tmp1 = expr_transform(expr_alloc_one(E_NOT, expr_copy(e1)));
-               tmp2 = expr_copy(e2);
-               tmp = expr_extract_eq_or(&tmp1, &tmp2);
-               if (expr_is_no(tmp1)) {
-                       expr_free(e1);
-                       e1 = expr_alloc_symbol(&symbol_yes);
-                       trans_count++;
-               }
-               expr_free(tmp2);
-               expr_free(tmp1);
-               expr_free(tmp);
-               break;
-       default:
-               ;
-       }
-#undef e1
-#undef e2
-}
-
-struct expr *expr_eliminate_dups(struct expr *e)
-{
-       int oldcount;
-       if (!e)
-               return e;
-
-       oldcount = trans_count;
-       while (1) {
-               trans_count = 0;
-               switch (e->type) {
-               case E_OR:
-               case E_AND:
-                       expr_eliminate_dups1(e->type, &e, &e);
-                       expr_eliminate_dups2(e->type, &e, &e);
-               default:
-                       ;
-               }
-               if (!trans_count)
-                       break;
-               e = expr_eliminate_yn(e);
-       }
-       trans_count = oldcount;
-       return e;
-}
-
-struct expr *expr_transform(struct expr *e)
-{
-       struct expr *tmp;
-
-       if (!e)
-               return NULL;
-       switch (e->type) {
-       case E_EQUAL:
-       case E_UNEQUAL:
-       case E_SYMBOL:
-       case E_CHOICE:
-               break;
-       default:
-               e->left.expr = expr_transform(e->left.expr);
-               e->right.expr = expr_transform(e->right.expr);
-       }
-
-       switch (e->type) {
-       case E_EQUAL:
-               if (e->left.sym->type != S_BOOLEAN)
-                       break;
-               if (e->right.sym == &symbol_no) {
-                       e->type = E_NOT;
-                       e->left.expr = expr_alloc_symbol(e->left.sym);
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_mod) {
-                       printf("boolean symbol %s tested for 'm'? test forced 
to 'n'\n", e->left.sym->name);
-                       e->type = E_SYMBOL;
-                       e->left.sym = &symbol_no;
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_yes) {
-                       e->type = E_SYMBOL;
-                       e->right.sym = NULL;
-                       break;
-               }
-               break;
-       case E_UNEQUAL:
-               if (e->left.sym->type != S_BOOLEAN)
-                       break;
-               if (e->right.sym == &symbol_no) {
-                       e->type = E_SYMBOL;
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_mod) {
-                       printf("boolean symbol %s tested for 'm'? test forced 
to 'y'\n", e->left.sym->name);
-                       e->type = E_SYMBOL;
-                       e->left.sym = &symbol_yes;
-                       e->right.sym = NULL;
-                       break;
-               }
-               if (e->right.sym == &symbol_yes) {
-                       e->type = E_NOT;
-                       e->left.expr = expr_alloc_symbol(e->left.sym);
-                       e->right.sym = NULL;
-                       break;
-               }
-               break;
-       case E_NOT:
-               switch (e->left.expr->type) {
-               case E_NOT:
-                 /* !!a -> a */
-                       tmp = e->left.expr->left.expr;
-                       free(e->left.expr);
-                       free(e);
-                       e = tmp;
-                       e = expr_transform(e);
-                       break;
-               case E_EQUAL:
-               case E_UNEQUAL:
-                 /* !a='x' -> a!='x' */
-                       tmp = e->left.expr;
-                       free(e);
-                       e = tmp;
-                       e->type = e->type == E_EQUAL ? E_UNEQUAL : E_EQUAL;
-                       break;
-               case E_OR:
-                 /* !(a || b) -> !a && !b */
-                       tmp = e->left.expr;
-                       e->type = E_AND;
-                       e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
-                       tmp->type = E_NOT;
-                       tmp->right.expr = NULL;
-                       e = expr_transform(e);
-                       break;
-               case E_AND:
-                 /* !(a && b) -> !a || !b */
-                       tmp = e->left.expr;
-                       e->type = E_OR;
-                       e->right.expr = expr_alloc_one(E_NOT, tmp->right.expr);
-                       tmp->type = E_NOT;
-                       tmp->right.expr = NULL;
-                       e = expr_transform(e);
-                       break;
-               case E_SYMBOL:
-                       if (e->left.expr->left.sym == &symbol_yes) {
-                         /* !'y' -> 'n' */
-                               tmp = e->left.expr;
-                               free(e);
-                               e = tmp;
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_no;
-                               break;
-                       }
-                       if (e->left.expr->left.sym == &symbol_mod) {
-                         /*  !'m' -> 'm' */
-                               tmp = e->left.expr;
-                               free(e);
-                               e = tmp;
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_mod;
-                               break;
-                       }
-                       if (e->left.expr->left.sym == &symbol_no) {
-                         /* !'n' -> 'y' */
-                               tmp = e->left.expr;
-                               free(e);
-                               e = tmp;
-                               e->type = E_SYMBOL;
-                               e->left.sym = &symbol_yes;
-                               break;
-                       }
-                       break;
-               default:
-                       ;
-               }
-               break;
-       default:
-               ;
-       }
-       return e;
-}
-
-int expr_contains_symbol(struct expr *dep, struct symbol *sym)
-{
-       if (!dep)
-               return 0;
-
-       switch (dep->type) {
-       case E_AND:
-       case E_OR:
-               return expr_contains_symbol(dep->left.expr, sym) ||
-                      expr_contains_symbol(dep->right.expr, sym);
-       case E_SYMBOL:
-               return dep->left.sym == sym;
-       case E_EQUAL:
-       case E_UNEQUAL:
-               return dep->left.sym == sym ||
-                      dep->right.sym == sym;
-       case E_NOT:
-               return expr_contains_symbol(dep->left.expr, sym);
-       default:
-               ;
-       }
-       return 0;
-}
-
-bool expr_depends_symbol(struct expr *dep, struct symbol *sym)
-{
-       if (!dep)
-               return false;
-
-       switch (dep->type) {
-       case E_AND:
-               return expr_depends_symbol(dep->left.expr, sym) ||
-                      expr_depends_symbol(dep->right.expr, sym);
-       case E_SYMBOL:
-               return dep->left.sym == sym;
-       case E_EQUAL:
-               if (dep->left.sym == sym) {
-                       if (dep->right.sym == &symbol_yes || dep->right.sym == 
&symbol_mod)
-                               return true;
-               }
-               break;
-       case E_UNEQUAL:
-               if (dep->left.sym == sym) {
-                       if (dep->right.sym == &symbol_no)
-                               return true;
-               }
-               break;
-       default:
-               ;
-       }
-       return false;
-}
-
-struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2)
-{
-       struct expr *tmp = NULL;
-       expr_extract_eq(E_AND, &tmp, ep1, ep2);
-       if (tmp) {
-               *ep1 = expr_eliminate_yn(*ep1);
-               *ep2 = expr_eliminate_yn(*ep2);
-       }
-       return tmp;
-}
-
-struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2)
-{
-       struct expr *tmp = NULL;
-       expr_extract_eq(E_OR, &tmp, ep1, ep2);
-       if (tmp) {
-               *ep1 = expr_eliminate_yn(*ep1);
-               *ep2 = expr_eliminate_yn(*ep2);
-       }
-       return tmp;
-}
-
-void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, 
struct expr **ep2)
-{
-#define e1 (*ep1)
-#define e2 (*ep2)
-       if (e1->type == type) {
-               expr_extract_eq(type, ep, &e1->left.expr, &e2);
-               expr_extract_eq(type, ep, &e1->right.expr, &e2);
-               return;
-       }
-       if (e2->type == type) {
-               expr_extract_eq(type, ep, ep1, &e2->left.expr);
-               expr_extract_eq(type, ep, ep1, &e2->right.expr);
-               return;
-       }
-       if (expr_eq(e1, e2)) {
-               *ep = *ep ? expr_alloc_two(type, *ep, e1) : e1;
-               expr_free(e2);
-               if (type == E_AND) {
-                       e1 = expr_alloc_symbol(&symbol_yes);
-                       e2 = expr_alloc_symbol(&symbol_yes);
-               } else if (type == E_OR) {
-                       e1 = expr_alloc_symbol(&symbol_no);
-                       e2 = expr_alloc_symbol(&symbol_no);
-               }
-       }
-#undef e1
-#undef e2
-}
-
-struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct 
symbol *sym)
-{
-       struct expr *e1, *e2;
-
-       if (!e) {
-               e = expr_alloc_symbol(sym);
-               if (type == E_UNEQUAL)
-                       e = expr_alloc_one(E_NOT, e);
-               return e;
-       }
-       switch (e->type) {
-       case E_AND:
-               e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
-               e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
-               if (sym == &symbol_yes)
-                       e = expr_alloc_two(E_AND, e1, e2);
-               if (sym == &symbol_no)
-                       e = expr_alloc_two(E_OR, e1, e2);
-               if (type == E_UNEQUAL)
-                       e = expr_alloc_one(E_NOT, e);
-               return e;
-       case E_OR:
-               e1 = expr_trans_compare(e->left.expr, E_EQUAL, sym);
-               e2 = expr_trans_compare(e->right.expr, E_EQUAL, sym);
-               if (sym == &symbol_yes)
-                       e = expr_alloc_two(E_OR, e1, e2);
-               if (sym == &symbol_no)
-                       e = expr_alloc_two(E_AND, e1, e2);
-               if (type == E_UNEQUAL)
-                       e = expr_alloc_one(E_NOT, e);
-               return e;
-       case E_NOT:
-               return expr_trans_compare(e->left.expr, type == E_EQUAL ? 
E_UNEQUAL : E_EQUAL, sym);
-       case E_UNEQUAL:
-       case E_EQUAL:
-               if (type == E_EQUAL) {
-                       if (sym == &symbol_yes)
-                               return expr_copy(e);
-                       if (sym == &symbol_mod)
-                               return expr_alloc_symbol(&symbol_no);
-                       if (sym == &symbol_no)
-                               return expr_alloc_one(E_NOT, expr_copy(e));
-               } else {
-                       if (sym == &symbol_yes)
-                               return expr_alloc_one(E_NOT, expr_copy(e));
-                       if (sym == &symbol_mod)
-                               return expr_alloc_symbol(&symbol_yes);
-                       if (sym == &symbol_no)
-                               return expr_copy(e);
-               }
-               break;
-       case E_SYMBOL:
-               return expr_alloc_comp(type, e->left.sym, sym);
-       case E_CHOICE:
-       case E_RANGE:
-       case E_NONE:
-               /* panic */;
-       }
-       return NULL;
-}
-
-tristate expr_calc_value(struct expr *e)
-{
-       tristate val1, val2;
-       const char *str1, *str2;
-
-       if (!e)
-               return yes;
-
-       switch (e->type) {
-       case E_SYMBOL:
-               sym_calc_value(e->left.sym);
-               return e->left.sym->curr.tri;
-       case E_AND:
-               val1 = expr_calc_value(e->left.expr);
-               val2 = expr_calc_value(e->right.expr);
-               return E_AND(val1, val2);
-       case E_OR:
-               val1 = expr_calc_value(e->left.expr);
-               val2 = expr_calc_value(e->right.expr);
-               return E_OR(val1, val2);
-       case E_NOT:
-               val1 = expr_calc_value(e->left.expr);
-               return E_NOT(val1);
-       case E_EQUAL:
-               sym_calc_value(e->left.sym);
-               sym_calc_value(e->right.sym);
-               str1 = sym_get_string_value(e->left.sym);
-               str2 = sym_get_string_value(e->right.sym);
-               return !strcmp(str1, str2) ? yes : no;
-       case E_UNEQUAL:
-               sym_calc_value(e->left.sym);
-               sym_calc_value(e->right.sym);
-               str1 = sym_get_string_value(e->left.sym);
-               str2 = sym_get_string_value(e->right.sym);
-               return !strcmp(str1, str2) ? no : yes;
-       default:
-               printf("expr_calc_value: %d?\n", e->type);
-               return no;
-       }
-}
-
-int expr_compare_type(enum expr_type t1, enum expr_type t2)
-{
-#if 0
-       return 1;
-#else
-       if (t1 == t2)
-               return 0;
-       switch (t1) {
-       case E_EQUAL:
-       case E_UNEQUAL:
-               if (t2 == E_NOT)
-                       return 1;
-       case E_NOT:
-               if (t2 == E_AND)
-                       return 1;
-       case E_AND:
-               if (t2 == E_OR)
-                       return 1;
-       case E_OR:
-               if (t2 == E_CHOICE)
-                       return 1;
-       case E_CHOICE:
-               if (t2 == 0)
-                       return 1;
-       default:
-               return -1;
-       }
-       printf("[%dgt%d?]", t1, t2);
-       return 0;
-#endif
-}
-
-void expr_print(struct expr *e, void (*fn)(void *, const char *), void *data, 
int prevtoken)
-{
-       if (!e) {
-               fn(data, "y");
-               return;
-       }
-
-       if (expr_compare_type(prevtoken, e->type) > 0)
-               fn(data, "(");
-       switch (e->type) {
-       case E_SYMBOL:
-               if (e->left.sym->name)
-                       fn(data, e->left.sym->name);
-               else
-                       fn(data, "<choice>");
-               break;
-       case E_NOT:
-               fn(data, "!");
-               expr_print(e->left.expr, fn, data, E_NOT);
-               break;
-       case E_EQUAL:
-               fn(data, e->left.sym->name);
-               fn(data, "=");
-               fn(data, e->right.sym->name);
-               break;
-       case E_UNEQUAL:
-               fn(data, e->left.sym->name);
-               fn(data, "!=");
-               fn(data, e->right.sym->name);
-               break;
-       case E_OR:
-               expr_print(e->left.expr, fn, data, E_OR);
-               fn(data, " || ");
-               expr_print(e->right.expr, fn, data, E_OR);
-               break;
-       case E_AND:
-               expr_print(e->left.expr, fn, data, E_AND);
-               fn(data, " && ");
-               expr_print(e->right.expr, fn, data, E_AND);
-               break;
-       case E_CHOICE:
-               fn(data, e->right.sym->name);
-               if (e->left.expr) {
-                       fn(data, " ^ ");
-                       expr_print(e->left.expr, fn, data, E_CHOICE);
-               }
-               break;
-       case E_RANGE:
-               fn(data, "[");
-               fn(data, e->left.sym->name);
-               fn(data, " ");
-               fn(data, e->right.sym->name);
-               fn(data, "]");
-               break;
-       default:
-         {
-               char buf[32];
-               sprintf(buf, "<unknown type %d>", e->type);
-               fn(data, buf);
-               break;
-         }
-       }
-       if (expr_compare_type(prevtoken, e->type) > 0)
-               fn(data, ")");
-}
-
-static void expr_print_file_helper(void *data, const char *str)
-{
-       GN_FWRITE(str, strlen(str), 1, data);
-}
-
-void expr_fprint(struct expr *e, FILE *out)
-{
-       expr_print(e, expr_print_file_helper, out, E_NONE);
-}
-
-void print_expr(int mask, struct expr *e, int prevtoken)
-{
-       if (!(cdebug & mask))
-               return;
-       expr_fprint(e, stdout);
-}
-

Deleted: GNUnet/src/setup/expr.h
===================================================================
--- GNUnet/src/setup/expr.h     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/expr.h     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,202 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/expr.h
- * @author Roman Zippel
- * @author Nils Durner
- **/
-
-#ifndef EXPR_H
-#define EXPR_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-#include "bool.h"
-
-struct file {
-       struct file *next;
-       struct file *parent;
-       char *name;
-       int lineno;
-       int flags;
-};
-
-#define FILE_BUSY              0x0001
-#define FILE_SCANNED           0x0002
-#define FILE_PRINTED           0x0004
-
-typedef enum tristate {
-       no, mod, yes
-} tristate;
-
-enum expr_type {
-       E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, 
E_RANGE
-};
-
-union expr_data {
-       struct expr *expr;
-       struct symbol *sym;
-};
-
-struct expr {
-       enum expr_type type;
-       union expr_data left, right;
-};
-
-#define E_OR(dep1, dep2)       (((dep1)>(dep2))?(dep1):(dep2))
-#define E_AND(dep1, dep2)      (((dep1)<(dep2))?(dep1):(dep2))
-#define E_NOT(dep)             (2-(dep))
-
-struct expr_value {
-       struct expr *expr;
-       tristate tri;
-};
-
-struct symbol_value {
-       void *val;
-       tristate tri;
-};
-
-enum symbol_type {
-  S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, ST_OTHER
-  /* S_OTHER conflicts with system header on solaris! */
-};
-
-struct symbol {
-       struct symbol *next;
-        char *sect;
-       char *name;
-       char *help;
-       enum symbol_type type;
-       struct symbol_value curr, user;
-       tristate visible;
-       int flags;
-       struct property *prop;
-       struct expr *dep, *dep2;
-       struct expr_value rev_dep;
-};
-
-#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = 
symbol_hash[i]; sym; sym = sym->next) if (sym->type != ST_OTHER)
-
-#define SYMBOL_YES             0x0001
-#define SYMBOL_MOD             0x0002
-#define SYMBOL_NO              0x0004
-#define SYMBOL_CONST           0x0007
-#define SYMBOL_CHECK           0x0008
-#define SYMBOL_CHOICE          0x0010
-#define SYMBOL_CHOICEVAL       0x0020
-#define SYMBOL_PRINTED         0x0040
-#define SYMBOL_VALID           0x0080
-#define SYMBOL_OPTIONAL                0x0100
-#define SYMBOL_WRITE           0x0200
-#define SYMBOL_CHANGED         0x0400
-#define SYMBOL_NEW             0x0800
-#define SYMBOL_AUTO            0x1000
-#define SYMBOL_CHECKED         0x2000
-#define SYMBOL_CHECK_DONE      0x4000
-#define SYMBOL_WARNED          0x8000
-
-#define SYMBOL_MAXLENGTH       256
-#define SYMBOL_HASHSIZE                257
-#define SYMBOL_HASHMASK                0xff
-
-enum prop_type {
-       P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, 
P_RANGE
-};
-
-struct property {
-       struct property *next;
-       struct symbol *sym;
-       enum prop_type type;
-       const char *text;
-       struct expr_value visible;
-       struct expr *expr;
-       struct menu *menu;
-       struct file *file;
-       int lineno;
-};
-
-#define for_all_properties(sym, st, tok) \
-       for (st = sym->prop; st; st = st->next) \
-               if (st->type == (tok))
-#define for_all_defaults(sym, st) for_all_properties(sym, st, P_DEFAULT)
-#define for_all_choices(sym, st) for_all_properties(sym, st, P_CHOICE)
-#define for_all_prompts(sym, st) \
-       for (st = sym->prop; st; st = st->next) \
-               if (st->text)
-
-struct menu {
-       struct menu *next;
-       struct menu *parent;
-       struct menu *list;
-       struct symbol *sym;
-       struct property *prompt;
-       struct expr *dep;
-       unsigned int flags;
-       //char *help;
-       struct file *file;
-       int lineno;
-       void *data;
-       char *section;
-};
-
-#define MENU_CHANGED           0x0001
-#define MENU_ROOT              0x0002
-
-#ifndef SWIG
-
-extern struct file *file_list;
-extern struct file *current_file;
-struct file *lookup_file(const char *name);
-
-extern struct symbol symbol_yes, symbol_no, symbol_mod;
-extern struct symbol *modules_sym;
-extern int cdebug;
-struct expr *expr_alloc_symbol(struct symbol *sym);
-struct expr *expr_alloc_one(enum expr_type type, struct expr *ce);
-struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr 
*e2);
-struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct 
symbol *s2);
-struct expr *expr_alloc_and(struct expr *e1, struct expr *e2);
-struct expr *expr_alloc_or(struct expr *e1, struct expr *e2);
-struct expr *expr_copy(struct expr *org);
-void expr_free(struct expr *e);
-int expr_eq(struct expr *e1, struct expr *e2);
-void expr_eliminate_eq(struct expr **ep1, struct expr **ep2);
-tristate expr_calc_value(struct expr *e);
-struct expr *expr_eliminate_yn(struct expr *e);
-struct expr *expr_trans_bool(struct expr *e);
-struct expr *expr_eliminate_dups(struct expr *e);
-struct expr *expr_transform(struct expr *e);
-int expr_contains_symbol(struct expr *dep, struct symbol *sym);
-bool expr_depends_symbol(struct expr *dep, struct symbol *sym);
-struct expr *expr_extract_eq_and(struct expr **ep1, struct expr **ep2);
-struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2);
-void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, 
struct expr **ep2);
-struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct 
symbol *sym);
-
-void expr_fprint(struct expr *e, FILE *out);
-void print_expr(int mask, struct expr *e, int prevtoken);
-
-static inline int expr_is_yes(struct expr *e)
-{
-       return !e || (e->type == E_SYMBOL && e->left.sym == &symbol_yes);
-}
-
-static inline int expr_is_no(struct expr *e)
-{
-       return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no);
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* EXPR_H */

Deleted: GNUnet/src/setup/gconf.c
===================================================================
--- GNUnet/src/setup/gconf.c    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/gconf.c    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,1666 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005, 2006 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * Portions Copyright (C) 2002-2003 Romain Lievin <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/gconf.c
- * @author Roman Zippel
- * @author Nils Durner
- * @author Christian Grothoff
- */
-
-#include "platform.h"
-
-#define LKC_DIRECT_LINK
-#define ENABLE_NLS 1
-
-#define BUG916 NO
-
-#include "lkc.h"
-#include "confdata.h"
-
-#define USE_XPM_SINGLE_VIEW 1
-#define USE_XPM_SPLIT_VIEW 1
-#define USE_XPM_TREE_VIEW 1
-#define USE_PLUS_XPM 1
-#define USE_MINUS_XPM 1
-#define USE_XPM_MENU 1
-#define USE_XPM_VOID 1
-#include "images.c"
-
-#include "glade_support.h"
-#include <gdk/gdkkeysyms.h>
-
-
-/* #define DEBUG */
-
-enum {
-  SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
-};
-
-static gint view_mode = SPLIT_VIEW;
-static gboolean show_name = FALSE;
-static gboolean show_range = FALSE;
-static gboolean show_value = TRUE;
-static gboolean show_all = FALSE;
-static gboolean resizeable = FALSE;
-
-static gboolean config_changed = FALSE;
-
-static char nohelp_text[] =
-  gettext_noop("Sorry, no help is available for this option.\n");
-
-GtkWidget *main_wnd = NULL;
-GtkWidget *tree1_w = NULL;  /* left  frame */
-GtkWidget *tree2_w = NULL;  /* right frame */
-GtkWidget *text_w = NULL;
-GtkWidget *hpaned = NULL;
-GtkWidget *vpaned = NULL;
-GtkWidget *back_btn = NULL;
-
-GtkTextTag *tag1, *tag2;
-GdkColor color;
-
-GtkTreeStore *tree1, *tree2, *tree;
-GtkTreeModel *model1, *model2;
-static GtkTreeIter *parents[256];
-static gint indent;
-
-static struct menu *current; /* current node for SINGLE view */
-static struct menu *browsed; /* browsed node for SPLIT view */
-
-enum {
-  COL_OPTION, COL_NAME, COL_NO, COL_MOD, COL_YES, COL_VALUE,
-  COL_MENU, COL_COLOR, COL_EDIT, COL_PIXBUF,
-  COL_PIXVIS, COL_BTNVIS, COL_BTNACT, COL_BTNINC, COL_BTNRAD,
-  COL_NUMBER
-};
-
-static void display_list(void);
-static void display_tree(struct menu *menu);
-static void display_tree_part(void);
-static void update_tree(struct menu *src, GtkTreeIter * dst);
-static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row);
-static gchar **fill_row(struct menu *menu);
-
-
-/* Helping/Debugging Functions */
-
-
-const char *dbg_print_stype(int val)
-{
-  static char buf[256];
-
-  memset(buf, 0, 256);
-
-  if (val == S_UNKNOWN)
-    strcpy(buf, "unknown");
-  if (val == S_BOOLEAN)
-    strcpy(buf, "boolean");
-  if (val == S_TRISTATE)
-    strcpy(buf, "tristate");
-  if (val == S_INT)
-    strcpy(buf, "int");
-  if (val == S_HEX)
-    strcpy(buf, "hex");
-  if (val == S_STRING)
-    strcpy(buf, "string");
-  if (val == ST_OTHER)
-    strcpy(buf, "other");
-
-#ifdef DEBUG
-  printf("%s", buf);
-#endif
-
-  return buf;
-}
-
-const char *dbg_print_flags(int val)
-{
-  static char buf[256];
-
-  memset(buf, 0, 256);
-
-  if (val & SYMBOL_YES)
-    strcat(buf, "yes/");
-  if (val & SYMBOL_MOD)
-    strcat(buf, "mod/");
-  if (val & SYMBOL_NO)
-    strcat(buf, "no/");
-  if (val & SYMBOL_CONST)
-    strcat(buf, "const/");
-  if (val & SYMBOL_CHECK)
-    strcat(buf, "check/");
-  if (val & SYMBOL_CHOICE)
-    strcat(buf, "choice/");
-  if (val & SYMBOL_CHOICEVAL)
-    strcat(buf, "choiceval/");
-  if (val & SYMBOL_PRINTED)
-    strcat(buf, "printed/");
-  if (val & SYMBOL_VALID)
-    strcat(buf, "valid/");
-  if (val & SYMBOL_OPTIONAL)
-    strcat(buf, "optional/");
-  if (val & SYMBOL_WRITE)
-    strcat(buf, "write/");
-  if (val & SYMBOL_CHANGED)
-    strcat(buf, "changed/");
-  if (val & SYMBOL_NEW)
-    strcat(buf, "new/");
-  if (val & SYMBOL_AUTO)
-    strcat(buf, "auto/");
-
-  buf[strlen(buf) - 1] = '\0';
-#ifdef DEBUG
-  printf("%s", buf);
-#endif
-
-  return buf;
-}
-
-const char *dbg_print_ptype(int val)
-{
-  static char buf[256];
-
-  memset(buf, 0, 256);
-
-  if (val == P_UNKNOWN)
-    strcpy(buf, "unknown");
-  if (val == P_PROMPT)
-    strcpy(buf, "prompt");
-  if (val == P_COMMENT)
-    strcpy(buf, "comment");
-  if (val == P_MENU)
-    strcpy(buf, "menu");
-  if (val == P_DEFAULT)
-    strcpy(buf, "default");
-  if (val == P_CHOICE)
-    strcpy(buf, "choice");
-
-#ifdef DEBUG
-  printf("%s", buf);
-#endif
-
-  return buf;
-}
-
-static void set_help(const char *prompt, const char *name, const char *help)
-{
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-
-  buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
-  gtk_text_buffer_get_bounds(buffer, &start, &end);
-  gtk_text_buffer_delete(buffer, &start, &end);
-  gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
-
-  gtk_text_buffer_get_end_iter(buffer, &end);
-  gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1,
-           NULL);
-  if (*name)
-  {
-    gtk_text_buffer_insert_at_cursor(buffer, " (", 2);
-    gtk_text_buffer_insert_at_cursor(buffer, name, -1);
-    gtk_text_buffer_insert_at_cursor(buffer, ")", 1);
-  }
-  gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
-  gtk_text_buffer_get_end_iter(buffer, &end);
-  gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2,
-           NULL);
-}
-
-GtkImage *get_btn_image(GtkButton *button)
-{
-  GList *btn_children, *align;
-  GtkImage *ret = NULL;
-
-  /* button -> alignment -> hbox -> image */
-
-  btn_children = gtk_container_get_children(GTK_CONTAINER(button));
-  for (align = btn_children; align; align = g_list_next(align))
-  {
-    if (GTK_IS_ALIGNMENT(align->data))
-    {
-      GList *align_children, *hbox;
-
-      align_children = gtk_container_get_children(GTK_CONTAINER(align->data));
-      for (hbox = align_children; hbox; hbox = g_list_next(hbox))
-      {
-        if (GTK_IS_HBOX(hbox->data))
-        {
-          GList *hbox_children, *img;
-
-          hbox_children = 
gtk_container_get_children(GTK_CONTAINER(hbox->data));
-          for (img = hbox_children; img; img = g_list_next(img))
-          {
-            if (GTK_IS_IMAGE(img->data))
-              ret = GTK_IMAGE(img->data);
-          }
-          g_list_free(hbox_children);
-        }
-      }
-      g_list_free(align_children);
-    }
-  }
-  g_list_free(btn_children);
-
-  return ret;
-}
-
-/* Main Window Initialization */
-
-
-void init_main_window() {
-  GtkWidget *widget;
-  GtkTextBuffer *txtbuf;
-  char title[256];
-  GdkPixmap *pixmap;
-  GdkBitmap *mask;
-  GtkStyle *style;
-  GtkToolbar *toolbar;
-  GtkMenu *options;
-  GtkImage *image;
-
-  main_wnd = get_xml("setupWindow");
-
-  hpaned = lookup_widget("hpaned1");
-  vpaned = lookup_widget("vpaned1");
-  tree1_w = lookup_widget("treeview1");
-  tree2_w = lookup_widget("treeview2");
-  text_w = lookup_widget("textview3");
-
-  toolbar = GTK_TOOLBAR(lookup_widget("toolbar1"));
-
-  back_btn = lookup_widget("button1");
-  gtk_widget_set_sensitive(back_btn, FALSE);
-
-  options = GTK_MENU(lookup_widget("options1_menu"));
-
-  widget = lookup_widget("show_name1");
-  gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
-               show_name);
-
-  widget = lookup_widget("show_range1");
-  gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
-               show_range);
-
-  widget = lookup_widget("show_data1");
-  gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
-               show_value);
-
-  style = gtk_widget_get_style(main_wnd);
-
-  image = get_btn_image(GTK_BUTTON(lookup_widget("button4")));
-  if (image)
-  {
-    pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-                  &style->bg[GTK_STATE_NORMAL],
-                  (gchar **) xpm_single_view);
-    gtk_image_set_from_pixmap(image, pixmap, mask);
-  }
-
-  image = get_btn_image(GTK_BUTTON(lookup_widget("button5")));
-  if (image)
-  {
-    pixmap =
-        gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-             &style->bg[GTK_STATE_NORMAL],
-             (gchar **) xpm_split_view);
-    gtk_image_set_from_pixmap(image, pixmap, mask);
-  }
-
-  image = get_btn_image(GTK_BUTTON(lookup_widget("button6")));
-  if (image)
-  {
-    pixmap =
-        gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-             &style->bg[GTK_STATE_NORMAL],
-             (gchar **) xpm_tree_view);
-    gtk_image_set_from_pixmap(image, pixmap, mask);
-  }
-
-  image = get_btn_image(GTK_BUTTON(lookup_widget("button7")));
-  if (image)
-  {
-    pixmap =
-        gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-             &style->bg[GTK_STATE_NORMAL],
-             (gchar **) plus_xpm);
-    gtk_image_set_from_pixmap(image, pixmap, mask);
-  }
-
-  image = get_btn_image(GTK_BUTTON(lookup_widget("button8")));
-  if (image)
-  {
-    pixmap =
-        gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-             &style->bg[GTK_STATE_NORMAL],
-             (gchar **) minus_xpm);
-    gtk_image_set_from_pixmap(image, pixmap, mask);
-  }
-
-
-  switch (view_mode) {
-  case SINGLE_VIEW:
-    widget = lookup_widget("button4");
-    gtk_button_clicked(GTK_BUTTON(widget));
-    break;
-  case SPLIT_VIEW:
-    widget = lookup_widget("button5");
-    gtk_button_clicked(GTK_BUTTON(widget));
-    break;
-  case FULL_VIEW:
-    widget = lookup_widget("button6");
-    gtk_button_clicked(GTK_BUTTON(widget));
-    break;
-  }
-
-  txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
-  tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1",
-            "foreground", "red",
-            "weight", PANGO_WEIGHT_BOLD,
-            NULL);
-  tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2",
-            /*"style", PANGO_STYLE_OBLIQUE, */
-            NULL);
-
-  strcpy(title, "GNUnet Configuration");
-  gtk_window_set_title(GTK_WINDOW(main_wnd), title);
-
-  gtk_widget_show(main_wnd);
-}
-
-void init_tree_model(void)
-{
-  gint i;
-
-  tree = tree2 = gtk_tree_store_new(COL_NUMBER,
-            G_TYPE_STRING, G_TYPE_STRING,
-            G_TYPE_STRING, G_TYPE_STRING,
-            G_TYPE_STRING, G_TYPE_STRING,
-            G_TYPE_POINTER, GDK_TYPE_COLOR,
-            G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
-            G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-            G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-            G_TYPE_BOOLEAN);
-  model2 = GTK_TREE_MODEL(tree2);
-
-  for (parents[0] = NULL, i = 1; i < 256; i++)
-    parents[i] = (GtkTreeIter *) g_malloc(sizeof(GtkTreeIter));
-
-  tree1 = gtk_tree_store_new(COL_NUMBER,
-           G_TYPE_STRING, G_TYPE_STRING,
-           G_TYPE_STRING, G_TYPE_STRING,
-           G_TYPE_STRING, G_TYPE_STRING,
-           G_TYPE_POINTER, GDK_TYPE_COLOR,
-           G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
-           G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-           G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-           G_TYPE_BOOLEAN);
-  model1 = GTK_TREE_MODEL(tree1);
-}
-
-void init_left_tree(void)
-{
-  GtkTreeView *view = GTK_TREE_VIEW(tree1_w);
-  GtkCellRenderer *renderer;
-  GtkTreeSelection *sel;
-  GtkTreeViewColumn *column;
-
-  gtk_tree_view_set_model(view, model1);
-  gtk_tree_view_set_headers_visible(view, TRUE);
-  gtk_tree_view_set_rules_hint(view, FALSE);
-
-  column = gtk_tree_view_column_new();
-  gtk_tree_view_append_column(view, column);
-  gtk_tree_view_column_set_title(column, "Options");
-
-  renderer = gtk_cell_renderer_toggle_new();
-  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-          renderer, FALSE);
-  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-              renderer,
-              "active", COL_BTNACT,
-              "inconsistent", COL_BTNINC,
-              "visible", COL_BTNVIS,
-              "radio", COL_BTNRAD, NULL);
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-          renderer, FALSE);
-  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-              renderer,
-              "text", COL_OPTION,
-#if BUG916
-              "foreground-gdk", COL_COLOR,
-#endif
-                                     NULL);
-
-  sel = gtk_tree_view_get_selection(view);
-  gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
-  gtk_widget_realize(tree1_w);
-}
-
-static void renderer_edited(GtkCellRendererText * cell,
-          const gchar * path_string,
-          const gchar * new_text, gpointer user_data);
-
-#if 0
-static void renderer_toggled(GtkCellRendererToggle * cellrenderertoggle,
-           gchar * arg1, gpointer user_data);
-#endif
-
-void init_right_tree(void)
-{
-  GtkTreeView *view = GTK_TREE_VIEW(tree2_w);
-  GtkCellRenderer *renderer;
-  GtkTreeSelection *sel;
-  GtkTreeViewColumn *column;
-  gint i;
-
-  gtk_tree_view_set_model(view, model2);
-  gtk_tree_view_set_headers_visible(view, TRUE);
-  gtk_tree_view_set_rules_hint(view, FALSE);
-
-  column = gtk_tree_view_column_new();
-  gtk_tree_view_append_column(view, column);
-  gtk_tree_view_column_set_title(column, "Options");
-
-  renderer = gtk_cell_renderer_pixbuf_new();
-  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-          renderer, FALSE);
-  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-              renderer,
-              "pixbuf", COL_PIXBUF,
-              "visible", COL_PIXVIS, NULL);
-  renderer = gtk_cell_renderer_toggle_new();
-  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-          renderer, FALSE);
-  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-              renderer,
-              "active", COL_BTNACT,
-              "inconsistent", COL_BTNINC,
-              "visible", COL_BTNVIS,
-              "radio", COL_BTNRAD, NULL);
-#if 0
-  g_signal_connect(G_OBJECT(renderer), "toggled",
-                  G_CALLBACK(renderer_toggled), NULL); 
-#endif
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-          renderer, FALSE);
-  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-              renderer,
-              "text", COL_OPTION,
-#if BUG916
-              "foreground-gdk", COL_COLOR,
-#endif
-                                     NULL);
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_insert_column_with_attributes(view, -1,
-                "Name", renderer,
-                "text", COL_NAME,
-#if BUG916
-                "foreground-gdk", COL_COLOR,
-#endif
-                                             NULL);
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_insert_column_with_attributes(view, -1,
-                "N", renderer,
-                "text", COL_NO,
-#if BUG916
-                "foreground-gdk", COL_COLOR,
-#endif
-                                             NULL);
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_insert_column_with_attributes(view, -1,
-                "M", renderer,
-                "text", COL_MOD,
-#if BUG916
-                "foreground-gdk", COL_COLOR,
-#endif
-                                             NULL);
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_insert_column_with_attributes(view, -1,
-                "Y", renderer,
-                "text", COL_YES,
-#if BUG916
-                "foreground-gdk",  COL_COLOR,
-#endif
-                                             NULL);
-  renderer = gtk_cell_renderer_text_new();
-  gtk_tree_view_insert_column_with_attributes(view, -1,
-                "Value", renderer,
-                "text", COL_VALUE,
-                "editable",
-                COL_EDIT,
-#if BUG916
-                "foreground-gdk", COL_COLOR,
-#endif
- NULL);
-  g_signal_connect(G_OBJECT(renderer), "edited",
-       G_CALLBACK(renderer_edited), NULL);
-
-  column = gtk_tree_view_get_column(view, COL_NAME);
-  gtk_tree_view_column_set_visible(column, show_name);
-  column = gtk_tree_view_get_column(view, COL_NO);
-  gtk_tree_view_column_set_visible(column, show_range);
-  column = gtk_tree_view_get_column(view, COL_MOD);
-  gtk_tree_view_column_set_visible(column, show_range);
-  column = gtk_tree_view_get_column(view, COL_YES);
-  gtk_tree_view_column_set_visible(column, show_range);
-  column = gtk_tree_view_get_column(view, COL_VALUE);
-  gtk_tree_view_column_set_visible(column, show_value);
-
-  if (resizeable) {
-    for (i = 0; i < COL_VALUE; i++) {
-      column = gtk_tree_view_get_column(view, i);
-      gtk_tree_view_column_set_resizable(column, TRUE);
-    }
-  }
-
-  sel = gtk_tree_view_get_selection(view);
-  gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
-}
-
-
-/* Utility Functions */
-
-static void text_insert_help(struct menu *menu)
-{
-  const char *prompt = menu_get_prompt(menu);
-  gchar *name;
-  const char *help = nohelp_text;
-
-  if (!menu->sym)
-    help = "";
-  else if (menu->sym->help)
-    help = menu->sym->help;
-
-  if (menu->sym && menu->sym->name)
-    name = g_strdup_printf(menu->sym->name);
-  else
-    name = g_strdup("");
-
-  set_help(prompt, name, help);
-  free(name);
-}
-
-
-static void text_insert_msg(const char *title, const char *message)
-{
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-  const char *msg = message;
-
-  buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
-  gtk_text_buffer_get_bounds(buffer, &start, &end);
-  gtk_text_buffer_delete(buffer, &start, &end);
-  gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
-
-  gtk_text_buffer_get_end_iter(buffer, &end);
-  gtk_text_buffer_insert_with_tags(buffer, &end, title, -1, tag1,
-           NULL);
-  gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
-  gtk_text_buffer_get_end_iter(buffer, &end);
-  gtk_text_buffer_insert_with_tags(buffer, &end, msg, -1, tag2,
-           NULL);
-}
-
-
-/* Main Windows Callbacks */
-
-void on_save1_activate(GtkMenuItem * menuitem, gpointer user_data);
-gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
-         gpointer user_data)
-{
-  GtkWidget *dialog, *label;
-  gint result;
-
-  if (config_changed == FALSE)
-    return FALSE;
-
-  dialog = gtk_dialog_new_with_buttons("Warning",
-               GTK_WINDOW(main_wnd),
-               (GtkDialogFlags)
-               (GTK_DIALOG_MODAL |
-                GTK_DIALOG_DESTROY_WITH_PARENT),
-               GTK_STOCK_OK,
-               GTK_RESPONSE_YES,
-               GTK_STOCK_NO,
-               GTK_RESPONSE_NO,
-               GTK_STOCK_CANCEL,
-               GTK_RESPONSE_CANCEL, NULL);
-  gtk_dialog_set_default_response(GTK_DIALOG(dialog),
-          GTK_RESPONSE_CANCEL);
-
-  label = gtk_label_new("\nSave configuration?\n");
-  gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
-  gtk_widget_show(label);
-
-  result = gtk_dialog_run(GTK_DIALOG(dialog));
-  switch (result) {
-  case GTK_RESPONSE_YES:
-    on_save1_activate(NULL, NULL);
-    return FALSE;
-  case GTK_RESPONSE_NO:
-    return FALSE;
-  case GTK_RESPONSE_CANCEL:
-  case GTK_RESPONSE_DELETE_EVENT:
-  default:
-    gtk_widget_destroy(dialog);
-    return TRUE;
-  }
-
-  return FALSE;
-}
-
-
-void on_window1_destroy(GtkObject * object, gpointer user_data)
-{
-  gtk_main_quit();
-}
-
-
-void
-on_window1_size_request(GtkWidget * widget,
-      GtkRequisition * requisition, gpointer user_data)
-{
-  static gint old_h;
-  gint w, h;
-
-  if (widget->window == NULL)
-    gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
-  else
-    gdk_window_get_size(widget->window, &w, &h);
-
-  if (h == old_h)
-    return;
-  old_h = h;
-
-  if (vpaned)
-    gtk_paned_set_position(GTK_PANED(vpaned), 2 * h / 3);
-}
-
-
-/* Menu & Toolbar Callbacks */
-
-
-static void
-load_filename(GtkFileSelection * file_selector, gpointer user_data)
-{
-  const gchar *fn;
-
-  fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
-               (user_data));
-
-  if (conf_read(fn))
-    text_insert_msg("Error", "Unable to load configuration!");
-  else
-    display_tree(&rootmenu);
-}
-
-void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  GtkWidget *fs;
-
-  fs = gtk_file_selection_new("Load file...");
-  g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
-       "clicked",
-       G_CALLBACK(load_filename), (gpointer) fs);
-  g_signal_connect_swapped(GTK_OBJECT
-         (GTK_FILE_SELECTION(fs)->ok_button),
-         "clicked", G_CALLBACK(gtk_widget_destroy),
-         (gpointer) fs);
-  g_signal_connect_swapped(GTK_OBJECT
-         (GTK_FILE_SELECTION(fs)->cancel_button),
-         "clicked", G_CALLBACK(gtk_widget_destroy),
-         (gpointer) fs);
-  gtk_widget_show(fs);
-}
-
-
-void on_save1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  char * filename;
-  filename = getConfigurationString("GNUNET-SETUP",
-                                   "FILENAME");
-  if (conf_write(filename))
-    text_insert_msg("Error",
-                   "Unable to save configuration!");
-  FREE(filename);
-  config_changed = FALSE;
-}
-
-
-void on_quit1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  if (!on_window1_delete_event(NULL, NULL, NULL))
-    gtk_widget_destroy(GTK_WIDGET(main_wnd));
-}
-
-
-void on_show_name1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  GtkTreeViewColumn *col;
-
-  show_name = GTK_CHECK_MENU_ITEM(menuitem)->active;
-  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NAME);
-  if (col)
-    gtk_tree_view_column_set_visible(col, show_name);
-}
-
-
-void on_show_range1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  GtkTreeViewColumn *col;
-
-  show_range = GTK_CHECK_MENU_ITEM(menuitem)->active;
-  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NO);
-  if (col)
-    gtk_tree_view_column_set_visible(col, show_range);
-  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_MOD);
-  if (col)
-    gtk_tree_view_column_set_visible(col, show_range);
-  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_YES);
-  if (col)
-    gtk_tree_view_column_set_visible(col, show_range);
-
-}
-
-
-void on_show_data1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  GtkTreeViewColumn *col;
-
-  show_value = GTK_CHECK_MENU_ITEM(menuitem)->active;
-  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_VALUE);
-  if (col)
-    gtk_tree_view_column_set_visible(col, show_value);
-}
-
-
-void
-on_show_all_options1_activate(GtkMenuItem * menuitem, gpointer user_data)
-{
-  show_all = GTK_CHECK_MENU_ITEM(menuitem)->active;
-
-  gtk_tree_store_clear(tree2);
-  display_tree(&rootmenu);  /* instead of update_tree to speed-up */
-}
-
-
-void on_introduction1_activate(GtkMenuItem * menuitem, 
-                              gpointer user_data) {
-  showDialog("introductionDialog");
-}
-
-
-void on_about1_activate(GtkMenuItem * menuitem, 
-                       gpointer user_data) {
-  showDialog("aboutdialog");
-}
-
-
-void on_back_pressed(GtkButton * button, gpointer user_data)
-{
-  enum prop_type ptype;
-
-  current = current->parent;
-  ptype = current->prompt ? current->prompt->type : P_UNKNOWN;
-  if (ptype != P_MENU)
-    current = current->parent;
-  display_tree_part();
-
-  if (current == &rootmenu)
-    gtk_widget_set_sensitive(back_btn, FALSE);
-}
-
-
-void on_load_pressed(GtkButton * button, gpointer user_data)
-{
-  on_load1_activate(NULL, user_data);
-}
-
-
-void on_save_pressed(GtkButton * button, gpointer user_data)
-{
-  on_save1_activate(NULL, user_data);
-}
-
-
-void on_single_clicked(GtkButton * button, gpointer user_data)
-{
-  view_mode = SINGLE_VIEW;
-  gtk_paned_set_position(GTK_PANED(hpaned), 0);
-  gtk_widget_hide(tree1_w);
-  current = &rootmenu;
-  display_tree_part();
-}
-
-
-void on_split_clicked(GtkButton * button, gpointer user_data)
-{
-  gint w, h;
-  view_mode = SPLIT_VIEW;
-  gtk_widget_show(tree1_w);
-  gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
-  gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
-  gtk_paned_set_position(GTK_PANED(vpaned), h / 2);
-  if (tree2)
-    gtk_tree_store_clear(tree2);
-  display_list();
-}
-
-
-void on_full_clicked(GtkButton * button, gpointer user_data)
-{
-  view_mode = FULL_VIEW;
-  gtk_paned_set_position(GTK_PANED(hpaned), 0);
-  gtk_widget_hide(tree1_w);
-  if (tree2)
-    gtk_tree_store_clear(tree2);
-  display_tree(&rootmenu);
-  gtk_widget_set_sensitive(back_btn, FALSE);
-}
-
-
-void on_collapse_pressed(GtkButton * button, gpointer user_data)
-{
-  gtk_tree_view_collapse_all(GTK_TREE_VIEW(tree2_w));
-}
-
-
-void on_expand_pressed(GtkButton * button, gpointer user_data)
-{
-  gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
-}
-
-
-/* CTree Callbacks */
-
-/* Change hex/int/string value in the cell */
-static void renderer_edited(GtkCellRendererText * cell,
-          const gchar * path_string,
-          const gchar * new_text, gpointer user_data)
-{
-  GtkTreePath *path = gtk_tree_path_new_from_string(path_string);
-  GtkTreeIter iter;
-  const char *old_def, *new_def;
-  struct menu *menu;
-  struct symbol *sym;
-
-  if (!gtk_tree_model_get_iter(model2, &iter, path))
-    return;
-
-  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-  sym = menu->sym;
-
-  gtk_tree_model_get(model2, &iter, COL_VALUE, &old_def, -1);
-  new_def = new_text;
-
-  sym_set_string_value(sym, new_def);
-  gtk_tree_model_row_changed(model2, path, &iter);
-
-  config_changed = TRUE;
-  display_tree(menu);
-
-  if (view_mode == FULL_VIEW)
-    update_tree(&rootmenu, NULL);
-  else if (view_mode == SPLIT_VIEW) {
-    update_tree(browsed, NULL);
-    display_list();
-  }
-  else if (view_mode == SINGLE_VIEW)
-    display_tree_part();  /* fixme: keep exp/coll*/
-
-  gtk_tree_path_free(path);
-}
-
-/* Change the value of a symbol and update the tree */
-static void change_sym_value(struct menu *menu, gint col)
-{
-  struct symbol *sym = menu->sym;
-  tristate oldval, newval;
-
-  if (!sym)
-    return;
-
-  if (col == COL_NO)
-    newval = no;
-  else if (col == COL_MOD)
-    newval = mod;
-  else if (col == COL_YES)
-    newval = yes;
-  else
-    return;
-
-  switch (sym_get_type(sym)) {
-  case S_BOOLEAN:
-  case S_TRISTATE:
-    oldval = sym_get_tristate_value(sym);
-    if (!sym_tristate_within_range(sym, newval))
-      newval = yes;
-    sym_set_tristate_value(sym, newval);
-    config_changed = TRUE;
-    if (view_mode == FULL_VIEW)
-      update_tree(&rootmenu, NULL);
-    else if (view_mode == SPLIT_VIEW) {
-      update_tree(browsed, NULL);
-      display_list();
-    }
-    else if (view_mode == SINGLE_VIEW)
-      display_tree_part();  /* fixme: keep exp/coll*/
-    break;
-  case S_INT:
-  case S_HEX:
-  case S_STRING:
-  default:
-    break;
-  }
-}
-
-static void toggle_sym_value(struct menu *menu)
-{
-  const tristate next_val[3] = { no, mod, yes };
-  tristate newval;
-
-  if (!menu->sym)
-    return;
-
-  newval = next_val[(sym_get_tristate_value(menu->sym) + 1) % 3];
-  if (!sym_tristate_within_range(menu->sym, newval))
-    newval = yes;
-  sym_set_tristate_value(menu->sym, newval);
-  if (view_mode == FULL_VIEW)
-    update_tree(&rootmenu, NULL);
-  else if (view_mode == SPLIT_VIEW) {
-    update_tree(browsed, NULL);
-    display_list();
-  }
-  else if (view_mode == SINGLE_VIEW)
-    display_tree_part();  /* fixme: keep exp/coll*/
-}
-
-#if 0
-static void renderer_toggled(GtkCellRendererToggle * cell,
-           gchar * path_string, gpointer user_data)
-{
-  GtkTreePath *path, *sel_path = NULL;
-  GtkTreeIter iter, sel_iter;
-  GtkTreeSelection *sel;
-  struct menu *menu;
-
-  path = gtk_tree_path_new_from_string(path_string);
-  if (!gtk_tree_model_get_iter(model2, &iter, path))
-    return;
-
-  sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree2_w));
-  if (gtk_tree_selection_get_selected(sel, NULL, &sel_iter))
-    sel_path = gtk_tree_model_get_path(model2, &sel_iter);
-  if (!sel_path)
-    goto out1;
-  if (gtk_tree_path_compare(path, sel_path))
-    goto out2;
-
-  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-  toggle_sym_value(menu);
-
-      out2:
-  gtk_tree_path_free(sel_path);
-      out1:
-  gtk_tree_path_free(path);
-}
-#endif
-
-static gint column2index(GtkTreeViewColumn * column)
-{
-  gint i;
-
-  for (i = 0; i < COL_NUMBER; i++) {
-    GtkTreeViewColumn *col;
-
-    col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), i);
-    if (col == column)
-      return i;
-  }
-
-  return -1;
-}
-
-
-/* User click: update choice (full) or goes down (single) */
-gboolean
-on_treeview2_button_press_event(GtkWidget * widget,
-        GdkEventButton * event, gpointer user_data)
-{
-  GtkTreeView *view = GTK_TREE_VIEW(widget);
-  GtkTreePath *path;
-  GtkTreeViewColumn *column;
-  GtkTreeIter iter;
-  struct menu *menu;
-  gint col;
-
-#if GTK_CHECK_VERSION(2,1,4) /* bug in ctree with earlier version of GTK */
-  gint tx = (gint) event->x;
-  gint ty = (gint) event->y;
-  gint cx, cy;
-
-  gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
-              &cy);
-#else
-  gtk_tree_view_get_cursor(view, &path, &column);
-#endif
-  if (path == NULL)
-    return FALSE;
-
-  if (!gtk_tree_model_get_iter(model2, &iter, path))
-       return FALSE;
-
-  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-
-  col = column2index(column);
-  if (event->type == GDK_2BUTTON_PRESS) {
-    enum prop_type ptype;
-    ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
-
-    if (ptype == P_MENU && view_mode != FULL_VIEW && col == COL_OPTION) {
-      /* goes down into menu */
-      current = menu;
-      display_tree_part();
-      gtk_widget_set_sensitive(back_btn, TRUE);
-    } else if ((col == COL_OPTION)) {
-      toggle_sym_value(menu);
-      gtk_tree_view_expand_row(view, path, TRUE);
-    }
-  } else {
-    if (col == COL_VALUE) {
-      toggle_sym_value(menu);
-      gtk_tree_view_expand_row(view, path, TRUE);
-    } else if (col == COL_NO || col == COL_MOD
-         || col == COL_YES) {
-      change_sym_value(menu, col);
-      gtk_tree_view_expand_row(view, path, TRUE);
-    }
-  }
-
-  return FALSE;
-}
-
-/* Key pressed: update choice */
-gboolean
-on_treeview2_key_press_event(GtkWidget * widget,
-           GdkEventKey * event, gpointer user_data)
-{
-  GtkTreeView *view = GTK_TREE_VIEW(widget);
-  GtkTreePath *path;
-  GtkTreeViewColumn *column;
-  GtkTreeIter iter;
-  struct menu *menu;
-  gint col;
-
-  gtk_tree_view_get_cursor(view, &path, &column);
-  if (path == NULL)
-    return FALSE;
-
-  if (event->keyval == GDK_space) {
-    if (gtk_tree_view_row_expanded(view, path))
-      gtk_tree_view_collapse_row(view, path);
-    else
-      gtk_tree_view_expand_row(view, path, FALSE);
-    return TRUE;
-  }
-  if (event->keyval == GDK_KP_Enter) {
-  }
-  if (widget == tree1_w)
-    return FALSE;
-
-  gtk_tree_model_get_iter(model2, &iter, path);
-  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-
-  if (!strcasecmp(event->string, "n"))
-    col = COL_NO;
-  else if (!strcasecmp(event->string, "m"))
-    col = COL_MOD;
-  else if (!strcasecmp(event->string, "y"))
-    col = COL_YES;
-  else
-    col = -1;
-  change_sym_value(menu, col);
-
-  return FALSE;
-}
-
-
-/* Row selection changed: update help */
-void
-on_treeview2_cursor_changed(GtkTreeView * treeview, gpointer user_data)
-{
-  GtkTreeSelection *selection;
-  GtkTreeIter iter;
-  struct menu *menu;
-
-  selection = gtk_tree_view_get_selection(treeview);
-  if (gtk_tree_selection_get_selected(selection, &model2, &iter)) {
-    gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-    text_insert_help(menu);
-  }
-}
-
-
-/* User click: display sub-tree in the right frame. */
-gboolean
-on_treeview1_button_press_event(GtkWidget * widget,
-        GdkEventButton * event, gpointer user_data)
-{
-  GtkTreeView *view = GTK_TREE_VIEW(widget);
-  GtkTreePath *path;
-  GtkTreeViewColumn *column;
-  GtkTreeIter iter;
-  struct menu *menu;
-
-  gint tx = (gint) event->x;
-  gint ty = (gint) event->y;
-  gint cx, cy;
-
-  gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
-              &cy);
-  if (path == NULL)
-    return FALSE;
-
-  gtk_tree_model_get_iter(model1, &iter, path);
-  gtk_tree_model_get(model1, &iter, COL_MENU, &menu, -1);
-
-  if (event->type == GDK_2BUTTON_PRESS) {
-    toggle_sym_value(menu);
-    current = menu;
-    display_tree_part();
-  } else {
-    browsed = menu;
-    display_tree_part();
-  }
-
-  gtk_widget_realize(tree2_w);
-  gtk_tree_view_set_cursor(view, path, NULL, FALSE);
-  gtk_widget_grab_focus(GTK_WIDGET(tree2_w));
-
-  return FALSE;
-}
-
-
-/* Conf management */
-
-
-/* Fill a row of strings */
-static gchar **fill_row(struct menu *menu)
-{
-  static gchar *row[COL_NUMBER];
-  struct symbol *sym = menu->sym;
-  const char *def;
-  int stype;
-  tristate val;
-  enum prop_type ptype;
-  int i;
-  gchar *prompt;
-
-  for (i = COL_OPTION; i <= COL_COLOR; i++)
-    g_free(row[i]);
-  memset(row, 0, sizeof(row));
-
-  prompt = (gchar *) menu_get_prompt(menu);
-  row[COL_OPTION] =
-      g_strdup_printf("%s %s", prompt ? prompt : "(unknown)",
-          sym ? (sym->
-           flags & SYMBOL_NEW ? "(NEW)" : "") :
-          "");
-
-  if (show_all && !menu_is_visible(menu))
-    row[COL_COLOR] = g_strdup("DarkGray");
-  else
-    row[COL_COLOR] = g_strdup("Black");
-
-  ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
-  switch (ptype) {
-  case P_MENU:
-    row[COL_PIXBUF] = (gchar *) xpm_menu;
-    if (view_mode == SINGLE_VIEW)
-      row[COL_PIXVIS] = GINT_TO_POINTER(TRUE);
-    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-    break;
-  case P_COMMENT:
-    row[COL_PIXBUF] = (gchar *) xpm_void;
-    row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
-    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-    break;
-  default:
-    row[COL_PIXBUF] = (gchar *) xpm_void;
-    row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
-    row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
-    break;
-  }
-
-  if (!sym)
-    return row;
-  row[COL_NAME] = g_strdup(sym->name);
-
-  sym_calc_value(sym);
-  sym->flags &= ~SYMBOL_CHANGED;
-
-  if (sym_is_choice(sym)) { /* parse childs for getting final value */
-    struct menu *child;
-    struct symbol *def_sym = sym_get_choice_value(sym);
-    struct menu *def_menu = NULL;
-
-    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-
-    for (child = menu->list; child; child = child->next) {
-      if (menu_is_visible(child)
-          && child->sym == def_sym)
-        def_menu = child;
-    }
-
-    if (def_menu)
-      row[COL_VALUE] =
-          g_strdup(menu_get_prompt(def_menu));
-  }
-  if(sym->flags & SYMBOL_CHOICEVAL)
-    row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
-
-  stype = sym_get_type(sym);
-  switch (stype) {
-  case S_BOOLEAN:
-    if(GPOINTER_TO_INT(row[COL_PIXVIS]) == FALSE)
-      row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
-    if (sym_is_choice(sym))
-      break;
-  case S_TRISTATE:
-    val = sym_get_tristate_value(sym);
-    switch (val) {
-    case no:
-      row[COL_NO] = g_strdup("N");
-      row[COL_VALUE] = g_strdup("N");
-      row[COL_BTNACT] = GINT_TO_POINTER(FALSE);
-      row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
-      break;
-    case mod:
-      row[COL_MOD] = g_strdup("M");
-      row[COL_VALUE] = g_strdup("M");
-      row[COL_BTNINC] = GINT_TO_POINTER(TRUE);
-      break;
-    case yes:
-      row[COL_YES] = g_strdup("Y");
-      row[COL_VALUE] = g_strdup("Y");
-      row[COL_BTNACT] = GINT_TO_POINTER(TRUE);
-      row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
-      break;
-    }
-
-    if (val != no && sym_tristate_within_range(sym, no))
-      row[COL_NO] = g_strdup("_");
-    if (val != mod && sym_tristate_within_range(sym, mod))
-      row[COL_MOD] = g_strdup("_");
-    if (val != yes && sym_tristate_within_range(sym, yes))
-      row[COL_YES] = g_strdup("_");
-    break;
-  case S_INT:
-  case S_HEX:
-  case S_STRING:
-    def = sym_get_string_value(sym);
-    row[COL_VALUE] = g_strdup(def);
-    row[COL_EDIT] = GINT_TO_POINTER(TRUE);
-    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-    break;
-  }
-
-  return row;
-}
-
-
-/* Set the node content with a row of strings */
-static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row)
-{
-  GdkColor color;
-  gboolean success;
-  GdkPixbuf *pix;
-
-  pix = gdk_pixbuf_new_from_xpm_data((const char **)
-             row[COL_PIXBUF]);
-
-  gdk_color_parse(row[COL_COLOR], &color);
-  gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1,
-          FALSE, FALSE, &success);
-
-  gtk_tree_store_set(tree, node,
-         COL_OPTION, row[COL_OPTION],
-         COL_NAME, row[COL_NAME],
-         COL_NO, row[COL_NO],
-         COL_MOD, row[COL_MOD],
-         COL_YES, row[COL_YES],
-         COL_VALUE, row[COL_VALUE],
-         COL_MENU, (gpointer) menu,
-         COL_COLOR, &color,
-         COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]),
-         COL_PIXBUF, pix,
-         COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]),
-         COL_BTNVIS, GPOINTER_TO_INT(row[COL_BTNVIS]),
-         COL_BTNACT, GPOINTER_TO_INT(row[COL_BTNACT]),
-         COL_BTNINC, GPOINTER_TO_INT(row[COL_BTNINC]),
-         COL_BTNRAD, GPOINTER_TO_INT(row[COL_BTNRAD]),
-         -1);
-
-  g_object_unref(pix);
-}
-
-
-/* Add a node to the tree */
-static void place_node(struct menu *menu, char **row)
-{
-  GtkTreeIter *parent = parents[indent - 1];
-  GtkTreeIter *node = parents[indent];
-
-  gtk_tree_store_append(tree, node, parent);
-  set_node(node, menu, row);
-}
-
-
-/* Find a node in the GTK+ tree */
-static GtkTreeIter found;
-
-/*
- * Find a menu in the GtkTree starting at parent.
- */
-GtkTreeIter *gtktree_iter_find_node(GtkTreeIter * parent,
-            struct menu *tofind)
-{
-  GtkTreeIter iter;
-  GtkTreeIter *child = &iter;
-  gboolean valid;
-  GtkTreeIter *ret;
-
-  valid = gtk_tree_model_iter_children(model2, child, parent);
-  while (valid) {
-    struct menu *menu;
-
-    gtk_tree_model_get(model2, child, 6, &menu, -1);
-
-    if (menu == tofind) {
-      memcpy(&found, child, sizeof(GtkTreeIter));
-      return &found;
-    }
-
-    ret = gtktree_iter_find_node(child, tofind);
-    if (ret)
-      return ret;
-
-    valid = gtk_tree_model_iter_next(model2, child);
-  }
-
-  return NULL;
-}
-
-
-/*
- * Update the tree by adding/removing entries
- * Does not change other nodes
- */
-static void update_tree(struct menu *src, GtkTreeIter * dst)
-{
-  struct menu *child1;
-  GtkTreeIter iter, tmp;
-  GtkTreeIter *child2 = &iter;
-  gboolean valid;
-  GtkTreeIter *sibling;
-  struct symbol *sym;
-  struct property *prop;
-  struct menu *menu1, *menu2;
-
-  if (src == &rootmenu)
-    indent = 1;
-
-  valid = gtk_tree_model_iter_children(model2, child2, dst);
-  for (child1 = src->list; child1; child1 = child1->next) {
-
-    prop = child1->prompt;
-    sym = child1->sym;
-
-        reparse:
-    menu1 = child1;
-    if (valid)
-      gtk_tree_model_get(model2, child2, COL_MENU,
-             &menu2, -1);
-    else
-      menu2 = NULL; /* force adding of a first child */
-
-#ifdef DEBUG
-    printf("%*c%s | %s\n", indent, ' ',
-           menu1 ? menu_get_prompt(menu1) : "nil",
-           menu2 ? menu_get_prompt(menu2) : "nil");
-#endif
-
-    if (!menu_is_visible(child1) && !show_all) {  /*/ remove node */
-      if (gtktree_iter_find_node(dst, menu1) != NULL) {
-        memcpy(&tmp, child2, sizeof(GtkTreeIter));
-        valid = gtk_tree_model_iter_next(model2,
-                 child2);
-        gtk_tree_store_remove(tree2, &tmp);
-        if (!valid)
-          return; /* next parent  */
-        else
-          goto reparse; /* next child */
-      } else
-        continue;
-    }
-
-    if (menu1 != menu2) {
-      if (gtktree_iter_find_node(dst, menu1) == NULL) { /* add node */
-        if (!valid && !menu2)
-          sibling = NULL;
-        else
-          sibling = child2;
-        gtk_tree_store_insert_before(tree2,
-                   child2,
-                   dst, sibling);
-        set_node(child2, menu1, fill_row(menu1));
-        if (menu2 == NULL)
-          valid = TRUE;
-      } else {  /* remove node */
-        memcpy(&tmp, child2, sizeof(GtkTreeIter));
-        valid = gtk_tree_model_iter_next(model2,
-                 child2);
-        gtk_tree_store_remove(tree2, &tmp);
-        if (!valid)
-          return; /* next parent  */
-        else
-          goto reparse; /* next child */
-      }
-    } else if (sym && (sym->flags & SYMBOL_CHANGED)) {
-      set_node(child2, menu1, fill_row(menu1));
-    }
-
-    indent++;
-    update_tree(child1, child2);
-    indent--;
-
-    valid = gtk_tree_model_iter_next(model2, child2);
-  }
-}
-
-
-/* Display the whole tree (single/split/full view) */
-static void display_tree(struct menu *menu)
-{
-  struct symbol *sym;
-  struct property *prop;
-  struct menu *child;
-  enum prop_type ptype;
-
-  if (menu == &rootmenu) {
-    indent = 1;
-    current = &rootmenu;
-  }
-
-  for (child = menu->list; child; child = child->next) {
-    prop = child->prompt;
-    sym = child->sym;
-    ptype = prop ? prop->type : P_UNKNOWN;
-
-    if (sym)
-      sym->flags &= ~SYMBOL_CHANGED;
-
-    if ((view_mode == SPLIT_VIEW) && !(child->flags & MENU_ROOT) &&
-        (tree == tree1))
-      continue;
-
-    if ((view_mode == SPLIT_VIEW) && (child->flags & MENU_ROOT) &&
-        (tree == tree2))
-      continue;
-
-    if (menu_is_visible(child) || show_all)
-      place_node(child, fill_row(child));
-#ifdef DEBUG
-    printf("%*c%s: ", indent, ' ', menu_get_prompt(child));
-    printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : "");
-    dbg_print_ptype(ptype);
-    printf(" | ");
-    if (sym) {
-      dbg_print_stype(sym->type);
-      printf(" | ");
-      dbg_print_flags(sym->flags);
-      printf("\n");
-    } else
-      printf("\n");
-#endif
-    if ((view_mode != FULL_VIEW) && (ptype == P_MENU)
-        && (tree == tree2))
-      continue;
-/*
-    if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT)) ||
-        (view_mode == FULL_VIEW)
-        || (view_mode == SPLIT_VIEW))*/
-    if ( (  (view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
-         || (view_mode == FULL_VIEW)
-         || (view_mode == SPLIT_VIEW) ) {
-      indent++;
-      display_tree(child);
-      indent--;
-    }
-  }
-}
-
-/* Display a part of the tree starting at current node (single/split view) */
-static void display_tree_part(void)
-{
-  if (tree2)
-    gtk_tree_store_clear(tree2);
-  if(view_mode == SINGLE_VIEW)
-    display_tree(current);
-  else if(view_mode == SPLIT_VIEW)
-    display_tree(browsed);
-  gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
-  gtk_tree_view_columns_autosize(GTK_TREE_VIEW(tree2_w));
-}
-
-/* Display the list in the left frame (split view) */
-static void display_list(void)
-{
-  if (tree1)
-    gtk_tree_store_clear(tree1);
-
-  tree = tree1;
-  display_tree(&rootmenu);
-  gtk_tree_view_expand_all(GTK_TREE_VIEW(tree1_w));
-  tree = tree2;
-}
-
-void fixup_rootmenu(struct menu *menu)
-{
-        struct menu *child;
-        static int menu_cnt = 0;
-
-        menu->flags |= MENU_ROOT;
-        for (child = menu->list; child; child = child->next) {
-                if (child->prompt && child->prompt->type == P_MENU) {
-                        menu_cnt++;
-                        fixup_rootmenu(child);
-                        menu_cnt--;
-                } else if (!menu_cnt)
-                        fixup_rootmenu(child);
-        }
-}
-
-
-void gconf_main_post_init(void * lib) {
-  char * filename;
-
-  setLibrary(lib);
-
-  /* Load the interface and connect signals */
-  init_main_window();
-  init_tree_model();
-  init_left_tree();
-  init_right_tree();
-
-  fixup_rootmenu(&rootmenu);
-  filename = getConfigurationString("GNUNET-SETUP",
-                                   "FILENAME");
-  conf_read(filename);
-  FREE(filename);
-
-  switch (view_mode) {
-  case SINGLE_VIEW:
-    display_tree_part();
-    break;
-  case SPLIT_VIEW:
-    display_list();
-    break;
-  case FULL_VIEW:
-    display_tree(&rootmenu);
-    break;
-  }
-  gdk_threads_enter();
-  gtk_main();
-  gdk_threads_leave();
-  destroyMainXML();
-  setLibrary(NULL);
-}
-
-
-/* Main */
-int gconf_main(int argc, 
-              char **argv, 
-              void * lib) {
-  g_thread_init(NULL);
-  gtk_init(&argc, &argv);
-#if ENABLE_NLS
-  bind_textdomain_codeset(PACKAGE, "UTF-8"); /* for gtk */
-#endif
-#ifdef WINDOWS
-  FreeConsole();
-#endif
-
-  /* add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); */
-  /* add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps"); */
-  gconf_main_post_init(lib);
-  return 0;
-}

Deleted: GNUnet/src/setup/gconf.gladep
===================================================================
--- GNUnet/src/setup/gconf.gladep       2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/gconf.gladep       2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd";>
-
-<glade-project>
-  <name>gconf</name>
-  <program_name>gconf</program_name>
-  <gnome_support>FALSE</gnome_support>
-  <main_source_file>gconf_interface.c</main_source_file>
-  <main_header_file>gconf_interface.h</main_header_file>
-  <handler_source_file>gconf_callbacks.c</handler_source_file>
-  <handler_header_file>gconf_callbacks.h</handler_header_file>
-  <support_source_file>gconf_support.c</support_source_file>
-  <support_header_file>gconf_support.h</support_header_file>
-</glade-project>

Deleted: GNUnet/src/setup/gconf.h
===================================================================
--- GNUnet/src/setup/gconf.h    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/gconf.h    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,37 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/gconf.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef GNUNET_SETUP_GCONF_H
-#define GNUNET_SETUP_GCONF_H
-
-int gconf_main(int argc, 
-              char **argv, 
-              void * lib);
-
-void gconf_main_post_init(void * lib);
- 
-#endif

Deleted: GNUnet/src/setup/gconf_callbacks.h
===================================================================
--- GNUnet/src/setup/gconf_callbacks.h  2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/gconf_callbacks.h  2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,68 +0,0 @@
-#include <gtk/gtk.h>
-
-
-void on_window1_destroy (GtkObject * object, gpointer user_data);
-
-void
-on_window1_size_request (GtkWidget * widget,
-                        GtkRequisition * requisition, gpointer user_data);
-
-gboolean
-on_window1_delete_event (GtkWidget * widget,
-                        GdkEvent * event, gpointer user_data);
-
-void on_load1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_save1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_save_as1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_quit1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_show_name1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_show_range1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_show_data1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void
-on_show_all_options1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void
-on_show_debug_info1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_introduction1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_about1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_license1_activate (GtkMenuItem * menuitem, gpointer user_data);
-
-void on_back_pressed (GtkButton * button, gpointer user_data);
-
-void on_load_pressed (GtkButton * button, gpointer user_data);
-
-void on_save_pressed (GtkButton * button, gpointer user_data);
-
-void on_single_clicked (GtkButton * button, gpointer user_data);
-
-void on_split_clicked (GtkButton * button, gpointer user_data);
-
-void on_full_clicked (GtkButton * button, gpointer user_data);
-
-void on_collapse_pressed (GtkButton * button, gpointer user_data);
-
-void on_expand_pressed (GtkButton * button, gpointer user_data);
-
-void on_treeview2_cursor_changed (GtkTreeView * treeview, gpointer user_data);
-
-gboolean
-on_treeview1_button_press_event (GtkWidget * widget,
-                                GdkEventButton * event, gpointer user_data);
-
-gboolean
-on_treeview2_key_press_event (GtkWidget * widget,
-                             GdkEventKey * event, gpointer user_data);
-
-gboolean
-on_treeview2_button_press_event (GtkWidget * widget,
-                                GdkEventButton * event, gpointer user_data);

Deleted: GNUnet/src/setup/glade_support.c
===================================================================
--- GNUnet/src/setup/glade_support.c    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/glade_support.c    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,137 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2006 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-#include "platform.h"
-#include "gnunet_util.h"
-#include "glade_support.h"
-
-/**
- * Handle to the dynamic library (which contains this code)
- */
-static void * library;
-
-/**
- * Current glade handle.
- */
-static GladeXML * mainXML_;
-
-GladeXML * getMainXML() {
-  return mainXML_;
-}
-
-void destroyMainXML() {
-  GE_ASSERT(ectx, mainXML_ != NULL);
-  g_object_unref(mainXML_);
-  mainXML_ = NULL;
-}
-
-char * get_glade_filename() {
-  char * gladeFile;
-
-#ifdef MINGW
-  gladeFile = MALLOC(_MAX_PATH + 1);
-  plibc_conv_to_win_path(GNDATADIR"/wizard.glade",
-                        gladeFile);
-#else
-  gladeFile = STRDUP(GNDATADIR"/wizard.glade");
-#endif
-  return gladeFile;
-}
-
-
-static void connector(const gchar *handler_name,
-                     GObject *object,
-                     const gchar *signal_name,
-                     const gchar *signal_data,
-                     GObject *connect_object,
-                     gboolean after,
-                     gpointer user_data) {
-  GladeXML * xml = user_data;
-  void * method;
-
-  GE_ASSERT(ectx, xml != NULL);
-  method = trybindDynamicMethod(library,
-                               "",
-                               handler_name);
-  if (method == NULL) {
-    GE_LOG(ectx, GE_DEBUG | GE_REQUEST | GE_USER,
-       _("Failed to find handler for `%s'\n"),
-       handler_name);
-    return;
-  }
-  glade_xml_signal_connect(xml,
-                          handler_name,
-                          (GCallback) method);
-}
-
-GladeXML * load_xml(const char * dialog_name) {
-  char * gladeFile;
-  GladeXML * ret;
-
-  gladeFile = get_glade_filename();
-  ret = glade_xml_new(gladeFile,
-                     dialog_name,
-                     PACKAGE_NAME);
-  if (ret == NULL)
-    errexit(_("Failed to open `%s'.\n"),
-           gladeFile);  
-  FREE(gladeFile);
-  glade_xml_signal_autoconnect_full(ret, &connector, ret);
-  return ret;
-}
-
-GtkWidget * lookup_widget(const char * name) {
-  return glade_xml_get_widget(mainXML_, name);
-}
-
-GtkWidget * get_xml(const char * dialog_name) {
-  mainXML_ = load_xml(dialog_name);
-  return glade_xml_get_widget(mainXML_,
-                             dialog_name);
-}
-
-/**
- * Helper function to just show a simple dialog
- * that requires no initialization.
- */
-void showDialog(const char * name) {
-  GtkWidget * msgSave;
-  char * gladeFile;
-  GladeXML * myXML;
-  
-  gladeFile = get_glade_filename();
-  myXML = glade_xml_new(gladeFile,
-                       name,
-                       PACKAGE_NAME);
-  if (mainXML_ == NULL)
-    errexit(_("Failed to open `%s'.\n"),
-           gladeFile);  
-  FREE(gladeFile);
-  glade_xml_signal_autoconnect_full(myXML, &connector, myXML);
-  msgSave = glade_xml_get_widget(myXML,
-                                name);
-  gtk_widget_show(msgSave);
-  g_object_unref(myXML);
-}
-
-void setLibrary(void * lib) {
-  library = lib;
-}
-

Deleted: GNUnet/src/setup/glade_support.h
===================================================================
--- GNUnet/src/setup/glade_support.h    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/glade_support.h    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,48 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2006 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-#ifndef GLADE_SUPPORT_H
-#define GLADE_SUPPORT_H
-
-
-#include <gtk/gtk.h>
-#include <gtk/gtktext.h>
-#include <glade/glade.h>
-
-#define mainXML getMainXML()
-
-GladeXML * getMainXML(void);
-
-void destroyMainXML(void);
-
-void setLibrary(void * lib);
-
-GtkWidget * get_xml(const char * dialog_name);
- 
-GladeXML * load_xml(const char * dialog_name);
- 
-/**
- * Helper function to just show a simple dialog
- * that requires no initialization.
- */
-void showDialog(const char * name);
-
-GtkWidget * lookup_widget(const char * name);
-
-#endif

Copied: GNUnet/src/setup/gtk/gconf.c (from rev 3254, GNUnet/src/setup/gconf.c)

Copied: GNUnet/src/setup/gtk/gconf.h (from rev 3254, GNUnet/src/setup/gconf.h)

Copied: GNUnet/src/setup/gtk/glade_support.c (from rev 3254, 
GNUnet/src/setup/glade_support.c)

Copied: GNUnet/src/setup/gtk/glade_support.h (from rev 3254, 
GNUnet/src/setup/glade_support.h)

Copied: GNUnet/src/setup/gtk/images.c (from rev 3254, GNUnet/src/setup/images.c)

Copied: GNUnet/src/setup/gtk/wizard.glade (from rev 3254, 
GNUnet/src/setup/wizard.glade)

Copied: GNUnet/src/setup/gtk/wizard_gtk.c (from rev 3254, 
GNUnet/src/setup/wizard_gtk.c)

Copied: GNUnet/src/setup/gtk/wizard_gtk.h (from rev 3254, 
GNUnet/src/setup/wizard_gtk.h)

Deleted: GNUnet/src/setup/images.c
===================================================================
--- GNUnet/src/setup/images.c   2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/images.c   2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,482 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/images.c
- * @author Roman Zippel
- * @author Nils Durner
- */
-
-#ifdef USE_XPM_LOAD
-static const char *xpm_load[] = {
-"22 22 5 1",
-". c None",
-"# c #000000",
-"c c #838100",
-"a c #ffff00",
-"b c #ffffff",
-"......................",
-"......................",
-"......................",
-"............####....#.",
-"...........#....##.##.",
-"..................###.",
-".................####.",
-".####...........#####.",
-"#abab##########.......",
-"#babababababab#.......",
-"#ababababababa#.......",
-"#babababababab#.......",
-"#ababab###############",
-"#babab##cccccccccccc##",
-"#abab##cccccccccccc##.",
-"#bab##cccccccccccc##..",
-"#ab##cccccccccccc##...",
-"#b##cccccccccccc##....",
-"###cccccccccccc##.....",
-"##cccccccccccc##......",
-"###############.......",
-"......................"};
-#endif
-
-#ifdef USE_XPM_SAVE
-static const char *xpm_save[] = {
-"22 22 5 1",
-". c None",
-"# c #000000",
-"a c #838100",
-"b c #c5c2c5",
-"c c #cdb6d5",
-"......................",
-".####################.",
-".#aa#bbbbbbbbbbbb#bb#.",
-".#aa#bbbbbbbbbbbb#bb#.",
-".#aa#bbbbbbbbbcbb####.",
-".#aa#bbbccbbbbbbb#aa#.",
-".#aa#bbbccbbbbbbb#aa#.",
-".#aa#bbbbbbbbbbbb#aa#.",
-".#aa#bbbbbbbbbbbb#aa#.",
-".#aa#bbbbbbbbbbbb#aa#.",
-".#aa#bbbbbbbbbbbb#aa#.",
-".#aaa############aaa#.",
-".#aaaaaaaaaaaaaaaaaa#.",
-".#aaaaaaaaaaaaaaaaaa#.",
-".#aaa#############aa#.",
-".#aaa#########bbb#aa#.",
-".#aaa#########bbb#aa#.",
-".#aaa#########bbb#aa#.",
-".#aaa#########bbb#aa#.",
-".#aaa#########bbb#aa#.",
-"..##################..",
-"......................"};
-#endif
-
-#ifdef USE_XPM_BACK
-static const char *xpm_back[] = {
-"22 22 3 1",
-". c None",
-"# c #000083",
-"a c #838183",
-"......................",
-"......................",
-"......................",
-"......................",
-"......................",
-"...........######a....",
-"..#......##########...",
-"..##...####......##a..",
-"..###.###.........##..",
-"..######..........##..",
-"..#####...........##..",
-"..######..........##..",
-"..#######.........##..",
-"..########.......##a..",
-"...............a###...",
-"...............###....",
-"......................",
-"......................",
-"......................",
-"......................",
-"......................",
-"......................"};
-#endif
-
-#ifdef USE_XPM_TREE_VIEW
-static const char *xpm_tree_view[] = {
-"22 22 2 1",
-". c None",
-"# c #000000",
-"......................",
-"......................",
-"......#...............",
-"......#...............",
-"......#...............",
-"......#...............",
-"......#...............",
-"......########........",
-"......#...............",
-"......#...............",
-"......#...............",
-"......#...............",
-"......#...............",
-"......########........",
-"......#...............",
-"......#...............",
-"......#...............",
-"......#...............",
-"......#...............",
-"......########........",
-"......................",
-"......................"};
-#endif
-
-#ifdef USE_XPM_SINGLE_VIEW
-static const char *xpm_single_view[] = {
-"22 22 2 1",
-". c None",
-"# c #000000",
-"......................",
-"......................",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"..........#...........",
-"......................",
-"......................"};
-#endif
-
-#ifdef USE_XPM_SPLIT_VIEW
-static const char *xpm_split_view[] = {
-"22 22 2 1",
-". c None",
-"# c #000000",
-"......................",
-"......................",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......#......#........",
-"......................",
-"......................"};
-#endif
-
-#ifdef USE_XPM_SYMBOL_NO
-static const char *xpm_symbol_no[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-" .......... ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .......... ",
-"            "};
-#endif
-
-#ifdef USE_XPM_SYMBOL_MOD
-static const char *xpm_symbol_mod[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-" .......... ",
-" .        . ",
-" .        . ",
-" .   ..   . ",
-" .  ....  . ",
-" .  ....  . ",
-" .   ..   . ",
-" .        . ",
-" .        . ",
-" .......... ",
-"            "};
-#endif
-
-#ifdef USE_XPM_SYMBOL_YES
-static const char *xpm_symbol_yes[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-" .......... ",
-" .        . ",
-" .        . ",
-" .      . . ",
-" .     .. . ",
-" . .  ..  . ",
-" . ....   . ",
-" .  ..    . ",
-" .        . ",
-" .......... ",
-"            "};
-#endif
-
-#ifdef USE_XPM_CHOICE_NO
-static const char *xpm_choice_no[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-"    ....    ",
-"  ..    ..  ",
-"  .      .  ",
-" .        . ",
-" .        . ",
-" .        . ",
-" .        . ",
-"  .      .  ",
-"  ..    ..  ",
-"    ....    ",
-"            "};
-#endif
-
-#ifdef USE_XPM_CHOICE_YES
-static const char *xpm_choice_yes[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-"    ....    ",
-"  ..    ..  ",
-"  .      .  ",
-" .   ..   . ",
-" .  ....  . ",
-" .  ....  . ",
-" .   ..   . ",
-"  .      .  ",
-"  ..    ..  ",
-"    ....    ",
-"            "};
-#endif
-
-#ifdef USE_XPM_MENU
-static const char *xpm_menu[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-" .......... ",
-" .        . ",
-" . ..     . ",
-" . ....   . ",
-" . ...... . ",
-" . ...... . ",
-" . ....   . ",
-" . ..     . ",
-" .        . ",
-" .......... ",
-"            "};
-#endif
-
-#ifdef USE_XPM_MENU_INV
-static const char *xpm_menu_inv[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-" .......... ",
-" .......... ",
-" ..  ...... ",
-" ..    .... ",
-" ..      .. ",
-" ..      .. ",
-" ..    .... ",
-" ..  ...... ",
-" .......... ",
-" .......... ",
-"            "};
-#endif
-
-#ifdef USE_XPM_MENUBACK
-static const char *xpm_menuback[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-" .......... ",
-" .        . ",
-" .     .. . ",
-" .   .... . ",
-" . ...... . ",
-" . ...... . ",
-" .   .... . ",
-" .     .. . ",
-" .        . ",
-" .......... ",
-"            "};
-#endif
-
-#if USE_XPM_VOID
-static const char *xpm_void[] = {
-"12 12 2 1",
-"  c white",
-". c black",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            ",
-"            "};
-#endif
-
-#if USE_MINUS_XPM
-static const char * minus_xpm[] = {
-"9 9 36 1",
-"   c None",
-".  c #B0C2D3",
-"+  c #7898B5",
-"@  c #FFFFFF",
-"#  c #FCFCFB",
-"$  c #FDFDFB",
-"%  c #FCFCFA",
-"&  c #F7F6F3",
-"*  c #F7F7F5",
-"=  c #F7F7F4",
-"-  c #F6F6F4",
-";  c #F1F0EB",
-">  c #E5E1DA",
-",  c #F5F5F1",
-"'  c #000000",
-")  c #DFDBD2",
-"!  c #F2F2EE",
-"~  c #F0F0EC",
-"{  c #EDEDE7",
-"]  c #ECEBE6",
-"^  c #EAE9E3",
-"/  c #E3E0D9",
-"(  c #DBD6CC",
-"_  c #E4E1D9",
-":  c #DCD8CF",
-"<  c #D8D3C9",
-"[  c #D7D2C7",
-"}  c #D6D1C6",
-"|  c #D2CCC0",
-"1  c #CFC8BB",
-"2  c #D2CCBF",
-"3  c #C6BEAE",
-"4  c #C2B8A8",
-"5  c #C1B8A7",
-"6  c #C0B7A6",
-"7  c #C3BAAA",
-".+++++++.",
-"+@@@@@@@+",
-"+#$$$#%&+",
-"+**==-;>+",
-"+,''''')+",
-"+!~{]^/(+",
-"+_:<[}|1+",
-"+2345567+",
-".+++++++."};
-#endif
-
-#if USE_PLUS_XPM
-static const char * plus_xpm[] = {
-"9 9 34 1",
-"   c None",
-".  c #B0C2D3",
-"+  c #7898B5",
-"@  c #FFFFFF",
-"#  c #FCFCFB",
-"$  c #FDFDFB",
-"%  c #000000",
-"&  c #FCFCFA",
-"*  c #F7F6F3",
-"=  c #F7F7F5",
-"-  c #F7F7F4",
-";  c #F6F6F4",
-">  c #F1F0EB",
-",  c #E5E1DA",
-"'  c #F5F5F1",
-")  c #DFDBD2",
-"!  c #F2F2EE",
-"~  c #F0F0EC",
-"{  c #EDEDE7",
-"]  c #EAE9E3",
-"^  c #E3E0D9",
-"/  c #DBD6CC",
-"(  c #E4E1D9",
-"_  c #DCD8CF",
-":  c #D8D3C9",
-"<  c #D6D1C6",
-"[  c #D2CCC0",
-"}  c #CFC8BB",
-"|  c #D2CCBF",
-"1  c #C6BEAE",
-"2  c #C2B8A8",
-"3  c #C1B8A7",
-"4  c #C0B7A6",
-"5  c #C3BAAA",
-".+++++++.",
-"+@@@@@@@+",
-"+#$$%#&*+",
-"+==-%;>,+",
-"+'%%%%%)+",
-"+!~{%]^/+",
-"+(_:%<[}+",
-"+|123345+",
-".+++++++."};
-
-#endif

Deleted: GNUnet/src/setup/lex.zconf.c
===================================================================
--- GNUnet/src/setup/lex.zconf.c        2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/lex.zconf.c        2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,3704 +0,0 @@
-
-#line 3 "lex.zconf.c"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 31
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else  /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE zconfrestart(zconfin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int zconfleng;
-
-extern FILE *zconfin, *zconfout;
-
-extern struct GC_Configuration * cfg;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    #define YY_LESS_LINENO(n)
-
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up zconftext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-               *yy_cp = (yy_hold_char); \
-               YY_RESTORE_YY_MORE_OFFSET \
-               (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
-               } \
-       while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-       {
-       FILE *yy_input_file;
-
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-
-       /* Size of input buffer in bytes, not including room for EOB
-        * characters.
-        */
-       yy_size_t yy_buf_size;
-
-       /* Number of characters read into yy_ch_buf, not including EOB
-        * characters.
-        */
-       int yy_n_chars;
-
-       /* Whether we "own" the buffer - i.e., we know we created it,
-        * and can realloc() it to grow it, and should free() it to
-        * delete it.
-        */
-       int yy_is_our_buffer;
-
-       /* Whether this is an "interactive" input source; if so, and
-        * if we're using stdio for input, then we want to use getc()
-        * instead of fread(), to make sure we stop fetching input after
-        * each newline.
-        */
-       int yy_is_interactive;
-
-       /* Whether we're considered to be at the beginning of a line.
-        * If so, '^' rules will be active on the next match, otherwise
-        * not.
-        */
-       int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-
-       /* Whether to try to fill the input buffer when we reach the
-        * end of it.
-        */
-       int yy_fill_buffer;
-
-       int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-       /* When an EOF's been seen but there's still some text to process
-        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-        * shouldn't try reading from the input source any more.  We might
-        * still have a bunch of tokens to match, though, because of
-        * possible backing-up.
-        *
-        * When we actually see the EOF, we change the status to "new"
-        * (via zconfrestart()), so that the user can continue scanning by
-        * just pointing zconfin at a new input file.
-        */
-#define YY_BUFFER_EOF_PENDING 2
-
-       };
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when zconftext is formed. */
-static char yy_hold_char;
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-int zconfleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;                /* whether we need to initialize */
-static int yy_start = 0;       /* start state number */
-
-/* Flag which is used to allow zconfwrap()'s to do buffer switches
- * instead of setting up a fresh zconfin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void zconfrestart (FILE *input_file  );
-void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size  );
-void zconf_delete_buffer (YY_BUFFER_STATE b  );
-void zconf_flush_buffer (YY_BUFFER_STATE b  );
-void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void zconfpop_buffer_state (void );
-
-static void zconfensure_buffer_stack (void );
-static void zconf_load_buffer_state (void );
-static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len  );
-
-void *zconfalloc (yy_size_t  );
-void *zconfrealloc (void *,yy_size_t  );
-void zconffree (void *  );
-
-#define yy_new_buffer zconf_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-       { \
-       if ( ! YY_CURRENT_BUFFER ){ \
-        zconfensure_buffer_stack (); \
-               YY_CURRENT_BUFFER_LVALUE =    \
-            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-       } \
-       YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-       }
-
-#define yy_set_bol(at_bol) \
-       { \
-       if ( ! YY_CURRENT_BUFFER ){\
-        zconfensure_buffer_stack (); \
-               YY_CURRENT_BUFFER_LVALUE =    \
-            zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-       } \
-       YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-       }
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-#define zconfwrap(n) 1
-#define YY_SKIP_YYWRAP
-
-typedef unsigned char YY_CHAR;
-
-FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int zconflineno;
-
-int zconflineno = 1;
-
-extern char *zconftext;
-#define yytext_ptr zconftext
-static yyconst flex_int16_t yy_nxt[][38] =
-    {
-    {
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0
-    },
-
-    {
-       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12
-    },
-
-    {
-       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12
-    },
-
-    {
-       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,   18,   16,   16,   18,   18,   19,   20,
-       21,   22,   18,   18,   23,   24,   18,   25,   18,   26,
-       27,   18,   28,   29,   30,   18,   18,   16
-    },
-
-    {
-       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,   18,   16,   16,   18,   18,   19,   20,
-       21,   22,   18,   18,   23,   24,   18,   25,   18,   26,
-       27,   18,   28,   29,   30,   18,   18,   16
-
-    },
-
-    {
-       11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31
-    },
-
-    {
-       11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31
-    },
-
-    {
-       11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
-       34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
-
-       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34
-    },
-
-    {
-       11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
-       34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34
-    },
-
-    {
-       11,   38,   38,   39,   40,   41,   42,   43,   41,   44,
-       45,   46,   47,   47,   48,   49,   47,   47,   47,   47,
-       47,   47,   47,   47,   47,   50,   47,   47,   47,   51,
-       47,   47,   47,   47,   47,   47,   47,   52
-
-    },
-
-    {
-       11,   38,   38,   39,   40,   41,   42,   43,   41,   44,
-       45,   46,   47,   47,   48,   49,   47,   47,   47,   47,
-       47,   47,   47,   47,   47,   50,   47,   47,   47,   51,
-       47,   47,   47,   47,   47,   47,   47,   52
-    },
-
-    {
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
-      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
-    },
-
-    {
-       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
-    },
-
-    {
-       11,  -13,   53,   54,  -13,  -13,   55,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
-    },
-
-    {
-       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14
-
-    },
-
-    {
-       11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56
-    },
-
-    {
-       11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
-    },
-
-    {
-       11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-
-      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17
-    },
-
-    {
-       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
-      -18,  -18,  -18,   58,  -18,  -18,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -18
-    },
-
-    {
-       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
-      -19,  -19,  -19,   58,  -19,  -19,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   59,
-       58,   58,   58,   58,   58,   58,   58,  -19
-
-    },
-
-    {
-       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
-      -20,  -20,  -20,   58,  -20,  -20,   58,   58,   58,   58,
-       58,   58,   58,   58,   60,   58,   58,   58,   58,   61,
-       58,   58,   58,   58,   58,   58,   58,  -20
-    },
-
-    {
-       11,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
-      -21,  -21,  -21,   58,  -21,  -21,   58,   58,   58,   58,
-       58,   62,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -21
-    },
-
-    {
-       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
-      -22,  -22,  -22,   58,  -22,  -22,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   63,   58,
-       58,   58,   58,   58,   58,   58,   58,  -22
-    },
-
-    {
-       11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
-      -23,  -23,  -23,   58,  -23,  -23,   58,   58,   58,   58,
-       58,   64,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -23
-    },
-
-    {
-       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
-      -24,  -24,  -24,   58,  -24,  -24,   58,   58,   58,   58,
-       58,   58,   65,   58,   58,   58,   58,   58,   66,   58,
-       58,   58,   58,   58,   58,   58,   58,  -24
-
-    },
-
-    {
-       11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
-      -25,  -25,  -25,   58,  -25,  -25,   58,   67,   58,   58,
-       58,   68,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -25
-    },
-
-    {
-       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
-      -26,  -26,  -26,   58,  -26,  -26,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       69,   58,   58,   58,   58,   58,   58,  -26
-    },
-
-    {
-       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
-      -27,  -27,  -27,   58,  -27,  -27,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   70,   58,   58,   58,   58,  -27
-    },
-
-    {
-       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
-      -28,  -28,  -28,   58,  -28,  -28,   58,   71,   58,   58,
-       58,   72,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -28
-    },
-
-    {
-       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
-      -29,  -29,  -29,   58,  -29,  -29,   58,   58,   58,   58,
-       58,   73,   58,   58,   58,   58,   58,   58,   58,   74,
-       58,   58,   58,   58,   75,   58,   58,  -29
-
-    },
-
-    {
-       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
-      -30,  -30,  -30,   58,  -30,  -30,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   76,   58,   58,   58,   58,  -30
-    },
-
-    {
-       11,   77,   77,  -31,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77
-    },
-
-    {
-       11,  -32,   78,   79,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32
-    },
-
-    {
-       11,   80,  -33,  -33,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80
-    },
-
-    {
-       11,   81,   81,   82,   81,  -34,   81,   81,  -34,   81,
-       81,   81,   81,   81,   81,  -34,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81
-
-    },
-
-    {
-       11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35
-    },
-
-    {
-       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36
-    },
-
-    {
-       11,   83,   83,   84,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-
-       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   83
-    },
-
-    {
-       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38
-    },
-
-    {
-       11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39
-
-    },
-
-    {
-       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,   85,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40
-    },
-
-    {
-       11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41
-    },
-
-    {
-       11,   86,   86,  -42,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86
-    },
-
-    {
-       11,  -43,  -43,  -43,  -43,  -43,  -43,   87,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43
-    },
-
-    {
-       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44
-
-    },
-
-    {
-       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45
-    },
-
-    {
-       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
-      -46,   88,   89,   89,  -46,  -46,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -46
-    },
-
-    {
-       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
-      -47,   89,   89,   89,  -47,  -47,   89,   89,   89,   89,
-
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -47
-    },
-
-    {
-       11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48
-    },
-
-    {
-       11,  -49,  -49,   90,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49
-
-    },
-
-    {
-       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,   89,   89,   89,  -50,  -50,   89,   89,   89,   89,
-       89,   89,   91,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -50
-    },
-
-    {
-       11,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
-      -51,   89,   89,   89,  -51,  -51,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   92,   89,
-       89,   89,   89,   89,   89,   89,   89,  -51
-    },
-
-    {
-       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,   93
-    },
-
-    {
-       11,  -53,   53,   54,  -53,  -53,   55,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53
-    },
-
-    {
-       11,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54
-
-    },
-
-    {
-       11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56
-    },
-
-    {
-       11,   56,   56,   57,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56
-    },
-
-    {
-       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
-    },
-
-    {
-       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
-      -58,  -58,  -58,   58,  -58,  -58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -58
-    },
-
-    {
-       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
-      -59,  -59,  -59,   58,  -59,  -59,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   94,
-       58,   58,   58,   58,   58,   58,   58,  -59
-
-    },
-
-    {
-       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
-      -60,  -60,  -60,   58,  -60,  -60,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   95,
-       58,   58,   58,   58,   58,   58,   58,  -60
-    },
-
-    {
-       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
-      -61,  -61,  -61,   58,  -61,  -61,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   96,   97,   58,
-       58,   58,   58,   58,   58,   58,   58,  -61
-    },
-
-    {
-       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
-      -62,  -62,  -62,   58,  -62,  -62,   58,   58,   58,   58,
-
-       58,   58,   98,   58,   58,   58,   58,   58,   58,   58,
-       99,   58,   58,   58,   58,   58,   58,  -62
-    },
-
-    {
-       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
-      -63,  -63,  -63,   58,  -63,  -63,   58,  100,   58,   58,
-      101,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -63
-    },
-
-    {
-       11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
-      -64,  -64,  -64,   58,  -64,  -64,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  102,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  103,  -64
-
-    },
-
-    {
-       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
-      -65,  -65,  -65,   58,  -65,  -65,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -65
-    },
-
-    {
-       11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
-      -66,  -66,  -66,   58,  -66,  -66,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  104,   58,   58,  -66
-    },
-
-    {
-       11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
-      -67,  -67,  -67,   58,  -67,  -67,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,  105,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -67
-    },
-
-    {
-       11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,   58,  -68,  -68,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  106,   58,
-       58,   58,   58,   58,   58,   58,   58,  -68
-    },
-
-    {
-       11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
-      -69,  -69,  -69,   58,  -69,  -69,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  107,   58,   58,  -69
-
-    },
-
-    {
-       11,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
-      -70,  -70,  -70,   58,  -70,  -70,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  108,
-       58,   58,   58,   58,   58,   58,   58,  -70
-    },
-
-    {
-       11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
-      -71,  -71,  -71,   58,  -71,  -71,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  109,   58,
-       58,   58,   58,   58,   58,   58,   58,  -71
-    },
-
-    {
-       11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
-      -72,  -72,  -72,   58,  -72,  -72,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,  110,   58,   58,   58,   58,   58,  -72
-    },
-
-    {
-       11,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
-      -73,  -73,  -73,   58,  -73,  -73,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  111,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -73
-    },
-
-    {
-       11,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
-      -74,  -74,  -74,   58,  -74,  -74,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  112,   58,  -74
-
-    },
-
-    {
-       11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,   58,  -75,  -75,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  113,   58,   58,   58,   58,  -75
-    },
-
-    {
-       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
-      -76,  -76,  -76,   58,  -76,  -76,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  114,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -76
-    },
-
-    {
-       11,   77,   77,  -77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77
-    },
-
-    {
-       11,  -78,   78,   79,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78
-    },
-
-    {
-       11,   80,  -79,  -79,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80
-
-    },
-
-    {
-       11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80
-    },
-
-    {
-       11,   81,   81,   82,   81,  -81,   81,   81,  -81,   81,
-       81,   81,   81,   81,   81,  -81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81
-    },
-
-    {
-       11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82
-    },
-
-    {
-       11,  -83,  -83,   84,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83
-    },
-
-    {
-       11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84
-
-    },
-
-    {
-       11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85
-    },
-
-    {
-       11,   86,   86,  -86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86
-    },
-
-    {
-       11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-
-      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87
-    },
-
-    {
-       11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
-      -88,  115,   89,   89,  -88,  -88,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -88
-    },
-
-    {
-       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,   89,   89,   89,  -89,  -89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -89
-
-    },
-
-    {
-       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90
-    },
-
-    {
-       11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
-      -91,   89,   89,   89,  -91,  -91,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -91
-    },
-
-    {
-       11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
-      -92,   89,   89,   89,  -92,  -92,   89,   89,   89,   89,
-
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,  -92
-    },
-
-    {
-       11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93
-    },
-
-    {
-       11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,   58,  -94,  -94,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  116,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -94
-
-    },
-
-    {
-       11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,  -95,  -95,   58,  -95,  -95,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  117,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -95
-    },
-
-    {
-       11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
-      -96,  -96,  -96,   58,  -96,  -96,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  118,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -96
-    },
-
-    {
-       11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,   58,  -97,  -97,   58,   58,   58,   58,
-
-       58,   58,  119,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -97
-    },
-
-    {
-       11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,   58,  -98,  -98,  120,  121,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -98
-    },
-
-    {
-       11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
-      -99,  -99,  -99,   58,  -99,  -99,   58,   58,   58,   58,
-       58,  122,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  -99
-
-    },
-
-    {
-       11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100,   58, -100, -100,   58,   58,  123,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -100
-    },
-
-    {
-       11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-     -101, -101, -101,   58, -101, -101,   58,   58,   58,  124,
-       58,   58,   58,   58,   58,  125,   58,  126,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -101
-    },
-
-    {
-       11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
-     -102, -102, -102,   58, -102, -102,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-      127,   58,   58,   58,   58,   58,   58, -102
-    },
-
-    {
-       11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
-     -103, -103, -103,   58, -103, -103,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -103
-    },
-
-    {
-       11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
-     -104, -104, -104,   58, -104, -104,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -104
-
-    },
-
-    {
-       11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-     -105, -105, -105,   58, -105, -105,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  128,   58,
-       58,   58,   58,   58,   58,   58,   58, -105
-    },
-
-    {
-       11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-     -106, -106, -106,   58, -106, -106,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  129,   58, -106
-    },
-
-    {
-       11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
-     -107, -107, -107,   58, -107, -107,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,  130,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -107
-    },
-
-    {
-       11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108,   58, -108, -108,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  131,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -108
-    },
-
-    {
-       11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
-     -109, -109, -109,   58, -109, -109,   58,   58,   58,   58,
-       58,   58,   58,  132,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -109
-
-    },
-
-    {
-       11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110, -110, -110,   58, -110, -110,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  133,   58, -110
-    },
-
-    {
-       11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-     -111, -111, -111,   58, -111, -111,   58,   58,   58,   58,
-       58,  134,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -111
-    },
-
-    {
-       11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-     -112, -112, -112,   58, -112, -112,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  135,   58,   58,   58,   58, -112
-    },
-
-    {
-       11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113,   58, -113, -113,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  136,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -113
-    },
-
-    {
-       11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114,   58, -114, -114,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  137,   58,   58,   58, -114
-
-    },
-
-    {
-       11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115,   89,   89,   89, -115, -115,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-       89,   89,   89,   89,   89,   89,   89, -115
-    },
-
-    {
-       11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116, -116, -116,   58, -116, -116,   58,   58,   58,   58,
-       58,  138,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -116
-    },
-
-    {
-       11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-     -117, -117, -117,   58, -117, -117,   58,   58,   58,  139,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -117
-    },
-
-    {
-       11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118,   58, -118, -118,   58,   58,   58,   58,
-       58,  140,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -118
-    },
-
-    {
-       11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119,   58, -119, -119,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  141,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -119
-
-    },
-
-    {
-       11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-     -120, -120, -120,   58, -120, -120,   58,   58,  142,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  143,   58,   58, -120
-    },
-
-    {
-       11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121,   58, -121, -121,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  144,   58, -121
-    },
-
-    {
-       11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-     -122, -122, -122,   58, -122, -122,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,  145,   58,
-       58,   58,   58,   58,   58,   58,   58, -122
-    },
-
-    {
-       11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123, -123, -123,   58, -123, -123,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  146,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -123
-    },
-
-    {
-       11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-     -124, -124, -124,   58, -124, -124,   58,   58,   58,   58,
-       58,   58,   58,   58,  147,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -124
-
-    },
-
-    {
-       11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-     -125, -125, -125,   58, -125, -125,   58,   58,   58,   58,
-       58,   58,  148,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -125
-    },
-
-    {
-       11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126,   58, -126, -126,   58,   58,   58,   58,
-       58,  149,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -126
-    },
-
-    {
-       11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-     -127, -127, -127,   58, -127, -127,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -127
-    },
-
-    {
-       11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128,   58, -128, -128,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,  150,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -128
-    },
-
-    {
-       11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
-     -129, -129, -129,   58, -129, -129,   58,   58,   58,  151,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -129
-
-    },
-
-    {
-       11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-     -130, -130, -130,   58, -130, -130,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  152,
-       58,   58,   58,   58,   58,   58,   58, -130
-    },
-
-    {
-       11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-     -131, -131, -131,   58, -131, -131,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-      153,   58,   58,   58,   58,   58,   58, -131
-    },
-
-    {
-       11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-     -132, -132, -132,   58, -132, -132,   58,   58,   58,   58,
-
-       58,  154,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -132
-    },
-
-    {
-       11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-     -133, -133, -133,   58, -133, -133,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  155,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -133
-    },
-
-    {
-       11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-     -134, -134, -134,   58, -134, -134,   58,   58,   58,  156,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -134
-
-    },
-
-    {
-       11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-     -135, -135, -135,   58, -135, -135,   58,   58,   58,  157,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -135
-    },
-
-    {
-       11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-     -136, -136, -136,   58, -136, -136,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  158,   58,
-       58,   58,   58,   58,   58,   58,   58, -136
-    },
-
-    {
-       11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137,   58, -137, -137,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  159,   58,   58, -137
-    },
-
-    {
-       11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138,   58, -138, -138,   58,  160,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -138
-    },
-
-    {
-       11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139,   58, -139, -139,   58,   58,   58,   58,
-       58,  161,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -139
-
-    },
-
-    {
-       11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-     -140, -140, -140,   58, -140, -140,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  162,   58,
-       58,   58,   58,   58,   58,   58,   58, -140
-    },
-
-    {
-       11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141,   58, -141, -141,   58,   58,   58,   58,
-       58,   58,   58,  163,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -141
-    },
-
-    {
-       11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142,   58, -142, -142,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  164,
-       58,   58,   58,   58,   58,   58,   58, -142
-    },
-
-    {
-       11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-     -143, -143, -143,   58, -143, -143,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  165,   58,   58,   58,   58, -143
-    },
-
-    {
-       11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144,   58, -144, -144,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  166,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -144
-
-    },
-
-    {
-       11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-     -145, -145, -145,   58, -145, -145,   58,   58,   58,   58,
-      167,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -145
-    },
-
-    {
-       11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146,   58, -146, -146,   58,   58,   58,   58,
-       58,  168,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -146
-    },
-
-    {
-       11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147,   58, -147, -147,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  169,
-       58,   58,   58,   58,   58,   58,   58, -147
-    },
-
-    {
-       11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148,   58, -148, -148,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -148
-    },
-
-    {
-       11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-     -149, -149, -149,   58, -149, -149,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  170,   58,
-       58,   58,   58,   58,   58,   58,   58, -149
-
-    },
-
-    {
-       11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150,   58, -150, -150,   58,   58,   58,   58,
-       58,  171,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -150
-    },
-
-    {
-       11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151,   58, -151, -151,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  172,
-       58,   58,   58,   58,   58,   58,   58, -151
-    },
-
-    {
-       11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152,   58, -152, -152,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,  173,   58,
-       58,   58,   58,   58,   58,   58,   58, -152
-    },
-
-    {
-       11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-     -153, -153, -153,   58, -153, -153,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  174,   58,   58, -153
-    },
-
-    {
-       11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154,   58, -154, -154,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -154
-
-    },
-
-    {
-       11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155,   58, -155, -155,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,  175,   58,   58,   58,   58, -155
-    },
-
-    {
-       11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156,   58, -156, -156,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  176,   58,   58, -156
-    },
-
-    {
-       11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
-     -157, -157, -157,   58, -157, -157,   58,   58,   58,   58,
-
-       58,  177,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -157
-    },
-
-    {
-       11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158,   58, -158, -158,   58,   58,   58,   58,
-       58,   58,   58,  178,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -158
-    },
-
-    {
-       11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
-     -159, -159, -159,   58, -159, -159,   58,  179,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -159
-
-    },
-
-    {
-       11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160,   58, -160, -160,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  180,   58,
-       58,   58,   58,   58,   58,   58,   58, -160
-    },
-
-    {
-       11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-     -161, -161, -161,   58, -161, -161,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -161
-    },
-
-    {
-       11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
-     -162, -162, -162,   58, -162, -162,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  181,   58,   58, -162
-    },
-
-    {
-       11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163,   58, -163, -163,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -163
-    },
-
-    {
-       11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-     -164, -164, -164,   58, -164, -164,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,  182,
-       58,   58,   58,   58,   58,   58,   58, -164
-
-    },
-
-    {
-       11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-     -165, -165, -165,   58, -165, -165,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  183,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -165
-    },
-
-    {
-       11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
-     -166, -166, -166,   58, -166, -166,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  184,   58,   58, -166
-    },
-
-    {
-       11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-     -167, -167, -167,   58, -167, -167,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  185,   58,   58,   58, -167
-    },
-
-    {
-       11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168,   58, -168, -168,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -168
-    },
-
-    {
-       11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169,   58, -169, -169,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  186,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -169
-
-    },
-
-    {
-       11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170,   58, -170, -170,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  187,   58, -170
-    },
-
-    {
-       11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
-     -171, -171, -171,   58, -171, -171,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  188,   58,
-       58,   58,   58,   58,   58,   58,   58, -171
-    },
-
-    {
-       11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172, -172,   58, -172, -172,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,  189,   58,
-       58,   58,   58,   58,   58,   58,   58, -172
-    },
-
-    {
-       11, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173,   58, -173, -173,   58,  190,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -173
-    },
-
-    {
-       11, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-     -174, -174, -174,   58, -174, -174,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -174
-
-    },
-
-    {
-       11, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175, -175,   58, -175, -175,   58,   58,   58,   58,
-       58,  191,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -175
-    },
-
-    {
-       11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
-     -176, -176, -176,   58, -176, -176,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -176
-    },
-
-    {
-       11, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177,   58, -177, -177,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -177
-    },
-
-    {
-       11, -178, -178, -178, -178, -178, -178, -178, -178, -178,
-     -178, -178, -178,   58, -178, -178,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -178
-    },
-
-    {
-       11, -179, -179, -179, -179, -179, -179, -179, -179, -179,
-     -179, -179, -179,   58, -179, -179,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  192,   58,   58, -179
-
-    },
-
-    {
-       11, -180, -180, -180, -180, -180, -180, -180, -180, -180,
-     -180, -180, -180,   58, -180, -180,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -180
-    },
-
-    {
-       11, -181, -181, -181, -181, -181, -181, -181, -181, -181,
-     -181, -181, -181,   58, -181, -181,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -181
-    },
-
-    {
-       11, -182, -182, -182, -182, -182, -182, -182, -182, -182,
-     -182, -182, -182,   58, -182, -182,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,  193,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -182
-    },
-
-    {
-       11, -183, -183, -183, -183, -183, -183, -183, -183, -183,
-     -183, -183, -183,   58, -183, -183,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  194,   58,   58,   58, -183
-    },
-
-    {
-       11, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184,   58, -184, -184,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -184
-
-    },
-
-    {
-       11, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185,   58, -185, -185,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -185
-    },
-
-    {
-       11, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186,   58, -186, -186,   58,   58,   58,  195,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -186
-    },
-
-    {
-       11, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-     -187, -187, -187,   58, -187, -187,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -187
-    },
-
-    {
-       11, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-     -188, -188, -188,   58, -188, -188,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,  196,   58, -188
-    },
-
-    {
-       11, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-     -189, -189, -189,   58, -189, -189,   58,   58,   58,   58,
-       58,   58,  197,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -189
-
-    },
-
-    {
-       11, -190, -190, -190, -190, -190, -190, -190, -190, -190,
-     -190, -190, -190,   58, -190, -190,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,  198,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -190
-    },
-
-    {
-       11, -191, -191, -191, -191, -191, -191, -191, -191, -191,
-     -191, -191, -191,   58, -191, -191,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,  199,   58,   58,   58, -191
-    },
-
-    {
-       11, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-     -192, -192, -192,   58, -192, -192,   58,   58,   58,   58,
-
-       58,  200,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -192
-    },
-
-    {
-       11, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-     -193, -193, -193,   58, -193, -193,   58,   58,   58,   58,
-       58,  201,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -193
-    },
-
-    {
-       11, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-     -194, -194, -194,   58, -194, -194,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  202,   58,   58, -194
-
-    },
-
-    {
-       11, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195, -195,   58, -195, -195,   58,   58,   58,   58,
-       58,  203,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -195
-    },
-
-    {
-       11, -196, -196, -196, -196, -196, -196, -196, -196, -196,
-     -196, -196, -196,   58, -196, -196,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -196
-    },
-
-    {
-       11, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197,   58, -197, -197,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,  204,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -197
-    },
-
-    {
-       11, -198, -198, -198, -198, -198, -198, -198, -198, -198,
-     -198, -198, -198,   58, -198, -198,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -198
-    },
-
-    {
-       11, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-     -199, -199, -199,   58, -199, -199,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -199
-
-    },
-
-    {
-       11, -200, -200, -200, -200, -200, -200, -200, -200, -200,
-     -200, -200, -200,   58, -200, -200,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -200
-    },
-
-    {
-       11, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-     -201, -201, -201,   58, -201, -201,   58,  205,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -201
-    },
-
-    {
-       11, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202,   58, -202, -202,   58,  206,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -202
-    },
-
-    {
-       11, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203, -203, -203,   58, -203, -203,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -203
-    },
-
-    {
-       11, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204,   58, -204, -204,   58,   58,   58,   58,
-       58,   58,   58,  207,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -204
-
-    },
-
-    {
-       11, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-     -205, -205, -205,   58, -205, -205,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,  208,   58,
-       58,   58,   58,   58,   58,   58,   58, -205
-    },
-
-    {
-       11, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206, -206,   58, -206, -206,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,  209,   58,   58, -206
-    },
-
-    {
-       11, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207,   58, -207, -207,   58,   58,   58,   58,
-
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -207
-    },
-
-    {
-       11, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208, -208, -208,   58, -208, -208,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -208
-    },
-
-    {
-       11, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209,   58, -209, -209,   58,   58,   58,   58,
-       58,  210,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -209
-
-    },
-
-    {
-       11, -210, -210, -210, -210, -210, -210, -210, -210, -210,
-     -210, -210, -210,   58, -210, -210,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58, -210
-    },
-
-    } ;
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up zconftext.
- */
-#define YY_DO_BEFORE_ACTION \
-       (yytext_ptr) = yy_bp; \
-       zconfleng = (size_t) (yy_cp - yy_bp); \
-       (yy_hold_char) = *yy_cp; \
-       *yy_cp = '\0'; \
-       (yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 64
-#define YY_END_OF_BUFFER 65
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-       {
-       flex_int32_t yy_verify;
-       flex_int32_t yy_nxt;
-       };
-static yyconst flex_int16_t yy_accept[211] =
-    {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       65,    5,    4,    3,    2,   36,   37,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       63,   60,   62,   55,   59,   58,   57,   53,   48,   42,
-       47,   51,   53,   40,   41,   50,   50,   43,   53,   50,
-       50,   53,    4,    3,    2,    2,    1,   35,   35,   35,
-       35,   35,   35,   35,   16,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   63,   60,   62,   61,
-       55,   54,   57,   56,   44,   51,   38,   50,   50,   52,
-       45,   46,   39,   35,   35,   35,   35,   35,   35,   35,
-
-       35,   35,   30,   29,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   49,   25,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   15,   35,    7,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   17,   35,   35,
-       35,   35,   35,   34,   35,   35,   35,   35,   35,   35,
-       10,   35,   13,   35,   35,   35,   35,   33,   35,   35,
-       35,   35,   35,   22,   35,   32,    9,   31,   35,   26,
-       12,   35,   35,   21,   18,   35,    8,   35,   35,   35,
-       35,   35,   27,   35,   35,    6,   35,   20,   19,   23,
-
-       35,   35,   11,   35,   35,   35,   14,   28,   35,   24
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
-       10,    1,    1,    1,   11,   12,   12,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,    1,    1,
-       14,    1,    1,    1,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-        1,   15,    1,    1,   16,    1,   17,   18,   19,   20,
-
-       21,   22,   23,   24,   25,   13,   13,   26,   27,   28,
-       29,   30,   31,   32,   33,   34,   35,   13,   13,   36,
-       13,   13,    1,   37,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-extern int zconf_flex_debug;
-int zconf_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *zconftext;
-
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- * @brief Lexical analyzer for GNUnet's configuration definitions
- * @author Roman Zippel
- * @author Nils Durner (GNUnet extensions)
- */
-
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#define START_STRSIZE  16
-
-char *text;
-static char *text_ptr;
-static int text_size, text_asize;
-
-struct buffer {
-        struct buffer *parent;
-        YY_BUFFER_STATE state;
-};
-
-struct buffer *current_buf;
-
-static int last_ts, first_ts;
-
-static void zconf_endhelp(void);
-static struct buffer *zconf_endfile(void);
-
-void new_string(void)
-{
-       text = malloc(START_STRSIZE);
-       text_asize = START_STRSIZE;
-       text_ptr = text;
-       text_size = 0;
-       *text_ptr = 0;
-}
-
-void append_string(const char *str, int size)
-{
-       int new_size = text_size + size + 1;
-       if (new_size > text_asize) {
-               text = realloc(text, new_size);
-               text_asize = new_size;
-               text_ptr = text + text_size;
-       }
-       memcpy(text_ptr, str, size);
-       text_ptr += size;
-       text_size += size;
-       *text_ptr = 0;
-}
-
-void alloc_string(const char *str, int size)
-{
-       text = malloc(size + 1);
-       memcpy(text, str, size);
-       text[size] = 0;
-}
-
-#define INITIAL 0
-#define COMMAND 1
-#define HELP 2
-#define STRING 3
-#define PARAM 4
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int zconfwrap (void );
-#else
-extern int zconfwrap (void );
-#endif
-#endif
-
-    static void yyunput (int c,char *buf_ptr  );
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-       errno=0; \
-       while ( (result = READ( fileno(zconfin), (char *) buf, max_size )) < 0 
) \
-       { \
-               if( errno != EINTR) \
-               { \
-                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
-                       break; \
-               } \
-               errno=0; \
-               clearerr(zconfin); \
-       }\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int zconflex (void);
-
-#define YY_DECL int zconflex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after zconftext and zconfleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-       YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-       register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
-       register int yy_act;
-
-       int str = 0;
-       int ts, i;
-
-       if ( (yy_init) )
-               {
-               (yy_init) = 0;
-
-#ifdef YY_USER_INIT
-               YY_USER_INIT;
-#endif
-
-               if ( ! (yy_start) )
-                       (yy_start) = 1; /* first start state */
-
-               if ( ! zconfin )
-                       zconfin = stdin;
-
-               if ( ! zconfout )
-                       zconfout = stdout;
-
-               if ( ! YY_CURRENT_BUFFER ) {
-                       zconfensure_buffer_stack ();
-                       YY_CURRENT_BUFFER_LVALUE =
-                               zconf_create_buffer(zconfin,YY_BUF_SIZE );
-               }
-
-               zconf_load_buffer_state( );
-               }
-
-       while ( 1 )             /* loops until end-of-file is reached */
-               {
-               yy_cp = (yy_c_buf_p);
-
-               /* Support of zconftext. */
-               *yy_cp = (yy_hold_char);
-
-               /* yy_bp points to the position in yy_ch_buf of the start of
-                * the current run.
-                */
-               yy_bp = yy_cp;
-
-               yy_current_state = (yy_start);
-yy_match:
-               while ( (yy_current_state = yy_nxt[yy_current_state][ 
yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
-                       ++yy_cp;
-
-               yy_current_state = -yy_current_state;
-
-yy_find_action:
-               yy_act = yy_accept[yy_current_state];
-
-               YY_DO_BEFORE_ACTION;
-
-do_action:     /* This label is used only to access EOF actions. */
-
-               switch ( yy_act )
-       { /* beginning of action switch */
-case 1:
-/* rule 1 can match eol */
-YY_RULE_SETUP
-current_file->lineno++;
-       YY_BREAK
-case 2:
-YY_RULE_SETUP
-
-       YY_BREAK
-case 3:
-/* rule 3 can match eol */
-YY_RULE_SETUP
-current_file->lineno++; return T_EOL;
-       YY_BREAK
-case 4:
-YY_RULE_SETUP
-{
-       BEGIN(COMMAND);
-}
-       YY_BREAK
-case 5:
-YY_RULE_SETUP
-{
-       unput(zconftext[0]);
-       BEGIN(COMMAND);
-}
-       YY_BREAK
-
-case 6:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_MAINMENU;
-       YY_BREAK
-case 7:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_MENU;
-       YY_BREAK
-case 8:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_ENDMENU;
-       YY_BREAK
-case 9:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_SOURCE;
-       YY_BREAK
-case 10:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_CHOICE;
-       YY_BREAK
-case 11:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_ENDCHOICE;
-       YY_BREAK
-case 12:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_COMMENT;
-       YY_BREAK
-case 13:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_CONFIG;
-       YY_BREAK
-case 14:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_MENUCONFIG;
-       YY_BREAK
-case 15:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_HELP;
-       YY_BREAK
-case 16:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_IF;
-       YY_BREAK
-case 17:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_ENDIF;
-       YY_BREAK
-case 18:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEPENDS;
-       YY_BREAK
-case 19:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_REQUIRES;
-       YY_BREAK
-case 20:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_OPTIONAL;
-       YY_BREAK
-case 21:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEFAULT;
-       YY_BREAK
-case 22:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_PROMPT;
-       YY_BREAK
-case 23:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_TRISTATE;
-       YY_BREAK
-case 24:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEF_TRISTATE;
-       YY_BREAK
-case 25:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_BOOLEAN;
-       YY_BREAK
-case 26:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_BOOLEAN;
-       YY_BREAK
-case 27:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEF_BOOLEAN;
-       YY_BREAK
-case 28:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_DEF_BOOLEAN;
-       YY_BREAK
-case 29:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_INT;
-       YY_BREAK
-case 30:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_HEX;
-       YY_BREAK
-case 31:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_STRING;
-       YY_BREAK
-case 32:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_SELECT;
-       YY_BREAK
-case 33:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_SELECT;
-       YY_BREAK
-case 34:
-YY_RULE_SETUP
-BEGIN(PARAM); return T_RANGE;
-       YY_BREAK
-case 35:
-YY_RULE_SETUP
-{
-               alloc_string(zconftext, zconfleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       YY_BREAK
-case 36:
-YY_RULE_SETUP
-
-       YY_BREAK
-case 37:
-/* rule 37 can match eol */
-YY_RULE_SETUP
-current_file->lineno++; BEGIN(INITIAL);
-       YY_BREAK
-
-case 38:
-YY_RULE_SETUP
-return T_AND;
-       YY_BREAK
-case 39:
-YY_RULE_SETUP
-return T_OR;
-       YY_BREAK
-case 40:
-YY_RULE_SETUP
-return T_OPEN_PAREN;
-       YY_BREAK
-case 41:
-YY_RULE_SETUP
-return T_CLOSE_PAREN;
-       YY_BREAK
-case 42:
-YY_RULE_SETUP
-return T_NOT;
-       YY_BREAK
-case 43:
-YY_RULE_SETUP
-return T_EQUAL;
-       YY_BREAK
-case 44:
-YY_RULE_SETUP
-return T_UNEQUAL;
-       YY_BREAK
-case 45:
-YY_RULE_SETUP
-return T_IF;
-       YY_BREAK
-case 46:
-YY_RULE_SETUP
-return T_ON;
-       YY_BREAK
-case 47:
-YY_RULE_SETUP
-{
-               str = zconftext[0];
-               new_string();
-               BEGIN(STRING);
-       }
-       YY_BREAK
-case 48:
-/* rule 48 can match eol */
-YY_RULE_SETUP
-BEGIN(INITIAL); current_file->lineno++; return T_EOL;
-       YY_BREAK
-case 49:
-YY_RULE_SETUP
-/* ignore */
-       YY_BREAK
-case 50:
-YY_RULE_SETUP
-{
-               alloc_string(zconftext, zconfleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       YY_BREAK
-case 51:
-YY_RULE_SETUP
-/* comment */
-       YY_BREAK
-case 52:
-/* rule 52 can match eol */
-YY_RULE_SETUP
-current_file->lineno++;
-       YY_BREAK
-case 53:
-YY_RULE_SETUP
-
-       YY_BREAK
-case YY_STATE_EOF(PARAM):
-{
-               BEGIN(INITIAL);
-       }
-       YY_BREAK
-
-case 54:
-/* rule 54 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up zconftext again */
-YY_RULE_SETUP
-{
-               append_string(zconftext, zconfleng);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       YY_BREAK
-case 55:
-YY_RULE_SETUP
-{
-               append_string(zconftext, zconfleng);
-       }
-       YY_BREAK
-case 56:
-/* rule 56 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up zconftext again */
-YY_RULE_SETUP
-{
-               append_string(zconftext + 1, zconfleng - 1);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       YY_BREAK
-case 57:
-YY_RULE_SETUP
-{
-               append_string(zconftext + 1, zconfleng - 1);
-       }
-       YY_BREAK
-case 58:
-YY_RULE_SETUP
-{
-               if (str == zconftext[0]) {
-                       BEGIN(PARAM);
-                       zconflval.string = text;
-                       return T_WORD_QUOTE;
-               } else
-                       append_string(zconftext, 1);
-       }
-       YY_BREAK
-case 59:
-/* rule 59 can match eol */
-YY_RULE_SETUP
-{
-               printf("%s:%d:warning: multi-line strings not supported\n", 
zconf_curname(), zconf_lineno());
-               current_file->lineno++;
-               BEGIN(INITIAL);
-               return T_EOL;
-       }
-       YY_BREAK
-case YY_STATE_EOF(STRING):
-{
-               BEGIN(INITIAL);
-       }
-       YY_BREAK
-
-case 60:
-YY_RULE_SETUP
-{
-               ts = 0;
-               for (i = 0; i < zconfleng; i++) {
-                       if (zconftext[i] == '\t')
-                               ts = (ts & ~7) + 8;
-                       else
-                               ts++;
-               }
-               last_ts = ts;
-               if (first_ts) {
-                       if (ts < first_ts) {
-                               zconf_endhelp();
-                               return T_HELPTEXT;
-                       }
-                       ts -= first_ts;
-                       while (ts > 8) {
-                               append_string("        ", 8);
-                               ts -= 8;
-                       }
-                       append_string("        ", ts);
-               }
-       }
-       YY_BREAK
-case 61:
-/* rule 61 can match eol */
-*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-(yy_c_buf_p) = yy_cp -= 1;
-YY_DO_BEFORE_ACTION; /* set up zconftext again */
-YY_RULE_SETUP
-{
-               current_file->lineno++;
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-       YY_BREAK
-case 62:
-/* rule 62 can match eol */
-YY_RULE_SETUP
-{
-               current_file->lineno++;
-               append_string("\n", 1);
-       }
-       YY_BREAK
-case 63:
-YY_RULE_SETUP
-{
-               append_string(zconftext, zconfleng);
-               if (!first_ts)
-                       first_ts = last_ts;
-       }
-       YY_BREAK
-case YY_STATE_EOF(HELP):
-{
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-       YY_BREAK
-
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(COMMAND):
-{
-       if (current_buf) {
-               zconf_endfile();
-               return T_EOF;
-       }
-       fclose(zconfin);
-       yyterminate();
-}
-       YY_BREAK
-case 64:
-YY_RULE_SETUP
-YY_FATAL_ERROR( "flex scanner jammed" );
-       YY_BREAK
-
-       case YY_END_OF_BUFFER:
-               {
-               /* Amount of text matched not including the EOB char. */
-               int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 
1;
-
-               /* Undo the effects of YY_DO_BEFORE_ACTION. */
-               *yy_cp = (yy_hold_char);
-               YY_RESTORE_YY_MORE_OFFSET
-
-               if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == 
YY_BUFFER_NEW )
-                       {
-                       /* We're scanning a new file or input source.  It's
-                        * possible that this happened because the user
-                        * just pointed zconfin at a new source and called
-                        * zconflex().  If so, then we have to assure
-                        * consistency between YY_CURRENT_BUFFER and our
-                        * globals.  Here is the right place to do so, because
-                        * this is the first action (other than possibly a
-                        * back-up) that will match for the new input source.
-                        */
-                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 
YY_BUFFER_NORMAL;
-                       }
-
-               /* Note that here we test for yy_c_buf_p "<=" to the position
-                * of the first EOB in the buffer, since yy_c_buf_p will
-                * already have been incremented past the NUL character
-                * (since all states make transitions on EOB to the
-                * end-of-buffer state).  Contrast this with the test
-                * in input().
-                */
-               if ( (yy_c_buf_p) <= 
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-                       { /* This was really a NUL. */
-                       yy_state_type yy_next_state;
-
-                       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-                       yy_current_state = yy_get_previous_state(  );
-
-                       /* Okay, we're now positioned to make the NUL
-                        * transition.  We couldn't have
-                        * yy_get_previous_state() go ahead and do it
-                        * for us because it doesn't know how to deal
-                        * with the possibility of jamming (and we don't
-                        * want to build jamming into it because then it
-                        * will run more slowly).
-                        */
-
-                       yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-                       yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-                       if ( yy_next_state )
-                               {
-                               /* Consume the NUL. */
-                               yy_cp = ++(yy_c_buf_p);
-                               yy_current_state = yy_next_state;
-                               goto yy_match;
-                               }
-
-                       else
-                               {
-                               yy_cp = (yy_c_buf_p);
-                               goto yy_find_action;
-                               }
-                       }
-
-               else switch ( yy_get_next_buffer(  ) )
-                       {
-                       case EOB_ACT_END_OF_FILE:
-                               {
-                               (yy_did_buffer_switch_on_eof) = 0;
-
-                               if ( zconfwrap( ) )
-                                       {
-                                       /* Note: because we've taken care in
-                                        * yy_get_next_buffer() to have set up
-                                        * zconftext, we can now set up
-                                        * yy_c_buf_p so that if some total
-                                        * hoser (like flex itself) wants to
-                                        * call the scanner after we return the
-                                        * YY_NULL, it'll still work - another
-                                        * YY_NULL will get returned.
-                                        */
-                                       (yy_c_buf_p) = (yytext_ptr) + 
YY_MORE_ADJ;
-
-                                       yy_act = YY_STATE_EOF(YY_START);
-                                       goto do_action;
-                                       }
-
-                               else
-                                       {
-                                       if ( ! (yy_did_buffer_switch_on_eof) )
-                                               YY_NEW_FILE;
-                                       }
-                               break;
-                               }
-
-                       case EOB_ACT_CONTINUE_SCAN:
-                               (yy_c_buf_p) =
-                                       (yytext_ptr) + 
yy_amount_of_matched_text;
-
-                               yy_current_state = yy_get_previous_state(  );
-
-                               yy_cp = (yy_c_buf_p);
-                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-                               goto yy_match;
-
-                       case EOB_ACT_LAST_MATCH:
-                               (yy_c_buf_p) =
-                               
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-                               yy_current_state = yy_get_previous_state(  );
-
-                               yy_cp = (yy_c_buf_p);
-                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-                               goto yy_find_action;
-                       }
-               break;
-               }
-
-       default:
-               YY_FATAL_ERROR(
-                       "fatal flex scanner internal error--no action found" );
-       } /* end of action switch */
-               } /* end of scanning one token */
-} /* end of zconflex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *     EOB_ACT_LAST_MATCH -
- *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *     EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       register char *source = (yytext_ptr);
-       register int number_to_move, i;
-       int ret_val;
-
-       if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 
1] )
-               YY_FATAL_ERROR(
-               "fatal flex scanner internal error--end of buffer missed" );
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-               { /* Don't try to fill the buffer, so this is an EOF. */
-               if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-                       {
-                       /* We matched a single character, the EOB, so
-                        * treat this as a final EOF.
-                        */
-                       return EOB_ACT_END_OF_FILE;
-                       }
-
-               else
-                       {
-                       /* We matched some text prior to the EOB, first
-                        * process it.
-                        */
-                       return EOB_ACT_LAST_MATCH;
-                       }
-               }
-
-       /* Try to read more data. */
-
-       /* First move last chars to start of buffer. */
-       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-       for ( i = 0; i < number_to_move; ++i )
-               *(dest++) = *(source++);
-
-       if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == 
YY_BUFFER_EOF_PENDING )
-               /* don't do the read, it's not guaranteed to return an EOF,
-                * just force an EOF
-                */
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-       else
-               {
-                       size_t num_to_read =
-                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move 
- 1;
-
-               while ( num_to_read <= 0 )
-                       { /* Not enough room in the buffer - grow it. */
-
-                       /* just a shorter name for the current buffer */
-                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-                       int yy_c_buf_p_offset =
-                               (int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-                       if ( b->yy_is_our_buffer )
-                               {
-                               int new_size = b->yy_buf_size * 2;
-
-                               if ( new_size <= 0 )
-                                       b->yy_buf_size += b->yy_buf_size / 8;
-                               else
-                                       b->yy_buf_size *= 2;
-
-                               b->yy_ch_buf = (char *)
-                                       /* Include room in for 2 EOB chars. */
-                                       zconfrealloc((void *) 
b->yy_ch_buf,b->yy_buf_size + 2  );
-                               }
-                       else
-                               /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = 0;
-
-                       if ( ! b->yy_ch_buf )
-                               YY_FATAL_ERROR(
-                               "fatal error - scanner input buffer overflow" );
-
-                       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-                       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-                                               number_to_move - 1;
-
-                       }
-
-               if ( num_to_read > YY_READ_BUF_SIZE )
-                       num_to_read = YY_READ_BUF_SIZE;
-
-               /* Read in more data. */
-               YY_INPUT( 
(&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-                       (yy_n_chars), num_to_read );
-
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       if ( (yy_n_chars) == 0 )
-               {
-               if ( number_to_move == YY_MORE_ADJ )
-                       {
-                       ret_val = EOB_ACT_END_OF_FILE;
-                       zconfrestart(zconfin  );
-                       }
-
-               else
-                       {
-                       ret_val = EOB_ACT_LAST_MATCH;
-                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-                               YY_BUFFER_EOF_PENDING;
-                       }
-               }
-
-       else
-               ret_val = EOB_ACT_CONTINUE_SCAN;
-
-       (yy_n_chars) += number_to_move;
-       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = 
YY_END_OF_BUFFER_CHAR;
-       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = 
YY_END_OF_BUFFER_CHAR;
-
-       (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-       return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached 
*/
-
-    static yy_state_type yy_get_previous_state (void)
-{
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
-
-       yy_current_state = (yy_start);
-
-       for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp 
)
-               {
-               yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? 
yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
-               }
-
-       return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *     next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-       register int yy_is_jam;
-
-       yy_current_state = yy_nxt[yy_current_state][1];
-       yy_is_jam = (yy_current_state <= 0);
-
-       return yy_is_jam ? 0 : yy_current_state;
-}
-
-    static void yyunput (int c, register char * yy_bp )
-{
-       register char *yy_cp;
-
-    yy_cp = (yy_c_buf_p);
-
-       /* undo effects of setting up zconftext */
-       *yy_cp = (yy_hold_char);
-
-       if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-               { /* need to shift things up to make room */
-               /* +2 for EOB chars. */
-               register int number_to_move = (yy_n_chars) + 2;
-               register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-                                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 
2];
-               register char *source =
-                               
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
-               while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-                       *--dest = *--source;
-
-               yy_cp += (int) (dest - source);
-               yy_bp += (int) (dest - source);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
-               if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-                       YY_FATAL_ERROR( "flex scanner push-back overflow" );
-               }
-
-       *--yy_cp = (char) c;
-
-       (yytext_ptr) = yy_bp;
-       (yy_hold_char) = *yy_cp;
-       (yy_c_buf_p) = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-       int c;
-
-       *(yy_c_buf_p) = (yy_hold_char);
-
-       if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-               {
-               /* yy_c_buf_p now points to the character we want to return.
-                * If this occurs *before* the EOB characters, then it's a
-                * valid NUL; if not, then we've hit the end of the buffer.
-                */
-               if ( (yy_c_buf_p) < 
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-                       /* This was really a NUL. */
-                       *(yy_c_buf_p) = '\0';
-
-               else
-                       { /* need more input */
-                       int offset = (yy_c_buf_p) - (yytext_ptr);
-                       ++(yy_c_buf_p);
-
-                       switch ( yy_get_next_buffer(  ) )
-                               {
-                               case EOB_ACT_LAST_MATCH:
-                                       /* This happens because yy_g_n_b()
-                                        * sees that we've accumulated a
-                                        * token and flags that we need to
-                                        * try matching the token before
-                                        * proceeding.  But for input(),
-                                        * there's no matching to consider.
-                                        * So convert the EOB_ACT_LAST_MATCH
-                                        * to EOB_ACT_END_OF_FILE.
-                                        */
-
-                                       /* Reset buffer status. */
-                                       zconfrestart(zconfin );
-
-                                       /*FALLTHROUGH*/
-
-                               case EOB_ACT_END_OF_FILE:
-                                       {
-                                       if ( zconfwrap( ) )
-                                               return EOF;
-
-                                       if ( ! (yy_did_buffer_switch_on_eof) )
-                                               YY_NEW_FILE;
-#ifdef __cplusplus
-                                       return yyinput();
-#else
-                                       return input();
-#endif
-                                       }
-
-                               case EOB_ACT_CONTINUE_SCAN:
-                                       (yy_c_buf_p) = (yytext_ptr) + offset;
-                                       break;
-                               }
-                       }
-               }
-
-       c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
-       *(yy_c_buf_p) = '\0';   /* preserve zconftext */
-       (yy_hold_char) = *++(yy_c_buf_p);
-
-       return c;
-}
-#endif /* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void zconfrestart  (FILE * input_file )
-{
-
-       if ( ! YY_CURRENT_BUFFER ){
-        zconfensure_buffer_stack ();
-               YY_CURRENT_BUFFER_LVALUE =
-            zconf_create_buffer(zconfin,YY_BUF_SIZE );
-       }
-
-       zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
-       zconf_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
-    void zconf_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-
-       /* TODO. We should be able to replace this entire function body
-        * with
-        *              zconfpop_buffer_state();
-        *              zconfpush_buffer_state(new_buffer);
-     */
-       zconfensure_buffer_stack ();
-       if ( YY_CURRENT_BUFFER == new_buffer )
-               return;
-
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *(yy_c_buf_p) = (yy_hold_char);
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       zconf_load_buffer_state( );
-
-       /* We don't actually know whether we did this switch during
-        * EOF (zconfwrap()) processing, but the only time this flag
-        * is looked at is after zconfwrap() is called, so it's safe
-        * to go ahead and always set it.
-        */
-       (yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void zconf_load_buffer_state  (void)
-{
-       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-       (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-       zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-       (yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c 
YY_BUF_SIZE.
- *
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE zconf_create_buffer  (FILE * file, int  size )
-{
-       YY_BUFFER_STATE b;
-
-       b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in 
zconf_create_buffer()" );
-
-       b->yy_buf_size = size;
-
-       /* yy_ch_buf has to be 2 characters longer than the size given because
-        * we need to put in 2 end-of-buffer characters.
-        */
-       b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2  );
-       if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in 
zconf_create_buffer()" );
-
-       b->yy_is_our_buffer = 1;
-
-       zconf_init_buffer(b,file );
-
-       return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with zconf_create_buffer()
- *
- */
-    void zconf_delete_buffer (YY_BUFFER_STATE  b )
-{
-
-       if ( ! b )
-               return;
-
-       if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-               YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-       if ( b->yy_is_our_buffer )
-               zconffree((void *) b->yy_ch_buf  );
-
-       zconffree((void *) b  );
-}
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a zconfrestart() or at EOF.
- */
-    static void zconf_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-       int oerrno = errno;
-
-       zconf_flush_buffer(b );
-
-       b->yy_input_file = file;
-       b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then zconf_init_buffer was _probably_
-     * called from zconfrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = 0;
-
-       errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
-    void zconf_flush_buffer (YY_BUFFER_STATE  b )
-{
-       if ( ! b )
-               return;
-
-       b->yy_n_chars = 0;
-
-       /* We always need two end-of-buffer characters.  The first causes
-        * a transition to the end-of-buffer state.  The second causes
-        * a jam in that state.
-        */
-       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-       b->yy_buf_pos = &b->yy_ch_buf[0];
-
-       b->yy_at_bol = 1;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       if ( b == YY_CURRENT_BUFFER )
-               zconf_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *
- */
-void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-       if (new_buffer == NULL)
-               return;
-
-       zconfensure_buffer_stack();
-
-       /* This block is copied from zconf_switch_to_buffer. */
-       if ( YY_CURRENT_BUFFER )
-               {
-               /* Flush out information for old buffer. */
-               *(yy_c_buf_p) = (yy_hold_char);
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-               }
-
-       /* Only push if top exists. Otherwise, replace top. */
-       if (YY_CURRENT_BUFFER)
-               (yy_buffer_stack_top)++;
-       YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-       /* copied from zconf_switch_to_buffer. */
-       zconf_load_buffer_state( );
-       (yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *
- */
-void zconfpop_buffer_state (void)
-{
-       if (!YY_CURRENT_BUFFER)
-               return;
-
-       zconf_delete_buffer(YY_CURRENT_BUFFER );
-       YY_CURRENT_BUFFER_LVALUE = NULL;
-       if ((yy_buffer_stack_top) > 0)
-               --(yy_buffer_stack_top);
-
-       if (YY_CURRENT_BUFFER) {
-               zconf_load_buffer_state( );
-               (yy_did_buffer_switch_on_eof) = 1;
-       }
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void zconfensure_buffer_stack (void)
-{
-       int num_to_alloc;
-
-       if (!(yy_buffer_stack)) {
-
-               /* First allocation is just for 2 elements, since we don't know 
if this
-                * scanner will even need a stack. We use 2 instead of 1 to 
avoid an
-                * immediate realloc on the next call.
-         */
-               num_to_alloc = 1;
-               (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
-                                                               (num_to_alloc * 
sizeof(struct yy_buffer_state*)
-                                                               );
-               
-               memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct 
yy_buffer_state*));
-                               
-               (yy_buffer_stack_max) = num_to_alloc;
-               (yy_buffer_stack_top) = 0;
-               return;
-       }
-
-       if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-               /* Increase the buffer to prepare for a possible push. */
-               int grow_size = 8 /* arbitrary grow size */;
-
-               num_to_alloc = (yy_buffer_stack_max) + grow_size;
-               (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
-                                                               
((yy_buffer_stack),
-                                                               num_to_alloc * 
sizeof(struct yy_buffer_state*)
-                                                               );
-
-               /* zero only the new slots.*/
-               memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size 
* sizeof(struct yy_buffer_state*));
-               (yy_buffer_stack_max) = num_to_alloc;
-       }
-}
-
-/** Setup the input buffer state to scan directly from a user-specified 
character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE zconf_scan_buffer  (char * base, yy_size_t  size )
-{
-       YY_BUFFER_STATE b;
-
-       if ( size < 2 ||
-            base[size-2] != YY_END_OF_BUFFER_CHAR ||
-            base[size-1] != YY_END_OF_BUFFER_CHAR )
-               /* They forgot to leave room for the EOB's. */
-               return 0;
-
-       b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state )  );
-       if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" 
);
-
-       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
-       b->yy_buf_pos = b->yy_ch_buf = base;
-       b->yy_is_our_buffer = 0;
-       b->yy_input_file = 0;
-       b->yy_n_chars = b->yy_buf_size;
-       b->yy_is_interactive = 0;
-       b->yy_at_bol = 1;
-       b->yy_fill_buffer = 0;
-       b->yy_buffer_status = YY_BUFFER_NEW;
-
-       zconf_switch_to_buffer(b  );
-
-       return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to zconflex() 
will
- * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
- *
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       zconf_scan_bytes() instead.
- */
-YY_BUFFER_STATE zconf_scan_string (yyconst char * yy_str )
-{
-
-       return zconf_scan_bytes(yy_str,strlen(yy_str) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to 
zconflex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE zconf_scan_bytes  (yyconst char * bytes, int  len )
-{
-       YY_BUFFER_STATE b;
-       char *buf;
-       yy_size_t n;
-       int i;
-
-       /* Get memory for full buffer, including space for trailing EOB's. */
-       n = len + 2;
-       buf = (char *) zconfalloc(n  );
-       if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
-
-       for ( i = 0; i < len; ++i )
-               buf[i] = bytes[i];
-
-       buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
-       b = zconf_scan_buffer(buf,n );
-       if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
-
-       /* It's okay to grow etc. this buffer, and we should throw it
-        * away when we're done.
-        */
-       b->yy_is_our_buffer = 1;
-
-       return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-       (void) fprintf( stderr, "%s\n", msg );
-       exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up zconftext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-               zconftext[zconfleng] = (yy_hold_char); \
-               (yy_c_buf_p) = zconftext + yyless_macro_arg; \
-               (yy_hold_char) = *(yy_c_buf_p); \
-               *(yy_c_buf_p) = '\0'; \
-               zconfleng = yyless_macro_arg; \
-               } \
-       while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- *
- */
-int zconfget_lineno  (void)
-{
-
-    return zconflineno;
-}
-
-/** Get the input stream.
- *
- */
-FILE *zconfget_in  (void)
-{
-        return zconfin;
-}
-
-/** Get the output stream.
- *
- */
-FILE *zconfget_out  (void)
-{
-        return zconfout;
-}
-
-/** Get the length of the current token.
- *
- */
-int zconfget_leng  (void)
-{
-        return zconfleng;
-}
-
-/** Get the current token.
- *
- */
-
-char *zconfget_text  (void)
-{
-        return zconftext;
-}
-
-/** Set the current line number.
- * @param line_number
- *
- */
-void zconfset_lineno (int  line_number )
-{
-
-    zconflineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- *
- * @see zconf_switch_to_buffer
- */
-void zconfset_in (FILE *  in_str )
-{
-        zconfin = in_str ;
-}
-
-void zconfset_out (FILE *  out_str )
-{
-        zconfout = out_str ;
-}
-
-int zconfget_debug  (void)
-{
-        return zconf_flex_debug;
-}
-
-void zconfset_debug (int  bdebug )
-{
-        zconf_flex_debug = bdebug ;
-}
-
-/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
-int zconflex_destroy  (void)
-{
-
-    /* Pop the buffer stack, destroying each element. */
-       while(YY_CURRENT_BUFFER){
-               zconf_delete_buffer(YY_CURRENT_BUFFER  );
-               YY_CURRENT_BUFFER_LVALUE = NULL;
-               zconfpop_buffer_state();
-       }
-
-       /* Destroy the stack itself. */
-       zconffree((yy_buffer_stack) );
-       (yy_buffer_stack) = NULL;
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-       register int i;
-       for ( i = 0; i < n; ++i )
-               s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-       register int n;
-       for ( n = 0; s[n]; ++n )
-               ;
-
-       return n;
-}
-#endif
-
-void *zconfalloc (yy_size_t  size )
-{
-       return (void *) malloc( size );
-}
-
-void *zconfrealloc  (void * ptr, yy_size_t  size )
-{
-       /* The cast to (char *) in the following accommodates both
-        * implementations that use char* generic pointers, and those
-        * that use void* generic pointers.  It works with the latter
-        * because both ANSI C and C++ allow castless assignment from
-        * any pointer type to void*, and deal with argument conversions
-        * as though doing an assignment.
-        */
-       return (void *) realloc( (char *) ptr, size );
-}
-
-void zconffree (void * ptr )
-{
-       free( (char *) ptr );   /* see zconfrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef yytext_ptr
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-
-void zconf_starthelp(void)
-{
-       new_string();
-       last_ts = first_ts = 0;
-       BEGIN(HELP);
-}
-
-static void zconf_endhelp(void)
-{
-       zconflval.string = text;
-       BEGIN(INITIAL);
-}
-
-/*
- * Try to open specified file with $LANG appended
- * Return NULL if file is not found.
- */
-FILE *zconf_fopen(const char *name)
-{
-       char *env;
-       char configFile[PATH_MAX+1], lang[3];
-       FILE *f;
-       
-       env = getenv("LANG");
-       strlcpy(lang, env ? env : "", 3);
-       snprintf(configFile, PATH_MAX + 1, "%s.%s", name, lang);
-       if (!(f = FOPEN(configFile, "r")))
-               f = FOPEN(name, "r");
-       
-       return f;
-}
-
-void zconf_initscan(const char *name)
-{
-       zconfin = zconf_fopen(name);
-       if (!zconfin) {
-               printf("can't find file %s\n", name);
-               exit(1);
-       }
-
-       current_buf = malloc(sizeof(*current_buf));
-       memset(current_buf, 0, sizeof(*current_buf));
-
-       current_file = file_lookup(name);
-       current_file->lineno = 1;
-       current_file->flags = FILE_BUSY;
-}
-
-void zconf_nextfile(const char *name)
-{
-  char *realfn;
-  struct file *file;
-  struct buffer *buf;
-
-  realfn = GC_configuration_expand_dollar(cfg,
-                                         "Meta", 
-                                         STRDUP(name));
-  if (strlen(realfn) == 0) {
-    FREE(realfn);
-    realfn = STRDUP(name);
-  }
-
-  file = file_lookup(name);
-  buf = malloc(sizeof(*buf));
-  memset(buf, 0, sizeof(*buf));
-
-  current_buf->state = YY_CURRENT_BUFFER;
-  zconfin = zconf_fopen(realfn);
-  if (!zconfin) {
-    printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), 
realfn);
-    exit(1);
-  }
-  zconf_switch_to_buffer(zconf_create_buffer(zconfin, YY_BUF_SIZE));
-  buf->parent = current_buf;
-  current_buf = buf;
-
-  if (file->flags & FILE_BUSY) {
-    printf("recursive scan (%s)?\n", realfn);
-    exit(1);
-  }
-  if (file->flags & FILE_SCANNED) {
-    printf("file %s already scanned?\n", realfn);
-    exit(1);
-  }
-  file->flags |= FILE_BUSY;
-  file->lineno = 1;
-  file->parent = current_file;
-  current_file = file;
-
-  FREE(realfn);
-}
-
-static struct buffer *zconf_endfile(void)
-{
-       struct buffer *parent;
-
-       current_file->flags |= FILE_SCANNED;
-       current_file->flags &= ~FILE_BUSY;
-       current_file = current_file->parent;
-
-       parent = current_buf->parent;
-       if (parent) {
-               fclose(zconfin);
-               zconf_delete_buffer(YY_CURRENT_BUFFER);
-               zconf_switch_to_buffer(parent->state);
-       }
-       free(current_buf);
-       current_buf = parent;
-
-       return parent;
-}
-
-int zconf_lineno(void)
-{
-       if (current_buf)
-               return current_file->lineno - 1;
-       else
-               return 0;
-}
-
-char *zconf_curname(void)
-{
-       if (current_buf)
-               return current_file->name;
-       else
-               return "<none>";
-}
-

Copied: GNUnet/src/setup/lib/bool.h (from rev 3254, GNUnet/src/setup/bool.h)

Copied: GNUnet/src/setup/lib/confdata.c (from rev 3254, 
GNUnet/src/setup/confdata.c)

Copied: GNUnet/src/setup/lib/confdata.h (from rev 3254, 
GNUnet/src/setup/confdata.h)

Copied: GNUnet/src/setup/lib/expr.c (from rev 3254, GNUnet/src/setup/expr.c)

Copied: GNUnet/src/setup/lib/expr.h (from rev 3254, GNUnet/src/setup/expr.h)

Copied: GNUnet/src/setup/lib/lex.zconf.c (from rev 3254, 
GNUnet/src/setup/lex.zconf.c)

Copied: GNUnet/src/setup/lib/lkc.h (from rev 3254, GNUnet/src/setup/lkc.h)

Copied: GNUnet/src/setup/lib/lkc_defs.h (from rev 3254, 
GNUnet/src/setup/lkc_defs.h)

Copied: GNUnet/src/setup/lib/lkc_proto.h (from rev 3254, 
GNUnet/src/setup/lkc_proto.h)

Copied: GNUnet/src/setup/lib/menu.c (from rev 3254, GNUnet/src/setup/menu.c)

Copied: GNUnet/src/setup/lib/recreate.c (from rev 3254, 
GNUnet/src/setup/recreate.c)

Copied: GNUnet/src/setup/lib/recreate.h (from rev 3254, 
GNUnet/src/setup/recreate.h)

Copied: GNUnet/src/setup/lib/symbol.c (from rev 3254, GNUnet/src/setup/symbol.c)

Copied: GNUnet/src/setup/lib/wizard_util.c (from rev 3254, 
GNUnet/src/setup/wizard_util.c)

Copied: GNUnet/src/setup/lib/wizard_util.h (from rev 3254, 
GNUnet/src/setup/wizard_util.h)

Copied: GNUnet/src/setup/lib/zconf.l (from rev 3254, GNUnet/src/setup/zconf.l)

Copied: GNUnet/src/setup/lib/zconf.tab.h (from rev 3254, 
GNUnet/src/setup/zconf.tab.h)

Copied: GNUnet/src/setup/lib/zconf.y (from rev 3254, GNUnet/src/setup/zconf.y)

Copied: GNUnet/src/setup/lib/zconf_tab.c (from rev 3254, 
GNUnet/src/setup/zconf_tab.c)

Copied: GNUnet/src/setup/lib/zconf_tab.h (from rev 3254, 
GNUnet/src/setup/zconf_tab.h)

Deleted: GNUnet/src/setup/lkc.h
===================================================================
--- GNUnet/src/setup/lkc.h      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/lkc.h      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/lkc.h
- * @author Roman Zippel
- * @author Nils Durner
- **/
-
-#ifndef LKC_H
-#define LKC_H
-
-#include "gnunet_util.h"
-#include "platform.h"
-#include "expr.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef LKC_DIRECT_LINK
-#define P(name,type,arg)       extern type name arg
-#else
-#include "lkc_defs.h"
-#define P(name,type,arg)       extern type (*name ## _p) arg
-#endif
-#include "lkc_proto.h"
-#undef P
-
-#define SRCTREE "srctree"
-
-int zconfparse(void);
-void zconfdump(FILE *out);
-
-extern int zconfdebug;
-void zconf_starthelp(void);
-FILE *zconf_fopen(const char *name);
-void zconf_initscan(const char *name);
-void zconf_nextfile(const char *name);
-int zconf_lineno(void);
-char *zconf_curname(void);
-
-/* confdata.c */
-extern const char conf_def_filename[];
-extern char conf_filename[];
-
-char *conf_get_default_confname(void);
-
-/* menu.c */
-void menu_init(void);
-void menu_add_menu(void);
-void menu_end_menu(void);
-void menu_add_entry(struct symbol *sym);
-void menu_end_entry(void);
-void menu_add_dep(struct expr *dep);
-struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr 
*expr, struct expr *dep);
-void menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
-void menu_add_section(char *section);
-void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
-void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr 
*dep);
-void menu_finalize(struct menu *parent);
-void menu_set_type(int type);
-struct file *file_lookup(const char *name);
-int file_write_dep(const char *name);
-
-extern struct menu *current_entry;
-extern struct menu *current_menu;
-
-/* symbol.c */
-void sym_init(void);
-void sym_clear_all_valid(void);
-void sym_set_changed(struct symbol *sym);
-struct symbol *sym_check_deps(struct symbol *sym);
-struct property *prop_alloc(enum prop_type type, struct symbol *sym);
-struct symbol *prop_get_symbol(struct property *prop);
-
-static inline tristate sym_get_tristate_value(struct symbol *sym)
-{
-       return sym->curr.tri;
-}
-
-
-static inline struct symbol *sym_get_choice_value(struct symbol *sym)
-{
-       return (struct symbol *)sym->curr.val;
-}
-
-static inline bool sym_set_choice_value(struct symbol *ch, struct symbol 
*chval)
-{
-       return sym_set_tristate_value(chval, yes);
-}
-
-static inline bool sym_is_choice(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_CHOICE ? true : false;
-}
-
-static inline bool sym_is_choice_value(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_CHOICEVAL ? true : false;
-}
-
-static inline bool sym_is_optional(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_OPTIONAL ? true : false;
-}
-
-static inline bool sym_has_value(struct symbol *sym)
-{
-       return sym->flags & SYMBOL_NEW ? false : true;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LKC_H */

Deleted: GNUnet/src/setup/lkc_defs.h
===================================================================
--- GNUnet/src/setup/lkc_defs.h 2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/lkc_defs.h 2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,43 +0,0 @@
-
-/**
- * @brief GNUnet Setup
- * @file conf/lkc_proto.h
- * @author Roman Zippel
- * @author Nils Durner
- **/
-
-/* menu.c */
-#define rootmenu (*rootmenu_p)
-
-#define menu_is_visible (*menu_is_visible_p)
-#define menu_get_prompt (*menu_get_prompt_p)
-#define menu_get_root_menu (*menu_get_root_menu_p)
-#define menu_get_parent_menu (*menu_get_parent_menu_p)
-
-/* symbol.c */
-#define symbol_hash (*symbol_hash_p)
-#define sym_change_count (*sym_change_count_p)
-
-#define sym_lookup (*sym_lookup_p)
-#define sym_find (*sym_find_p)
-#define sym_type_name (*sym_type_name_p)
-#define sym_calc_value (*sym_calc_value_p)
-#define sym_calc_value_ext (*sym_calc_value_ext_p)
-#define sym_get_type (*sym_get_type_p)
-#define sym_tristate_within_range (*sym_tristate_within_range_p)
-#define sym_set_tristate_value (*sym_set_tristate_value_p)
-#define sym_toggle_tristate_value (*sym_toggle_tristate_value_p)
-#define sym_string_valid (*sym_string_valid_p)
-#define sym_string_within_range (*sym_string_within_range_p)
-#define sym_set_string_value (*sym_set_string_value_p)
-#define sym_is_changable (*sym_is_changable_p)
-#define sym_get_choice_prop (*sym_get_choice_prop_p)
-#define sym_get_default_prop (*sym_get_default_prop_p)
-#define sym_get_default_prop_ext (*sym_get_default_prop_ext_p)
-#define sym_get_string_value (*sym_get_string_value_p)
-
-#define prop_get_type_name (*prop_get_type_name_p)
-
-/* expr.c */
-#define expr_compare_type (*expr_compare_type_p)
-#define expr_print (*expr_print_p)

Deleted: GNUnet/src/setup/lkc_proto.h
===================================================================
--- GNUnet/src/setup/lkc_proto.h        2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/lkc_proto.h        2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,43 +0,0 @@
-
-/**
- * @brief GNUnet Setup
- * @file conf/lkc_proto.h
- * @author Roman Zippel
- * @author Nils Durner
- **/
-
-/* menu.c */
-P(rootmenu,struct menu,);
-
-P(menu_is_visible,bool,(struct menu *menu));
-P(menu_get_prompt,const char *,(struct menu *menu));
-P(menu_get_root_menu,struct menu *,(struct menu *menu));
-P(menu_get_parent_menu,struct menu *,(struct menu *menu));
-
-/* symbol.c */
-P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
-P(sym_change_count,int,);
-
-P(sym_lookup,struct symbol *,(char *name, char *sect, int isconst));
-P(sym_find,struct symbol *,(char *name, char *sect));
-P(sym_type_name,const char *,(enum symbol_type type));
-P(sym_calc_value,void,(struct symbol *sym));
-P(sym_calc_value_ext,void,(struct symbol *sym, int returnInv));
-P(sym_get_type,enum symbol_type,(struct symbol *sym));
-P(sym_tristate_within_range,bool,(struct symbol *sym,tristate tri));
-P(sym_set_tristate_value,bool,(struct symbol *sym,tristate tri));
-P(sym_toggle_tristate_value,tristate,(struct symbol *sym));
-P(sym_string_valid,bool,(struct symbol *sym, const char *newval));
-P(sym_string_within_range,bool,(struct symbol *sym, const char *str));
-P(sym_set_string_value,bool,(struct symbol *sym, const char *newval));
-P(sym_is_changable,bool,(struct symbol *sym));
-P(sym_get_choice_prop,struct property *,(struct symbol *sym));
-P(sym_get_default_prop,struct property *,(struct symbol *sym));
-P(sym_get_default_prop_ext,struct property *,(struct symbol *sym, int 
returnInv));
-P(sym_get_string_value,const char *,(struct symbol *sym));
-
-P(prop_get_type_name,const char *,(enum prop_type type));
-
-/* expr.c */
-P(expr_compare_type,int,(enum expr_type t1, enum expr_type t2));
-P(expr_print,void,(struct expr *e, void (*fn)(void *, const char *), void 
*data, int prevtoken));

Deleted: GNUnet/src/setup/mconf.c
===================================================================
--- GNUnet/src/setup/mconf.c    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf.c    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,838 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf.c
- * @author Roman Zippel
- * @author Petr Baudis
- * @author Nils Durner
- */
-
-#include "platform.h"
-#include "gnunet_util.h"
-#include "confdata.h"
-
-#ifndef MINGW
-#include <sys/ioctl.h>
-#include <termios.h>
-#endif
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "mconf.h"
-#include "mconf_dialog.h"
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-static const char menu_instructions[] =
-       "Arrow keys navigate the menu.  "
-       "<Enter> selects submenus --->.  "
-       "Highlighted letters are hotkeys.  "
-       "Pressing <Y> includes, <N> excludes features.  "
-       "Press <Esc><Esc> to exit, <?> for Help.  "
-       "Legend: [*] built-in  [ ] excluded  ",
-radiolist_instructions[] =
-       "Use the arrow keys to navigate this window or "
-       "press the hotkey of the item you wish to select "
-       "followed by the <SPACE BAR>. "
-       "Press <?> for additional information about this option.",
-inputbox_instructions_int[] =
-       "Please enter a decimal value. "
-       "Fractions will not be accepted.  "
-       "Use the <TAB> key to move from the input field to the buttons below 
it.",
-inputbox_instructions_hex[] =
-       "Please enter a hexadecimal value. "
-       "Use the <TAB> key to move from the input field to the buttons below 
it.",
-inputbox_instructions_string[] =
-       "Please enter a string value. "
-       "Use the <TAB> key to move from the input field to the buttons below 
it.",
-setmod_text[] =
-       "This feature depends on another which has been configured as a 
module.\n"
-       "As a result, this feature will be built as a module.",
-nohelp_text[] =
-       "There is no help available for this option.\n",
-load_config_text[] =
-       "Enter the name of the configuration file you wish to load.  "
-       "Accept the name shown to restore the configuration you "
-       "last retrieved.  Leave blank to abort.",
-load_config_help[] =
-       "\n"
-       "For various reasons, one may wish to keep several different\n"
-       "configurations available on a single machine.\n"
-       "\n"
-       "If you have saved a previous configuration in a file other than the\n"
-       "default, entering the name of the file here will allow you\n"
-       "to modify that configuration.\n"
-       "\n"
-       "If you are uncertain, then you have probably never used alternate\n"
-       "configuration files.  You should therefor leave this blank to 
abort.\n",
-readme_text[] =
-       "Overview\n"
-       "--------\n"
-       "To change a setting, highlight it with the cursor\n"
-       "keys and press <Y> to enable it or <N> to removed it.\n"
-       "\n"
-       "Items beginning with numbers or other text within parenthesis can\n"
-       "be changed by highlighting the item and pressing <Enter>.  Then\n"
-       "enter the new value into the dialog box that pops up.\n"
-       "\n"
-       "\n"
-       "Some additional keyboard hints:\n"
-       "\n"
-       "Menus\n"
-       "----------\n"
-       "o  Use the Up/Down arrow keys (cursor keys) to highlight the item\n"
-       "   you wish to change or submenu wish to select and press <Enter>.\n"
-       "   Submenus are designated by \"--->\".\n"
-       "\n"
-       "   Shortcut: Press the option's highlighted letter (hotkey).\n"
-        "             Pressing a hotkey more than once will sequence\n"
-        "             through all visible items which use that hotkey.\n"
-       "\n"
-       "   You may also use the <PAGE UP> and <PAGE DOWN> keys to scroll\n"
-       "   unseen options into view.\n"
-       "\n"
-       "o  To exit a menu use the cursor keys to highlight the <Exit> button\n"
-       "   and press <ENTER>.\n"
-       "\n"
-       "   Shortcut: Press <ESC><ESC> or <E> or <X> if there is no hotkey\n"
-        "             using those letters.  You may press a single <ESC>, 
but\n"
-        "             there is a delayed response which you may find 
annoying.\n"
-       "\n"
-       "   Also, the <TAB> and cursor keys will cycle between <Select>,\n"
-       "   <Exit> and <Help>\n"
-       "\n"
-       "o  To get help with an item, use the cursor keys to highlight <Help>\n"
-       "   and Press <ENTER>.\n"
-       "\n"
-       "   Shortcut: Press <H> or <?>.\n"
-       "\n"
-       "\n"
-       "Radiolists  (Choice lists)\n"
-       "-----------\n"
-       "o  Use the cursor keys to select the option you wish to set and 
press\n"
-       "   <S> or the <SPACE BAR>.\n"
-       "\n"
-       "   Shortcut: Press the first letter of the option you wish to set 
then\n"
-        "             press <S> or <SPACE BAR>.\n"
-       "\n"
-       "o  To see available help for the item, use the cursor keys to 
highlight\n"
-       "   <Help> and Press <ENTER>.\n"
-       "\n"
-       "   Shortcut: Press <H> or <?>.\n"
-       "\n"
-       "   Also, the <TAB> and cursor keys will cycle between <Select> and\n"
-       "   <Help>\n"
-       "\n"
-       "\n"
-       "Data Entry\n"
-       "-----------\n"
-       "o  Enter the requested information and press <ENTER>\n"
-       "   If you are entering hexadecimal values, it is not necessary to\n"
-       "   add the '0x' prefix to the entry.\n"
-       "\n"
-       "o  For help, use the <TAB> or cursor keys to highlight the help 
option\n"
-       "   and press <ENTER>.  You can try <TAB><H> as well.\n"
-       "\n"
-       "\n"
-       "Text Box    (Help Window)\n"
-       "--------\n"
-       "o  Use the cursor keys to scroll up/down/left/right.  The VI editor\n"
-       "   keys h,j,k,l function here as do <SPACE BAR> and <B> for those\n"
-       "   who are familiar with less and lynx.\n"
-       "\n"
-       "o  Press <E>, <X>, <Enter> or <Esc><Esc> to exit.\n"
-       "\n"
-       "\n"
-       "Final Acceptance\n"
-       "----------------\n"
-       "YOUR CHANGES ARE NOT FINAL.  You will be given a last chance to\n"
-       "confirm them prior to exiting Menuconfig.\n"
-       "\n"
-       "Alternate Configuration Files\n"
-       "-----------------------------\n"
-       "Menuconfig supports the use of alternate configuration files for\n"
-       "those who, for various reasons, find it necessary to switch\n"
-       "between different configurations.\n"
-       "\n"
-       "At the end of the main menu you will find two options.  One is\n"
-       "for saving the current configuration to a file of your choosing.\n"
-       "The other option is for loading a previously saved alternate\n"
-       "configuration.\n"
-       "\n"
-       "Even if you don't use alternate configuration files, but you\n"
-       "find during a Menuconfig session that you have completely messed\n"
-       "up your settings, you may use the \"Load Alternate...\" option to\n"
-       "restore your previously saved settings from \".config\" without\n"
-       "restarting Menuconfig.\n"
-       "\n"
-       "Other information\n"
-       "-----------------\n"
-       "If you use Menuconfig in an XTERM window make sure you have your\n"
-       "$TERM variable set to point to a xterm definition which supports 
color.\n"
-       "Otherwise, Menuconfig will look rather bad.  Menuconfig will not\n"
-       "display correctly in a RXVT window because rxvt displays only one\n"
-       "intensity of color, bright.\n"
-       "\n"
-       "Menuconfig will display larger menus on screens or xterms which are\n"
-       "set to display more than the standard 25 row by 80 column geometry.\n"
-       "In order for this to work, the \"stty size\" command must be able to\n"
-       "display the screen's current row and column geometry.  I STRONGLY\n"
-       "RECOMMEND that you make sure you do NOT have the shell variables\n"
-       "LINES and COLUMNS exported into your environment.  Some 
distributions\n"
-       "export those variables via /etc/profile.  Some ncurses programs can\n"
-       "become confused when those variables (LINES & COLUMNS) don't reflect\n"
-       "the true screen size.\n"
-       "\n"
-       "\n"
-       "******** IMPORTANT, OPTIONAL ALTERNATE PERSONALITY AVAILABLE 
********\n"
-       "********                                                     
********\n"
-       "If you prefer to have all of the options listed in a single\n"
-       "menu, rather than the default multimenu hierarchy, run the 
menuconfig\n"
-       "with MENUCONFIG_MODE environment variable set to single_menu.\n"
-       "\n"
-       "Note that this mode can eventually be a little more CPU expensive\n"
-       "(especially with a larger number of unrolled categories) than the\n"
-       "default mode.\n"
-       
"*********************************************************************\n"
-       "\n"
-       "\n"
-       "Propaganda\n"
-       "----------\n"
-       "The windowing support utility (lxdialog) is a VERY modified version 
of\n"
-       "the dialog utility by Savio Lam <address@hidden>.  Although lxdialog\n"
-       "is significantly different from dialog, I have left Savio's 
copyrights\n"
-       "intact.  Please DO NOT contact Savio with questions about lxdialog.\n"
-       "He will not be able to assist.\n"
-       "\n"
-       "William Roadcap was the original author of Menuconfig.\n"
-
-;
-
-static char filename[PATH_MAX+1] = "/etc/GNUnet/.config";
-static int indent;
-#ifndef MINGW
-static struct termios ios_org;
-#endif
-int rows = 0, cols = 0;
-static int child_count;
-static int single_menu_mode;
-
-static struct dialog_list_item *items[32768]; /* FIXME: This ought to be 
dynamic */
-static int item_no;
-
-static void conf(struct menu *menu);
-static void conf_choice(struct menu *menu);
-static void conf_string(struct menu *menu);
-static void conf_load(void);
-static void show_help(struct menu *menu);
-static void show_readme(void);
-
-void init_wsize(void)
-{
-       char *env;
-       
-#ifndef MINGW
-  struct winsize ws;
-
-       if (ioctl(1, TIOCGWINSZ, &ws) == -1) {
-               rows = 24;
-               cols = 80;
-       } else {
-               rows = ws.ws_row;
-               cols = ws.ws_col;
-#else
-              rows = cols = 0;
-#endif
-               if (!rows) {
-                       env = getenv("LINES");
-                       if (env)
-                               rows = atoi(env);
-                       if (!rows)
-                               rows = 24;
-               }
-               if (!cols) {
-                       env = getenv("COLUMNS");
-                       if (env)
-                               cols = atoi(env);
-                       if (!cols)
-                               cols = 80;
-               }
-#ifndef MINGW
-       }
-#endif
-
-       if (rows < 19 || cols < 80) {
-               end_dialog();
-               fprintf(stderr, "Your display is too small to run 
Menuconfig!\n");
-               fprintf(stderr, "It must be at least 19 lines by 80 
columns.\n");
-               exit(1);
-       }
-
-       rows -= 4;
-       cols -= 5;
-}
-
-static void creset(void)
-{
-       int i;
-
-       for (i = 0; i < item_no; i++) {
-               free(items[i]->name);
-               free(items[i]);
-       }
-
-       item_no = 0;
-}
-
-static void cmake(void)
-{
-       items[item_no] = calloc(1, sizeof(struct dialog_list_item));
-       items[item_no]->name = malloc(512); items[item_no]->name[0] = 0;
-       items[item_no]->namelen = 0;
-       item_no++;
-}
-
-static int cprint_name(const char *fmt, ...)
-{
-       va_list ap;
-       int res;
-
-       if (!item_no)
-               cmake();
-       va_start(ap, fmt);
-       res = vsnprintf(items[item_no - 1]->name + items[item_no - 1]->namelen,
-                       512 - items[item_no - 1]->namelen, fmt, ap);
-       if (res > 0)
-               items[item_no - 1]->namelen += res;
-       va_end(ap);
-
-       return res;
-}
-
-static int cset_tag(char type, void *ptr)
-{
-       items[item_no - 1]->type = type;
-       items[item_no - 1]->data = ptr;
-       return 0;
-}
-
-#ifndef MINGW
-static void winch_handler(int sig)
-{
-       static int lock;
-
-       if (!lock) {
-               lock = 1;
-               /* I just can't figure out how to make this thing not to crash
-                * (it won't crash everytime but at least in 1 of 10 tries).
-                * FIXME: Something rotten causes stack corruption to us, not
-                * a good thing to live with. --pasky */
-#if 0
-               init_wsize();
-               resize_dialog(rows + 4, cols + 5);
-#endif
-               lock = 0;
-       }
-}
-#endif
-
-static void build_conf(struct menu *menu)
-{
-       struct symbol *sym;
-       struct property *prop;
-       struct menu *child;
-       int type, tmp, doint = 2;
-       tristate val;
-       char ch;
-
-       if (!menu_is_visible(menu))
-               return;
-
-       sym = menu->sym;
-       prop = menu->prompt;
-       if (!sym) {
-               if (prop && menu != current_menu) {
-                       const char *prompt = menu_get_prompt(menu);
-                       switch (prop->type) {
-                       case P_MENU:
-                               child_count++;
-                               cmake();
-                               cset_tag('m', menu);
-
-                               if (single_menu_mode) {
-                                       cprint_name("%s%*c%s",
-                                               menu->data ? "-->" : "++>",
-                                               indent + 1, ' ', prompt);
-                               } else
-                                       cprint_name("   %*c%s  --->", indent + 
1, ' ', prompt);
-
-                               if (single_menu_mode && menu->data)
-                                       goto conf_childs;
-                               return;
-                       default:
-                               if (prompt) {
-                                       child_count++;
-                                       cmake();
-                                       cset_tag(':', menu);
-                                       cprint_name("---%*c%s", indent + 1, ' 
', prompt);
-                               }
-                       }
-               } else
-                       doint = 0;
-               goto conf_childs;
-       }
-
-       cmake();
-       type = sym_get_type(sym);
-       if (sym_is_choice(sym)) {
-               struct symbol *def_sym = sym_get_choice_value(sym);
-               struct menu *def_menu = NULL;
-
-               child_count++;
-               for (child = menu->list; child; child = child->next) {
-                       if (menu_is_visible(child) && child->sym == def_sym)
-                               def_menu = child;
-               }
-
-               val = sym_get_tristate_value(sym);
-               if (sym_is_changable(sym)) {
-                       cset_tag('t', menu);
-                       switch (type) {
-                       case S_BOOLEAN:
-                               cprint_name("[%c]", val == no ? ' ' : '*');
-                               break;
-                       case S_TRISTATE:
-                               switch (val) {
-                               case yes: ch = '*'; break;
-                               case mod: ch = 'M'; break;
-                               default:  ch = ' '; break;
-                               }
-                               cprint_name("<%c>", ch);
-                               break;
-                       }
-               } else {
-                       cset_tag(def_menu ? 't' : ':', menu);
-                       cprint_name("   ");
-               }
-
-               cprint_name("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
-               if (val == yes) {
-                       if (def_menu) {
-                               cprint_name(" (%s)", menu_get_prompt(def_menu));
-                               cprint_name("  --->");
-                               if (def_menu->list) {
-                                       indent += 2;
-                                       build_conf(def_menu);
-                                       indent -= 2;
-                               }
-                       }
-                       return;
-               }
-       } else {
-               if (menu == current_menu) {
-                       cset_tag(':', menu);
-                       cprint_name("---%*c%s", indent + 1, ' ', 
menu_get_prompt(menu));
-                       goto conf_childs;
-               }
-               child_count++;
-               val = sym_get_tristate_value(sym);
-               if (sym_is_choice_value(sym) && val == yes) {
-                       cset_tag(':', menu);
-                       cprint_name("   ");
-               } else {
-                       switch (type) {
-                       case S_BOOLEAN:
-                               cset_tag('t', menu);
-                               if (sym_is_changable(sym))
-                                       cprint_name("[%c]", val == no ? ' ' : 
'*');
-                               else
-                                       cprint_name("---");
-                               break;
-                       case S_TRISTATE:
-                               cset_tag('t', menu);
-                               switch (val) {
-                               case yes: ch = '*'; break;
-                               case mod: ch = 'M'; break;
-                               default:  ch = ' '; break;
-                               }
-                               if (sym_is_changable(sym))
-                                       cprint_name("<%c>", ch);
-                               else
-                                       cprint_name("---");
-                               break;
-                       default:
-                               cset_tag('s', menu);
-                               tmp = cprint_name("(%s)", 
sym_get_string_value(sym));
-                               tmp = indent - tmp + 4;
-                               if (tmp < 0)
-                                       tmp = 0;
-                               cprint_name("%*c%s%s", tmp, ' ', 
menu_get_prompt(menu),
-                                       (sym_has_value(sym) || 
!sym_is_changable(sym)) ?
-                                       "" : " (NEW)");
-                               goto conf_childs;
-                       }
-               }
-               cprint_name("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
-                       (sym_has_value(sym) || !sym_is_changable(sym)) ?
-                       "" : " (NEW)");
-               if (menu->prompt->type == P_MENU) {
-                       cprint_name("  --->");
-                       return;
-               }
-       }
-
-conf_childs:
-       indent += doint;
-       for (child = menu->list; child; child = child->next)
-               build_conf(child);
-       indent -= doint;
-}
-
-static void conf(struct menu *menu)
-{
-       char active_type = 0; void *active_ptr = NULL;
-       const char *prompt = menu_get_prompt(menu);
-       struct menu *submenu;
-       struct symbol *sym;
-       int stat;
-
-       UNLINK("lxdialog.scrltmp");
-       while (1) {
-               indent = 0;
-               child_count = 0;
-               current_menu = menu;
-               creset();
-               build_conf(menu);
-               if (!child_count)
-                       break;
-               if (menu == &rootmenu) {
-                       cmake(); cset_tag(':', NULL); cprint_name("--- ");
-                       cmake(); cset_tag('L', NULL); cprint_name("Load an 
Alternate Configuration File");
-               }
-               dialog_clear();
-               /* active_item itself can change after any creset() +
-                 * build_conf() :-( */
-               stat = dialog_menu(prompt ? prompt : "Main Menu",
-                               menu_instructions, rows, cols, rows - 10,
-                               active_type, active_ptr, item_no, items);
-               if (stat < -1)
-                       continue; /* Windows resized, let's redraw... */
-               if (stat < 0)
-                       break;
-
-               if (stat == 1 || stat == 255)
-                       break;
-
-               {
-                       struct dialog_list_item *active_item;
-
-                       active_item = first_sel_item(item_no, items);
-                       if (!active_item)
-                               continue;
-                       active_item->selected = 0;
-                       active_type = active_item->type;
-                       active_ptr = active_item->data;
-               }
-               
-               if (!active_type)
-                       continue;
-
-               sym = NULL;
-               submenu = active_ptr;
-               if (submenu) sym = submenu->sym;                
-
-               switch (stat) {
-               case 0:
-                       switch (active_type) {
-                       case 'm':
-                               if (single_menu_mode)
-                                       submenu->data = (void *) (long) 
!submenu->data;
-                               else
-                                       conf(submenu);
-                               break;
-                       case 't':
-                               if (sym_is_choice(sym) && 
sym_get_tristate_value(sym) == yes)
-                                       conf_choice(submenu);
-                               else if (submenu->prompt->type == P_MENU)
-                                       conf(submenu);
-                               break;
-                       case 's':
-                               conf_string(submenu);
-                               break;
-                       case 'L':
-                               conf_load();
-                               break;
-                       }
-                       break;
-               case 2:
-                       if (sym)
-                               show_help(submenu);
-                       else
-                               show_readme();
-                       break;
-               case 3:
-                       if (active_type == 't') {
-                               if (sym_set_tristate_value(sym, yes))
-                                       break;
-                               if (sym_set_tristate_value(sym, mod))
-                                       show_textbox(NULL, setmod_text, 6, 74);
-                       }
-                       break;
-               case 4:
-                       if (active_type == 't')
-                               sym_set_tristate_value(sym, no);
-                       break;
-               case 5:
-                       if (active_type == 't')
-                               sym_set_tristate_value(sym, mod);
-                       break;
-               case 6:
-                       if (active_type == 't') {
-                               sym_toggle_tristate_value(sym);
-                       } else if (active_type == 'm') {
-                               if (single_menu_mode)
-                                       submenu->data = (void *) 
(long)!submenu->data;
-                               else
-                                       conf(submenu);
-                       }
-                       break;
-               }
-       }
-}
-
-void show_textbox(const char *title, const char *text, int r, int c)
-{
-       int fd;
-
-       fd = CREAT(".help.tmp", 0777);
-       WRITE(fd, text, strlen(text));
-       CLOSE(fd);
-       while (dialog_textbox(title, ".help.tmp", r, c) < 0)
-               ;
-       UNLINK(".help.tmp");
-}
-
-void show_helptext(const char *title, const char *text)
-{
-       show_textbox(title, text, rows, cols);
-}
-
-static void show_help(struct menu *menu)
-{
-       const char *help;
-       char *helptext;
-       struct symbol *sym = menu->sym;
-
-       help = sym->help;
-       if (!help)
-               help = nohelp_text;
-       if (sym->name) {
-               helptext = malloc(strlen(sym->name) + strlen(help) + 16);
-               sprintf(helptext, "CONFIG_%s:\n\n%s", sym->name, help);
-               show_helptext(menu_get_prompt(menu), helptext);
-               free(helptext);
-       } else
-               show_helptext(menu_get_prompt(menu), help);
-}
-
-static void show_readme(void)
-{
-       show_textbox(NULL, readme_text, rows, cols);
-}
-
-static void conf_choice(struct menu *menu)
-{
-       const char *prompt = menu_get_prompt(menu);
-       struct menu *child;
-       struct symbol *active;
-
-       while (1) {
-               current_menu = menu;
-               active = sym_get_choice_value(menu->sym);
-               creset();
-               for (child = menu->list; child; child = child->next) {
-                       if (!menu_is_visible(child))
-                               continue;
-                       cmake();
-                       cset_tag(0, child);
-                       cprint_name("%s", menu_get_prompt(child));
-                       items[item_no - 1]->selected = (child->sym == active);
-               }
-
-               switch (dialog_checklist(prompt ? prompt : "Main Menu",
-                                       radiolist_instructions, 15, 70, 6,
-                                       item_no, items, FLAG_RADIO)) {
-               case 0:
-                       menu = first_sel_item(item_no, items)->data;
-                       if (!menu)
-                               break;
-                       sym_set_tristate_value(menu->sym, yes);
-                       return;
-               case 1:
-                       show_help(menu);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_string(struct menu *menu)
-{
-       const char *prompt = menu_get_prompt(menu);
-
-       while (1) {
-               char *heading;
-
-               switch (sym_get_type(menu->sym)) {
-               case S_INT:
-                       heading = (char *) inputbox_instructions_int;
-                       break;
-               case S_HEX:
-                       heading = (char *) inputbox_instructions_hex;
-                       break;
-               case S_STRING:
-                       heading = (char *) inputbox_instructions_string;
-                       break;
-               default:
-                       heading = "Internal mconf error!";
-                       /* panic? */;
-               }
-               
-               switch (dialog_inputbox(prompt ? prompt : "Main Menu",
-                       heading, 10, 75,
-                       sym_get_string_value(menu->sym))) {
-               case 0:
-                 if (sym_set_string_value(menu->sym, 
-                                          dialog_input_result))
-                               return;
-                       show_textbox(NULL, "You have made an invalid entry.", 
5, 43);
-                       break;
-               case 1:
-                       show_help(menu);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_load(void)
-{
-       while (1) {
-               switch(dialog_inputbox(NULL, load_config_text, 11, 55,
-                                       filename)) {
-               case 0:
-                       if (!dialog_input_result[0])
-                               return;
-                       if (!conf_read(dialog_input_result))
-                               return;
-                       show_textbox(NULL, "File does not exist!", 5, 38);
-                       break;
-               case 1:
-                       show_helptext("Load Alternate Configuration", 
load_config_help);
-                       break;
-               case 255:
-                       return;
-               }
-       }
-}
-
-static void conf_cleanup(void)
-{
-#ifndef MINGW
-       tcsetattr(1, TCSAFLUSH, &ios_org);
-#endif
-       UNLINK(".help.tmp");
-       UNLINK("lxdialog.scrltmp");
-}
-
-int mconf_main(int argc, char **argv)
-{
-       char *mode;
-       int stat;
-  char * filename;
-
-  filename = getConfigurationString("GNUNET-SETUP",
-                                   "FILENAME");
-  conf_read(filename);
-
-  backtitle = malloc(128);
-  strcpy(backtitle, "GNUnet Configuration");
-
-  mode = getenv("MENUCONFIG_MODE");
-  if (mode) {
-    if (!strcasecmp(mode, "single_menu"))
-      single_menu_mode = 1;
-  }
-
-#ifndef MINGW
-  {
-    struct sigaction sa;
-    sa.sa_handler = winch_handler;
-    sigemptyset(&sa.sa_mask);
-    sa.sa_flags = SA_RESTART;
-    sigaction(SIGWINCH, &sa, NULL);
-  }
-
-  tcgetattr(1, &ios_org);
-#endif
-  atexit(conf_cleanup);
-  init_dialog();
-
-  init_wsize();
-  conf(&rootmenu);
-
-  do {
-    stat = dialog_yesno(NULL,
-                       "Do you wish to save your new configuration?",
-                       5, 60);
-  } while (stat < 0);
-  end_dialog();
-
-  if (stat == 0) {
-    conf_write(filename);
-    printf("\n\n"
-          "*** End of configuration.\n"
-          "\n\n");
-  } else {
-    printf("\n\n"
-          "Your configuration changes were NOT saved."
-          "\n\n");
-  }
-  FREE(filename);
-
-  return 0;
-}

Deleted: GNUnet/src/setup/mconf.h
===================================================================
--- GNUnet/src/setup/mconf.h    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf.h    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,33 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/mconf.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef MCONF_H
-#define MCONF_H
-
-int mconf_main(int argc, char **argv);
-
-#endif

Deleted: GNUnet/src/setup/mconf_checklist.c
===================================================================
--- GNUnet/src/setup/mconf_checklist.c  2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_checklist.c  2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,376 +0,0 @@
-/*
- *  checklist.c -- implements the checklist box
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *     Stuart Herbert - address@hidden: radiolist extension
- *     Alessandro Rubini - address@hidden: merged the two
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_checklist.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "mconf_dialog.h"
-
-static int list_width, check_x, item_x, checkflag;
-
-/*
- * Print list item
- */
-static void
-print_item (WINDOW * win, const char *item, int status,
-           int choice, int selected)
-{
-    int i;
-
-    /* Clear 'residue' of last item */
-    wattrset (win, menubox_attr);
-    wmove (win, choice, 0);
-    for (i = 0; i < list_width; i++)
-       waddch (win, ' ');
-
-    wmove (win, choice, check_x);
-    wattrset (win, selected ? check_selected_attr : check_attr);
-    if (checkflag == FLAG_CHECK)
-       wprintw (win, "[%c]", status ? 'X' : ' ');
-    else
-       wprintw (win, "(%c)", status ? 'X' : ' ');
-
-    wattrset (win, selected ? tag_selected_attr : tag_attr);
-    mvwaddch(win, choice, item_x, item[0]);
-    wattrset (win, selected ? item_selected_attr : item_attr);
-    waddstr (win, (char *)item+1);
-    if (selected) {
-       wmove (win, choice, check_x+1);
-       wrefresh (win);
-    }
-}
-
-/*
- * Print the scroll indicators.
- */
-static void
-print_arrows (WINDOW * win, int choice, int item_no, int scroll,
-               int y, int x, int height)
-{
-    wmove(win, y, x);
-
-    if (scroll > 0) {
-       wattrset (win, uarrow_attr);
-       waddch (win, ACS_UARROW);
-       waddstr (win, "(-)");
-    }
-    else {
-       wattrset (win, menubox_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-    }
-
-   y = y + height + 1;
-   wmove(win, y, x);
-
-   if ((height < item_no) && (scroll + choice < item_no - 1)) {
-       wattrset (win, darrow_attr);
-       waddch (win, ACS_DARROW);
-       waddstr (win, "(+)");
-    }
-    else {
-       wattrset (win, menubox_border_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-   }
-}
-
-/*
- *  Display the termination buttons
- */
-static void
-print_buttons( WINDOW *dialog, int height, int width, int selected)
-{
-    int x = width / 2 - 11;
-    int y = height - 2;
-
-    print_button (dialog, "Select", y, x, selected == 0);
-    print_button (dialog, " Help ", y, x + 14, selected == 1);
-
-    wmove(dialog, y, x+1 + 14*selected);
-    wrefresh (dialog);
-}
-
-/*
- * Display a dialog box with a list of options that can be turned on or off
- * The `flag' parameter is used to select between radiolist and checklist.
- */
-int
-dialog_checklist (const char *title, const char *prompt, int height, int width,
-       int list_height, int item_no, struct dialog_list_item **items, int flag)
-       
-{
-    int i, x, y, box_x, box_y;
-    int key = 0, button = 0, choice = 0, scroll_i = 0, max_choice, *status;
-    WINDOW *dialog, *list;
-
-    checkflag = flag;
-
-    /* Allocate space for storing item on/off status */
-    if ((status = malloc (sizeof (int) * item_no)) == NULL) {
-       endwin ();
-       fprintf (stderr,
-                "\nCan't allocate memory in dialog_checklist().\n");
-       exit (-1);
-    }
-
-    /* Initializes status */
-    for (i = 0; i < item_no; i++) {
-       status[i] = items[i]->selected;
-       if (!choice && status[i])
-            choice = i;
-    }
-
-    max_choice = GNUNET_MIN (list_height, item_no);
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && (int)strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    list_width = width - 6;
-    box_y = height - list_height - 5;
-    box_x = (width - list_width) / 2 - 1;
-
-    /* create new window for the list */
-    list = subwin (dialog, list_height, list_width, y+box_y+1, x+box_x+1);
-
-    keypad (list, TRUE);
-
-    /* draw a box around the list items */
-    draw_box (dialog, box_y, box_x, list_height + 2, list_width + 2,
-             menubox_border_attr, menubox_attr);
-
-    /* Find length of longest item in order to center checklist */
-    check_x = 0;
-    for (i = 0; i < item_no; i++)
-      check_x = GNUNET_MAX (check_x, + (int) strlen (items[i]->name) + 4);
-
-    check_x = (list_width - check_x) / 2;
-    item_x = check_x + 4;
-
-    if (choice >= list_height) {
-       scroll_i = choice - list_height + 1;
-       choice -= scroll_i;
-    }
-
-    /* Print the list */
-    for (i = 0; i < max_choice; i++) {
-       print_item (list, items[scroll_i + i]->name,
-                   status[i+scroll_i], i, i == choice);
-    }
-
-    print_arrows(dialog, choice, item_no, scroll_i,
-                       box_y, box_x + check_x + 5, list_height);
-
-    print_buttons(dialog, height, width, 0);
-
-    wnoutrefresh (list);
-    wnoutrefresh (dialog);
-    doupdate ();
-
-    while (key != ESC) {
-       key = wgetch (dialog);
-
-       if (should_resize)
-               do_resize_dialog();
-
-       for (i = 0; i < max_choice; i++)
-            if (toupper(key) == toupper(items[scroll_i + i]->name[i]))
-                break;
-
-
-       if ( i < max_choice || key == KEY_UP || key == KEY_DOWN ||
-           key == '+' || key == '-' ) {
-           if (key == KEY_UP || key == '-') {
-               if (!choice) {
-                   if (!scroll_i)
-                       continue;
-                   /* Scroll list down */
-                   if (list_height > 1) {
-                       /* De-highlight current first item */
-                       print_item (list, items[scroll_i]->name,
-                                       status[scroll_i], 0, FALSE);
-                       scrollok (list, TRUE);
-                       wscrl (list, -1);
-                       scrollok (list, FALSE);
-                   }
-                   scroll_i--;
-                   print_item (list, items[scroll_i]->name,
-                               status[scroll_i], 0, TRUE);
-                   wnoutrefresh (list);
-
-                   print_arrows(dialog, choice, item_no, scroll_i,
-                               box_y, box_x + check_x + 5, list_height);
-
-                   wrefresh (dialog);
-
-                   continue;   /* wait for another key press */
-               } else
-                   i = choice - 1;
-           } else if (key == KEY_DOWN || key == '+') {
-               if (choice == max_choice - 1) {
-                   if (scroll_i + choice >= item_no - 1)
-                       continue;
-                   /* Scroll list up */
-                   if (list_height > 1) {
-                       /* De-highlight current last item before scrolling up */
-                       print_item (list, items[scroll_i + max_choice - 
1]->name,
-                                   status[scroll_i + max_choice - 1],
-                                   max_choice - 1, FALSE);
-                       scrollok (list, TRUE);
-                       scroll (list);
-                       scrollok (list, FALSE);
-                   }
-                   scroll_i++;
-                   print_item (list, items[scroll_i + max_choice - 1]->name,
-                               status[scroll_i + max_choice - 1],
-                               max_choice - 1, TRUE);
-                   wnoutrefresh (list);
-
-                   print_arrows(dialog, choice, item_no, scroll_i,
-                               box_y, box_x + check_x + 5, list_height);
-
-                   wrefresh (dialog);
-
-                   continue;   /* wait for another key press */
-               } else
-                   i = choice + 1;
-           }
-           if (i != choice) {
-               /* De-highlight current item */
-               print_item (list, items[scroll_i + choice]->name,
-                           status[scroll_i + choice], choice, FALSE);
-               /* Highlight new item */
-               choice = i;
-               print_item (list, items[scroll_i + choice]->name,
-                           status[scroll_i + choice], choice, TRUE);
-               wnoutrefresh (list);
-               wrefresh (dialog);
-           }
-           continue;           /* wait for another key press */
-       }
-       switch (key) {
-       case 'H':
-       case 'h':
-       case '?':
-           delwin (dialog);
-           free (status);
-           return 1;
-       case TAB:
-       case KEY_LEFT:
-       case KEY_RIGHT:
-           button = ((key == KEY_LEFT ? --button : ++button) < 0)
-                       ? 1 : (button > 1 ? 0 : button);
-
-           print_buttons(dialog, height, width, button);
-           wrefresh (dialog);
-           break;
-#ifdef KEY_RESIZE
-       case KEY_RESIZE:
-           button = -2;
-#endif
-       case 'S':
-       case 's':
-       case ' ':
-       case '\n':
-           if (!button) {
-               if (flag == FLAG_CHECK) {
-                   status[scroll_i + choice] = !status[scroll_i + choice];
-                   wmove (list, choice, check_x);
-                   wattrset (list, check_selected_attr);
-                   wprintw (list, "[%c]", status[scroll_i + choice] ? 'X' : ' 
');
-               } else {
-                   if (!status[scroll_i + choice]) {
-                       for (i = 0; i < item_no; i++)
-                           status[i] = 0;
-                       status[scroll_i + choice] = 1;
-                       for (i = 0; i < max_choice; i++)
-                           print_item (list, items[scroll_i + i]->name,
-                                       status[scroll_i + i], i, i == choice);
-                   }
-               }
-               wnoutrefresh (list);
-               wrefresh (dialog);
-
-               for (i = 0; i < item_no; i++) {
-                       items[i]->selected = status[i];
-               }
-            }
-           delwin (dialog);
-           free (status);
-           return button;
-       case 'X':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-
-       /* Now, update everything... */
-       doupdate ();
-    }
-
-
-    delwin (dialog);
-    free (status);
-    return -1;                 /* ESC pressed */
-}

Deleted: GNUnet/src/setup/mconf_colors.h
===================================================================
--- GNUnet/src/setup/mconf_colors.h     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_colors.h     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,167 +0,0 @@
-/*
- *  colors.h -- color attribute definitions
- *
- *  AUTHOR: Savio Lam (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_colors.h
- * @author Savio Lam
- * @author Nils Durner
- **/
-
-/*
- *   Default color definitions
- *
- *   *_FG = foreground
- *   *_BG = background
- *   *_HL = highlight?
- */
-#define SCREEN_FG                    COLOR_CYAN
-#define SCREEN_BG                    COLOR_BLUE
-#define SCREEN_HL                    TRUE
-
-#define SHADOW_FG                    COLOR_BLACK
-#define SHADOW_BG                    COLOR_BLACK
-#define SHADOW_HL                    TRUE
-
-#define DIALOG_FG                    COLOR_BLACK
-#define DIALOG_BG                    COLOR_WHITE
-#define DIALOG_HL                    FALSE
-
-#define TITLE_FG                     COLOR_YELLOW
-#define TITLE_BG                     COLOR_WHITE
-#define TITLE_HL                     TRUE
-
-#define BORDER_FG                    COLOR_WHITE
-#define BORDER_BG                    COLOR_WHITE
-#define BORDER_HL                    TRUE
-
-#define BUTTON_ACTIVE_FG             COLOR_WHITE
-#define BUTTON_ACTIVE_BG             COLOR_BLUE
-#define BUTTON_ACTIVE_HL             TRUE
-
-#define BUTTON_INACTIVE_FG           COLOR_BLACK
-#define BUTTON_INACTIVE_BG           COLOR_WHITE
-#define BUTTON_INACTIVE_HL           FALSE
-
-#define BUTTON_KEY_ACTIVE_FG         COLOR_WHITE
-#define BUTTON_KEY_ACTIVE_BG         COLOR_BLUE
-#define BUTTON_KEY_ACTIVE_HL         TRUE
-
-#define BUTTON_KEY_INACTIVE_FG       COLOR_RED
-#define BUTTON_KEY_INACTIVE_BG       COLOR_WHITE
-#define BUTTON_KEY_INACTIVE_HL       FALSE
-
-#define BUTTON_LABEL_ACTIVE_FG       COLOR_YELLOW
-#define BUTTON_LABEL_ACTIVE_BG       COLOR_BLUE
-#define BUTTON_LABEL_ACTIVE_HL       TRUE
-
-#define BUTTON_LABEL_INACTIVE_FG     COLOR_BLACK
-#define BUTTON_LABEL_INACTIVE_BG     COLOR_WHITE
-#define BUTTON_LABEL_INACTIVE_HL     TRUE
-
-#define INPUTBOX_FG                  COLOR_BLACK
-#define INPUTBOX_BG                  COLOR_WHITE
-#define INPUTBOX_HL                  FALSE
-
-#define INPUTBOX_BORDER_FG           COLOR_BLACK
-#define INPUTBOX_BORDER_BG           COLOR_WHITE
-#define INPUTBOX_BORDER_HL           FALSE
-
-#define SEARCHBOX_FG                 COLOR_BLACK
-#define SEARCHBOX_BG                 COLOR_WHITE
-#define SEARCHBOX_HL                 FALSE
-
-#define SEARCHBOX_TITLE_FG           COLOR_YELLOW
-#define SEARCHBOX_TITLE_BG           COLOR_WHITE
-#define SEARCHBOX_TITLE_HL           TRUE
-
-#define SEARCHBOX_BORDER_FG          COLOR_WHITE
-#define SEARCHBOX_BORDER_BG          COLOR_WHITE
-#define SEARCHBOX_BORDER_HL          TRUE
-
-#define POSITION_INDICATOR_FG        COLOR_YELLOW
-#define POSITION_INDICATOR_BG        COLOR_WHITE
-#define POSITION_INDICATOR_HL        TRUE
-
-#define MENUBOX_FG                   COLOR_BLACK
-#define MENUBOX_BG                   COLOR_WHITE
-#define MENUBOX_HL                   FALSE
-
-#define MENUBOX_BORDER_FG            COLOR_WHITE
-#define MENUBOX_BORDER_BG            COLOR_WHITE
-#define MENUBOX_BORDER_HL            TRUE
-
-#define ITEM_FG                      COLOR_BLACK
-#define ITEM_BG                      COLOR_WHITE
-#define ITEM_HL                      FALSE
-
-#define ITEM_SELECTED_FG             COLOR_WHITE
-#define ITEM_SELECTED_BG             COLOR_BLUE
-#define ITEM_SELECTED_HL             TRUE
-
-#define TAG_FG                       COLOR_YELLOW
-#define TAG_BG                       COLOR_WHITE
-#define TAG_HL                       TRUE
-
-#define TAG_SELECTED_FG              COLOR_YELLOW
-#define TAG_SELECTED_BG              COLOR_BLUE
-#define TAG_SELECTED_HL              TRUE
-
-#define TAG_KEY_FG                   COLOR_YELLOW
-#define TAG_KEY_BG                   COLOR_WHITE
-#define TAG_KEY_HL                   TRUE
-
-#define TAG_KEY_SELECTED_FG          COLOR_YELLOW
-#define TAG_KEY_SELECTED_BG          COLOR_BLUE
-#define TAG_KEY_SELECTED_HL          TRUE
-
-#define CHECK_FG                     COLOR_BLACK
-#define CHECK_BG                     COLOR_WHITE
-#define CHECK_HL                     FALSE
-
-#define CHECK_SELECTED_FG            COLOR_WHITE
-#define CHECK_SELECTED_BG            COLOR_BLUE
-#define CHECK_SELECTED_HL            TRUE
-
-#define UARROW_FG                    COLOR_GREEN
-#define UARROW_BG                    COLOR_WHITE
-#define UARROW_HL                    TRUE
-
-#define DARROW_FG                    COLOR_GREEN
-#define DARROW_BG                    COLOR_WHITE
-#define DARROW_HL                    TRUE
-
-/* End of default color definitions */
-
-#define C_ATTR(x,y)                  ((x ? A_BOLD : 0) | COLOR_PAIR((y)))
-#define COLOR_NAME_LEN               10
-#define COLOR_COUNT                  8
-
-/*
- * Global variables
- */
-
-typedef struct {
-    char name[COLOR_NAME_LEN];
-    int value;
-} color_names_st;
-
-extern color_names_st color_names[];
-extern int color_table[][3];

Deleted: GNUnet/src/setup/mconf_dialog.h
===================================================================
--- GNUnet/src/setup/mconf_dialog.h     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_dialog.h     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,217 +0,0 @@
-
-/*
- *  dialog.h -- common declarations for all dialog modules
- *
- *  AUTHOR: Savio Lam (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_dialog.h
- * @author Savio Lam
- * @author Nils Durner
- **/
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "platform.h"
-#include "bool.h"
-
-#ifdef CURSES_LOC
- #include CURSES_LOC
-#endif
-
-#if 1
-
-/*
- * Colors in ncurses 1.9.9e do not work properly since foreground and
- * background colors are OR'd rather than separately masked.  This version
- * of dialog was hacked to work with ncurses 1.9.9e, making it incompatible
- * with standard curses.  The simplest fix (to make this work with standard
- * curses) uses the wbkgdset() function, not used in the original hack.
- * Turn it off if we're building with 1.9.9e, since it just confuses things.
- */
-#if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
-#define OLD_NCURSES 1
-#undef  wbkgdset
-#define wbkgdset(w,p) /*nothing*/
-#else
-#define OLD_NCURSES 0
-#endif
-
-#define TR(params) _tracef params
-
-#define ESC 27
-#define TAB 9
-#define MAX_LEN 2048
-#define BUF_SIZE (10*1024)
-#define GNUNET_MIN(x,y) (x < y ? x : y)
-#define GNUNET_MAX(x,y) (x > y ? x : y)
-
-
-#ifndef ACS_ULCORNER
-#define ACS_ULCORNER '+'
-#endif
-#ifndef ACS_LLCORNER
-#define ACS_LLCORNER '+'
-#endif
-#ifndef ACS_URCORNER
-#define ACS_URCORNER '+'
-#endif
-#ifndef ACS_LRCORNER
-#define ACS_LRCORNER '+'
-#endif
-#ifndef ACS_HLINE
-#define ACS_HLINE '-'
-#endif
-#ifndef ACS_VLINE
-#define ACS_VLINE '|'
-#endif
-#ifndef ACS_LTEE
-#define ACS_LTEE '+'
-#endif
-#ifndef ACS_RTEE
-#define ACS_RTEE '+'
-#endif
-#ifndef ACS_UARROW
-#define ACS_UARROW '^'
-#endif
-#ifndef ACS_DARROW
-#define ACS_DARROW 'v'
-#endif
-
-/*
- * Attribute names
- */
-#define screen_attr                   attributes[0]
-#define shadow_attr                   attributes[1]
-#define dialog_attr                   attributes[2]
-#define title_attr                    attributes[3]
-#define border_attr                   attributes[4]
-#define button_active_attr            attributes[5]
-#define button_inactive_attr          attributes[6]
-#define button_key_active_attr        attributes[7]
-#define button_key_inactive_attr      attributes[8]
-#define button_label_active_attr      attributes[9]
-#define button_label_inactive_attr    attributes[10]
-#define inputbox_attr                 attributes[11]
-#define inputbox_border_attr          attributes[12]
-#define searchbox_attr                attributes[13]
-#define searchbox_title_attr          attributes[14]
-#define searchbox_border_attr         attributes[15]
-#define position_indicator_attr       attributes[16]
-#define menubox_attr                  attributes[17]
-#define menubox_border_attr           attributes[18]
-#define item_attr                     attributes[19]
-#define item_selected_attr            attributes[20]
-#define tag_attr                      attributes[21]
-#define tag_selected_attr             attributes[22]
-#define tag_key_attr                  attributes[23]
-#define tag_key_selected_attr         attributes[24]
-#define check_attr                    attributes[25]
-#define check_selected_attr           attributes[26]
-#define uarrow_attr                   attributes[27]
-#define darrow_attr                   attributes[28]
-
-/* number of attributes */
-#define ATTRIBUTE_COUNT               29
-
-/*
- * Global variables
- */
-extern bool use_colors;
-extern bool should_resize;
-
-extern chtype attributes[];
-#endif
-
-extern char *backtitle;
-
-struct dialog_list_item {
-       char *name;
-       int namelen;
-       char type;
-       void *data;
-       int selected; /* Set to 1 by dialog_*() function. */
-};
-
-/*
- * Function prototypes
- */
-
-void init_dialog (void);
-void init_wsize(void);
-void end_dialog (void);
-void resize_dialog(int rows, int cols);
-void do_resize_dialog(void);
-void dialog_clear (void);
-#ifdef CURSES_LOC
-void attr_clear (WINDOW * win, int height, int width, chtype attr);
-void color_setup (void);
-void print_autowrap (WINDOW * win, const char *prompt, int width, int y, int 
x);
-void print_button (WINDOW * win, const char *label, int y, int x, int 
selected);
-void draw_box (WINDOW * win, int y, int x, int height, int width, chtype box,
-               chtype border);
-void draw_shadow (WINDOW * win, int y, int x, int height, int width);
-#endif
-
-int first_alpha (const char *string, const char *exempt);
-int dialog_yesno (const char *title, const char *prompt, int height, int 
width);
-int dialog_msgbox (const char *title, const char *prompt, int height,
-               int width, int pause);
-int dialog_textbox (const char *title, const char *file, int height, int 
width);
-int dialog_menu (const char *title, const char *prompt, int height, int width,
-               int menu_height, const char choice_type, const void *choice_ptr,
-               int item_no, struct dialog_list_item **items);
-int dialog_checklist (const char *title, const char *prompt, int height,
-               int width, int list_height, int item_no,
-               struct dialog_list_item **items, int flag);
-extern char dialog_input_result[];
-int dialog_inputbox (const char *title, const char *prompt, int height,
-               int width, const char *init);
-
-struct dialog_list_item *first_sel_item(int item_no,
-               struct dialog_list_item **items);
-
-void show_textbox(const char *title, const char *text, int r, int c);
-void show_helptext(const char *title, const char *text);
-
-/*
- * This is the base for fictitious keys, which activate
- * the buttons.
- *
- * Mouse-generated keys are the following:
- *   -- the first 32 are used as numbers, in addition to '0'-'9'
- *   -- the lowercase are used to signal mouse-enter events (M_EVENT + 'o')
- *   -- uppercase chars are used to invoke the button (M_EVENT + 'O')
- */
-#ifdef CURSES_LOC
-#define M_EVENT (KEY_MAX+1)
-#endif
-
-
-/*
- * The `flag' parameter in checklist is used to select between
- * radiolist and checklist
- */
-#define FLAG_CHECK 1
-#define FLAG_RADIO 0

Deleted: GNUnet/src/setup/mconf_inputbox.c
===================================================================
--- GNUnet/src/setup/mconf_inputbox.c   2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_inputbox.c   2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,257 +0,0 @@
-/*
- *  inputbox.c -- implements the input box
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_inputbox.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "mconf_dialog.h"
-
-char dialog_input_result[MAX_LEN + 1];
-
-/*
- *  Print the termination buttons
- */
-static void
-print_buttons(WINDOW *dialog, int height, int width, int selected)
-{
-    int x = width / 2 - 11;
-    int y = height - 2;
-
-    print_button (dialog, "  Ok  ", y, x, selected==0);
-    print_button (dialog, " Help ", y, x + 14, selected==1);
-
-    wmove(dialog, y, x+1+14*selected);
-    wrefresh(dialog);
-}
-
-/*
- * Display a dialog box for inputing a string
- */
-int
-dialog_inputbox (const char *title, const char *prompt, int height, int width,
-                const char *init)
-{
-    int i, x, y, box_y, box_x, box_width;
-    int input_x = 0, scroll = 0, key = 0, button = -1;
-    char *instr = dialog_input_result;
-    WINDOW *dialog;
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= (unsigned int) width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    /* Draw the input field box */
-    box_width = width - 6;
-    getyx (dialog, y, x);
-    box_y = y + 2;
-    box_x = (width - box_width) / 2;
-    draw_box (dialog, y + 1, box_x - 1, 3, box_width + 2,
-             border_attr, dialog_attr);
-
-    print_buttons(dialog, height, width, 0);
-
-    /* Set up the initial value */
-    wmove (dialog, box_y, box_x);
-    wattrset (dialog, inputbox_attr);
-
-    if (!init)
-       instr[0] = '\0';
-    else
-       strcpy (instr, init);
-
-    input_x = strlen (instr);
-
-    if (input_x >= box_width) {
-       scroll = input_x - box_width + 1;
-       input_x = box_width - 1;
-       for (i = 0; i < box_width - 1; i++)
-           waddch (dialog, instr[scroll + i]);
-    } else
-       waddstr (dialog, instr);
-
-    wmove (dialog, box_y, box_x + input_x);
-
-    wrefresh (dialog);
-
-    while (key != ESC) {
-       key = wgetch (dialog);
-
-       if (should_resize)
-               do_resize_dialog();
-
-       if (button == -1) {     /* Input box selected */
-           switch (key) {
-           case TAB:
-           case KEY_UP:
-           case KEY_DOWN:
-               break;
-           case KEY_LEFT:
-               continue;
-           case KEY_RIGHT:
-               continue;
-           case KEY_BACKSPACE:
-           case 127:
-#ifdef MINGW
-                       case 8:
-#endif
-               if (input_x || scroll) {
-                   wattrset (dialog, inputbox_attr);
-                   if (!input_x) {
-                       scroll = scroll < box_width - 1 ?
-                           0 : scroll - (box_width - 1);
-                       wmove (dialog, box_y, box_x);
-                       for (i = 0; i < box_width; i++)
-                           waddch (dialog, instr[scroll + input_x + i] ?
-                                   instr[scroll + input_x + i] : ' ');
-                       input_x = strlen (instr) - scroll;
-                   } else
-                       input_x--;
-                   instr[scroll + input_x] = '\0';
-                   mvwaddch (dialog, box_y, input_x + box_x, ' ');
-                   wmove (dialog, box_y, input_x + box_x);
-                   wrefresh (dialog);
-               }
-               continue;
-           default:
-               if (key < 0x100 && isprint (key)) {
-                   if (scroll + input_x < MAX_LEN) {
-                       wattrset (dialog, inputbox_attr);
-                       instr[scroll + input_x] = key;
-                       instr[scroll + input_x + 1] = '\0';
-                       if (input_x == box_width - 1) {
-                           scroll++;
-                           wmove (dialog, box_y, box_x);
-                           for (i = 0; i < box_width - 1; i++)
-                               waddch (dialog, instr[scroll + i]);
-                       } else {
-                           wmove (dialog, box_y, input_x++ + box_x);
-                           waddch (dialog, key);
-                       }
-                       wrefresh (dialog);
-                   } else
-                       flash ();       /* Alarm user about overflow */
-                   continue;
-               }
-           }
-       }
-       switch (key) {
-       case 'O':
-       case 'o':
-           delwin (dialog);
-           return 0;
-       case 'H':
-       case 'h':
-           delwin (dialog);
-           return 1;
-       case KEY_UP:
-       case KEY_LEFT:
-           switch (button) {
-           case -1:
-               button = 1;     /* Indicates "Cancel" button is selected */
-               print_buttons(dialog, height, width, 1);
-               break;
-           case 0:
-               button = -1;    /* Indicates input box is selected */
-               print_buttons(dialog, height, width, 0);
-               wmove (dialog, box_y, box_x + input_x);
-               wrefresh (dialog);
-               break;
-           case 1:
-               button = 0;     /* Indicates "OK" button is selected */
-               print_buttons(dialog, height, width, 0);
-               break;
-           }
-           break;
-       case TAB:
-       case KEY_DOWN:
-       case KEY_RIGHT:
-           switch (button) {
-           case -1:
-               button = 0;     /* Indicates "OK" button is selected */
-               print_buttons(dialog, height, width, 0);
-               break;
-           case 0:
-               button = 1;     /* Indicates "Cancel" button is selected */
-               print_buttons(dialog, height, width, 1);
-               break;
-           case 1:
-               button = -1;    /* Indicates input box is selected */
-               print_buttons(dialog, height, width, 0);
-               wmove (dialog, box_y, box_x + input_x);
-               wrefresh (dialog);
-               break;
-           }
-           break;
-#ifdef KEY_RESIZE
-       case KEY_RESIZE:
-           button = -2;
-#endif
-       case ' ':
-       case '\n':
-           delwin (dialog);
-           return (button == -1 ? 0 : button);
-       case 'X':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    return -1;                 /* ESC pressed */
-}

Deleted: GNUnet/src/setup/mconf_menubox.c
===================================================================
--- GNUnet/src/setup/mconf_menubox.c    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_menubox.c    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,450 +0,0 @@
-/*
- *  menubox.c -- implements the menu box
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*
- *  Changes by Clifford Wolf (address@hidden)
- *
- *  [ 1998-06-13 ]
- *
- *    *)  A bugfix for the Page-Down problem
- *
- *    *)  Formerly when I used Page Down and Page Up, the cursor would be set
- *        to the first position in the menu box.  Now lxdialog is a bit
- *        smarter and works more like other menu systems (just have a look at
- *        it).
- *
- *    *)  Formerly if I selected something my scrolling would be broken because
- *        lxdialog is re-invoked by the Menuconfig shell script, can't
- *        remember the last scrolling position, and just sets it so that the
- *        cursor is at the bottom of the box.  Now it writes the temporary file
- *        lxdialog.scrltmp which contains this information. The file is
- *        deleted by lxdialog if the user leaves a submenu or enters a new
- *        one, but it would be nice if Menuconfig could make another "rm -f"
- *        just to be sure.  Just try it out - you will recognise a difference!
- *
- *  [ 1998-06-14 ]
- *
- *    *)  Now lxdialog is crash-safe against broken "lxdialog.scrltmp" files
- *        and menus change their size on the fly.
- *
- *    *)  If for some reason the last scrolling position is not saved by
- *        lxdialog, it sets the scrolling so that the selected item is in the
- *        middle of the menu box, not at the bottom.
- *
- * 02 January 1999, Michael Elizabeth Chastain (address@hidden)
- * Reset 'scroll' to 0 if the value from lxdialog.scrltmp is bogus.
- * This fixes a bug in Menuconfig where using ' ' to descend into menus
- * would leave mis-synchronized lxdialog.scrltmp files lying around,
- * fscanf would read in 'scroll', and eventually that value would get used.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_menubox.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "mconf_dialog.h"
-
-static int menu_width, item_x;
-
-/*
- * Print menu item
- */
-static void
-print_item (WINDOW * win, const char *item, int choice, int selected, int 
hotkey)
-{
-    int j;
-    char menu_item[menu_width+1];
-
-    strncpy(menu_item, item, menu_width);
-    menu_item[menu_width] = 0;
-    j = first_alpha(menu_item, "YyNnMm");
-
-    /* Clear 'residue' of last item */
-    wattrset (win, menubox_attr);
-    wmove (win, choice, 0);
-#if OLD_NCURSES
-    {
-        int i;
-        for (i = 0; i < menu_width; i++)
-           waddch (win, ' ');
-    }
-#else
-    wclrtoeol(win);
-#endif
-    wattrset (win, selected ? item_selected_attr : item_attr);
-    mvwaddstr (win, choice, item_x, menu_item);
-    if (hotkey) {
-       wattrset (win, selected ? tag_key_selected_attr : tag_key_attr);
-       mvwaddch(win, choice, item_x+j, menu_item[j]);
-    }
-    if (selected) {
-       wmove (win, choice, item_x+1);
-       wnoutrefresh (win);
-    }
-}
-
-/*
- * Print the scroll indicators.
- */
-static void
-print_arrows (WINDOW * win, int item_no, int scroll,
-               int y, int x, int height)
-{
-    int cur_y, cur_x;
-
-    getyx(win, cur_y, cur_x);
-
-    wmove(win, y, x);
-
-    if (scroll > 0) {
-       wattrset (win, uarrow_attr);
-       waddch (win, ACS_UARROW);
-       waddstr (win, "(-)");
-    }
-    else {
-       wattrset (win, menubox_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-    }
-
-   y = y + height + 1;
-   wmove(win, y, x);
-
-   if ((height < item_no) && (scroll + height < item_no)) {
-       wattrset (win, darrow_attr);
-       waddch (win, ACS_DARROW);
-       waddstr (win, "(+)");
-    }
-    else {
-       wattrset (win, menubox_border_attr);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-       waddch (win, ACS_HLINE);
-   }
-
-   wmove(win, cur_y, cur_x);
-}
-
-/*
- * Display the termination buttons.
- */
-static void
-print_buttons (WINDOW *win, int height, int width, int selected)
-{
-    int x = width / 2 - 16;
-    int y = height - 2;
-
-    print_button (win, "Select", y, x, selected == 0);
-    print_button (win, " Exit ", y, x + 12, selected == 1);
-    print_button (win, " Help ", y, x + 24, selected == 2);
-
-    wmove(win, y, x+1+12*selected);
-    wrefresh (win);
-}
-
-/*
- * Display a menu for choosing among a number of options
- */
-int
-dialog_menu (const char *title, const char *prompt, int height, int width,
-               int menu_height, const char choice_type, const void *choice_ptr,
-               int item_no, struct dialog_list_item ** items)
-{
-    int i, j, x, y, box_x, box_y;
-    int key = 0, button = 0, scroll_i = 0, choice = 0, first_item = 0, 
max_choice;
-    WINDOW *dialog, *menu;
-    FILE *f;
-
-    max_choice = GNUNET_MIN (menu_height, item_no);
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height - 3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    wbkgdset (dialog, dialog_attr & A_COLOR);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && (int) strlen(title) >= width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    menu_width = width - 6;
-    box_y = height - menu_height - 5;
-    box_x = (width - menu_width) / 2 - 1;
-
-    /* create new window for the menu */
-    menu = subwin (dialog, menu_height, menu_width,
-               y + box_y + 1, x + box_x + 1);
-    keypad (menu, TRUE);
-
-    /* draw a box around the menu items */
-    draw_box (dialog, box_y, box_x, menu_height + 2, menu_width + 2,
-             menubox_border_attr, menubox_attr);
-
-    /*
-     * Find length of longest item in order to center menu.
-     * Set 'choice' to default item.
-     */
-    item_x = 0;
-    for (i = 0; i < item_no; i++) {
-      item_x = GNUNET_MAX (item_x, GNUNET_MIN(menu_width, (int) strlen 
(items[i]->name) + 2));
-       if (choice_type == items[i]->type && choice_ptr == items[i]->data)
-               choice = i;
-    }
-
-    item_x = (menu_width - item_x) / 2;
-
-    /* get the scroll info from the temp file */
-    if ( (f=FOPEN("/tmp/lxdialog.scrltmp","r")) != NULL ) {
-       if ( (fscanf(f,"%d\n",&scroll_i) == 1) && (scroll_i <= choice) &&
-            (scroll_i+max_choice > choice) && (scroll_i >= 0) &&
-            (scroll_i+max_choice <= item_no) ) {
-           first_item = scroll_i;
-           choice = choice - scroll_i;
-           fclose(f);
-       } else {
-           scroll_i=0;
-           REMOVE("/tmp/lxdialog.scrltmp");
-           fclose(f);
-           f=NULL;
-       }
-    }
-    if ( (choice >= max_choice) || (f==NULL && choice >= max_choice/2) ) {
-       if (choice >= item_no-max_choice/2)
-           scroll_i = first_item = item_no-max_choice;
-       else
-           scroll_i = first_item = choice - max_choice/2;
-       choice = choice - scroll_i;
-    }
-
-    /* Print the menu */
-    for (i=0; i < max_choice; i++) {
-       print_item (menu, items[first_item + i]->name, i, i == choice,
-                    (items[first_item + i]->type != ':'));
-    }
-
-    wnoutrefresh (menu);
-
-    print_arrows(dialog, item_no, scroll_i,
-                box_y, box_x+item_x+1, menu_height);
-
-    print_buttons (dialog, height, width, 0);
-    wmove (menu, choice, item_x+1);
-    wrefresh (menu);
-
-    while (key != ESC) {
-       key = wgetch(menu);
-
-       if (should_resize)
-               do_resize_dialog();
-
-       if (key < 256 && isalpha(key)) key = tolower(key);
-
-       if (strchr("ynm", key))
-               i = max_choice;
-       else {
-        for (i = choice+1; i < max_choice; i++) {
-               j = first_alpha(items[scroll_i+i]->name, "YyNnMm");
-               if (key == tolower(items[scroll_i+i]->name[j]))
-                       break;
-       }
-       if (i == max_choice)
-                       for (i = 0; i < max_choice; i++) {
-                       j = first_alpha(items[scroll_i+i]->name, "YyNnMm");
-                       if (key == tolower(items[scroll_i+i]->name[j]))
-                               break;
-               }
-       }
-
-       if (i < max_choice ||
-            key == KEY_UP || key == KEY_DOWN ||
-            key == '-' || key == '+' ||
-            key == KEY_PPAGE || key == KEY_NPAGE) {
-
-            print_item (menu, items[scroll_i+choice]->name, choice, FALSE,
-                       (items[scroll_i+choice]->type != ':'));
-
-           if (key == KEY_UP || key == '-') {
-                if (choice < 2 && scroll_i) {
-                   /* Scroll menu down */
-                    scrollok (menu, TRUE);
-                    wscrl (menu, -1);
-                    scrollok (menu, FALSE);
-
-                    scroll_i--;
-
-                    print_item (menu, items[scroll_i]->name, 0, FALSE,
-                               (items[scroll_i]->type != ':'));
-               } else
-                   choice = GNUNET_MAX(choice - 1, 0);
-
-           } else if (key == KEY_DOWN || key == '+')  {
-
-               print_item (menu, items[scroll_i+choice]->name, choice, FALSE,
-                                (items[scroll_i+choice]->type != ':'));
-
-                if ((choice > max_choice-3) &&
-                    (scroll_i + max_choice < item_no)
-                   ) {
-                   /* Scroll menu up */
-                   scrollok (menu, TRUE);
-                    scroll (menu);
-                    scrollok (menu, FALSE);
-
-                    scroll_i++;
-
-                    print_item (menu, items[scroll_i + max_choice - 1]->name,
-                               max_choice-1, FALSE,
-                               (items[scroll_i + max_choice - 1]->type != 
':'));
-                } else
-                    choice = GNUNET_MIN(choice+1, max_choice-1);
-
-           } else if (key == KEY_PPAGE) {
-               scrollok (menu, TRUE);
-                for (i=0; (i < max_choice); i++) {
-                    if (scroll_i > 0) {
-                       wscrl (menu, -1);
-                       scroll_i--;
-                       print_item (menu, items[scroll_i]->name, 0, FALSE,
-                       (items[scroll_i]->type != ':'));
-                    } else {
-                        if (choice > 0)
-                            choice--;
-                    }
-                }
-                scrollok (menu, FALSE);
-
-            } else if (key == KEY_NPAGE) {
-                for (i=0; (i < max_choice); i++) {
-                    if (scroll_i+max_choice < item_no) {
-                       scrollok (menu, TRUE);
-                       scroll(menu);
-                       scrollok (menu, FALSE);
-                       scroll_i++;
-                       print_item (menu, items[scroll_i + max_choice - 
1]->name,
-                                   max_choice-1, FALSE,
-                                   (items[scroll_i + max_choice - 1]->type != 
':'));
-                   } else {
-                       if (choice+1 < max_choice)
-                           choice++;
-                   }
-                }
-
-            } else
-                choice = i;
-
-            print_item (menu, items[scroll_i + choice]->name, choice, TRUE,
-                       (items[scroll_i + choice]->type != ':'));
-
-            print_arrows(dialog, item_no, scroll_i,
-                         box_y, box_x+item_x+1, menu_height);
-
-            wnoutrefresh (dialog);
-            wrefresh (menu);
-
-           continue;           /* wait for another key press */
-        }
-
-       switch (key) {
-       case KEY_LEFT:
-       case TAB:
-       case KEY_RIGHT:
-           button = ((key == KEY_LEFT ? --button : ++button) < 0)
-                       ? 2 : (button > 2 ? 0 : button);
-
-           print_buttons(dialog, height, width, button);
-           wrefresh (menu);
-           break;
-#ifdef KEY_RESIZE
-       case KEY_RESIZE:
-#endif
-       case 's':
-       case 'y':
-       case 'n':
-       case 'm':
-       case ' ':
-           /* save scroll info */
-           if ( (f=FOPEN("/tmp/lxdialog.scrltmp","w")) != NULL ) {
-               fprintf(f,"%d\n",scroll_i);
-               fclose(f);
-           }
-           delwin (dialog);
-           items[scroll_i + choice]->selected = 1;
-            switch (key) {
-            case 's': return 3;
-            case 'y': return 3;
-            case 'n': return 4;
-            case 'm': return 5;
-            case ' ': return 6;
-            }
-           return -2;
-       case 'h':
-       case '?':
-           button = 2;
-       case '\n':
-           delwin (dialog);
-           items[scroll_i + choice]->selected = 1;
-
-           REMOVE("/tmp/lxdialog.scrltmp");
-           return button;
-       case 'e':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    REMOVE("/tmp/lxdialog.scrltmp");
-    return -1;                 /* ESC pressed */
-}

Deleted: GNUnet/src/setup/mconf_msgbox.c
===================================================================
--- GNUnet/src/setup/mconf_msgbox.c     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_msgbox.c     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,99 +0,0 @@
-/*
- *  msgbox.c -- implements the message box and info box
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_msgbox.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "mconf_dialog.h"
-
-/*
- * Display a message box. Program will pause and display an "OK" button
- * if the parameter 'pause' is non-zero.
- */
-int
-dialog_msgbox (const char *title, const char *prompt, int height, int width,
-               int pause)
-{
-    int i, x, y, key = 0;
-    WINDOW *dialog;
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-
-    if (title != NULL && strlen(title) >= (unsigned int) width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 2);
-
-    if (pause) {
-       wattrset (dialog, border_attr);
-       mvwaddch (dialog, height - 3, 0, ACS_LTEE);
-       for (i = 0; i < width - 2; i++)
-           waddch (dialog, ACS_HLINE);
-       wattrset (dialog, dialog_attr);
-       waddch (dialog, ACS_RTEE);
-
-       print_button (dialog, "  Ok  ",
-                     height - 2, width / 2 - 4, TRUE);
-
-       wrefresh (dialog);
-       while (key != ESC && key != '\n' && key != ' ' &&
-               key != 'O' && key != 'o' && key != 'X' && key != 'x'
-#ifdef KEY_RESIZE
-              && key != KEY_RESIZE
-#endif
-              ) {
-           key = wgetch (dialog);
-           if (should_resize)
-               do_resize_dialog ();
-       }
-    } else {
-       key = '\n';
-       wrefresh (dialog);
-    }
-
-    delwin (dialog);
-    return key == ESC ? -1 : 0;
-}

Deleted: GNUnet/src/setup/mconf_textbox.c
===================================================================
--- GNUnet/src/setup/mconf_textbox.c    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_textbox.c    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,576 +0,0 @@
-/*
- *  textbox.c -- implements the text box
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_textbox.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "platform.h"
-#include "gnunet_util.h"
-#include "mconf_dialog.h"
-
-static void back_lines (int n);
-static void print_page (WINDOW * win, int height, int width);
-static void print_line (WINDOW * win, int row, int width);
-static char *get_line (void);
-static void print_position (WINDOW * win, int height, int width);
-
-static int hscroll, fd, file_size, bytes_read;
-static int begin_reached = 1, end_reached, page_length;
-static char *buf, *page;
-
-/*
- * Display text from a file in a dialog box.
- */
-int
-dialog_textbox (const char *title, const char *file, int height, int width)
-{
-    int i, x, y, cur_x, cur_y, fpos, key = 0;
-    int passed_end;
-    char search_term[MAX_LEN + 1];
-    WINDOW *dialog, *text;
-
-    search_term[0] = '\0';     /* no search term entered yet */
-
-    /* Open input file for reading */
-    if ((fd = fileopen(file, O_RDONLY)) == -1) {
-       endwin ();
-       fprintf (stderr,
-                "\nCan't open input file in dialog_textbox().\n");
-       exit (-1);
-    }
-    /* Get file size. Actually, 'file_size' is the real file size - 1,
-       since it's only the last byte offset from the beginning */
-    if ((file_size = lseek (fd, 0, SEEK_END)) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError getting file size in dialog_textbox().\n");
-       exit (-1);
-    }
-    /* Restore file pointer to beginning of file after getting file size */
-    if (lseek (fd, 0, SEEK_SET) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError moving file pointer in dialog_textbox().\n");
-       exit (-1);
-    }
-    /* Allocate space for read buffer */
-    if ((buf = malloc (BUF_SIZE + 1)) == NULL) {
-       endwin ();
-       fprintf (stderr, "\nCan't allocate memory in dialog_textbox().\n");
-       exit (-1);
-    }
-    if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError reading file in dialog_textbox().\n");
-       exit (-1);
-    }
-    buf[bytes_read] = '\0';    /* mark end of valid data */
-    page = buf;                        /* page is pointer to start of page to 
be displayed */
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    /* Create window for text region, used for scrolling text */
-    text = subwin (dialog, height - 4, width - 2, y + 1, x + 1);
-    wattrset (text, dialog_attr);
-    wbkgdset (text, dialog_attr & A_COLOR);
-
-    keypad (text, TRUE);
-
-    /* register the new window, along with its borders */
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    wbkgdset (dialog, dialog_attr & A_COLOR);
-    waddch (dialog, ACS_RTEE);
-
-    if (title != NULL && strlen(title) >= (unsigned int)width-2 ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-    print_button (dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
-    wnoutrefresh (dialog);
-    getyx (dialog, cur_y, cur_x);      /* Save cursor position */
-
-    /* Print first page of text */
-    attr_clear (text, height - 4, width - 2, dialog_attr);
-    print_page (text, height - 4, width - 2);
-    print_position (dialog, height, width);
-    wmove (dialog, cur_y, cur_x);      /* Restore cursor position */
-    wrefresh (dialog);
-
-    while ((key != ESC) && (key != '\n')) {
-       key = wgetch (dialog);
-
-       if (should_resize)
-               do_resize_dialog();
-
-       switch (key) {
-#ifdef KEY_RESIZE
-       case KEY_RESIZE:
-#endif
-       case 'E':               /* Exit */
-       case 'e':
-       case 'X':
-       case 'x':
-           delwin (dialog);
-           free (buf);
-           close (fd);
-#ifdef KEY_RESIZE
-           return key == KEY_RESIZE ? -2 : 0;
-#else
-           return 0;
-#endif
-       case 'g':               /* First page */
-       case KEY_HOME:
-           if (!begin_reached) {
-               begin_reached = 1;
-               /* First page not in buffer? */
-               if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                     "\nError moving file pointer in dialog_textbox().\n");
-                   exit (-1);
-               }
-               if (fpos > bytes_read) {        /* Yes, we have to read it in */
-                   if (lseek (fd, 0, SEEK_SET) == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError moving file pointer in "
-                                "dialog_textbox().\n");
-                       exit (-1);
-                   }
-                   if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                       endwin ();
-                       fprintf (stderr,
-                            "\nError reading file in dialog_textbox().\n");
-                       exit (-1);
-                   }
-                   buf[bytes_read] = '\0';
-               }
-               page = buf;
-               print_page (text, height - 4, width - 2);
-               print_position (dialog, height, width);
-               wmove (dialog, cur_y, cur_x);   /* Restore cursor position */
-               wrefresh (dialog);
-           }
-           break;
-       case 'G':               /* Last page */
-       case KEY_END:
-
-           end_reached = 1;
-           /* Last page not in buffer? */
-           if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-               endwin ();
-               fprintf (stderr,
-                     "\nError moving file pointer in dialog_textbox().\n");
-               exit (-1);
-           }
-           if (fpos < file_size) {     /* Yes, we have to read it in */
-               if (lseek (fd, -BUF_SIZE, SEEK_END) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                     "\nError moving file pointer in dialog_textbox().\n");
-                   exit (-1);
-               }
-               if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                            "\nError reading file in dialog_textbox().\n");
-                   exit (-1);
-               }
-               buf[bytes_read] = '\0';
-           }
-           page = buf + bytes_read;
-           back_lines (height - 4);
-           print_page (text, height - 4, width - 2);
-           print_position (dialog, height, width);
-           wmove (dialog, cur_y, cur_x);       /* Restore cursor position */
-           wrefresh (dialog);
-           break;
-       case 'K':               /* Previous line */
-       case 'k':
-       case KEY_UP:
-           if (!begin_reached) {
-               back_lines (page_length + 1);
-
-               /* We don't call print_page() here but use scrolling to ensure
-                  faster screen update. However, 'end_reached' and
-                  'page_length' should still be updated, and 'page' should
-                  point to start of next page. This is done by calling
-                  get_line() in the following 'for' loop. */
-               scrollok (text, TRUE);
-               wscrl (text, -1);       /* Scroll text region down one line */
-               scrollok (text, FALSE);
-               page_length = 0;
-               passed_end = 0;
-               for (i = 0; i < height - 4; i++) {
-                   if (!i) {
-                       /* print first line of page */
-                       print_line (text, 0, width - 2);
-                       wnoutrefresh (text);
-                   } else
-                       /* Called to update 'end_reached' and 'page' */
-                       get_line ();
-                   if (!passed_end)
-                       page_length++;
-                   if (end_reached && !passed_end)
-                       passed_end = 1;
-               }
-
-               print_position (dialog, height, width);
-               wmove (dialog, cur_y, cur_x);   /* Restore cursor position */
-               wrefresh (dialog);
-           }
-           break;
-       case 'B':               /* Previous page */
-       case 'b':
-       case KEY_PPAGE:
-           if (begin_reached)
-               break;
-           back_lines (page_length + height - 4);
-           print_page (text, height - 4, width - 2);
-           print_position (dialog, height, width);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case 'J':               /* Next line */
-       case 'j':
-       case KEY_DOWN:
-           if (!end_reached) {
-               begin_reached = 0;
-               scrollok (text, TRUE);
-               scroll (text);  /* Scroll text region up one line */
-               scrollok (text, FALSE);
-               print_line (text, height - 5, width - 2);
-               wnoutrefresh (text);
-               print_position (dialog, height, width);
-               wmove (dialog, cur_y, cur_x);   /* Restore cursor position */
-               wrefresh (dialog);
-           }
-           break;
-       case KEY_NPAGE:         /* Next page */
-       case ' ':
-           if (end_reached)
-               break;
-
-           begin_reached = 0;
-           print_page (text, height - 4, width - 2);
-           print_position (dialog, height, width);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case '0':               /* Beginning of line */
-       case 'H':               /* Scroll left */
-       case 'h':
-       case KEY_LEFT:
-           if (hscroll <= 0)
-               break;
-
-           if (key == '0')
-               hscroll = 0;
-           else
-               hscroll--;
-           /* Reprint current page to scroll horizontally */
-           back_lines (page_length);
-           print_page (text, height - 4, width - 2);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case 'L':               /* Scroll right */
-       case 'l':
-       case KEY_RIGHT:
-           if (hscroll >= MAX_LEN)
-               break;
-           hscroll++;
-           /* Reprint current page to scroll horizontally */
-           back_lines (page_length);
-           print_page (text, height - 4, width - 2);
-           wmove (dialog, cur_y, cur_x);
-           wrefresh (dialog);
-           break;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    free (buf);
-    close (fd);
-    return 1;                  /* ESC pressed */
-}
-
-/*
- * Go back 'n' lines in text file. Called by dialog_textbox().
- * 'page' will be updated to point to the desired line in 'buf'.
- */
-static void
-back_lines (int n)
-{
-    int i, fpos;
-
-    begin_reached = 0;
-    /* We have to distinguish between end_reached and !end_reached
-       since at end of file, the line is not ended by a '\n'.
-       The code inside 'if' basically does a '--page' to move one
-       character backward so as to skip '\n' of the previous line */
-    if (!end_reached) {
-       /* Either beginning of buffer or beginning of file reached? */
-       if (page == buf) {
-           if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-               endwin ();
-               fprintf (stderr, "\nError moving file pointer in "
-                        "back_lines().\n");
-               exit (-1);
-           }
-           if (fpos > bytes_read) {    /* Not beginning of file yet */
-               /* We've reached beginning of buffer, but not beginning of
-                  file yet, so read previous part of file into buffer.
-                  Note that we only move backward for BUF_SIZE/2 bytes,
-                  but not BUF_SIZE bytes to avoid re-reading again in
-                  print_page() later */
-               /* Really possible to move backward BUF_SIZE/2 bytes? */
-               if (fpos < BUF_SIZE / 2 + bytes_read) {
-                   /* No, move less then */
-                   if (lseek (fd, 0, SEEK_SET) == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError moving file pointer in "
-                                "back_lines().\n");
-                       exit (-1);
-                   }
-                   page = buf + fpos - bytes_read;
-               } else {        /* Move backward BUF_SIZE/2 bytes */
-                   if (lseek (fd, -(BUF_SIZE / 2 + bytes_read), SEEK_CUR)
-                       == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError moving file pointer "
-                                "in back_lines().\n");
-                       exit (-1);
-                   }
-                   page = buf + BUF_SIZE / 2;
-               }
-               if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                   endwin ();
-                   fprintf (stderr, "\nError reading file in back_lines().\n");
-                   exit (-1);
-               }
-               buf[bytes_read] = '\0';
-           } else {            /* Beginning of file reached */
-               begin_reached = 1;
-               return;
-           }
-       }
-       if (*(--page) != '\n') {        /* '--page' here */
-           /* Something's wrong... */
-           endwin ();
-           fprintf (stderr, "\nInternal error in back_lines().\n");
-           exit (-1);
-       }
-    }
-    /* Go back 'n' lines */
-    for (i = 0; i < n; i++)
-       do {
-           if (page == buf) {
-               if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-                   endwin ();
-                   fprintf (stderr,
-                         "\nError moving file pointer in back_lines().\n");
-                   exit (-1);
-               }
-               if (fpos > bytes_read) {
-                   /* Really possible to move backward BUF_SIZE/2 bytes? */
-                   if (fpos < BUF_SIZE / 2 + bytes_read) {
-                       /* No, move less then */
-                       if (lseek (fd, 0, SEEK_SET) == -1) {
-                           endwin ();
-                           fprintf (stderr, "\nError moving file pointer "
-                                    "in back_lines().\n");
-                           exit (-1);
-                       }
-                       page = buf + fpos - bytes_read;
-                   } else {    /* Move backward BUF_SIZE/2 bytes */
-                       if (lseek (fd, -(BUF_SIZE / 2 + bytes_read),
-                                  SEEK_CUR) == -1) {
-                           endwin ();
-                           fprintf (stderr, "\nError moving file pointer"
-                                    " in back_lines().\n");
-                           exit (-1);
-                       }
-                       page = buf + BUF_SIZE / 2;
-                   }
-                   if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                       endwin ();
-                       fprintf (stderr, "\nError reading file in "
-                                "back_lines().\n");
-                       exit (-1);
-                   }
-                   buf[bytes_read] = '\0';
-               } else {        /* Beginning of file reached */
-                   begin_reached = 1;
-                   return;
-               }
-           }
-       } while (*(--page) != '\n');
-    page++;
-}
-
-/*
- * Print a new page of text. Called by dialog_textbox().
- */
-static void
-print_page (WINDOW * win, int height, int width)
-{
-    int i, passed_end = 0;
-
-    page_length = 0;
-    for (i = 0; i < height; i++) {
-       print_line (win, i, width);
-       if (!passed_end)
-           page_length++;
-       if (end_reached && !passed_end)
-           passed_end = 1;
-    }
-    wnoutrefresh (win);
-}
-
-/*
- * Print a new line of text. Called by dialog_textbox() and print_page().
- */
-static void
-print_line (WINDOW * win, int row, int width)
-{
-    int y, x;
-    char *line;
-
-    line = get_line ();
-    line += GNUNET_MIN ((int)strlen (line), hscroll);  /* Scroll horizontally 
*/
-    wmove (win, row, 0);       /* move cursor to correct line */
-    waddch (win, ' ');
-    waddnstr (win, line, GNUNET_MIN ((int)strlen (line), width - 2));
-
-    getyx (win, y, x);
-    /* Clear 'residue' of previous line */
-#if OLD_NCURSES
-    {
-        int i;
-        for (i = 0; i < width - x; i++)
-           waddch (win, ' ');
-    }
-#else
-    wclrtoeol(win);
-#endif
-}
-
-/*
- * Return current line of text. Called by dialog_textbox() and print_line().
- * 'page' should point to start of current line before calling, and will be
- * updated to point to start of next line.
- */
-static char *
-get_line (void)
-{
-    int i = 0, fpos;
-    static char line[MAX_LEN + 1];
-
-    end_reached = 0;
-    while (*page != '\n') {
-       if (*page == '\0') {
-           /* Either end of file or end of buffer reached */
-           if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-               endwin ();
-               fprintf (stderr, "\nError moving file pointer in "
-                        "get_line().\n");
-               exit (-1);
-           }
-           if (fpos < file_size) {     /* Not end of file yet */
-               /* We've reached end of buffer, but not end of file yet,
-                  so read next part of file into buffer */
-               if ((bytes_read = read (fd, buf, BUF_SIZE)) == -1) {
-                   endwin ();
-                   fprintf (stderr, "\nError reading file in get_line().\n");
-                   exit (-1);
-               }
-               buf[bytes_read] = '\0';
-               page = buf;
-           } else {
-               if (!end_reached)
-                   end_reached = 1;
-               break;
-           }
-       } else if (i < MAX_LEN)
-           line[i++] = *(page++);
-       else {
-           /* Truncate lines longer than MAX_LEN characters */
-           if (i == MAX_LEN)
-               line[i++] = '\0';
-           page++;
-       }
-    }
-    if (i <= MAX_LEN)
-       line[i] = '\0';
-    if (!end_reached)
-       page++;                 /* move pass '\n' */
-
-    return line;
-}
-
-/*
- * Print current position
- */
-static void
-print_position (WINDOW * win, int height, int width)
-{
-    int fpos, percent;
-
-    if ((fpos = lseek (fd, 0, SEEK_CUR)) == -1) {
-       endwin ();
-       fprintf (stderr, "\nError moving file pointer in print_position().\n");
-       exit (-1);
-    }
-    wattrset (win, position_indicator_attr);
-    wbkgdset (win, position_indicator_attr & A_COLOR);
-    percent = !file_size ?
-       100 : ((fpos - bytes_read + page - buf) * 100) / file_size;
-    wmove (win, height - 3, width - 9);
-    wprintw (win, "(%3d%%)", percent);
-}

Deleted: GNUnet/src/setup/mconf_util.c
===================================================================
--- GNUnet/src/setup/mconf_util.c       2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_util.c       2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,438 +0,0 @@
-/*
- *  util.c
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_util.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "mconf_dialog.h"
-
-
-/* use colors by default? */
-bool use_colors = 1;
-
-char *backtitle = NULL;
-
-const char *dialog_result;
-
-/*
- * Attribute values, default is for mono display
- */
-chtype attributes[] =
-{
-    A_NORMAL,                  /* screen_attr */
-    A_NORMAL,                  /* shadow_attr */
-    A_NORMAL,                  /* dialog_attr */
-    A_BOLD,                    /* title_attr */
-    A_NORMAL,                  /* border_attr */
-    A_REVERSE,                 /* button_active_attr */
-    A_DIM,                     /* button_inactive_attr */
-    A_REVERSE,                 /* button_key_active_attr */
-    A_BOLD,                    /* button_key_inactive_attr */
-    A_REVERSE,                 /* button_label_active_attr */
-    A_NORMAL,                  /* button_label_inactive_attr */
-    A_NORMAL,                  /* inputbox_attr */
-    A_NORMAL,                  /* inputbox_border_attr */
-    A_NORMAL,                  /* searchbox_attr */
-    A_BOLD,                    /* searchbox_title_attr */
-    A_NORMAL,                  /* searchbox_border_attr */
-    A_BOLD,                    /* position_indicator_attr */
-    A_NORMAL,                  /* menubox_attr */
-    A_NORMAL,                  /* menubox_border_attr */
-    A_NORMAL,                  /* item_attr */
-    A_REVERSE,                 /* item_selected_attr */
-    A_BOLD,                    /* tag_attr */
-    A_REVERSE,                 /* tag_selected_attr */
-    A_BOLD,                    /* tag_key_attr */
-    A_REVERSE,                 /* tag_key_selected_attr */
-    A_BOLD,                    /* check_attr */
-    A_REVERSE,                 /* check_selected_attr */
-    A_BOLD,                    /* uarrow_attr */
-    A_BOLD                     /* darrow_attr */
-};
-
-
-#include "mconf_colors.h"
-
-/*
- * Table of color values
- */
-int color_table[][3] =
-{
-    {SCREEN_FG, SCREEN_BG, SCREEN_HL},
-    {SHADOW_FG, SHADOW_BG, SHADOW_HL},
-    {DIALOG_FG, DIALOG_BG, DIALOG_HL},
-    {TITLE_FG, TITLE_BG, TITLE_HL},
-    {BORDER_FG, BORDER_BG, BORDER_HL},
-    {BUTTON_ACTIVE_FG, BUTTON_ACTIVE_BG, BUTTON_ACTIVE_HL},
-    {BUTTON_INACTIVE_FG, BUTTON_INACTIVE_BG, BUTTON_INACTIVE_HL},
-    {BUTTON_KEY_ACTIVE_FG, BUTTON_KEY_ACTIVE_BG, BUTTON_KEY_ACTIVE_HL},
-    {BUTTON_KEY_INACTIVE_FG, BUTTON_KEY_INACTIVE_BG, BUTTON_KEY_INACTIVE_HL},
-    {BUTTON_LABEL_ACTIVE_FG, BUTTON_LABEL_ACTIVE_BG, BUTTON_LABEL_ACTIVE_HL},
-    {BUTTON_LABEL_INACTIVE_FG, BUTTON_LABEL_INACTIVE_BG,
-     BUTTON_LABEL_INACTIVE_HL},
-    {INPUTBOX_FG, INPUTBOX_BG, INPUTBOX_HL},
-    {INPUTBOX_BORDER_FG, INPUTBOX_BORDER_BG, INPUTBOX_BORDER_HL},
-    {SEARCHBOX_FG, SEARCHBOX_BG, SEARCHBOX_HL},
-    {SEARCHBOX_TITLE_FG, SEARCHBOX_TITLE_BG, SEARCHBOX_TITLE_HL},
-    {SEARCHBOX_BORDER_FG, SEARCHBOX_BORDER_BG, SEARCHBOX_BORDER_HL},
-    {POSITION_INDICATOR_FG, POSITION_INDICATOR_BG, POSITION_INDICATOR_HL},
-    {MENUBOX_FG, MENUBOX_BG, MENUBOX_HL},
-    {MENUBOX_BORDER_FG, MENUBOX_BORDER_BG, MENUBOX_BORDER_HL},
-    {ITEM_FG, ITEM_BG, ITEM_HL},
-    {ITEM_SELECTED_FG, ITEM_SELECTED_BG, ITEM_SELECTED_HL},
-    {TAG_FG, TAG_BG, TAG_HL},
-    {TAG_SELECTED_FG, TAG_SELECTED_BG, TAG_SELECTED_HL},
-    {TAG_KEY_FG, TAG_KEY_BG, TAG_KEY_HL},
-    {TAG_KEY_SELECTED_FG, TAG_KEY_SELECTED_BG, TAG_KEY_SELECTED_HL},
-    {CHECK_FG, CHECK_BG, CHECK_HL},
-    {CHECK_SELECTED_FG, CHECK_SELECTED_BG, CHECK_SELECTED_HL},
-    {UARROW_FG, UARROW_BG, UARROW_HL},
-    {DARROW_FG, DARROW_BG, DARROW_HL},
-};                             /* color_table */
-
-/*
- * Set window to attribute 'attr'
- */
-void
-attr_clear (WINDOW * win, int height, int width, chtype attr)
-{
-    int i, j;
-
-    wattrset (win, attr);
-    for (i = 0; i < height; i++) {
-       wmove (win, i, 0);
-       for (j = 0; j < width; j++)
-           waddch (win, ' ');
-    }
-    touchwin (win);
-}
-
-void dialog_clear (void)
-{
-    attr_clear (stdscr, LINES, COLS, screen_attr);
-    /* Display background title if it exists ... - SLH */
-    if (backtitle != NULL) {
-        int i;
-
-        wattrset (stdscr, screen_attr);
-        mvwaddstr (stdscr, 0, 1, (char *)backtitle);
-        wmove (stdscr, 1, 1);
-        for (i = 1; i < COLS - 1; i++)
-            waddch (stdscr, ACS_HLINE);
-    }
-    wnoutrefresh (stdscr);
-}
-
-/*
- * Do some initialization for dialog
- */
-void
-init_dialog (void)
-{
-    initscr ();                        /* Init curses */
-    keypad (stdscr, TRUE);
-    cbreak ();
-    noecho ();
-
-
-    if (use_colors)    /* Set up colors */
-       color_setup ();
-
-
-    dialog_clear ();
-}
-
-/*
- * Setup for color display
- */
-void
-color_setup (void)
-{
-    int i;
-
-    if (has_colors ()) {       /* Terminal supports color? */
-       start_color ();
-
-       /* Initialize color pairs */
-       for (i = 0; i < ATTRIBUTE_COUNT; i++)
-           init_pair (i + 1, color_table[i][0], color_table[i][1]);
-
-       /* Setup color attributes */
-       for (i = 0; i < ATTRIBUTE_COUNT; i++)
-           attributes[i] = C_ATTR (color_table[i][2], i + 1);
-    }
-}
-
-/*
- * End using dialog functions.
- */
-void
-end_dialog (void)
-{
-    endwin ();
-}
-
-/*
- * This is the backend part of the resizing magic. We can't do almost anything
- * in resize_dialog() since we are most probably in an evil place like a
- * malloc() --- in fact we can't even ungetch()! And since we have no way how
- * to interrupt wgetch(), we can't react sooner than after the user presses a
- * key. Then we will immediatelly call do_resize_dialog(), process the key
- * pressed by the user and next wgetch() should immediatelly yield KEY_RESIZE,
- * which is going to make the dialog being redrawn. It could look a little
- * weird when the key pressed by the user will close the dialog, well... ;-)
- */
-
-static int new_rows, new_cols;
-bool should_resize = 0;
-
-void
-resize_dialog (int rows, int cols)
-{
-       should_resize = 1;
-       new_rows = rows;
-       new_cols = cols;
-}
-
-void
-do_resize_dialog ()
-{
-       should_resize = 0;
-  /* TODO */
-#ifndef MINGW
-       resizeterm(new_rows, new_cols);
-#endif
-       COLS = new_cols;
-       LINES = new_rows;
-#ifdef KEY_RESIZE
-       ungetch(KEY_RESIZE);
-#endif
-}
-
-/*
- * Print a string of text in a window, automatically wrap around to the
- * next line if the string is too long to fit on one line. Newline
- * characters '\n' are replaced by spaces.  We start on a new line
- * if there is no room for at least 4 nonblanks following a double-space.
- */
-void
-print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x)
-{
-    int newl, cur_x, cur_y;
-    int prompt_len, room, wlen;
-    char tempstr[MAX_LEN + 1], *word, *sp, *sp2, *sp_nl;
-
-    strcpy (tempstr, prompt);
-
-    prompt_len = strlen(tempstr);
-       
-    /*
-     * Remove newlines
-     */
-/*    for(i=0; i<prompt_len; i++) {
-       if(tempstr[i] == '\n') tempstr[i] = ' ';
-    }
-*/
-    if (prompt_len <= width - x * 2) { /* If prompt is short */
-       wmove (win, y, (width - prompt_len) / 2);
-       waddstr (win, tempstr);
-    } else {
-       cur_x = x;
-       cur_y = y;
-       newl = 1;
-       word = tempstr;
-       while (word && *word) {
-           sp = strchr(word, ' ');
-           sp_nl = strchr(word, '\n');
-       
-           if (sp_nl && (sp_nl < sp || !sp))
-               sp = sp_nl;
-           else
-               sp_nl = NULL;
-       
-           if (sp)     
-               *sp++ = 0;
-
-                       if (sp_nl) {
-                               /* "\n" encountered */
-                               wmove (win, cur_y, cur_x);
-                               waddstr (win, word);
-                               cur_y++;
-                               cur_x = x;
-                               wmove (win, cur_y, cur_x);
-                               newl = 1;
-                       }
-                       else {
-                               /*      Wrap to next line if either the word 
does not fit,
-                                               or it is the first word of a 
new sentence, and it is
-                                               short, and the next word does 
not fit. */
-                               room = width - cur_x;
-                               wlen = strlen (word);
-                               if (wlen > room ||
-                                       (newl && wlen < 4 && sp && wlen + 1 + 
strlen (sp) > room &&
-                                       (!(sp2 = strchr (sp, ' ')) || wlen + 1 
+ (sp2 - sp) > room)))
-                               {
-                                       cur_y++;
-                       cur_x = x;
-                               }
-                               wmove (win, cur_y, cur_x);
-                               waddstr (win, word);
-                               getyx (win, cur_y, cur_x);
-                               cur_x++;
-                               if (sp && *sp == ' ') {
-                                       cur_x++;                        /* 
double space */
-                                       while (*++sp == ' ');
-                                 newl = 1;
-                               }
-                               else
-                               newl = 0;
-                       }
-                       word = sp;
-               }
-       }
-}
-
-/*
- * Print a button
- */
-void
-print_button (WINDOW * win, const char *label, int y, int x, int selected)
-{
-    int i, temp;
-
-    wmove (win, y, x);
-    wattrset (win, selected ? button_active_attr : button_inactive_attr);
-    waddstr (win, "<");
-    temp = strspn (label, " ");
-    label += temp;
-    wattrset (win, selected ? button_label_active_attr
-             : button_label_inactive_attr);
-    for (i = 0; i < temp; i++)
-       waddch (win, ' ');
-    wattrset (win, selected ? button_key_active_attr
-             : button_key_inactive_attr);
-    waddch (win, label[0]);
-    wattrset (win, selected ? button_label_active_attr
-             : button_label_inactive_attr);
-    waddstr (win, (char *)label + 1);
-    wattrset (win, selected ? button_active_attr : button_inactive_attr);
-    waddstr (win, ">");
-    wmove (win, y, x + temp + 1);
-}
-
-/*
- * Draw a rectangular box with line drawing characters
- */
-void
-draw_box (WINDOW * win, int y, int x, int height, int width,
-         chtype box, chtype border)
-{
-    int i, j;
-
-    wattrset (win, 0);
-    for (i = 0; i < height; i++) {
-       wmove (win, y + i, x);
-       for (j = 0; j < width; j++)
-           if (!i && !j)
-               waddch (win, border | ACS_ULCORNER);
-           else if (i == height - 1 && !j)
-               waddch (win, border | ACS_LLCORNER);
-           else if (!i && j == width - 1)
-               waddch (win, box | ACS_URCORNER);
-           else if (i == height - 1 && j == width - 1)
-               waddch (win, box | ACS_LRCORNER);
-           else if (!i)
-               waddch (win, border | ACS_HLINE);
-           else if (i == height - 1)
-               waddch (win, box | ACS_HLINE);
-           else if (!j)
-               waddch (win, border | ACS_VLINE);
-           else if (j == width - 1)
-               waddch (win, box | ACS_VLINE);
-           else
-               waddch (win, box | ' ');
-    }
-}
-
-/*
- * Draw shadows along the right and bottom edge to give a more 3D look
- * to the boxes
- */
-void
-draw_shadow (WINDOW * win, int y, int x, int height, int width)
-{
-    int i;
-
-    if (has_colors ()) {       /* Whether terminal supports color? */
-       wattrset (win, shadow_attr);
-       wmove (win, y + height, x + 2);
-       for (i = 0; i < width; i++)
-           waddch (win, winch (win) & A_CHARTEXT);
-       for (i = y + 1; i < y + height + 1; i++) {
-           wmove (win, i, x + width);
-           waddch (win, winch (win) & A_CHARTEXT);
-           waddch (win, winch (win) & A_CHARTEXT);
-       }
-       wnoutrefresh (win);
-    }
-}
-
-/*
- *  Return the position of the first alphabetic character in a string.
- */
-int
-first_alpha(const char *string, const char *exempt)
-{
-  unsigned int i;
-  int in_paren=0, c;
-
-       for (i = 0; i < strlen(string); i++) {
-               c = tolower(string[i]);
-
-               if (strchr("<[(", c)) ++in_paren;
-               if (strchr(">])", c) && in_paren > 0) --in_paren;
-
-               if ((! in_paren) && isalpha(c) &&
-                    strchr(exempt, c) == 0)
-                       return i;
-       }
-
-       return 0;
-}
-
-/*
- * Get the first selected item in the dialog_list_item list.
- */
-struct dialog_list_item *
-first_sel_item(int item_no, struct dialog_list_item ** items)
-{
-       int i;
-       for (i = 0; i < item_no; i++) {
-               if (items[i]->selected)
-                       return items[i];
-       }
-
-       return NULL;
-}

Deleted: GNUnet/src/setup/mconf_yesno.c
===================================================================
--- GNUnet/src/setup/mconf_yesno.c      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/mconf_yesno.c      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,134 +0,0 @@
-/*
- *  yesno.c -- implements the yes/no box
- *
- *  ORIGINAL AUTHOR: Savio Lam (address@hidden)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (address@hidden)
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2
- *  of the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/mconf_yesno.c
- * @author Savio Lam
- * @author Nils Durner
- */
-
-#include "mconf_dialog.h"
-
-/*
- * Display termination buttons
- */
-static void
-print_buttons(WINDOW *dialog, int height, int width, int selected)
-{
-    int x = width / 2 - 10;
-    int y = height - 2;
-
-    print_button (dialog, " Yes ", y, x, selected == 0);
-    print_button (dialog, "  No  ", y, x + 13, selected == 1);
-
-    wmove(dialog, y, x+1 + 13*selected );
-    wrefresh (dialog);
-}
-
-/*
- * Display a dialog box with two buttons - Yes and No
- */
-int
-dialog_yesno (const char *title, const char *prompt, int height, int width)
-{
-    int i, x, y, key = 0, button = 0;
-    WINDOW *dialog;
-
-    /* center dialog box on screen */
-    x = (COLS - width) / 2;
-    y = (LINES - height) / 2;
-
-    draw_shadow (stdscr, y, x, height, width);
-
-    dialog = newwin (height, width, y, x);
-    keypad (dialog, TRUE);
-
-    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);
-    wattrset (dialog, border_attr);
-    mvwaddch (dialog, height-3, 0, ACS_LTEE);
-    for (i = 0; i < width - 2; i++)
-       waddch (dialog, ACS_HLINE);
-    wattrset (dialog, dialog_attr);
-    waddch (dialog, ACS_RTEE);
-
-    if ( (title != NULL) &&
-        (strlen(title) >= (unsigned int) width-2) ) {
-       /* truncate long title -- mec */
-       char * title2 = malloc(width-2+1);
-       memcpy( title2, title, width-2 );
-       title2[width-2] = '\0';
-       title = title2;
-    }
-
-    if (title != NULL) {
-       wattrset (dialog, title_attr);
-       mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');
-       waddstr (dialog, (char *)title);
-       waddch (dialog, ' ');
-    }
-
-    wattrset (dialog, dialog_attr);
-    print_autowrap (dialog, prompt, width - 2, 1, 3);
-
-    print_buttons(dialog, height, width, 0);
-
-    while (key != ESC) {
-       key = wgetch (dialog);
-
-       if (should_resize)
-               do_resize_dialog();     
-
-       switch (key) {
-       case 'Y':
-       case 'y':
-           delwin (dialog);
-           return 0;
-       case 'N':
-       case 'n':
-           delwin (dialog);
-           return 1;
-
-       case TAB:
-       case KEY_LEFT:
-       case KEY_RIGHT:
-           button = ((key == KEY_LEFT ? --button : ++button) < 0)
-                       ? 1 : (button > 1 ? 0 : button);
-
-           print_buttons(dialog, height, width, button);
-           wrefresh (dialog);
-           break;
-#ifdef KEY_RESIZE
-       case KEY_RESIZE:
-           button = -2;
-#endif
-       case ' ':
-       case '\n':
-           delwin (dialog);
-           return button;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    return -1;                 /* ESC pressed */
-}

Deleted: GNUnet/src/setup/menu.c
===================================================================
--- GNUnet/src/setup/menu.c     2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/menu.c     2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,397 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/menu.c
- * @author Roman Zippel
- * @author Nils Durner
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-struct menu rootmenu;
-struct menu *current_menu, *current_entry;
-static struct menu **last_entry_ptr;
-
-struct file *file_list;
-struct file *current_file;
-
-char *current_sect = 0;
-
-void menu_init(void)
-{
-       current_entry = current_menu = &rootmenu;
-       last_entry_ptr = &rootmenu.list;
-}
-
-void menu_add_entry(struct symbol *sym)
-{
-       struct menu *menu;
-
-       menu = malloc(sizeof(*menu));
-       memset(menu, 0, sizeof(*menu));
-       menu->sym = sym;
-       menu->parent = current_menu;
-       menu->file = current_file;
-       menu->lineno = zconf_lineno();
-
-       *last_entry_ptr = menu;
-       last_entry_ptr = &menu->next;
-       current_entry = menu;
-}
-
-void menu_end_entry(void)
-{
-}
-
-void menu_add_menu(void)
-{
-       current_menu = current_entry;
-       last_entry_ptr = &current_entry->list;
-}
-
-void menu_end_menu(void)
-{
-       last_entry_ptr = &current_menu->next;
-       current_menu = current_menu->parent;
-}
-
-struct expr *menu_check_dep(struct expr *e)
-{
-       if (!e)
-               return e;
-
-       switch (e->type) {
-       case E_NOT:
-               e->left.expr = menu_check_dep(e->left.expr);
-               break;
-       case E_OR:
-       case E_AND:
-               e->left.expr = menu_check_dep(e->left.expr);
-               e->right.expr = menu_check_dep(e->right.expr);
-               break;
-       case E_SYMBOL:
-               /* change 'm' into 'm' && MODULES */
-               if (e->left.sym == &symbol_mod)
-                       return expr_alloc_and(e, 
expr_alloc_symbol(modules_sym));
-               break;
-       default:
-               break;
-       }
-       return e;
-}
-
-void menu_add_dep(struct expr *dep)
-{
-       current_entry->dep = expr_alloc_and(current_entry->dep, 
menu_check_dep(dep));
-}
-
-void menu_set_type(int type)
-{
-       struct symbol *sym = current_entry->sym;
-
-       if (sym->type == (unsigned int) type)
-               return;
-       if (sym->type == S_UNKNOWN) {
-               sym->type = type;
-               return;
-       }
-       fprintf(stderr, "%s:%d:warning: type of `%s' redefined from `%s' to 
`%s'\n",
-               current_entry->file->name, current_entry->lineno,
-               sym->name ? sym->name : "<choice>", sym_type_name(sym->type), 
sym_type_name(type));
-}
-
-struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr 
*expr, struct expr *dep)
-{
-       struct property *prop = prop_alloc(type, current_entry->sym);
-
-       prop->menu = current_entry;
-       prop->text = prompt;
-       prop->expr = expr;
-       prop->visible.expr = menu_check_dep(dep);
-
-       if (prompt) {
-               if (current_entry->prompt)
-                       fprintf(stderr, "%s:%d: prompt redefined\n",
-                               current_entry->file->name, 
current_entry->lineno);
-               current_entry->prompt = prop;
-       }
-
-       return prop;
-}
-
-void menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep)
-{
-       menu_add_prop(type, prompt, NULL, dep);
-}
-
-void menu_add_section(char *sect)
-{
-       current_entry->section = sect;
-       current_sect = sect;
-}
-
-void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
-{
-       menu_add_prop(type, NULL, expr, dep);
-}
-
-void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
-{
-       menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep);
-}
-
-void menu_finalize(struct menu *parent)
-{
-       struct menu *menu, *last_menu;
-       struct symbol *sym;
-       struct property *prop;
-       struct expr *parentdep, *basedep, *dep, *dep2, **ep;
-
-       sym = parent->sym;
-       if (parent->list) {
-               if (sym && sym_is_choice(sym)) {
-                       /* find the first choice value and find out choice type 
*/
-                       for (menu = parent->list; menu; menu = menu->next) {
-                               if (menu->sym) {
-                                       current_entry = parent;
-                                       menu_set_type(menu->sym->type);
-                                       current_entry = menu;
-                                       menu_set_type(sym->type);
-                                       break;
-                               }
-                       }
-                       parentdep = expr_alloc_symbol(sym);
-               } else if (parent->prompt)
-                       parentdep = parent->prompt->visible.expr;
-               else
-                       parentdep = parent->dep;
-
-               for (menu = parent->list; menu; menu = menu->next) {
-                       basedep = expr_transform(menu->dep);
-                       basedep = expr_alloc_and(expr_copy(parentdep), basedep);
-                       basedep = expr_eliminate_dups(basedep);
-                       menu->dep = basedep;
-                       if (menu->sym)
-                               prop = menu->sym->prop;
-                       else
-                               prop = menu->prompt;
-                       for (; prop; prop = prop->next) {
-                               if (prop->menu != menu)
-                                       continue;
-                               dep = expr_transform(prop->visible.expr);
-                               dep = expr_alloc_and(expr_copy(basedep), dep);
-                               dep = expr_eliminate_dups(dep);
-                               if (menu->sym && menu->sym->type != S_TRISTATE)
-                                       dep = expr_trans_bool(dep);
-                               prop->visible.expr = dep;
-                               if (prop->type == P_SELECT) {
-                                       struct symbol *es = 
prop_get_symbol(prop);
-                                       es->rev_dep.expr = 
expr_alloc_or(es->rev_dep.expr,
-                                                       
expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
-                               }
-                       }
-               }
-               for (menu = parent->list; menu; menu = menu->next)
-                       menu_finalize(menu);
-       } else if (sym) {
-               basedep = parent->prompt ? parent->prompt->visible.expr : NULL;
-               basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no);
-               basedep = expr_eliminate_dups(expr_transform(basedep));
-               last_menu = NULL;
-               for (menu = parent->next; menu; menu = menu->next) {
-                       dep = menu->prompt ? menu->prompt->visible.expr : 
menu->dep;
-                       if (!expr_contains_symbol(dep, sym))
-                               break;
-                       if (expr_depends_symbol(dep, sym))
-                               goto next;
-                       dep = expr_trans_compare(dep, E_UNEQUAL, &symbol_no);
-                       dep = expr_eliminate_dups(expr_transform(dep));
-                       dep2 = expr_copy(basedep);
-                       expr_eliminate_eq(&dep, &dep2);
-                       expr_free(dep);
-                       if (!expr_is_yes(dep2)) {
-                               expr_free(dep2);
-                               break;
-                       }
-                       expr_free(dep2);
-               next:
-                       menu_finalize(menu);
-                       menu->parent = parent;
-                       last_menu = menu;
-               }
-               if (last_menu) {
-                       parent->list = parent->next;
-                       parent->next = last_menu->next;
-                       last_menu->next = NULL;
-               }
-       }
-       for (menu = parent->list; menu; menu = menu->next) {
-               if (sym && sym_is_choice(sym) && menu->sym) {
-                       menu->sym->flags |= SYMBOL_CHOICEVAL;
-                       if (!menu->prompt)
-                               fprintf(stderr, "%s:%d:warning: choice value 
must have a prompt\n",
-                                       menu->file->name, menu->lineno);
-                       for (prop = menu->sym->prop; prop; prop = prop->next) {
-                               if (prop->type == P_PROMPT && prop->menu != 
menu) {
-                                       fprintf(stderr, "%s:%d:warning: choice 
values currently only support a single prompt\n",
-                                               prop->file->name, prop->lineno);
-                                       
-                               }
-                               if (prop->type == P_DEFAULT)
-                                       fprintf(stderr, "%s:%d:warning: 
defaults for choice values not supported\n",
-                                               prop->file->name, prop->lineno);
-                       }
-                       current_entry = menu;
-                       menu_set_type(sym->type);
-                       menu_add_symbol(P_CHOICE, sym, NULL);
-                       prop = sym_get_choice_prop(sym);
-                       for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
-                               ;
-                       *ep = expr_alloc_one(E_CHOICE, NULL);
-                       (*ep)->right.sym = menu->sym;
-               }
-               if (menu->list && (!menu->prompt || !menu->prompt->text)) {
-                       for (last_menu = menu->list; ; last_menu = 
last_menu->next) {
-                               last_menu->parent = parent;
-                               if (!last_menu->next)
-                                       break;
-                       }
-                       last_menu->next = menu->next;
-                       menu->next = menu->list;
-                       menu->list = NULL;
-               }
-       }
-
-       if (sym && !(sym->flags & SYMBOL_WARNED)) {
-               struct symbol *sym2;
-               if (sym->type == S_UNKNOWN)
-                       fprintf(stderr, "%s:%d:warning: config symbol defined 
without type\n",
-                               parent->file->name, parent->lineno);
-
-               if (sym_is_choice(sym) && !parent->prompt)
-                       fprintf(stderr, "%s:%d:warning: choice must have a 
prompt\n",
-                               parent->file->name, parent->lineno);
-
-               for (prop = sym->prop; prop; prop = prop->next) {
-                       switch (prop->type) {
-                       case P_DEFAULT:
-                               if ((sym->type == S_STRING || sym->type == 
S_INT || sym->type == S_HEX) &&
-                                   prop->expr->type != E_SYMBOL)
-                                       fprintf(stderr, "%s:%d:warning: default 
must be a single symbol\n",
-                                               prop->file->name, prop->lineno);
-                               break;
-                       case P_SELECT:
-                               sym2 = prop_get_symbol(prop);
-                               if ((sym->type != S_BOOLEAN && sym->type != 
S_TRISTATE) ||
-                                   (sym2->type != S_BOOLEAN && sym2->type != 
S_TRISTATE))
-                                       fprintf(stderr, "%s:%d:warning: enable 
is only allowed with boolean and tristate symbols\n",
-                                               prop->file->name, prop->lineno);
-                               break;
-                       case P_RANGE:
-                               if (sym->type != S_INT && sym->type != S_HEX)
-                                       fprintf(stderr, "%s:%d:warning: range 
is only allowed for int or hex symbols\n",
-                                               prop->file->name, prop->lineno);
-                               if (!sym_string_valid(sym, 
prop->expr->left.sym->name) ||
-                                   !sym_string_valid(sym, 
prop->expr->right.sym->name))
-                                       fprintf(stderr, "%s:%d:warning: range 
is invalid\n",
-                                               prop->file->name, prop->lineno);
-                               break;
-                       default:
-                               ;
-                       }
-               }
-               sym->flags |= SYMBOL_WARNED;
-       }
-
-       if (sym && !sym_is_optional(sym) && parent->prompt) {
-               sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
-                               expr_alloc_and(parent->prompt->visible.expr,
-                                       expr_alloc_symbol(&symbol_mod)));
-       }
-}
-
-bool menu_is_visible(struct menu *menu)
-{
-       struct menu *child;
-       struct symbol *sym;
-       tristate visible;
-
-       if (!menu->prompt)
-               return false;
-       sym = menu->sym;
-       if (sym) {
-               sym_calc_value(sym);
-               visible = menu->prompt->visible.tri;
-       } else
-               visible = menu->prompt->visible.tri = 
expr_calc_value(menu->prompt->visible.expr);
-
-       if (visible != no)
-               return true;
-       if (!sym || sym_get_tristate_value(menu->sym) == no)
-               return false;
-
-       for (child = menu->list; child; child = child->next)
-               if (menu_is_visible(child))
-                       return true;
-       return false;
-}
-
-const char *menu_get_prompt(struct menu *menu)
-{
-       if (menu->prompt)
-               return menu->prompt->text;
-       else if (menu->sym)
-               return menu->sym->name;
-       return NULL;
-}
-
-const char *menu_get_section(struct menu *menu)
-{
-       if (menu->section)
-               return menu->section;
-       return NULL;
-}
-
-struct menu *menu_get_root_menu(struct menu *menu)
-{
-       return &rootmenu;
-}
-
-struct menu *menu_get_parent_menu(struct menu *menu)
-{
-       enum prop_type type;
-
-       for (; menu != &rootmenu; menu = menu->parent) {
-               type = menu->prompt ? menu->prompt->type : 0;
-               if (type == P_MENU)
-                       break;
-       }
-       return menu;
-}
-
-struct file *file_lookup(const char *name)
-{
-       struct file *file;
-
-       for (file = file_list; file; file = file->next) {
-               if (!strcmp(name, file->name)) {
-                       return file;
-    }
-       }
-
-       file = malloc(sizeof(*file));
-       memset(file, 0, sizeof(*file));
-       file->name = (char *) name;
-       file->next = file_list;
-       file_list = file;
-
-       return file;
-}

Copied: GNUnet/src/setup/ncurses/mconf.c (from rev 3254, 
GNUnet/src/setup/mconf.c)

Copied: GNUnet/src/setup/ncurses/mconf.h (from rev 3254, 
GNUnet/src/setup/mconf.h)

Copied: GNUnet/src/setup/ncurses/mconf_checklist.c (from rev 3254, 
GNUnet/src/setup/mconf_checklist.c)

Copied: GNUnet/src/setup/ncurses/mconf_colors.h (from rev 3254, 
GNUnet/src/setup/mconf_colors.h)

Copied: GNUnet/src/setup/ncurses/mconf_dialog.h (from rev 3254, 
GNUnet/src/setup/mconf_dialog.h)

Copied: GNUnet/src/setup/ncurses/mconf_inputbox.c (from rev 3254, 
GNUnet/src/setup/mconf_inputbox.c)

Copied: GNUnet/src/setup/ncurses/mconf_menubox.c (from rev 3254, 
GNUnet/src/setup/mconf_menubox.c)

Copied: GNUnet/src/setup/ncurses/mconf_msgbox.c (from rev 3254, 
GNUnet/src/setup/mconf_msgbox.c)

Copied: GNUnet/src/setup/ncurses/mconf_textbox.c (from rev 3254, 
GNUnet/src/setup/mconf_textbox.c)

Copied: GNUnet/src/setup/ncurses/mconf_util.c (from rev 3254, 
GNUnet/src/setup/mconf_util.c)

Copied: GNUnet/src/setup/ncurses/mconf_yesno.c (from rev 3254, 
GNUnet/src/setup/mconf_yesno.c)

Copied: GNUnet/src/setup/ncurses/wizard_curs.c (from rev 3254, 
GNUnet/src/setup/wizard_curs.c)

Copied: GNUnet/src/setup/ncurses/wizard_curs.h (from rev 3254, 
GNUnet/src/setup/wizard_curs.h)

Deleted: GNUnet/src/setup/recreate.c
===================================================================
--- GNUnet/src/setup/recreate.c 2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/recreate.c 2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,143 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file conf/recreate.c
- * @brief create .conf files from the .in templates
- * @author Nils Durner
- */
-
-#include "gnunet_util.h"
-#include "recreate.h"
-#include "confdata.h"
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-
-/**
- * @brief Set reasonable default for GNUNETD_HOME if needed
- */
-static void checkGNUNETDHome(struct symbol *sym)
-{
- 
-  if (strcmp(sym->name, "GNUNETD_HOME") == 0)
-    {
-      const char *val;
-      
-      sym_calc_value_ext(sym, 1);
-      val = sym_get_string_value(sym);
-      
-      /* only empty if gnunet-setup is run for the first time */
-      if (!val || !strlen(val))
-       {
-         /* GNUNETD_HOME isn't set yet. Let's choose a sane default */
-         struct stat buf;
-         int var = 0;
-         if (STAT("/var/lib/GNUnet", &buf) != 0)
-           {
-             /* /var/lib/GNUnet doesn't exist. Do we have write permissions to 
/var? */
-             if (ACCESS("/var", W_OK) == 0)
-               var = 1;
-           }
-         else
-           {
-             /* /var/lib/GNUnet is there, do we have write permissions? */
-             if (ACCESS("/var/lib/GNUnet", W_OK) == 0)
-               var = 1;
-           }
-         
-         sym_set_string_value(sym, var ? "/var/lib/GNUnet" : "~/.gnunet");
-       }
-    }
-}
-
-static int insert_nic(const char * name,
-                     int defaultNIC,
-                     void * cls) {
-  struct symbol * sym = cls;
-  if ( (NULL == sym_get_string_value(sym)) ||
-       (defaultNIC) )
-    sym_set_string_value(sym, name);
-  return OK;
-}
-
-/**
- * @brief Set reasonable default for GNUNETD_HOME if needed
- */
-static void checkDefaultIFC(struct GE_Context * ectx,
-                           struct symbol *sym) { 
-  if (strncmp(sym->name, 
-             "INTERFACE",
-             strlen("INTERFACE")) == 0) /* match also for INTERFACES ! */
-    {
-      const char *val;
-      
-      sym_calc_value_ext(sym, 1);
-      val = sym_get_string_value(sym);
-      
-      /* only empty if gnunet-setup is run for the first time */
-      if (!val || !strlen(val))
-       {
-         /* INTERFACE isn't set yet. Let's choose a sane default */
-         os_list_network_interfaces(ectx,
-                                    insert_nic,
-                                    sym);
-       }
-    }
-}
-
-
-int recreate_main(struct GE_Context * ectx,
-                 struct GC_Configuration  * cfg,
-                 const char * filename,
-                 int config_daemon) {
-  struct symbol *sym;
-  int i = 0;
-
-  /* we are setting advanced/rare settings below */
-  sym = sym_find("EXPERIMENTAL", "Meta");
-  if (sym != NULL)
-    sym_set_tristate_value(sym, yes);
-  sym = sym_find("ADVANCED", "Meta"); 
-  if (sym != NULL)
-    sym_set_tristate_value(sym, yes);
-  sym = sym_find("RARE", "Meta"); 
-  if (sym != NULL)
-    sym_set_tristate_value(sym, yes);
-
-  /* save new config files to DATADIR */
-  if (config_daemon) {
-    for_all_symbols(i, sym) {
-      checkGNUNETDHome(sym);
-      checkDefaultIFC(ectx, sym);
-    }
-  }
-  /* Write defaults */
-  if (conf_write(filename)) {
-    printf(_("Unable to save configuration file `%s': %s.\n"), 
-          filename,
-          STRERROR(errno));
-    return 1;
-  }
-  return 0;  
-}
-
-/* end of recreate.c */

Deleted: GNUnet/src/setup/recreate.h
===================================================================
--- GNUnet/src/setup/recreate.h 2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/recreate.h 2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,36 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/recreate.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef RECREATE_H
-#define RECREATE_H
-
-int recreate_main(struct GE_Context * ectx,
-                 struct GC_Configuration  * cfg,
-                 const char * filename,
-                 int config_daemon);
-
-#endif

Deleted: GNUnet/src/setup/symbol.c
===================================================================
--- GNUnet/src/setup/symbol.c   2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/symbol.c   2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,875 +0,0 @@
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- */
-
-/**
- * @brief GNUnet Setup
- * @file conf/symbol.c
- * @author Roman Zippel
- * @author Nils Durner
- */
-
-#include "platform.h"
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#ifdef HAVE_UNAME
- #include <sys/utsname.h>
-#endif
-#ifdef OK
-#undef OK
-#endif
-#include "gnunet_util.h"
-
-struct symbol symbol_yes = {
-       .name = "y",
-  .sect = "",
-       .curr = { "y", yes },
-       .flags = SYMBOL_YES|SYMBOL_VALID,
-}, symbol_mod = {
-       .name = "m",
-  .sect = "",
-       .curr = { "m", mod },
-       .flags = SYMBOL_MOD|SYMBOL_VALID,
-}, symbol_no = {
-       .name = "n",
-  .sect = "",
-       .curr = { "n", no },
-       .flags = SYMBOL_NO|SYMBOL_VALID,
-}, symbol_empty = {
-       .name = "",
-  .sect = "",
-       .curr = { "", no },
-       .flags = SYMBOL_VALID,
-};
-
-int sym_change_count;
-struct symbol *modules_sym;
-extern char *current_sect;
-
-void sym_add_default(struct symbol *sym, const char *def, const char *sect)
-{
-       struct property *prop = prop_alloc(P_DEFAULT, sym);
-
-       prop->expr = expr_alloc_symbol(sym_lookup((char *) def, (char *) sect, 
1));
-}
-
-void sym_init(void)
-{
-       struct symbol *sym;
-#ifdef HAVE_UNAME
-       struct utsname uts;
-#endif
-       char *p;
-       static bool inited = false;
-
-       if (inited)
-               return;
-       inited = true;
-
-#ifdef HAVE_UNAME
-       uname(&uts);
-#endif
-
-       sym = sym_lookup("ARCH", "GENERAL", 0);
-       sym->type = S_STRING;
-       sym->flags |= SYMBOL_AUTO;
-       p = getenv("ARCH");
-       if (p)
-               sym_add_default(sym, p, "GENERAL");
-
-       sym = sym_lookup("KERNELRELEASE", "GENERAL", 0);
-       sym->type = S_STRING;
-       sym->flags |= SYMBOL_AUTO;
-       p = getenv("KERNELRELEASE");
-       if (p)
-               sym_add_default(sym, p, "GENERAL");
-
-       sym = sym_lookup("UNAME_RELEASE", "GENERAL", 0);
-       sym->type = S_STRING;
-       sym->flags |= SYMBOL_AUTO;
-#ifdef HAVE_UNAME
-       sym_add_default(sym, uts.release, "GENERAL");
-#endif
-}
-
-enum symbol_type sym_get_type(struct symbol *sym)
-{
-       enum symbol_type type = sym->type;
-
-       if (type == S_TRISTATE) {
-               if (sym_is_choice_value(sym) && sym->visible == yes)
-                       type = S_BOOLEAN;
-               else {
-                       sym_calc_value(modules_sym);
-                       if (modules_sym->curr.tri == no)
-                               type = S_BOOLEAN;
-               }
-       }
-       return type;
-}
-
-const char *sym_type_name(enum symbol_type type)
-{
-       switch (type) {
-       case S_BOOLEAN:
-               return "boolean";
-       case S_TRISTATE:
-               return "tristate";
-       case S_INT:
-               return "integer";
-       case S_HEX:
-               return "hex";
-       case S_STRING:
-               return "string";
-       case S_UNKNOWN:
-               return "unknown";
-       case ST_OTHER:
-               break;
-       }
-       return "???";
-}
-
-struct property *sym_get_choice_prop(struct symbol *sym)
-{
-       struct property *prop;
-
-       for_all_choices(sym, prop)
-               return prop;
-       return NULL;
-}
-
-struct property *sym_get_default_prop(struct symbol *sym)
-{
-       return sym_get_default_prop_ext(sym, 0);
-}
-
-struct property *sym_get_default_prop_ext(struct symbol *sym, int returnInv)
-{
-       struct property *prop;
-
-       for_all_defaults(sym, prop) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               if (prop->visible.tri != no || returnInv)
-                       return prop;
-       }
-       return NULL;
-}
-
-struct property *sym_get_range_prop(struct symbol *sym)
-{
-       struct property *prop;
-
-       for_all_properties(sym, prop, P_RANGE) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               if (prop->visible.tri != no)
-                       return prop;
-       }
-       return NULL;
-}
-
-static void sym_calc_visibility(struct symbol *sym)
-{
-       struct property *prop;
-       tristate tri;
-
-       /* any prompt visible? */
-       tri = no;
-       for_all_prompts(sym, prop) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               tri = E_OR(tri, prop->visible.tri);
-       }
-       if (sym->visible != tri) {
-               sym->visible = tri;
-               sym_set_changed(sym);
-       }
-       if (sym_is_choice_value(sym))
-               return;
-       tri = no;
-       if (sym->rev_dep.expr)
-               tri = expr_calc_value(sym->rev_dep.expr);
-       if (sym->rev_dep.tri != tri) {
-               sym->rev_dep.tri = tri;
-               sym_set_changed(sym);
-       }
-}
-
-static struct symbol *sym_calc_choice(struct symbol *sym)
-{
-       struct symbol *def_sym;
-       struct property *prop;
-       struct expr *e;
-
-       /* is the user choice visible? */
-       def_sym = sym->user.val;
-       if (def_sym) {
-               sym_calc_visibility(def_sym);
-               if (def_sym->visible != no)
-                       return def_sym;
-       }
-
-       /* any of the defaults visible? */
-       for_all_defaults(sym, prop) {
-               prop->visible.tri = expr_calc_value(prop->visible.expr);
-               if (prop->visible.tri == no)
-                       continue;
-               def_sym = prop_get_symbol(prop);
-               sym_calc_visibility(def_sym);
-               if (def_sym->visible != no)
-                       return def_sym;
-       }
-
-       /* just get the first visible value */
-       prop = sym_get_choice_prop(sym);
-       for (e = prop->expr; e; e = e->left.expr) {
-               def_sym = e->right.sym;
-               sym_calc_visibility(def_sym);
-               if (def_sym->visible != no)
-                       return def_sym;
-       }
-
-       /* no choice? reset tristate value */
-       sym->curr.tri = no;
-       return NULL;
-}
-
-void sym_calc_value(struct symbol *sym)
-{
-       return sym_calc_value_ext(sym, 0);
-}
-
-void sym_calc_value_ext(struct symbol *sym, int returnInv)
-{
-       struct symbol_value newval, oldval;
-       struct property *prop;
-       struct expr *e;
-
-       if (!sym)
-               return;
-
-       if (sym->flags & SYMBOL_VALID)
-               return;
-       sym->flags |= SYMBOL_VALID;
-
-       oldval = sym->curr;
-
-       switch (sym->type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               newval = symbol_empty.curr;
-               break;
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               newval = symbol_no.curr;
-               break;
-       default:
-               sym->curr.val = sym->name;
-               sym->curr.tri = no;
-               return;
-       }
-       if (!sym_is_choice_value(sym))
-               sym->flags &= ~SYMBOL_WRITE;
-
-       sym_calc_visibility(sym);
-
-       /* set default if recursively called */
-       sym->curr = newval;
-
-       switch (sym_get_type(sym)) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               if (sym_is_choice_value(sym) && sym->visible == yes) {
-                       prop = sym_get_choice_prop(sym);
-                       newval.tri = (prop_get_symbol(prop)->curr.val == sym) ? 
yes : no;
-               } else if (E_OR(sym->visible, sym->rev_dep.tri) != no) {
-                       sym->flags |= SYMBOL_WRITE;
-                       if (sym_has_value(sym))
-                               newval.tri = sym->user.tri;
-                       else if (!sym_is_choice(sym)) {
-                               prop = sym_get_default_prop_ext(sym, returnInv);
-                               if (prop)
-                                       newval.tri = 
expr_calc_value(prop->expr);
-                       }
-                       newval.tri = E_OR(E_AND(newval.tri, sym->visible), 
sym->rev_dep.tri);
-               } else if (!sym_is_choice(sym)) {
-                       prop = sym_get_default_prop_ext(sym, returnInv);
-                       if (prop) {
-                               sym->flags |= SYMBOL_WRITE;
-                               newval.tri = expr_calc_value(prop->expr);
-                       }
-               }
-               if (sym_get_type(sym) == S_BOOLEAN) {
-                       if (newval.tri == mod)
-                               newval.tri = yes;
-                       if (sym->visible == mod)
-                               sym->visible = yes;
-                       if (sym->rev_dep.tri == mod)
-                               sym->rev_dep.tri = yes;
-               }
-               break;
-       case S_STRING:
-       case S_HEX:
-       case S_INT:
-               if (sym->visible != no || returnInv) {
-                       sym->flags |= SYMBOL_WRITE;
-                       if (sym_has_value(sym)) {
-                               newval.val = sym->user.val;
-                               break;
-                       }
-               }
-               prop = sym_get_default_prop_ext(sym, returnInv);
-               if (prop) {
-                       struct symbol *ds = prop_get_symbol(prop);
-                       if (ds) {
-                               sym->flags |= SYMBOL_WRITE;
-                               sym_calc_value(ds);
-                               newval.val = ds->curr.val;
-                       }
-               }
-               break;
-       default:
-               ;
-       }
-
-       sym->curr = newval;
-       if (sym_is_choice(sym) && newval.tri == yes)
-               sym->curr.val = sym_calc_choice(sym);
-
-       if (memcmp(&oldval, &sym->curr, sizeof(oldval)))
-               sym_set_changed(sym);
-
-       if (sym_is_choice(sym)) {
-               int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
-               prop = sym_get_choice_prop(sym);
-               for (e = prop->expr; e; e = e->left.expr) {
-                       e->right.sym->flags |= flags;
-                       if (flags & SYMBOL_CHANGED)
-                               sym_set_changed(e->right.sym);
-               }
-       }
-}
-
-void sym_clear_all_valid(void)
-{
-       struct symbol *sym;
-       int i;
-
-       for_all_symbols(i, sym)
-               sym->flags &= ~SYMBOL_VALID;
-       sym_change_count++;
-}
-
-void sym_set_changed(struct symbol *sym)
-{
-       struct property *prop;
-
-       sym->flags |= SYMBOL_CHANGED;
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->menu)
-                       prop->menu->flags |= MENU_CHANGED;
-       }
-}
-
-void sym_set_all_changed(void)
-{
-       struct symbol *sym;
-       int i;
-
-       for_all_symbols(i, sym)
-               sym_set_changed(sym);
-}
-
-bool sym_tristate_within_range(struct symbol *sym, tristate val)
-{
-       int type = sym_get_type(sym);
-
-       if (sym->visible == no)
-               return false;
-
-       if (type != S_BOOLEAN && type != S_TRISTATE)
-               return false;
-
-       if (type == S_BOOLEAN && val == mod)
-               return false;
-       if (sym->visible <= sym->rev_dep.tri)
-               return false;
-       if (sym_is_choice_value(sym) && sym->visible == yes)
-               return val == yes;
-       return val >= sym->rev_dep.tri && val <= sym->visible;
-}
-
-bool sym_set_tristate_value(struct symbol *sym, tristate val)
-{
-       tristate oldval = sym_get_tristate_value(sym);
-
-       if (oldval != val && !sym_tristate_within_range(sym, val))
-               return false;
-
-       if (sym->flags & SYMBOL_NEW) {
-               sym->flags &= ~SYMBOL_NEW;
-               sym_set_changed(sym);
-       }
-       if (sym_is_choice_value(sym) && val == yes) {
-               struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
-
-               cs->user.val = sym;
-               cs->flags &= ~SYMBOL_NEW;
-       }
-
-       sym->user.tri = val;
-       if (oldval != val) {
-               sym_clear_all_valid();
-               if (sym == modules_sym)
-                       sym_set_all_changed();
-       }
-
-       return true;
-}
-
-tristate sym_toggle_tristate_value(struct symbol *sym)
-{
-       tristate oldval, newval;
-
-       oldval = newval = sym_get_tristate_value(sym);
-       do {
-               switch (newval) {
-               case no:
-                       newval = mod;
-                       break;
-               case mod:
-                       newval = yes;
-                       break;
-               case yes:
-                       newval = no;
-                       break;
-               }
-               if (sym_set_tristate_value(sym, newval))
-                       break;
-       } while (oldval != newval);
-       return newval;
-}
-
-bool sym_string_valid(struct symbol *sym, const char *str)
-{
-       char ch;
-
-       switch (sym->type) {
-       case S_STRING:
-               return true;
-       case S_INT:
-               ch = *str++;
-               if (ch == '-')
-                       ch = *str++;
-               if (!isdigit(ch))
-                       return false;
-               if (ch == '0' && *str != 0)
-                       return false;
-               while ((ch = *str++)) {
-                       if (!isdigit(ch))
-                               return false;
-               }
-               return true;
-       case S_HEX:
-               if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X'))
-                       str += 2;
-               ch = *str++;
-               do {
-                       if (!isxdigit(ch))
-                               return false;
-               } while ((ch = *str++));
-               return true;
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               switch (str[0]) {
-               case 'y': case 'Y':
-               case 'm': case 'M':
-               case 'n': case 'N':
-                       return true;
-               }
-               return false;
-       default:
-               return false;
-       }
-}
-
-bool sym_string_within_range(struct symbol *sym, const char *str)
-{
-       struct property *prop;
-       int val;
-
-       switch (sym->type) {
-       case S_STRING:
-               return sym_string_valid(sym, str);
-       case S_INT:
-               if (!sym_string_valid(sym, str))
-                       return false;
-               prop = sym_get_range_prop(sym);
-               if (!prop)
-                       return true;
-               val = strtol(str, NULL, 10);
-               return val >= strtol(prop->expr->left.sym->name, NULL, 10) &&
-                      val <= strtol(prop->expr->right.sym->name, NULL, 10);
-       case S_HEX:
-               if (!sym_string_valid(sym, str))
-                       return false;
-               prop = sym_get_range_prop(sym);
-               if (!prop)
-                       return true;
-               val = strtol(str, NULL, 16);
-               return val >= strtol(prop->expr->left.sym->name, NULL, 16) &&
-                      val <= strtol(prop->expr->right.sym->name, NULL, 16);
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               switch (str[0]) {
-               case 'y': case 'Y':
-                       return sym_tristate_within_range(sym, yes);
-               case 'm': case 'M':
-                       return sym_tristate_within_range(sym, mod);
-               case 'n': case 'N':
-                       return sym_tristate_within_range(sym, no);
-               }
-               return false;
-       default:
-               return false;
-       }
-}
-
-bool sym_set_string_value(struct symbol *sym, 
-                         const char * newval) {
-       const char *oldval;
-       char *val;
-       int size;
-
-       switch (sym->type) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               switch (newval[0]) {
-               case 'y': case 'Y':
-                       return sym_set_tristate_value(sym, yes);
-               case 'm': case 'M':
-                       return sym_set_tristate_value(sym, mod);
-               case 'n': case 'N':
-                       return sym_set_tristate_value(sym, no);
-               }
-               return false;
-       default:
-               ;
-       }
-
-       if (!sym_string_within_range(sym, newval))
-               return false;
-
-       if (sym->flags & SYMBOL_NEW) {
-               sym->flags &= ~SYMBOL_NEW;
-               sym_set_changed(sym);
-       }
-
-       oldval = sym->user.val;
-       size = strlen(newval) + 1;
-       if (sym->type == S_HEX && (newval[0] != '0' || (newval[1] != 'x' && 
newval[1] != 'X'))) {
-               size += 2;
-               sym->user.val = val = malloc(size);
-               *val++ = '0';
-               *val++ = 'x';
-       } else if (!oldval || strcmp(oldval, newval))
-               sym->user.val = val = malloc(size);
-       else
-               return true;
-
-       strcpy(val, newval);
-       free((void *)oldval);
-       sym_clear_all_valid();
-
-       return true;
-}
-
-const char *sym_get_string_value(struct symbol *sym)
-{
-       tristate val;
-
-       switch (sym->type) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               val = sym_get_tristate_value(sym);
-               switch (val) {
-               case no:
-                       return "n";
-               case mod:
-                       return "m";
-               case yes:
-                       return "y";
-               }
-               break;
-       default:
-               ;
-       }
-       return (const char *)sym->curr.val;
-}
-
-bool sym_is_changable(struct symbol *sym)
-{
-       return sym->visible > sym->rev_dep.tri;
-}
-
-struct symbol *sym_lookup(char *name, char *sect, int isconst)
-{
-       struct symbol *symbol;
-       const char *ptr;
-       char *new_name, *new_sect;
-       int hash = 0;
-  char *scope;
-  int sect_alloc = 0;
-
-  scope = strstr(name, "::");
-  if (scope) {
-    int len;
-
-    sect = scope;
-    while(sect >= name)
-      sect--;
-
-    len = scope - name;
-    sect = (char *) malloc(len + 1);
-    memcpy(sect, name, len);
-    sect[len] = 0;
-    sect_alloc = 1;
-
-    name = scope + 2;
-  }
-
-       if (!sect)
-               sect = current_sect;
-       GE_ASSERT(NULL, sect);
-
-       if (name) {
-               if (name[0] && !name[1]) {
-                       switch (name[0]) {
-                       case 'y': return &symbol_yes;
-                       case 'm': return &symbol_mod;
-                       case 'n': return &symbol_no;
-                       }
-               }
-               for (ptr = name; *ptr; ptr++)
-                       hash += *ptr;
-               hash &= 0xff;
-
-               for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) 
{
-                       if (!strcmp(symbol->name, name) &&
-                           !strcmp(symbol->sect, sect)) {
-                               if ((isconst && symbol->flags & SYMBOL_CONST) ||
-                                   (!isconst && !(symbol->flags & 
SYMBOL_CONST)))
-        {
-          if (sect_alloc)
-            free(sect);
-                                       return symbol;
-        }
-                       }
-               }
-               new_name = strdup(name);
-               new_sect = strdup(sect);
-       } else {
-               new_name = NULL;
-               hash = 256;
-               new_sect = NULL;
-       }
-
-       symbol = malloc(sizeof(*symbol));
-       memset(symbol, 0, sizeof(*symbol));
-       symbol->name = new_name;
-       symbol->sect = new_sect;
-       symbol->type = S_UNKNOWN;
-       symbol->flags = SYMBOL_NEW;
-       if (isconst)
-               symbol->flags |= SYMBOL_CONST;
-
-       symbol->next = symbol_hash[hash];
-       symbol_hash[hash] = symbol;
-
-  if (sect_alloc)
-    free(sect);
-
-       return symbol;
-}
-
-struct symbol *sym_find(char *name, char *sect)
-{
-       struct symbol *symbol = NULL;
-       const char *ptr;
-       int hash = 0;
-  char *scope;
-  int sect_alloc = 0;
-
-       if (!name)
-               return NULL;
-
-  scope = strstr(name, "::");
-  if (scope) {
-    int len;
-
-    sect = scope;
-    while(sect >= name)
-      sect--;
-
-    len = scope - name;
-    sect = (char *) malloc(len + 1);
-    memcpy(sect, name, len);
-    sect[len] = 0;
-    sect_alloc = 1;
-
-    name = scope + 2;
-  }
-
-       if (!sect)
-               sect = current_sect;
-       GE_ASSERT(NULL, sect);
-
-       if (name[0] && !name[1]) {
-               switch (name[0]) {
-               case 'y': return &symbol_yes;
-               case 'm': return &symbol_mod;
-               case 'n': return &symbol_no;
-               }
-       }
-       for (ptr = name; *ptr; ptr++)
-               hash += *ptr;
-       hash &= 0xff;
-
-       for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
-               if (!strcmp(symbol->name, name) &&
-                   !strcmp(symbol->sect, sect) &&
-                   !(symbol->flags & SYMBOL_CONST))
-                               break;
-       }
-
-  if (sect_alloc)
-    free(sect);
-
-       return symbol;
-}
-
-struct symbol *sym_check_deps(struct symbol *sym);
-
-static struct symbol *sym_check_expr_deps(struct expr *e)
-{
-       struct symbol *sym;
-
-       if (!e)
-               return NULL;
-       switch (e->type) {
-       case E_OR:
-       case E_AND:
-               sym = sym_check_expr_deps(e->left.expr);
-               if (sym)
-                       return sym;
-               return sym_check_expr_deps(e->right.expr);
-       case E_NOT:
-               return sym_check_expr_deps(e->left.expr);
-       case E_EQUAL:
-       case E_UNEQUAL:
-               sym = sym_check_deps(e->left.sym);
-               if (sym)
-                       return sym;
-               return sym_check_deps(e->right.sym);
-       case E_SYMBOL:
-               return sym_check_deps(e->left.sym);
-       default:
-               break;
-       }
-       printf("Oops! How to check %d?\n", e->type);
-       return NULL;
-}
-
-struct symbol *sym_check_deps(struct symbol *sym)
-{
-       struct symbol *sym2;
-       struct property *prop;
-
-       if (sym->flags & SYMBOL_CHECK_DONE)
-               return NULL;
-       if (sym->flags & SYMBOL_CHECK) {
-               printf("Warning! Found recursive dependency: %s", sym->name);
-               return sym;
-       }
-
-       sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
-       sym2 = sym_check_expr_deps(sym->rev_dep.expr);
-       if (sym2)
-               goto out;
-
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->type == P_CHOICE)
-                       continue;
-               sym2 = sym_check_expr_deps(prop->visible.expr);
-               if (sym2)
-                       goto out;
-               if (prop->type != P_DEFAULT || sym_is_choice(sym))
-                       continue;
-               sym2 = sym_check_expr_deps(prop->expr);
-               if (sym2)
-                       goto out;
-       }
-out:
-       if (sym2)
-               printf(" %s", sym->name);
-       sym->flags &= ~SYMBOL_CHECK;
-       return sym2;
-}
-
-struct property *prop_alloc(enum prop_type type, struct symbol *sym)
-{
-       struct property *prop;
-       struct property **propp;
-
-       prop = malloc(sizeof(*prop));
-       memset(prop, 0, sizeof(*prop));
-       prop->type = type;
-       prop->sym = sym;
-       prop->file = current_file;
-       prop->lineno = zconf_lineno();
-
-       /* append property to the prop list of symbol */
-       if (sym) {
-               for (propp = &sym->prop; *propp; propp = &(*propp)->next)
-                       ;
-               *propp = prop;
-       }
-
-       return prop;
-}
-
-struct symbol *prop_get_symbol(struct property *prop)
-{
-       if (prop->expr && (prop->expr->type == E_SYMBOL ||
-                          prop->expr->type == E_CHOICE))
-               return prop->expr->left.sym;
-       return NULL;
-}
-
-const char *prop_get_type_name(enum prop_type type)
-{
-       switch (type) {
-       case P_PROMPT:
-               return "prompt";
-       case P_COMMENT:
-               return "comment";
-       case P_MENU:
-               return "menu";
-       case P_DEFAULT:
-               return "default";
-       case P_CHOICE:
-               return "choice";
-       case P_SELECT:
-               return "select";
-       case P_RANGE:
-               return "range";
-       case P_UNKNOWN:
-               break;
-       }
-       return "unknown";
-}

Copied: GNUnet/src/setup/text/conf.c (from rev 3254, GNUnet/src/setup/conf.c)

Copied: GNUnet/src/setup/text/conf.h (from rev 3254, GNUnet/src/setup/conf.h)

Deleted: GNUnet/src/setup/wizard.glade
===================================================================
--- GNUnet/src/setup/wizard.glade       2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard.glade       2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,4462 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
-<glade-interface>
-
-<widget class="GtkWindow" id="assi_step1">
-  <property name="width_request">450</property>
-  <property name="height_request">350</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">GNUnet configuration 
assistant</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="on_assi_destroy" 
last_modification_time="Fri, 15 Apr 2005 14:27:05 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox2">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkScrolledWindow" id="scoll_welcome">
-         <property name="visible">True</property>
-         <property name="can_focus">True</property>
-         <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-         <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-         <property name="shadow_type">GTK_SHADOW_NONE</property>
-         <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-         <child>
-           <widget class="GtkTextView" id="textview11">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-             <property name="editable">False</property>
-             <property name="overwrite">False</property>
-             <property name="accepts_tab">False</property>
-             <property name="justification">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap_mode">GTK_WRAP_WORD</property>
-             <property name="cursor_visible">False</property>
-             <property name="pixels_above_lines">2</property>
-             <property name="pixels_below_lines">2</property>
-             <property name="pixels_inside_wrap">0</property>
-             <property name="left_margin">2</property>
-             <property name="right_margin">2</property>
-             <property name="indent">2</property>
-             <property name="text" translatable="yes">Welcome to GNUnet!
-
-This assistant will ask you a few basic questions in order to configure GNUnet.
-
-Please visit our homepage at
-       http://gnunet.org
-and join our community at
-       https://gnunet.org/drupal/
-
-Have a lot of fun,
-
-The GNUnet team</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator2">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="step1_next">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step2" object="assi_step1" 
last_modification_time="Sun, 14 May 2006 07:53:34 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment31">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox54">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image64">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-forward</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label85">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Next</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="abort">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_abort_clicked" 
object="assi_step1" last_modification_time="Thu, 14 Apr 2005 17:32:41 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment32">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox55">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image65">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-cancel</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label86">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Cancel</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="assi_step2">
-  <property name="width_request">450</property>
-  <property name="height_request">350</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">GNUnet configuration 
assistant</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="on_assi_destroy" 
last_modification_time="Fri, 15 Apr 2005 14:26:55 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox3">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkFrame" id="frame1">
-         <property name="visible">True</property>
-         <property name="label_xalign">0</property>
-         <property name="label_yalign">0.5</property>
-         <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-         <child>
-           <widget class="GtkVBox" id="vbox4">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">0</property>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="scrolledwindow5">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                 <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTextView" id="textview8">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">False</property>
-                     <property name="overwrite">False</property>
-                     <property name="accepts_tab">True</property>
-                     <property name="justification">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap_mode">GTK_WRAP_WORD</property>
-                     <property name="cursor_visible">False</property>
-                     <property name="pixels_above_lines">0</property>
-                     <property name="pixels_below_lines">0</property>
-                     <property name="pixels_inside_wrap">0</property>
-                     <property name="left_margin">2</property>
-                     <property name="right_margin">0</property>
-                     <property name="indent">0</property>
-                     <property name="text" translatable="yes">Enter 
information about your network connection here.
-
-The &quot;Network interface&quot; is the device that connects your computer to 
the internet. This is usually a modem, an ISDN card or a network card in case 
you are using DSL.
-
-If your provider always assigns the same IP-Address to you (a 
&quot;static&quot; IP-Address), enter it into the &quot;IP-Address&quot; field. 
If your IP-Address changes every now and then (&quot;dynamic&quot; IP-Address) 
but there's a hostname that always points to your actual IP-Address 
(&quot;Dynamic DNS&quot;), you can also enter it here.
-If in doubt, leave the field empty. GNUnet will then try to determine your 
IP-Address.
-
-If you are connected to the internet through another computer doing SNAT, a 
router or a &quot;hardware firewall&quot; and other computers on the internet 
cannot connect to this computer, check the last option on this page. Leave it 
unchecked on direct connections through modems, ISDN cards and DNAT (also known 
as &quot;port forwarding&quot;).</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHSeparator" id="hseparator3">
-                 <property name="visible">True</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="vbox5">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkVBox" id="vbox6">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkTable" id="table1">
-                         <property name="border_width">5</property>
-                         <property name="visible">True</property>
-                         <property name="n_rows">3</property>
-                         <property name="n_columns">2</property>
-                         <property name="homogeneous">False</property>
-                         <property name="row_spacing">5</property>
-                         <property name="column_spacing">5</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label23">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Network 
interface:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label24">
-                             <property name="visible">True</property>
-                             <property name="label" 
translatable="yes">IP-Address/Hostname:</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">1</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkEntry" id="entIP">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="editable">True</property>
-                             <property name="visibility">True</property>
-                             <property name="max_length">0</property>
-                             <property name="text" 
translatable="yes"></property>
-                             <property name="has_frame">True</property>
-                             <property name="invisible_char">*</property>
-                             <property 
name="activates_default">False</property>
-                             <signal name="changed" handler="on_entIP_changed" 
object="entIP" last_modification_time="Sat, 16 Apr 2005 15:41:03 GMT"/>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">1</property>
-                             <property name="bottom_attach">2</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkCheckButton" id="chkFW">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="label" 
translatable="yes">Computer cannot receive inbound connections 
(SNAT/Firewall)</property>
-                             <property name="use_underline">True</property>
-                             <property 
name="relief">GTK_RELIEF_NORMAL</property>
-                             <property name="focus_on_click">True</property>
-                             <property name="active">False</property>
-                             <property name="inconsistent">False</property>
-                             <property name="draw_indicator">True</property>
-                             <signal name="toggled" handler="on_chkFW_toggled" 
object="chkFW" last_modification_time="Sun, 17 Apr 2005 15:46:13 GMT"/>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">0</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">2</property>
-                             <property name="bottom_attach">3</property>
-                             <property name="x_options">fill</property>
-                             <property name="y_options"></property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkComboBoxEntry" id="cmbNIC">
-                             <property name="visible">True</property>
-                             <property name="add_tearoffs">False</property>
-                             <property name="has_frame">True</property>
-                             <property name="focus_on_click">True</property>
-                             <signal name="changed" 
handler="on_cmbNIC_changed" object="cmbNIC" last_modification_time="Fri, 24 Jun 
2005 19:32:04 GMT"/>
-                           </widget>
-                           <packing>
-                             <property name="left_attach">1</property>
-                             <property name="right_attach">2</property>
-                             <property name="top_attach">0</property>
-                             <property name="bottom_attach">1</property>
-                             <property name="x_options">shrink|fill</property>
-                             <property name="y_options">fill</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="labelLimit">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Network 
connection</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">label_item</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox2">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="step2_next">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step3" object="assi_step2" 
last_modification_time="Sun, 14 May 2006 07:57:33 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment41">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox64">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image74">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-forward</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label95">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Next</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step2_abort">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_abort_clicked" 
object="assi_step2" last_modification_time="Thu, 14 Apr 2005 17:42:07 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment42">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox68">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image78">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-cancel</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label99">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Cancel</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="assi_step3">
-  <property name="width_request">450</property>
-  <property name="height_request">350</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">GNUnet configuration 
assistant</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="on_assi_destroy" 
last_modification_time="Fri, 15 Apr 2005 14:27:18 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox7">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkFrame" id="frame3">
-         <property name="visible">True</property>
-         <property name="label_xalign">0</property>
-         <property name="label_yalign">0.5</property>
-         <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-         <child>
-           <widget class="GtkVBox" id="vbox8">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">0</property>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="scrolledwindow6">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                 <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTextView" id="textview9">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">False</property>
-                     <property name="overwrite">False</property>
-                     <property name="accepts_tab">True</property>
-                     <property name="justification">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap_mode">GTK_WRAP_WORD</property>
-                     <property name="cursor_visible">False</property>
-                     <property name="pixels_above_lines">0</property>
-                     <property name="pixels_below_lines">0</property>
-                     <property name="pixels_inside_wrap">0</property>
-                     <property name="left_margin">2</property>
-                     <property name="right_margin">0</property>
-                     <property name="indent">0</property>
-                     <property name="text" translatable="yes">You can limit 
GNUnet's ressource usage here.
-
-&quot;Bandwidth limitation&quot; is how much data may be sent per second. If 
you have a flatrate you can set it to the maximum speed of your internet 
connection.
-
-The &quot;Max. CPU usage&quot; is the percentage of processor time GNUnet is 
allowed to use.</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHSeparator" id="hseparator4">
-                 <property name="visible">True</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="vbox9">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkVBox" id="vbox10">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkFrame" id="frame4">
-                         <property name="visible">True</property>
-                         <property name="label_xalign">0</property>
-                         <property name="label_yalign">0.5</property>
-                         <property 
name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox24">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">0</property>
-
-                             <child>
-                               <widget class="GtkTable" id="table2">
-                                 <property name="visible">True</property>
-                                 <property name="n_rows">2</property>
-                                 <property name="n_columns">2</property>
-                                 <property name="homogeneous">False</property>
-                                 <property name="row_spacing">5</property>
-                                 <property name="column_spacing">5</property>
-
-                                 <child>
-                                   <widget class="GtkLabel" id="label32">
-                                     <property name="visible">True</property>
-                                     <property name="label" 
translatable="yes">Upstream (Bytes/s):</property>
-                                     <property 
name="use_underline">False</property>
-                                     <property 
name="use_markup">False</property>
-                                     <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                     <property name="wrap">False</property>
-                                     <property 
name="selectable">False</property>
-                                     <property name="xalign">0</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">5</property>
-                                     <property name="ypad">0</property>
-                                     <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                     <property name="width_chars">-1</property>
-                                     <property 
name="single_line_mode">False</property>
-                                     <property name="angle">0</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="left_attach">0</property>
-                                     <property name="right_attach">1</property>
-                                     <property name="top_attach">0</property>
-                                     <property 
name="bottom_attach">1</property>
-                                     <property name="x_options">fill</property>
-                                     <property name="y_options"></property>
-                                   </packing>
-                                 </child>
-
-                                 <child>
-                                   <widget class="GtkEntry" id="entUp">
-                                     <property name="visible">True</property>
-                                     <property name="can_focus">True</property>
-                                     <property name="editable">True</property>
-                                     <property 
name="visibility">True</property>
-                                     <property name="max_length">0</property>
-                                     <property name="text" 
translatable="yes"></property>
-                                     <property name="has_frame">True</property>
-                                     <property 
name="invisible_char">*</property>
-                                     <property 
name="activates_default">False</property>
-                                     <signal name="changed" 
handler="on_entUp_changed" object="entUp" last_modification_time="Sat, 16 Apr 
2005 16:38:44 GMT"/>
-                                   </widget>
-                                   <packing>
-                                     <property name="left_attach">1</property>
-                                     <property name="right_attach">2</property>
-                                     <property name="top_attach">0</property>
-                                     <property 
name="bottom_attach">1</property>
-                                     <property name="y_options"></property>
-                                   </packing>
-                                 </child>
-
-                                 <child>
-                                   <widget class="GtkLabel" id="label33">
-                                     <property name="visible">True</property>
-                                     <property name="label" 
translatable="yes">Downstream (Bytes/s):</property>
-                                     <property 
name="use_underline">False</property>
-                                     <property 
name="use_markup">False</property>
-                                     <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                     <property name="wrap">False</property>
-                                     <property 
name="selectable">False</property>
-                                     <property name="xalign">0</property>
-                                     <property name="yalign">0.5</property>
-                                     <property name="xpad">5</property>
-                                     <property name="ypad">0</property>
-                                     <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                     <property name="width_chars">-1</property>
-                                     <property 
name="single_line_mode">False</property>
-                                     <property name="angle">0</property>
-                                   </widget>
-                                   <packing>
-                                     <property name="left_attach">0</property>
-                                     <property name="right_attach">1</property>
-                                     <property name="top_attach">1</property>
-                                     <property 
name="bottom_attach">2</property>
-                                     <property name="x_options">fill</property>
-                                     <property name="y_options"></property>
-                                   </packing>
-                                 </child>
-
-                                 <child>
-                                   <widget class="GtkEntry" id="entDown">
-                                     <property name="visible">True</property>
-                                     <property name="can_focus">True</property>
-                                     <property name="editable">True</property>
-                                     <property 
name="visibility">True</property>
-                                     <property name="max_length">0</property>
-                                     <property name="text" 
translatable="yes"></property>
-                                     <property name="has_frame">True</property>
-                                     <property 
name="invisible_char">*</property>
-                                     <property 
name="activates_default">False</property>
-                                     <signal name="changed" 
handler="on_entDown_changed" object="entDown" last_modification_time="Sat, 16 
Apr 2005 16:38:48 GMT"/>
-                                   </widget>
-                                   <packing>
-                                     <property name="left_attach">1</property>
-                                     <property name="right_attach">2</property>
-                                     <property name="top_attach">1</property>
-                                     <property 
name="bottom_attach">2</property>
-                                     <property name="y_options"></property>
-                                   </packing>
-                                 </child>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label31">
-                             <property name="visible">True</property>
-                             <property name="label" 
translatable="yes">Bandwidth limitation</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="type">label_item</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkFrame" id="frame5">
-                         <property name="visible">True</property>
-                         <property name="label_xalign">0</property>
-                         <property name="label_yalign">0.5</property>
-                         <property 
name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-                         <child>
-                           <widget class="GtkVBox" id="vbox11">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">0</property>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="radGNUnet">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" translatable="yes">Use 
denoted bandwidth for GNUnet</property>
-                                 <property name="use_underline">True</property>
-                                 <property 
name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property 
name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property 
name="draw_indicator">True</property>
-                                 <signal name="toggled" 
handler="on_radGNUnet_toggled" object="radGNUnet" last_modification_time="Sat, 
16 Apr 2005 16:38:59 GMT"/>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkRadioButton" id="radShare">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="label" 
translatable="yes">Share denoted bandwidth with other applications</property>
-                                 <property name="use_underline">True</property>
-                                 <property 
name="relief">GTK_RELIEF_NORMAL</property>
-                                 <property 
name="focus_on_click">True</property>
-                                 <property name="active">False</property>
-                                 <property name="inconsistent">False</property>
-                                 <property 
name="draw_indicator">True</property>
-                                 <property name="group">radGNUnet</property>
-                                 <signal name="toggled" 
handler="on_radShare_toggled" last_modification_time="Sat, 16 Apr 2005 16:39:03 
GMT"/>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label34">
-                             <property name="visible">True</property>
-                             <property name="label" 
translatable="yes">Bandwidth sharing</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="type">label_item</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkFrame" id="frame6">
-                         <property name="visible">True</property>
-                         <property name="label_xalign">0</property>
-                         <property name="label_yalign">0.5</property>
-                         <property 
name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox25">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">0</property>
-
-                             <child>
-                               <widget class="GtkLabel" id="label36">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Max. CPU usage (%):</property>
-                                 <property 
name="use_underline">False</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">5</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkEntry" id="entCPU">
-                                 <property name="visible">True</property>
-                                 <property name="can_focus">True</property>
-                                 <property name="editable">True</property>
-                                 <property name="visibility">True</property>
-                                 <property name="max_length">0</property>
-                                 <property name="text" 
translatable="yes"></property>
-                                 <property name="has_frame">True</property>
-                                 <property name="invisible_char">*</property>
-                                 <property 
name="activates_default">False</property>
-                                 <signal name="changed" 
handler="on_entCPU_changed" object="entCPU" last_modification_time="Sat, 16 Apr 
2005 16:39:09 GMT"/>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">True</property>
-                                 <property name="fill">True</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-
-                         <child>
-                           <widget class="GtkLabel" id="label35">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">CPU 
usage</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">0</property>
-                             <property name="ypad">0</property>
-                             <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="type">label_item</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">True</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label27">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Load 
limitation</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">label_item</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox4">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="step3_back">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step2" object="assi_step3" 
last_modification_time="Sun, 14 May 2006 08:02:29 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment34">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox57">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image67">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-back</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label88">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Back</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step3_next">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step4" object="assi_step3" 
last_modification_time="Sun, 14 May 2006 08:02:43 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment35">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox58">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image68">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-forward</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label89">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Next</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step3_abort">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_abort_clicked" 
object="assi_step3" last_modification_time="Thu, 14 Apr 2005 17:42:07 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment36">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox59">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image69">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-cancel</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label90">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Cancel</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="assi_step5">
-  <property name="width_request">450</property>
-  <property name="height_request">350</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">GNUnet configuration 
assistant</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="on_assi_destroy" 
last_modification_time="Fri, 15 Apr 2005 14:27:29 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox12">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkFrame" id="frame7">
-         <property name="visible">True</property>
-         <property name="label_xalign">0</property>
-         <property name="label_yalign">0.5</property>
-         <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-         <child>
-           <widget class="GtkVBox" id="vbox13">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">0</property>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="scrolledwindow7">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                 <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTextView" id="textview10">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">False</property>
-                     <property name="overwrite">False</property>
-                     <property name="accepts_tab">True</property>
-                     <property name="justification">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap_mode">GTK_WRAP_WORD</property>
-                     <property name="cursor_visible">False</property>
-                     <property name="pixels_above_lines">0</property>
-                     <property name="pixels_below_lines">0</property>
-                     <property name="pixels_inside_wrap">0</property>
-                     <property name="left_margin">2</property>
-                     <property name="right_margin">0</property>
-                     <property name="indent">0</property>
-                     <property name="text" translatable="yes">GNUnet is able 
to store data from other peers in your datastore. This is useful if an 
adversary has access to your inserted content and you need to deny that the 
content is yours. With &quot;content migration&quot; on, the content could have 
&quot;migrated&quot; over the internet to your node without your knowledge.
-It also helps to spread popular content over different peers to enhance 
availability.
-
-The GNUnet datastore contains all data that GNUnet generates (index data, 
inserted and migrated content). Its maximum size can be specified below.
-
-If you are an experienced user, you may want to tweak your GNUnet installation 
using the enhanced configurator.
-
-After changing the configuration and/or updating GNUnet, it is sometimes 
required to run gnunet-update to update internal data structures. Depending on 
the changes made, this may take some time.</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHSeparator" id="hseparator5">
-                 <property name="visible">True</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkVBox" id="vbox14">
-                 <property name="visible">True</property>
-                 <property name="homogeneous">False</property>
-                 <property name="spacing">0</property>
-
-                 <child>
-                   <widget class="GtkVBox" id="vbox15">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">0</property>
-
-                     <child>
-                       <widget class="GtkCheckButton" id="chkMigr">
-                         <property name="border_width">4</property>
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Store 
migrated content</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                         <signal name="toggled" handler="on_chkMigr_toggled" 
object="chkMigr" last_modification_time="Sat, 16 Apr 2005 16:45:18 GMT"/>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkHBox" id="hbox53">
-                         <property name="visible">True</property>
-                         <property name="homogeneous">False</property>
-                         <property name="spacing">0</property>
-
-                         <child>
-                           <widget class="GtkLabel" id="label84">
-                             <property name="visible">True</property>
-                             <property name="label" translatable="yes">Maximum 
datastore size (MB):</property>
-                             <property name="use_underline">False</property>
-                             <property name="use_markup">False</property>
-                             <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                             <property name="wrap">False</property>
-                             <property name="selectable">False</property>
-                             <property name="xalign">0.5</property>
-                             <property name="yalign">0.5</property>
-                             <property name="xpad">8</property>
-                             <property name="ypad">0</property>
-                             <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                             <property name="width_chars">-1</property>
-                             <property name="single_line_mode">False</property>
-                             <property name="angle">0</property>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">False</property>
-                             <property name="fill">False</property>
-                           </packing>
-                         </child>
-
-                         <child>
-                           <widget class="GtkEntry" id="entQuota">
-                             <property name="visible">True</property>
-                             <property name="can_focus">True</property>
-                             <property name="editable">True</property>
-                             <property name="visibility">True</property>
-                             <property name="max_length">0</property>
-                             <property name="text" 
translatable="yes"></property>
-                             <property name="has_frame">True</property>
-                             <property name="invisible_char">*</property>
-                             <property 
name="activates_default">False</property>
-                             <signal name="changed" 
handler="on_entQuota_changed" object="entQuota" last_modification_time="Sat, 16 
Apr 2005 16:45:24 GMT"/>
-                           </widget>
-                           <packing>
-                             <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
-                           </packing>
-                         </child>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">True</property>
-                         <property name="fill">True</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkCheckButton" id="chkStart">
-                         <property name="border_width">5</property>
-                         <property name="visible">True</property>
-                         <property name="sensitive">False</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Start the 
GNUnet background process on computer startup</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                         <signal name="toggled" handler="on_chkStart_toggled" 
object="chkStart" last_modification_time="Sat, 16 Apr 2005 16:45:28 GMT"/>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkCheckButton" id="chkEnh">
-                         <property name="border_width">5</property>
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Open the 
enhanced configurator</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">False</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                         <signal name="toggled" handler="on_chkEnh_toggled" 
object="chkEnh" last_modification_time="Sat, 16 Apr 2005 16:45:33 GMT"/>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkCheckButton" id="chkUpdate">
-                         <property name="border_width">5</property>
-                         <property name="visible">True</property>
-                         <property name="can_focus">True</property>
-                         <property name="label" translatable="yes">Run 
gnunet-update</property>
-                         <property name="use_underline">True</property>
-                         <property name="relief">GTK_RELIEF_NORMAL</property>
-                         <property name="focus_on_click">True</property>
-                         <property name="active">True</property>
-                         <property name="inconsistent">False</property>
-                         <property name="draw_indicator">True</property>
-                         <signal name="toggled" handler="on_chkUpdate_toggled" 
object="chkUpdate" last_modification_time="Fri, 23 Dec 2005 23:21:01 GMT"/>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">True</property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label43">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Other 
settings</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">label_item</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox5">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="step5_back">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step4" object="assi_step5" 
last_modification_time="Sun, 14 May 2006 08:07:44 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment37">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox60">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image70">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-back</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label91">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Back</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step5_next">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_finish_clicked" 
object="assi_step5" last_modification_time="Thu, 14 Apr 2005 17:47:51 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment40">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox63">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image73">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-save</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label94">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Finish</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step5_cancel">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_abort_clicked" 
object="assi_step5" last_modification_time="Thu, 14 Apr 2005 17:42:07 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment39">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox62">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image72">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-cancel</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label93">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Cancel</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="msgSave">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Question</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox16">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkHBox" id="hbox65">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkImage" id="image75">
-             <property name="visible">True</property>
-             <property name="stock">gtk-dialog-question</property>
-             <property name="icon_size">4</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-           </widget>
-           <packing>
-             <property name="padding">15</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label96">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Do you want to save 
your settings?</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">True</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">5</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator1">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox6">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="saveYes">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">Yes</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_saveYes_clicked" 
object="msgSave" last_modification_time="Thu, 14 Apr 2005 19:30:39 GMT"/>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="saveNo">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">No</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_saveNo_clicked" 
object="msgSave" last_modification_time="Thu, 14 Apr 2005 19:30:31 GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="msgSaveFailed">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Error</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox17">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkHBox" id="hbox67">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkImage" id="image77">
-             <property name="visible">True</property>
-             <property name="stock">gtk-dialog-error</property>
-             <property name="icon_size">4</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-           </widget>
-           <packing>
-             <property name="padding">15</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label98">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Unable to save 
configuration!</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">True</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">5</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator6">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox7">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="button1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">OK</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="do_destroy_window" 
object="msgSaveFailed" last_modification_time="Sun, 14 May 2006 09:46:52 GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="assi_step4">
-  <property name="width_request">450</property>
-  <property name="height_request">350</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">GNUnet configuration 
assistant</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="on_assi_destroy" 
last_modification_time="Fri, 15 Apr 2005 14:27:29 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox18">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkFrame" id="frame8">
-         <property name="visible">True</property>
-         <property name="label_xalign">0</property>
-         <property name="label_yalign">0.5</property>
-         <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-         <child>
-           <widget class="GtkVBox" id="vbox19">
-             <property name="visible">True</property>
-             <property name="homogeneous">False</property>
-             <property name="spacing">0</property>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="scrolledwindow8">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                 <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                 <property name="shadow_type">GTK_SHADOW_NONE</property>
-                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTextView" id="textview12">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">False</property>
-                     <property name="overwrite">False</property>
-                     <property name="accepts_tab">True</property>
-                     <property name="justification">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap_mode">GTK_WRAP_WORD</property>
-                     <property name="cursor_visible">False</property>
-                     <property name="pixels_above_lines">0</property>
-                     <property name="pixels_below_lines">0</property>
-                     <property name="pixels_inside_wrap">0</property>
-                     <property name="left_margin">2</property>
-                     <property name="right_margin">0</property>
-                     <property name="indent">0</property>
-                     <property name="text" translatable="yes">Define the user 
and the group owning the GNUnet service here.
-
-For security reasons, it is a good idea to let this setup create a new user 
account and a new group under which the GNUnet service is started at system 
startup.
-
-However, GNUnet may not be able to access files other than its own. This 
includes files you want to publish in GNUnet. You'll have to grant read 
permissions to the user specified below.
-
-Leave the fields empty to run GNUnet with system privileges.</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">True</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkHSeparator" id="hseparator7">
-                 <property name="visible">True</property>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkTable" id="table3">
-                 <property name="border_width">5</property>
-                 <property name="visible">True</property>
-                 <property name="n_rows">2</property>
-                 <property name="n_columns">2</property>
-                 <property name="homogeneous">False</property>
-                 <property name="row_spacing">5</property>
-                 <property name="column_spacing">5</property>
-
-                 <child>
-                   <widget class="GtkLabel" id="label110">
-                     <property name="visible">True</property>
-                     <property name="label" 
translatable="yes">Group:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">5</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkEntry" id="entUser">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                     <signal name="changed" handler="on_entUser_changed" 
object="entUser" last_modification_time="Tue, 21 Jun 2005 18:37:05 GMT"/>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkEntry" id="entGroup">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                     <signal name="changed" handler="on_entGroup_changed" 
object="entGroup" last_modification_time="Tue, 21 Jun 2005 18:37:14 GMT"/>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">1</property>
-                     <property name="right_attach">2</property>
-                     <property name="top_attach">1</property>
-                     <property name="bottom_attach">2</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label109">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">User 
account:</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">5</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="left_attach">0</property>
-                     <property name="right_attach">1</property>
-                     <property name="top_attach">0</property>
-                     <property name="bottom_attach">1</property>
-                     <property name="x_options">fill</property>
-                     <property name="y_options"></property>
-                   </packing>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="padding">0</property>
-                 <property name="expand">False</property>
-                 <property name="fill">True</property>
-               </packing>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label101">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Other 
settings</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">False</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">0</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="type">label_item</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox8">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="step4_back">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step3" object="assi_step4" 
last_modification_time="Sun, 14 May 2006 08:04:09 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment43">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox70">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image79">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-back</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label102">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Back</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step4_next">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="load_step5" object="assi_step4" 
last_modification_time="Sun, 14 May 2006 08:04:24 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment48">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox78">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image84">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-go-forward</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label111">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Next</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="step4_abort">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_abort_clicked" 
object="assi_step4" last_modification_time="Thu, 14 Apr 2005 17:42:07 GMT"/>
-
-             <child>
-               <widget class="GtkAlignment" id="alignment45">
-                 <property name="visible">True</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xscale">0</property>
-                 <property name="yscale">0</property>
-                 <property name="top_padding">0</property>
-                 <property name="bottom_padding">0</property>
-                 <property name="left_padding">0</property>
-                 <property name="right_padding">0</property>
-
-                 <child>
-                   <widget class="GtkHBox" id="hbox72">
-                     <property name="visible">True</property>
-                     <property name="homogeneous">False</property>
-                     <property name="spacing">2</property>
-
-                     <child>
-                       <widget class="GtkImage" id="image81">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-cancel</property>
-                         <property name="icon_size">4</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-
-                     <child>
-                       <widget class="GtkLabel" id="label104">
-                         <property name="visible">True</property>
-                         <property name="label" 
translatable="yes">Cancel</property>
-                         <property name="use_underline">True</property>
-                         <property name="use_markup">False</property>
-                         <property name="justify">GTK_JUSTIFY_LEFT</property>
-                         <property name="wrap">False</property>
-                         <property name="selectable">False</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                         <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                         <property name="width_chars">-1</property>
-                         <property name="single_line_mode">False</property>
-                         <property name="angle">0</property>
-                       </widget>
-                       <packing>
-                         <property name="padding">0</property>
-                         <property name="expand">False</property>
-                         <property name="fill">False</property>
-                       </packing>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="msgUpdateFailed">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Error</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox20">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkHBox" id="hbox79">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkImage" id="image85">
-             <property name="visible">True</property>
-             <property name="stock">gtk-dialog-error</property>
-             <property name="icon_size">4</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-           </widget>
-           <packing>
-             <property name="padding">15</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label112">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">gnunet-update 
failed!</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">True</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">5</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator8">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox9">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="button2">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">OK</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="do_destroy_window" 
object="msgUpdateFailed" last_modification_time="Sun, 14 May 2006 09:46:41 
GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="setupWindow">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Gtk GNUnet Configurator</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">640</property>
-  <property name="default_height">480</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <signal name="destroy" handler="on_window1_destroy" object="main_wnd"/>
-  <signal name="size_request" handler="on_window1_size_request" 
object="vpaned1" last_modification_time="Fri, 11 Jan 2002 16:17:11 GMT"/>
-  <signal name="delete_event" handler="on_window1_delete_event" 
object="main_wnd" last_modification_time="Sun, 09 Mar 2003 19:42:46 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkMenuBar" id="menubar1">
-         <property name="visible">True</property>
-         <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
-         <property 
name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
-
-         <child>
-           <widget class="GtkMenuItem" id="file1">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">_File</property>
-             <property name="use_underline">True</property>
-
-             <child>
-               <widget class="GtkMenu" id="file1_menu">
-
-                 <child>
-                   <widget class="GtkImageMenuItem" id="load1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Load a config 
file</property>
-                     <property name="label" translatable="yes">_Load</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="on_load1_activate"/>
-                     <accelerator key="L" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-                     <child internal-child="image">
-                       <widget class="GtkImage" id="image27">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-open</property>
-                         <property name="icon_size">1</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkImageMenuItem" id="save1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Save the 
config in .config</property>
-                     <property name="label" translatable="yes">_Save</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="on_save1_activate"/>
-                     <accelerator key="S" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-                     <child internal-child="image">
-                       <widget class="GtkImage" id="image28">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-save</property>
-                         <property name="icon_size">1</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkMenuItem" id="separator1">
-                     <property name="visible">True</property>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkImageMenuItem" id="quit1">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">_Quit</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="on_quit1_activate"/>
-                     <accelerator key="Q" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-                     <child internal-child="image">
-                       <widget class="GtkImage" id="image30">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-quit</property>
-                         <property name="icon_size">1</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkMenuItem" id="options1">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">_Options</property>
-             <property name="use_underline">True</property>
-
-             <child>
-               <widget class="GtkMenu" id="options1_menu">
-
-                 <child>
-                   <widget class="GtkCheckMenuItem" id="show_name1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Show 
name</property>
-                     <property name="label" translatable="yes">Show 
_name</property>
-                     <property name="use_underline">True</property>
-                     <property name="active">False</property>
-                     <signal name="activate" handler="on_show_name1_activate"/>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckMenuItem" id="show_range1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Show range 
(Y/M/N)</property>
-                     <property name="label" translatable="yes">Show 
_range</property>
-                     <property name="use_underline">True</property>
-                     <property name="active">False</property>
-                     <signal name="activate" 
handler="on_show_range1_activate"/>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckMenuItem" id="show_data1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Show value of 
the option</property>
-                     <property name="label" translatable="yes">Show 
_data</property>
-                     <property name="use_underline">True</property>
-                     <property name="active">False</property>
-                     <signal name="activate" handler="on_show_data1_activate"/>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkMenuItem" id="separator2">
-                     <property name="visible">True</property>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkCheckMenuItem" id="show_all_options1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Show all 
options</property>
-                     <property name="label" translatable="yes">Show all 
_options</property>
-                     <property name="use_underline">True</property>
-                     <property name="active">False</property>
-                     <signal name="activate" 
handler="on_show_all_options1_activate"/>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkMenuItem" id="help1">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">_Help</property>
-             <property name="use_underline">True</property>
-
-             <child>
-               <widget class="GtkMenu" id="help1_menu">
-
-                 <child>
-                   <widget class="GtkImageMenuItem" id="introduction1">
-                     <property name="visible">True</property>
-                     <property name="label" 
translatable="yes">_Introduction</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" 
handler="on_introduction1_activate" last_modification_time="Fri, 15 Nov 2002 
20:26:30 GMT"/>
-                     <accelerator key="I" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-                     <child internal-child="image">
-                       <widget class="GtkImage" id="image31">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-dialog-question</property>
-                         <property name="icon_size">1</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-
-                 <child>
-                   <widget class="GtkImageMenuItem" id="about1">
-                     <property name="visible">True</property>
-                     <property name="label" 
translatable="yes">_About</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="on_about1_activate" 
last_modification_time="Fri, 15 Nov 2002 20:26:30 GMT"/>
-                     <accelerator key="A" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-                     <child internal-child="image">
-                       <widget class="GtkImage" id="image32">
-                         <property name="visible">True</property>
-                         <property name="stock">gtk-properties</property>
-                         <property name="icon_size">1</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xpad">0</property>
-                         <property name="ypad">0</property>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHandleBox" id="handlebox1">
-         <property name="visible">True</property>
-         <property name="shadow_type">GTK_SHADOW_OUT</property>
-         <property name="handle_position">GTK_POS_LEFT</property>
-         <property name="snap_edge">GTK_POS_TOP</property>
-
-         <child>
-           <widget class="GtkToolbar" id="toolbar1">
-             <property name="visible">True</property>
-             <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
-             <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
-             <property name="tooltips">True</property>
-             <property name="show_arrow">True</property>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem1">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button1">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Goes up of 
one level (single view)</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="pressed" handler="on_back_pressed"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment11">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox11">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image44">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-go-up</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label11">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Up</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem2">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkVSeparator" id="vseparator1">
-                     <property name="visible">True</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem3">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button2">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Load a config 
file</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="pressed" handler="on_load_pressed"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment2">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox2">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image35">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-open</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label2">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Load</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem4">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button3">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Save a config 
file</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="pressed" handler="on_save_pressed"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment4">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox4">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image37">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-save</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label4">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Save</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem5">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkVSeparator" id="vseparator2">
-                     <property name="visible">True</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem6">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button4">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Single 
view</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="on_single_clicked" 
last_modification_time="Sun, 12 Jan 2003 14:28:39 GMT"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment6">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox6">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image39">
-                                 <property name="visible">True</property>
-                                 <property 
name="stock">gtk-justify-fill</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label6">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Single</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem7">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button5">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Split 
view</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="on_split_clicked" 
last_modification_time="Sun, 12 Jan 2003 14:28:45 GMT"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment7">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox7">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image40">
-                                 <property name="visible">True</property>
-                                 <property 
name="stock">gtk-justify-fill</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label7">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Split</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem8">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button6">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Full 
view</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="on_full_clicked" 
last_modification_time="Sun, 12 Jan 2003 14:28:50 GMT"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment8">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox8">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image41">
-                                 <property name="visible">True</property>
-                                 <property 
name="stock">gtk-justify-fill</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label8">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Full</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem9">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkVSeparator" id="vseparator3">
-                     <property name="visible">True</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem10">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button7">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Collapse the 
whole tree in the right frame</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="pressed" handler="on_collapse_pressed"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment9">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox9">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image42">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-remove</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label9">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Collapse</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkToolItem" id="toolitem11">
-                 <property name="visible">True</property>
-                 <property name="visible_horizontal">True</property>
-                 <property name="visible_vertical">True</property>
-                 <property name="is_important">False</property>
-
-                 <child>
-                   <widget class="GtkButton" id="button8">
-                     <property name="visible">True</property>
-                     <property name="tooltip" translatable="yes">Expand the 
whole tree in the right frame</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="pressed" handler="on_expand_pressed"/>
-
-                     <child>
-                       <widget class="GtkAlignment" id="alignment10">
-                         <property name="visible">True</property>
-                         <property name="xalign">0.5</property>
-                         <property name="yalign">0.5</property>
-                         <property name="xscale">0</property>
-                         <property name="yscale">0</property>
-                         <property name="top_padding">0</property>
-                         <property name="bottom_padding">0</property>
-                         <property name="left_padding">0</property>
-                         <property name="right_padding">0</property>
-
-                         <child>
-                           <widget class="GtkHBox" id="hbox10">
-                             <property name="visible">True</property>
-                             <property name="homogeneous">False</property>
-                             <property name="spacing">2</property>
-
-                             <child>
-                               <widget class="GtkImage" id="image43">
-                                 <property name="visible">True</property>
-                                 <property name="stock">gtk-add</property>
-                                 <property name="icon_size">4</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-
-                             <child>
-                               <widget class="GtkLabel" id="label10">
-                                 <property name="visible">True</property>
-                                 <property name="label" 
translatable="yes">Expand</property>
-                                 <property name="use_underline">True</property>
-                                 <property name="use_markup">False</property>
-                                 <property 
name="justify">GTK_JUSTIFY_LEFT</property>
-                                 <property name="wrap">False</property>
-                                 <property name="selectable">False</property>
-                                 <property name="xalign">0.5</property>
-                                 <property name="yalign">0.5</property>
-                                 <property name="xpad">0</property>
-                                 <property name="ypad">0</property>
-                                 <property 
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                                 <property name="width_chars">-1</property>
-                                 <property 
name="single_line_mode">False</property>
-                                 <property name="angle">0</property>
-                               </widget>
-                               <packing>
-                                 <property name="padding">0</property>
-                                 <property name="expand">False</property>
-                                 <property name="fill">False</property>
-                               </packing>
-                             </child>
-                           </widget>
-                         </child>
-                       </widget>
-                     </child>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="expand">False</property>
-                 <property name="homogeneous">False</property>
-               </packing>
-             </child>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">False</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHPaned" id="hpaned1">
-         <property name="width_request">1</property>
-         <property name="visible">True</property>
-         <property name="can_focus">True</property>
-         <property name="position">0</property>
-
-         <child>
-           <widget class="GtkScrolledWindow" id="scrolledwindow1">
-             <property name="visible">True</property>
-             <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
-             <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-             <property name="shadow_type">GTK_SHADOW_IN</property>
-             <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-             <child>
-               <widget class="GtkTreeView" id="treeview1">
-                 <property name="visible">True</property>
-                 <property name="can_focus">True</property>
-                 <property name="headers_visible">True</property>
-                 <property name="rules_hint">False</property>
-                 <property name="reorderable">False</property>
-                 <property name="enable_search">True</property>
-                 <property name="fixed_height_mode">False</property>
-                 <property name="hover_selection">False</property>
-                 <property name="hover_expand">False</property>
-                 <signal name="cursor_changed" 
handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 
15:58:22 GMT"/>
-                 <signal name="button_press_event" 
handler="on_treeview1_button_press_event" last_modification_time="Sun, 12 Jan 
2003 16:03:52 GMT"/>
-                 <signal name="key_press_event" 
handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 
16:11:44 GMT"/>
-               </widget>
-             </child>
-           </widget>
-           <packing>
-             <property name="shrink">True</property>
-             <property name="resize">False</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkVPaned" id="vpaned1">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-             <property name="position">0</property>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="scrolledwindow2">
-                 <property name="visible">True</property>
-                 <property 
name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
-                 <property 
name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-                 <property name="shadow_type">GTK_SHADOW_IN</property>
-                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTreeView" id="treeview2">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="has_focus">True</property>
-                     <property name="headers_visible">True</property>
-                     <property name="rules_hint">False</property>
-                     <property name="reorderable">False</property>
-                     <property name="enable_search">True</property>
-                     <property name="fixed_height_mode">False</property>
-                     <property name="hover_selection">False</property>
-                     <property name="hover_expand">False</property>
-                     <signal name="cursor_changed" 
handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 
15:57:55 GMT"/>
-                     <signal name="button_press_event" 
handler="on_treeview2_button_press_event" last_modification_time="Sun, 12 Jan 
2003 15:57:58 GMT"/>
-                     <signal name="key_press_event" 
handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 
15:58:01 GMT"/>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="shrink">True</property>
-                 <property name="resize">False</property>
-               </packing>
-             </child>
-
-             <child>
-               <widget class="GtkScrolledWindow" id="scrolledwindow3">
-                 <property name="visible">True</property>
-                 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                 <property 
name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-                 <property name="shadow_type">GTK_SHADOW_IN</property>
-                 <property 
name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-                 <child>
-                   <widget class="GtkTextView" id="textview3">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">False</property>
-                     <property name="overwrite">False</property>
-                     <property name="accepts_tab">True</property>
-                     <property name="justification">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap_mode">GTK_WRAP_WORD</property>
-                     <property name="cursor_visible">True</property>
-                     <property name="pixels_above_lines">2</property>
-                     <property name="pixels_below_lines">2</property>
-                     <property name="pixels_inside_wrap">0</property>
-                     <property name="left_margin">2</property>
-                     <property name="right_margin">2</property>
-                     <property name="indent">0</property>
-                     <property name="text" translatable="yes">This is GNUnet's 
configuration interface.
-
-GNUnet's options are separated into categories. You can browse them in the 
left tree. If you click on one of the categories, its options are shown above. 
-
-To change the value of an option, simply click on its value and enter a new 
value. To get additional information about a specific option, click on its 
description.</property>
-                   </widget>
-                 </child>
-               </widget>
-               <packing>
-                 <property name="shrink">True</property>
-                 <property name="resize">True</property>
-               </packing>
-             </child>
-           </widget>
-           <packing>
-             <property name="shrink">True</property>
-             <property name="resize">True</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="introductionDialog">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Introduction</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">True</property>
-  <property name="default_width">400</property>
-  <property name="default_height">300</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">True</property>
-  <property name="icon_name">gtk-help</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-       <widget class="GtkHButtonBox" id="dialog-action_area1">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-         <child>
-           <widget class="GtkButton" id="okbutton1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label">gtk-ok</property>
-             <property name="use_stock">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <property name="response_id">-7</property>
-             <signal name="clicked" handler="gtk_widget_destroy" 
object="introductionDialog" last_modification_time="Sun, 14 May 2006 10:42:20 
GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-         <property name="pack_type">GTK_PACK_END</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkScrolledWindow" id="scrolledwindow9">
-         <property name="visible">True</property>
-         <property name="can_focus">True</property>
-         <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-         <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-         <property name="shadow_type">GTK_SHADOW_IN</property>
-         <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-         <child>
-           <widget class="GtkTextView" id="introductionText">
-             <property name="visible">True</property>
-             <property name="can_focus">True</property>
-             <property name="editable">False</property>
-             <property name="overwrite">False</property>
-             <property name="accepts_tab">False</property>
-             <property name="justification">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap_mode">GTK_WRAP_WORD</property>
-             <property name="cursor_visible">False</property>
-             <property name="pixels_above_lines">0</property>
-             <property name="pixels_below_lines">0</property>
-             <property name="pixels_inside_wrap">0</property>
-             <property name="left_margin">0</property>
-             <property name="right_margin">0</property>
-             <property name="indent">0</property>
-             <property name="text" translatable="yes">Welcome to GNUnet Setup.
-
-For each option, a blank box indicates the feature is disabled, and checked 
one indicates it is enabled.
-If you do not see an option that you believe should be present, try turning on 
Show All Options under the Options menu.
-
-Although there is no cross reference yet to help you figure out what other 
options must be enabled to support the option you are interested in, you can 
still view the help of a grayed-out option.
-
-Toggling Show Debug Info under the Options menu will show the dependencies, 
which you can then match by examining other options.</property>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkAboutDialog" id="aboutdialog">
-  <property name="visible">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="name" translatable="yes">gnunet-setup</property>
-  <property name="copyright" translatable="yes">(C) 2001-2006 Christian 
Grothoff (and other contributing authors)</property>
-  <property name="comments" translatable="yes">This is the configuration tool 
for GNUnet.</property>
-  <property name="license" translatable="yes">             GNU GENERAL PUBLIC 
LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The &quot;Program&quot;, 
below,
-refers to any such program or work, and a &quot;work based on the Program&quot;
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term &quot;modification&quot;.)  Each licensee is addressed as 
&quot;you&quot;.
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and &quot;any
-later version&quot;, you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, EITHER 
EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the &quot;copyright&quot; line and a pointer to where the full notice is found.
-
-    &lt;one line to give the program's name and a brief idea of what it 
does.&gt;
-    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a &quot;copyright disclaimer&quot; for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  &lt;signature of Ty Coon&gt;, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-</property>
-  <property name="wrap_license">True</property>
-  <property name="website">http://gnunet.org/</property>
-  <property name="website_label" 
translatable="no">http://gnunet.org/</property>
-  <property name="authors">Christian Grothoff &lt;address@hidden&gt;
-Nils Durner &lt;address@hidden&gt;
-Andrew McDonald &lt;address@hidden&gt;
-Antti Salonen
-Blake Matheny &lt;address@hidden&gt;
-Eric Haumant
-Eric Noack &lt;address@hidden&gt;
-Felix von Leitner
-Gerd Knorr &lt;address@hidden&gt;
-Glenn McGrath &lt;address@hidden&gt;
-Hendrik Pagenhardt &lt;address@hidden&gt;
-Igor Wronsky &lt;address@hidden&gt;
-Ioana Patrascu &lt;address@hidden&gt;
-&lt;address@hidden&gt;
-James Blackwell &lt;address@hidden&gt;
-Jean-Luc Cooke &lt;address@hidden&gt;
-Jussi Eloranta &lt;address@hidden&gt;
-Jürgen Appel &lt;address@hidden&gt;
-Kevin Vandersloot &lt;address@hidden&gt;
-Krista Grothoff &lt;address@hidden&gt;
-Kyle McMartin &lt;address@hidden&gt;
-Larry Waldo
-Ludovic Courtès &lt;address@hidden&gt;
-Marko Räihä
-Paul Ruth &lt;address@hidden&gt;
-Renaldo Ferreira &lt;address@hidden&gt;
-Risto Saarelma
-Roman Zippel
-Romain Lievin
-Simo Viitanen
-Tiberius Stef &lt;address@hidden&gt;
-Tomi Tukiainen
-Tuomas Toivonen
-Tzvetan Horozov &lt;address@hidden&gt;
-Uli Luckas &lt;address@hidden&gt;
-Vasil Dimov &lt;address@hidden&gt;
-Werner Koch &lt;address@hidden&gt;
-</property>
-  <property name="documenters">Christian Grothoff &lt;address@hidden&gt;
-Nils Durner &lt;address@hidden&gt;
-</property>
-  <property name="artists">Christian Muellner &lt;address@hidden&gt;
-Alex Jones &lt;address@hidden&gt;
-Nicklas Larsson &lt;address@hidden&gt;</property>
-  <property name="translator_credits" translatable="yes" 
comments="TRANSLATORS: Replace this string with your names, one name per 
line.">Not for English ;-)</property>
-  <property name="logo">gnunet-logo-color.png</property>
-</widget>
-
-</glade-interface>

Deleted: GNUnet/src/setup/wizard.gladep
===================================================================
--- GNUnet/src/setup/wizard.gladep      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard.gladep      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,19 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd";>
-
-<glade-project>
-  <name>Wizard-conf</name>
-  <program_name>wizard-conf</program_name>
-  <gnome_support>FALSE</gnome_support>
-  <use_widget_names>TRUE</use_widget_names>
-  <output_main_file>FALSE</output_main_file>
-  <output_support_files>FALSE</output_support_files>
-  <output_build_files>FALSE</output_build_files>
-  <backup_source_files>FALSE</backup_source_files>
-  <main_source_file>wizard_interface.c</main_source_file>
-  <main_header_file>wizard_interface.h</main_header_file>
-  <handler_source_file>wizard_callbacks.c</handler_source_file>
-  <handler_header_file>wizard_callbacks.h</handler_header_file>
-  <support_source_file>wizard_support.c</support_source_file>
-  <support_header_file>wizard_support.h</support_header_file>
-</glade-project>

Deleted: GNUnet/src/setup/wizard_curs.c
===================================================================
--- GNUnet/src/setup/wizard_curs.c      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard_curs.c      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,665 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file conf/wizard_curs.c
- * @brief A easy-to-use configuration assistant for curses
- * @author Nils Durner
- */
-
-#include "gnunet_util.h"
-#include "platform.h"
-
-#ifndef MINGW
-  #include <grp.h>
-#endif
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#include "mconf_dialog.h"
-#include "wizard_util.h"
-#include "mconf.h"
-#include "wizard_curs.h"
-#include "confdata.h"
-
-
-extern int cols, rows;
-
-static struct dialog_list_item **nic_items;
-static int nic_item_count = 0;
-
-void showCursErr(const char *prefix,
-                const char *error) {
-  char *err;
-       
-  err = malloc(strlen(prefix) + strlen(error) + 2);
-  sprintf(err,
-         "%s %s",
-         prefix,
-         error);
-  dialog_msgbox(_("Error"),
-               err,
-               rows,
-               cols - 5,
-               1);
-  free(err);   
-}
-
-void insert_nic_curs(const char *name,
-                    int defaultNIC,
-                    void * cls)
-{
-       struct dialog_list_item *item;
-
-       /* Copy NIC data */     
-       nic_items = (nic_item_count++) ?
-               realloc(nic_items, nic_item_count * sizeof(struct 
dialog_list_item *)) :
-               malloc(sizeof(struct dialog_list_item *));
-
-       item = malloc(sizeof(struct dialog_list_item));
-       memset(item, 0, sizeof(struct dialog_list_item));
-       nic_items[nic_item_count-1] = item;
-       item->name = STRDUP(name);
-       item->namelen = strlen(name);
-  item->selected = wiz_is_nic_default(name, defaultNIC);
-}
-
-int wizard_curs_main(int argc, char **argv)
-{
-  void *active_ptr = NULL;
-  int idx, ret, autostart = 0, adv = 0;
-  struct symbol *sym;
-  char *defval;
-  char * user_name = NULL;
-  char * group_name = NULL;
-  char *confFile;
-  char * filename;
-  char *defuser;
-  const char *confUser;
-  char *defgroup;
-  const char *confGroup;
-
-  filename = getConfigurationString("GNUNET-SETUP",
-                                  "FILENAME");
-  conf_read(filename);
-  FREE(filename);
-
-  sym = sym_find("EXPERIMENTAL", "Meta");
-  sym_set_tristate_value(sym, yes);
-  sym = sym_find("ADVANCED", "Meta");
-  sym_set_tristate_value(sym, yes);
-  sym = sym_find("RARE", "Meta");
-  sym_set_tristate_value(sym, yes);
-
-  init_dialog();
-  init_wsize();
-  dialog_clear();
-
-  if (dialog_msgbox(_("GNUnet configuration"),
-                   _("Welcome to GNUnet!\n\nThis assistant will ask you a few 
basic questions "
-                     "in order to configure GNUnet.\n\nPlease visit our 
homepage at\n\t"
-                     "http://gnunet.org/\nand join our community at\n\t"
-                     "http://gnunet.org/drupal/\n\nHave a lot of fun,\n\nthe 
GNUnet team"),
-                   rows, cols - 5, 1) == -1)
-    goto end;
-
-  dialog_clear();
-       
-  enumNetworkIfs(insert_nic_curs, NULL);
-
-  /* Network interface */
-  if (nic_item_count) {
-    while (true) {
-      ret = dialog_menu(_("GNUnet configuration"),
-                       _("Choose the network interface that connects your 
computer to "
-                         "the internet from the list below."), rows, cols - 5, 
10,
-                       0, active_ptr, nic_item_count, nic_items);
-
-      if (ret == 2) {
-       /* Help */
-       dialog_msgbox(_("Help"), _("The \"Network interface\" is the device "
-                                  "that connects your computer to the 
internet. This is usually a modem, "
-                                  "an ISDN card or a network card in case you 
are using DSL."), rows,
-                     cols - 5, 1);
-      }
-      else if (ret <= 1) {
-       /* Select or Exit */
-#ifdef MINGW
-       char nic[21];
-       char *dst;
-#else
-       char *nic;
-#endif
-       for(idx = 0; idx < nic_item_count; idx++) {
-       
-         if (nic_items[idx]->selected) {
-#ifdef MINGW
-           char *src = strrchr(nic_items[idx]->name, '-') + 2;
-           dst = nic;
-           while(*src)
-             *dst++ = *src++;
-           dst[-1] = 0;
-#else
-           nic = nic_items[idx]->name;
-#endif
-           sym = sym_lookup("INTERFACE", "NETWORK", 0);
-           sym_set_string_value(sym, nic);
-           sym = sym_lookup("INTERFACES", "LOAD", 0);
-           sym_set_string_value(sym, nic);
-         }
-       
-         free(nic_items[idx]->name);
-         free(nic_items[idx]);
-       }
-       free(nic_items);
-       
-       break;
-      }
-    }
-
-    if (ret == 1 || ret == -1)
-      goto end;
-  }
-  else {
-    /* We are not root, just ask for the interface */
-    while(true) {
-      ret = dialog_inputbox(_("GNUnet configuration"),
-                           _("What is the name of "                    \
-                             "the network interface that connects your 
computer to the Internet?"),
-                           rows, cols - 5, "eth0");
-
-      if (ret == 1) {
-       /* Help */
-       dialog_msgbox(_("Help"),
-                     _("The \"Network interface\" is the device "
-                       "that connects your computer to the internet. This is 
usually a modem, "
-                       "an ISDN card or a network card in case you are using 
DSL."),
-                     rows, cols - 5, 1);
-      }
-      else if (ret <= 0)
-       break;
-    }
-
-    if (ret == -1)
-      goto end;
-
-    sym = sym_lookup("INTERFACE", "NETWORK", 0);
-    sym_set_string_value(sym, dialog_input_result);
-    sym = sym_lookup("INTERFACES", "LOAD", 0);
-    sym_set_string_value(sym, dialog_input_result);
-  }
-
-  dialog_clear();
-
-  /* IP address */
-  if ((sym = sym_find("IP", "NETWORK"))) {
-    sym_calc_value_ext(sym, 1);
-    defval = (char *) sym_get_string_value(sym);
-  }
-  else
-    defval = NULL;
-
-  while(true) {
-    ret = dialog_inputbox(_("GNUnet configuration"),
-                         _("What is this computer's "
-                           "public IP address or hostname?\n\nIf in doubt, 
leave this empty."),
-                         rows, cols - 5, defval ? defval : "");
-
-    if (ret == 1) {
-      /* Help */
-      dialog_msgbox(_("Help"),
-                   _("If your provider always assigns the same "
-                     "IP-Address to you (a \"static\" IP-Address), enter it 
into the "
-                     "\"IP-Address\" field. If your IP-Address changes every 
now and then "
-                     "(\"dynamic\" IP-Address) but there's a hostname that 
always points "
-                     "to your actual IP-Address (\"Dynamic DNS\"), you can 
also enter it "
-                     "here.\nIf in doubt, leave the field empty. GNUnet will 
then try to "
-                     "determine your IP-Address."), rows, cols - 5, 1);
-    }
-    else if (ret <= 0)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-
-  sym_set_string_value(sym, dialog_input_result);
-
-  dialog_clear();
-
-  /* NAT? */
-  sym = sym_find("LIMITED", "NAT");
-  while(true) {
-    ret = dialog_yesno(_("GNUnet configuration"),
-                      _("Is this machine behind "
-                        "NAT?\n\nIf you are connected to the internet through 
another computer "
-                        "doing SNAT, a router or a \"hardware firewall\" and 
other computers "
-                        "on the internet cannot connect to this computer, say 
\"yes\" here. "
-                        "Answer \"no\" on direct connections through modems, 
ISDN cards and "
-                        "DNAT (also known as \"port forwarding\")."), rows, 
cols - 5);
-
-    if (ret != -2)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-  else
-    sym_set_tristate_value(sym, !ret); /* ret is inverted */
-
-  /* Upstream */
-  if ((sym = sym_find("MAXNETUPBPSTOTAL", "LOAD"))) {
-    sym_calc_value_ext(sym, 1);
-    defval = (char *) sym_get_string_value(sym);
-  }
-  else
-    defval = NULL;
-
-  while(true) {
-    ret = dialog_inputbox(_("GNUnet configuration"),
-                         _("How much upstream "
-                           "(Bytes/s) may be used?"), rows, cols - 5, defval ? 
defval : "");
-
-    if (ret == 1) {
-      /* Help */
-      dialog_msgbox(_("Help"), _("You can limit GNUnet's resource usage "
-                                "here.\n\nThe \"upstream\" is the data channel 
through which data "
-                                "is *sent* to the internet. The limit is 
either the total maximum "
-                                "for this computer or how much GNUnet itself 
is allowed to use. You "
-                                "can specify that later. If you have a 
flatrate, you can set it to "
-                                "the maximum speed of your internet 
connection."), rows, cols - 5, 1);
-    }
-    else if (ret <= 0)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-
-  sym_set_string_value(sym, dialog_input_result);
-
-  dialog_clear();
-
-  /* Downstram */
-  if ((sym = sym_find("MAXNETDOWNBPSTOTAL", "LOAD"))) {
-    sym_calc_value_ext(sym, 1);
-    defval = (char *) sym_get_string_value(sym);
-  }
-  else
-    defval = NULL;
-
-  while(true) {
-    ret = dialog_inputbox(_("GNUnet configuration"), _("How much downstream "
-                                                      "(Bytes/s) may be 
used?"), rows, cols - 5, defval ? defval : "");
-
-    if (ret == 1) {
-      /* Help */
-      dialog_msgbox(_("Help"),
-                   _("You can limit GNUnet's resource usage "
-                     "here.\n\nThe \"downstream\" is the data channel through 
which data "
-                     "is *received* from the internet. The limit is either the 
total maximum "
-                     "for this computer or how much GNUnet itself is allowed 
to use. You "
-                     "can specify that later. If you have a flatrate you can 
set it to "
-                     "the maximum speed of your internet connection."), rows, 
cols - 5, 1);
-    }
-    else if (ret <= 0)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-
-  sym_set_string_value(sym, dialog_input_result);
-
-  dialog_clear();
-
-  /* Bandwidth allocation */
-  sym = sym_find("BASICLIMITING", "LOAD");
-  while (true) {
-    ret = dialog_yesno(_("GNUnet configuration"),
-                      _("Share denoted bandwidth "
-                        "with other applications?\n\nSay \"yes\" here, if you 
don't want other "
-                        "network traffic to interfere with GNUnet's operation, 
but still wish to "
-                        "constrain GNUnet's bandwidth usage to values entered 
in the previous "
-                        "steps, or if you can't reliably measure the maximum 
capabilities "
-                        "of your connection. \"No\" can be very useful if 
other applications "
-                        "are causing a lot of traffic on your LAN.  In this 
case, you do not "
-                        "want to limit the traffic that GNUnet can inflict on 
your internet "
-                        "connection whenever your high-speed LAN gets used 
(e.g. by NFS)."),
-                      rows, cols - 5);
-
-    if (ret != -2)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-  else
-    sym_set_tristate_value(sym, !ret); /* ret is inverted */
-
-  dialog_clear();
-
-  /* Max CPU */
-  if ((sym = sym_find("MAXCPULOAD", "LOAD"))) {
-    sym_calc_value_ext(sym, 1);
-    defval = (char *) sym_get_string_value(sym);
-  }
-  else
-    defval = NULL;
-
-  while(true) {
-    ret = dialog_inputbox(_("GNUnet configuration"),
-                         _("How much CPU (in %) may "
-                           "be used?"), rows, cols - 5, defval ? defval : "");
-
-    if (ret == 1) {
-      /* Help */
-      dialog_msgbox(_("Help"),
-                   _("You can limit GNUnet's resource usage "
-                     "here.\n\nThis is the percentage of processor time GNUnet 
is allowed "
-                     "to use."), rows, cols - 5, 1);
-    }
-    else if (ret <= 0)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-
-  sym_set_string_value(sym, dialog_input_result);
-
-  dialog_clear();
-
-  /* Migration */
-  sym = sym_find("ACTIVEMIGRATION", "FS");
-  while(true) {
-    ret = dialog_yesno(_("GNUnet configuration"),
-                      _("Store migrated content?"
-                        "\n\nGNUnet is able to store data from other peers in 
your datastore. "
-                        "This is useful if an adversary has access to your 
inserted content and "
-                        "you need to deny that the content is yours. With 
\"content migration\" "
-                        "on, the content could have \"migrated\" over the 
internet to your node"
-                        " without your knowledge.\nIt also helps to spread 
popular content over "
-                        "different peers to enhance availability."), rows, 
cols - 5);
-
-    if (ret != -2)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-  else
-    sym_set_tristate_value(sym, !ret); /* ret is inverted */
-
-  dialog_clear();
-
-  /* Quota */
-  if ((sym = sym_find("QUOTA", "FS"))) {
-    sym_calc_value_ext(sym, 1);
-    defval = (char *) sym_get_string_value(sym);
-  }
-  else
-    defval = NULL;
-
-  while(true) {
-    ret = dialog_inputbox(_("GNUnet configuration"),
-                         _("What's the maximum "
-                           "datastore size in MB?\n\nThe GNUnet datastore 
contains all data that "
-                           "GNUnet generates (index data, inserted and 
migrated content)."),
-                         rows, cols - 5, defval ? defval : "");
-
-    if (ret == 1) {
-      /* Help - not available */
-    }
-    else if (ret <= 0)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-
-  sym_set_string_value(sym, dialog_input_result);
-
-  dialog_clear();
-
-  /* Autostart */
-  if (isOSAutostartCapable()) {
-    while(true) {
-      ret = dialog_yesno(_("GNUnet configuration"),
-                        _("Do you want to launch "
-                          "GNUnet as a system service?"
-                          "\n\nIf you say \"yes\" here, the GNUnet background 
process will be "
-                          "automatically started when you turn on your 
computer. If you say \"no\""
-                          " here, you have to launch GNUnet yourself each time 
you want to use it."),
-                        rows, cols - 5);
-
-      if (ret != -2)
-       break;
-    }
-
-    if (ret == -1)
-      goto end;
-    else
-      autostart = !ret; /* ret is inverted */
-
-    dialog_clear();
-  }
-
-  /* User */
-  if (isOSUserAddCapable()) {
-    while(true) {
-
-      sym = sym_find("USER", "GNUNETD");
-      if (sym)
-       {
-         sym_calc_value_ext(sym, 1);
-         confUser = sym_get_string_value(sym);
-       }
-      else
-        confUser = NULL;
-
-#ifndef MINGW
-      if ((NULL == confUser) || (strlen(confUser) == 0))
-       {
-         if((geteuid() == 0) || (NULL != getpwnam("gnunet")))
-           defuser = STRDUP("gnunet");
-         else {
-           confUser = getenv("USER");
-           if (confUser != NULL)
-             defuser = STRDUP(confUser);
-           else
-             defuser = NULL;
-         }
-       }
-      else
-        defuser = STRDUP(confUser);
-#else
-      if (NULL == confUser || strlen(confUser) == 0)
-        defuser = STRDUP("");
-      else
-        defuser = STRDUP(confUser);
-#endif
-
-      ret = dialog_inputbox(_("GNUnet configuration"),
-                           _("Define the user owning the GNUnet service.\n\n"
-                             "For security reasons, it is a good idea to let 
this setup create "
-                             "a new user account under which the GNUnet 
service is started "
-                             "at system startup.\n\n"
-                             "However, GNUnet may not be able to access files 
other than its own. "
-                             "This includes files you want to publish in 
GNUnet. You'll have to "
-                             "grant read permissions to the user specified 
below.\n\n"
-                             "Leave the fields empty to run GNUnet with system 
privileges.\n\n"
-                             "GNUnet user:"), rows, cols - 5, defuser);
-      FREE(defuser);
-
-      if (ret == 1) {
-       /* Help */
-      } else if (ret <= 0) {
-       user_name = STRDUP(dialog_input_result);
-       break;
-      }
-    }
-
-    if (ret == -1)
-      goto end;
-
-    dialog_clear();
-
-    /* Group */
-    if (isOSGroupAddCapable()) {
-      while(true) {
-        sym = sym_find("GROUP", "GNUNETD");
-        if (sym)
-         {
-           sym_calc_value_ext(sym, 1);
-           confGroup = sym_get_string_value(sym);
-         }
-        else
-          confGroup = NULL;
-       
-#ifndef MINGW
-        if((NULL == confGroup) || (strlen(confGroup) == 0))
-         {
-           if((geteuid() == 0) || (NULL != getgrnam("gnunet")))
-             defgroup = STRDUP("gnunet");
-           else {
-             struct group * grp;
-             grp = getgrgid(getegid());
-             if ( (grp != NULL) &&
-                  (grp->gr_name != NULL) )
-               defgroup = STRDUP(grp->gr_name);
-             else
-               defgroup = NULL;
-           }
-         }
-        else
-          defgroup = STRDUP(confGroup);
-#else
-        if ( (NULL == confGroup) ||
-            (strlen(confGroup) == 0) )
-          defgroup = STRDUP("");
-        else
-          defgroup = STRDUP(defgroup);
-#endif
-       
-       ret = dialog_inputbox(_("GNUnet configuration"),
-                             _("Define the group owning the GNUnet 
service.\n\n"
-                               "For security reasons, it is a good idea to let 
this setup create "
-                               "a new group for the chosen user account.\n\n"
-                               "You can also specify a already existant group 
here.\n\n"
-                               "Only members of this group will be allowed to 
start and stop the "
-                               "the GNUnet server and have access to GNUnet 
server data.\n\n"
-                               "GNUnet group:"),
-                             rows, cols - 5, defgroup);
-        FREE(defgroup);
-       
-       if (ret == 1) {
-         /* Help */
-       }
-       else if (ret <= 0) {
-         group_name = STRDUP(dialog_input_result);
-         break;
-       }
-      }
-
-      if (ret == -1)
-       goto end;
-
-      dialog_clear();
-    }
-  }
-
-  dialog_clear();
-
-  /* Advanced */
-  while(true) {
-    ret = dialog_yesno(_("GNUnet configuration"),
-                      _("If you are an experienced "
-                        "user, you may want to tweak your GNUnet installation 
using the enhanced "
-                        "configurator.\n\nDo you want to start it after saving 
your configuration?"),
-                      rows, cols - 5);
-
-    if (ret != -2)
-      break;
-  }
-
-  if (ret == -1)
-    goto end;
-  else
-    adv = !ret;
-
-  dialog_clear();
-  end_dialog();
-
-  /* Save config */
-  if ( (user_name != NULL) &&
-       (strlen(user_name) > 0) )
-    if (!wiz_createGroupUser(group_name, user_name))
-      showCursErr(_("Unable to create user account:"), STRERROR(errno));
-
-  if (!wiz_autostartService(autostart, user_name, group_name))
-    showCursErr(_("Unable to change startup process:"), STRERROR(errno));
-
-  init_dialog();
-  dialog_clear();
-
-  while(true) {
-    confFile = getConfigurationString("GNUNET-SETUP",
-                                     "FILENAME");
-    if (conf_write(confFile) != 0) {
-      char * err;
-      const char * prefix;
-      const char * strerr;
-
-      prefix = _("Unable to save configuration file %s: %s.\n\nTry again?");
-      strerr = STRERROR(errno);
-
-      err = malloc(strlen(confFile) + strlen(prefix) + strlen(strerr) + 1);
-      sprintf(err, prefix, confFile, strerr);
-
-      ret = dialog_yesno(_("GNUnet configuration"),
-                        err,
-                        rows,
-                        cols - 5);
-
-      free(err);
-    }
-    else
-      ret = 1;
-
-    if (ret == 1 || ret == -1)
-      break;
-  }
-
-end:
-  end_dialog();
-
-  FREENONNULL(user_name);
-  FREENONNULL(group_name);
-
-  if (adv) {
-    mconf_main(argc, argv);
-  }
-
-  return 0;
-}
-
-/* end of wizard_curs.c */

Deleted: GNUnet/src/setup/wizard_curs.h
===================================================================
--- GNUnet/src/setup/wizard_curs.h      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard_curs.h      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,33 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/gconf.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef GCONF_H
-#define GCONF_H
-
-int wizard_curs_main(int argc, char **argv);
-
-#endif

Deleted: GNUnet/src/setup/wizard_gtk.c
===================================================================
--- GNUnet/src/setup/wizard_gtk.c       2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard_gtk.c       2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,683 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005, 2006 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file conf/wizard_gtk.c
- * @brief A easy-to-use configuration assistant
- * @author Nils Durner
- * @author Christian Grothoff
- */
-
-#include "gnunet_util.h"
-#include "platform.h"
-#include "glade_support.h"
-
-#ifndef MINGW
-#include <grp.h>
-#endif
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#include "wizard_util.h"
-#include "wizard_gtk.h"
-#include "gconf.h"
-#include "confdata.h"
-
-/**
- * Current open window. 
- */
-static GtkWidget * curwnd;
-
-static int doOpenEnhConfigurator = 0;
-
-static int doAutoStart = 0;
-
-static int doUpdate = YES;
-
-static char * user_name = NULL;
-
-static char * group_name = NULL;
-
-
-/* 1 = terminate app on "assi_destroy" */
-static int quit;
-
-/**
- * Destroy the current window (without exiting).
- * Also unrefs the current glade XML context.
- */
-static void destroyCurrentWindow() {
-  GE_ASSERT(ectx, mainXML != NULL);
-  GE_ASSERT(ectx, curwnd != NULL);
-  quit = 0;
-  gtk_widget_destroy(curwnd);
-  curwnd = NULL;
-  destroyMainXML();
-  quit = 1;
-}
-
-void on_assi_destroy (GtkObject * object, 
-                     gpointer user_data) {
-  /* Don't terminate if the user just clicked "Next" */
-  if (quit)
-    gtk_main_quit();
-}
-
-
-struct insert_nic_cls {
-  GtkWidget * cmbNIC;
-  int nic_item_count;
-};
-
-void on_cmbNIC_changed (GtkComboBox * combobox, 
-                       gpointer user_data) {
-  GtkTreeIter iter;
-  GValue val;
-  char *entry;
-#ifdef MINGW
-  char nic[21], *idx;
-  char *dst;
-#else
-  char *nic;
-#endif
-  struct symbol *sym;
-  GtkTreeModel *model;
-  
-  gtk_combo_box_get_active_iter(combobox, &iter);
-  model = gtk_combo_box_get_model(combobox);
-  memset(&val, 0, sizeof(val));
-  gtk_tree_model_get_value(model, &iter, 0, &val);
-  entry = (char *) g_value_get_string(&val);
-  
-#ifdef MINGW
-  idx = strrchr(entry, '-');
-  if (! idx)
-    return;
-  idx += 2;
-  dst = nic;
-  while(*idx)
-    *dst++ = *idx++;
-  dst[-1] = 0;
-#else
-  nic = entry;
-#endif
-  sym = sym_lookup("INTERFACE", "NETWORK", 0);
-  sym_set_string_value(sym, nic);
-  sym = sym_lookup("INTERFACES", "LOAD", 0);
-  sym_set_string_value(sym, nic);
-}
-
-static void insert_nic(const char *name,
-                      int defaultNIC,
-                      void * cls) {
-  struct insert_nic_cls * inc = cls;
-  GtkWidget * cmbNIC = inc->cmbNIC;
-
-  gtk_combo_box_append_text(GTK_COMBO_BOX(cmbNIC), name);
-  defaultNIC = wiz_is_nic_default(name, defaultNIC);
-  if (defaultNIC) 
-    gtk_combo_box_set_active(GTK_COMBO_BOX(cmbNIC), inc->nic_item_count);
-}
-
-void load_step2(GtkButton * button,
-               gpointer prev_window) {
-  struct symbol *sym;
-  GtkWidget * entIP;
-  GtkWidget * chkFW;
-  GtkTreeIter iter;
-  GtkListStore *model;
-  char *nic;
-  struct insert_nic_cls cls;
-  const char * val;
-
-  destroyCurrentWindow();
-  curwnd = get_xml("assi_step2");      
-  cls.cmbNIC = lookup_widget("cmbNIC");
-  GE_ASSERT(ectx, cls.cmbNIC != NULL);
-  cls.nic_item_count = 0;
-  model = gtk_list_store_new(1, G_TYPE_STRING);
-  gtk_combo_box_set_model(GTK_COMBO_BOX(cls.cmbNIC),
-                         GTK_TREE_MODEL(model));
-  gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(cls.cmbNIC),
-                                     0);
-
-  sym = sym_find("INTERFACE", "NETWORK");
-  if (sym != NULL) {
-    
-    enumNetworkIfs(&insert_nic, &cls);
-    
-    if (cls.nic_item_count != 0) {
-      /* ifconfig unavailable */
-      
-      sym_calc_value_ext(sym, 1);
-      nic = (char *) sym_get_string_value(sym);
-      
-      if (!nic || strlen(nic) == 0)
-       nic = "eth0";
-      gtk_combo_box_append_text(GTK_COMBO_BOX(cls.cmbNIC), nic);
-      gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), 
-                                   &iter);
-      gtk_combo_box_set_active_iter(GTK_COMBO_BOX(cls.cmbNIC), &iter);
-      on_cmbNIC_changed(GTK_COMBO_BOX(cls.cmbNIC), NULL);                      
-    }
-    
-    gtk_widget_set_usize(cls.cmbNIC, 10, -1);
-  }
-  
-  entIP = lookup_widget("entIP");
-  sym = sym_find("IP", "NETWORK");
-  if (sym != NULL) {
-    sym_calc_value_ext(sym, 1);
-    val = sym_get_string_value(sym);
-    if (val == NULL)
-      val = "";
-    gtk_entry_set_text(GTK_ENTRY(entIP), val);
-  }
-  
-  chkFW = lookup_widget("chkFW");
-  sym = sym_find("LIMITED", "NAT");
-  if (sym != NULL) {
-    sym_calc_value_ext(sym, 1);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkFW),
-                                sym_get_tristate_value(sym) != no);
-  }
-  gtk_widget_show(curwnd);
-}
-
-void load_step3(GtkButton * button,
-               gpointer prev_window) {
-  struct symbol *sym;
-  GtkWidget * entUp;
-  GtkWidget * entDown;
-  GtkWidget * radGNUnet;
-  GtkWidget * radShare;
-  GtkWidget * entCPU;
-  const char * val;
-  
-  destroyCurrentWindow();
-  curwnd = get_xml("assi_step3");
-  entUp = lookup_widget("entUp");
-  entDown = lookup_widget("entDown");  
-  radGNUnet = lookup_widget("radGNUnet");
-  radShare = lookup_widget("radShare");  
-  entCPU = lookup_widget("entCPU");
-       
-  sym = sym_find("MAXNETUPBPSTOTAL", "LOAD");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    val = sym_get_string_value(sym);
-    if (val == NULL)
-      val = "";
-    gtk_entry_set_text(GTK_ENTRY(entUp), val);
-  }
-  sym = sym_find("MAXNETDOWNBPSTOTAL", "LOAD");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    val = sym_get_string_value(sym);
-    if (val == NULL)
-      val = "";
-    gtk_entry_set_text(GTK_ENTRY(entDown), val);
-  }
-  sym = sym_find("BASICLIMITING", "LOAD");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sym_get_tristate_value(sym) 
!= no 
-                                                  ? radGNUnet 
-                                                  : radShare ), 
-                                TRUE);
-  }
-  sym = sym_find("MAXCPULOAD", "LOAD");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    val = sym_get_string_value(sym);
-    if (val == NULL)
-      val = "";
-    gtk_entry_set_text(GTK_ENTRY(entCPU), val);
-  }
-  gtk_widget_show(curwnd);
-}
-
-void load_step4(GtkButton * button,
-               gpointer prev_window) {
-  struct symbol *sym;
-  GtkWidget * entUser;
-  GtkWidget * entGroup;
-  const char * uname = NULL;
-  const char * gname = NULL;
-
-  destroyCurrentWindow();
-  curwnd = get_xml("assi_step4");
-  entUser = lookup_widget("entUser");
-  entGroup = lookup_widget("entGroup");
-
-  if (NULL != user_name) {
-    sym = sym_find("USER", "GNUNETD");
-    if (sym) {
-      sym_calc_value_ext(sym, 1);
-      uname = sym_get_string_value(sym);
-    }
-  }
-
-  if (NULL != group_name) {
-    sym = sym_find("GROUP", "GNUNETD");
-    if (sym) {
-      sym_calc_value_ext(sym, 1);
-      gname = sym_get_string_value(sym);
-    }
-  }
-
-#ifndef MINGW
-  if (NULL == uname || strlen(uname) == 0) {
-    if((geteuid() == 0) || (NULL != getpwnam("gnunet")))
-      user_name = STRDUP("gnunet");
-    else {
-      uname = getenv("USER");
-      if (uname != NULL)
-       user_name = STRDUP(uname);
-      else
-       user_name = NULL;
-    }
-  } else {
-    user_name = STRDUP(uname);
-  }
-  if(NULL == gname || strlen(gname) == 0)
-  {
-    struct group * grp;
-    if((geteuid() == 0) || (NULL != getgrnam("gnunet")))
-      group_name = STRDUP("gnunet");
-    else {
-      grp = getgrgid(getegid());
-      if ( (grp != NULL) &&
-          (grp->gr_name != NULL) )
-       group_name = STRDUP(grp->gr_name);
-      else
-       group_name = NULL;
-    }
-  } else {
-    group_name = STRDUP(gname);
-  }
-
-#else
-  if (NULL == uname || strlen(uname) == 0)
-    user_name = STRDUP("");
-  else
-    user_name = STRDUP(uname);
-  if (NULL == gname || strlen(gname) == 0)
-    group_name = STRDUP("");
-  else
-    group_name = STRDUP(gname);
-#endif
-
-  if (user_name != NULL)
-    gtk_entry_set_text(GTK_ENTRY(entUser), user_name);
-  if (group_name != NULL)
-    gtk_entry_set_text(GTK_ENTRY(entGroup), group_name);
-  if(isOSUserAddCapable())
-    gtk_widget_set_sensitive(entUser, TRUE);
-  else
-    gtk_widget_set_sensitive(entUser, FALSE);
-  if(isOSGroupAddCapable())
-    gtk_widget_set_sensitive(entGroup, TRUE);
-  else
-    gtk_widget_set_sensitive(entGroup, FALSE);
-  gtk_widget_show(curwnd);
-}
-
-
-void load_step5(GtkButton * button,
-               gpointer prev_window) {
-  struct symbol *sym;
-  GtkWidget * chkMigr;
-  GtkWidget * entQuota;
-  GtkWidget * chkEnh;
-  GtkWidget * chkStart;
-  const char * val;
-  
-  destroyCurrentWindow();
-  curwnd = get_xml("assi_step5");
-  entQuota =  lookup_widget("entQuota"); 
-  chkMigr =  lookup_widget("chkMigr");
-  chkStart =  lookup_widget("chkStart");
-  chkEnh =  lookup_widget("chkEnh");
-  
-  sym = sym_find("QUOTA", "FS");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    val = sym_get_string_value(sym);
-    if (val == NULL)
-      val = "";
-    gtk_entry_set_text(GTK_ENTRY(entQuota), val);
-  }
-  
-  sym = sym_find("ACTIVEMIGRATION", "FS");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkMigr),
-                                sym_get_tristate_value(sym) != no);
-  }
-  
-  if (isOSAutostartCapable())
-    gtk_widget_set_sensitive(chkStart, TRUE);
-  
-  sym = sym_find("AUTOSTART", "GNUNETD");
-  if (sym) {
-    sym_calc_value_ext(sym, 1);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkStart),
-      sym_get_tristate_value(sym) != no);
-  }
-
-  if (doOpenEnhConfigurator)
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkEnh), 1);                
-  gtk_widget_show(curwnd);
-}
-
-void do_destroy_widget(GtkButton * button,
-                      gpointer user_data) {
-  GtkWidget * msgSaveFailed = user_data;
-  gtk_widget_destroy(msgSaveFailed);
-}
-
-static void showErr(const char * prefix, 
-                   const char * error) {
-  GtkWidget * label98;
-  GtkWidget * msgSaveFailed;
-  char * err;  
-  GladeXML * myXML;
-  
-  myXML = load_xml("msgSaveFailed");
-  msgSaveFailed = glade_xml_get_widget(myXML,
-                                      "msgSaveFailed");
-  label98 = glade_xml_get_widget(myXML, "label98");  
-  err = MALLOC(strlen(prefix) + strlen(error) + 2);
-  sprintf(err, 
-         "%s %s", 
-         prefix, 
-         error);  
-  gtk_label_set_text(GTK_LABEL(label98), err);  
-  FREE(err);  
-  gtk_widget_show(msgSaveFailed);
-  g_object_unref(myXML);
-}
-
-
-static int save_conf() {
-  char * err;
-  const char * prefix;
-  char * filename;
-       
-  filename = getConfigurationString("GNUNET-SETUP",
-                                   "FILENAME");
-  if (conf_write(filename)) {
-    prefix = _("Unable to save configuration file `%s':");
-
-    err = MALLOC(strlen(filename) + strlen(prefix) + 1);
-    sprintf(err, prefix, filename);
-    showErr(err, STRERROR(errno));
-    FREE(err);
-
-    FREE(filename);
-    return SYSERR;
-  }
-  FREE(filename);      
-  return OK;
-}
-
-void on_saveYes_clicked (GtkButton * button, 
-                        gpointer user_data) {
-  int i;
-  GtkWidget * msgSave = user_data;
-
-  i = save_conf();  
-  gtk_widget_destroy(msgSave);
-  if (OK == i) {
-    quit = 1;
-    gtk_widget_destroy(curwnd);
-  }
-}
-
-void on_saveNo_clicked (GtkButton * button, 
-                       gpointer user_data) {
-  GtkWidget * msgSave = user_data;
-
-  quit = 1;
-  gtk_widget_destroy(msgSave);
-  gtk_widget_destroy(curwnd);
-}
-
-void on_abort_clicked(GtkButton * button, 
-                     gpointer user_data) {
-  showDialog("msgSave");
-}
-
-void on_finish_clicked (GtkButton * button, 
-                       gpointer user_data) {  
-  if (doAutoStart && (user_name != NULL))
-    if (!wiz_createGroupUser(group_name, user_name)) {
-#ifndef MINGW
-      showErr(_("Unable to create user account:"), STRERROR(errno));
-#endif
-      return;
-    }
-  
-  if (!wiz_autostartService(doAutoStart, user_name, group_name)) {
-#ifndef MINGW
-    showErr(_("Unable to change startup process:"), STRERROR(errno));
-#endif
-  }    
-  
-  if (OK != save_conf())
-    return;
-  
-  if (doUpdate &&
-      (system("gnunet-update") != 0) )
-    showDialog("msgUpdateFailed");  
-  else
-    gtk_widget_destroy(curwnd);
-}
-
-void on_updateFailedOK_clicked (GtkButton * button, 
-                               gpointer user_data) {
-  GtkWidget * dialog = user_data;
-  gtk_widget_destroy(dialog);
-}
-
-void on_entIP_changed (GtkEditable * editable, 
-                      gpointer user_data) {
-  struct symbol *sym;
-  gchar * ret;
-  
-  sym = sym_lookup("IP", "NETWORK", 0);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  sym_set_string_value(sym, ret);
-  g_free(ret);
-}
-
-
-void on_chkFW_toggled (GtkToggleButton * togglebutton, 
-                      gpointer user_data) {
-  struct symbol *sym = sym_lookup("LIMITED", "NAT", 0);
-  sym_set_tristate_value(sym,
-                        gtk_toggle_button_get_active(togglebutton) ? yes : no);
-}
-
-void on_entUp_changed (GtkEditable * editable, 
-                      gpointer user_data) {
-  gchar * ret;
-  struct symbol *sym;
-  
-  sym = sym_lookup("MAXNETUPBPSTOTAL", "LOAD", 0);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  sym_set_string_value(sym, ret);
-  g_free(ret);
-}
-
-
-void on_entDown_changed (GtkEditable * editable, 
-                        gpointer user_data) {
-  struct symbol *sym;
-  gchar * ret;
-
-  sym = sym_lookup("MAXNETDOWNBPSTOTAL", "LOAD", 0);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  sym_set_string_value(sym, ret);
-  g_free(ret);
-}
-
-
-void on_radGNUnet_toggled(GtkToggleButton * togglebutton, 
-                         gpointer user_data) {
-  struct symbol *sym = sym_lookup("BASICLIMITING", "LOAD", 0);
-  sym_set_tristate_value(sym,  
-                        gtk_toggle_button_get_active(togglebutton) ? yes : no);
-}
-
-
-void on_radShare_toggled (GtkToggleButton * togglebutton, 
-                         gpointer user_data) {
-  struct symbol *sym = sym_lookup("BASICLIMITING", "LOAD", 0);
-  sym_set_tristate_value(sym,  
-                        gtk_toggle_button_get_active(togglebutton) ? no : yes);
-}
-
-
-void on_entCPU_changed (GtkEditable * editable, 
-                       gpointer user_data) {
-  struct symbol *sym;
-  gchar * ret;
-
-  sym = sym_lookup("MAXCPULOAD", "LOAD", 0);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  sym_set_string_value(sym, ret);
-  g_free(ret);
-}
-
-void on_chkMigr_toggled (GtkToggleButton * togglebutton, 
-                        gpointer user_data) {
-  struct symbol *sym = sym_lookup("ACTIVEMIGRATION", "FS", 0);
-  sym_set_tristate_value(sym,
-                        gtk_toggle_button_get_active(togglebutton) ? yes : no);
-}
-
-void on_entQuota_changed (GtkEditable * editable, 
-                         gpointer user_data) {
-  struct symbol *sym;
-  gchar * ret;
-
-  sym = sym_lookup("QUOTA", "FS", 0);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  sym_set_string_value(sym, ret);
-  g_free(ret);
-}
-
-
-void on_chkStart_toggled (GtkToggleButton * togglebutton, 
-                         gpointer user_data) {
-  struct symbol *sym = sym_lookup("AUTOSTART", "GNUNETD", 0);
-  doAutoStart = gtk_toggle_button_get_active(togglebutton);
-  sym_set_tristate_value(sym, doAutoStart ? yes : no);
-}
-
-
-void on_chkEnh_toggled (GtkToggleButton * togglebutton, 
-                       gpointer user_data) {
-  doOpenEnhConfigurator = gtk_toggle_button_get_active(togglebutton);
-}
-
-void on_chkUpdate_toggled(GtkToggleButton * togglebutton, 
-                         gpointer user_data) {
-  doUpdate = gtk_toggle_button_get_active(togglebutton);
-}
-
-void on_entUser_changed (GtkEditable * editable,
-                        gpointer user_data) {
-  struct symbol *sym;
-  gchar * ret;
-
-  sym = sym_lookup("USER", "GNUNETD", 0);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  GE_ASSERT(ectx, ret != NULL);
-  sym_set_string_value(sym, ret);
-  FREENONNULL(user_name);
-  if (strlen(ret) != 0)
-    user_name = STRDUP(ret);
-  else
-    user_name = NULL;
-  g_free(ret);
-  
-}
-
-void on_entGroup_changed (GtkEditable * editable,
-                         gpointer user_data) {
-  struct symbol *sym;
-  gchar * ret;
-
-  FREENONNULL(group_name);
-  ret = gtk_editable_get_chars(editable, 0, -1);
-  GE_ASSERT(ectx, ret != NULL);
-  sym_set_string_value(sym, ret);
-  if (strlen(ret) != 0)
-    group_name = STRDUP(ret);
-  else
-    group_name = NULL;
-  sym = sym_lookup("GROUP", "GNUNETD", 0);
-  g_free(ret);
-}
-
-
-int gtk_wizard_main(int argc, 
-                   char **argv,
-                   void * lib) {
-  struct symbol * sym;
-  char * filename;
-       
-  setLibrary(lib);
-  g_thread_init(NULL);
-  gtk_init(&argc, &argv); 
-#ifdef ENABLE_NLS
-  bind_textdomain_codeset(PACKAGE, "UTF-8"); /* for gtk */
-#endif
-#ifdef WINDOWS
-  FreeConsole();
-#endif
-
-  filename = getConfigurationString("GNUNET-SETUP",
-                                  "FILENAME");
-  conf_read(filename);
-  FREE(filename);
-  sym = sym_find("EXPERIMENTAL", "Meta");
-  sym_set_tristate_value(sym, yes);
-  sym = sym_find("ADVANCED", "Meta");
-  sym_set_tristate_value(sym, yes);
-  sym = sym_find("RARE", "Meta");
-  sym_set_tristate_value(sym, yes);
-  curwnd = get_xml("assi_step1");
-  gtk_widget_show(curwnd);
-  gdk_threads_enter();
-  gtk_main();
-  gdk_threads_leave();
-  destroyMainXML();
-  if (doOpenEnhConfigurator)
-    gconf_main_post_init(lib);
-  FREENONNULL(user_name);
-  FREENONNULL(group_name);
-  setLibrary(NULL);
-  return 0;
-}

Deleted: GNUnet/src/setup/wizard_gtk.h
===================================================================
--- GNUnet/src/setup/wizard_gtk.h       2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard_gtk.h       2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,35 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/wizard_gtk.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef WIZARD_GTK_H
-#define WIZARD_GTK_H
-
-int gtk_wizard_main(int argc, 
-                   char **argv,
-                   void * library);
-
-#endif

Deleted: GNUnet/src/setup/wizard_util.c
===================================================================
--- GNUnet/src/setup/wizard_util.c      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard_util.c      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,211 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file conf/wizard_util.c
- * @brief Common helper functions
- * @author Nils Durner
- */
-
-#include "platform.h"
-#include "gnunet_util.h"
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-char * winErrorStr(const char *prefix, 
-       int dwErr) {
-#ifdef WINDOWS
-  char *err, *ret;
-  int mem;
-  
-  if (! FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
FORMAT_MESSAGE_FROM_SYSTEM,
-          NULL, 
-          (DWORD) dwErr, 
-          MAKELANGID(LANG_NEUTRAL, 
-         SUBLANG_DEFAULT), 
-          (LPTSTR) &err,
-          0,
-          NULL )) {
-    err = "";
-  }
-  
-  mem = strlen(err) + strlen(prefix) + 20;
-  ret = (char *) malloc(mem);
-  
-  snprintf(ret, mem, "%s: %s (#%u)", 
-     prefix, 
-     err, 
-     dwErr);
-  LocalFree(err);
-  return ret;
-#else
-  return NULL;
-#endif
-}
-
-/**
- * @brief Determine whether a NIC makes a good default
- */
-int wiz_is_nic_default(const char *name, int suggestion) {
-       const char *nic = NULL;
-       struct symbol *sym = sym_find("INTERFACE", "NETWORK");
-
-  if (sym)
-  {
-       sym_calc_value_ext(sym, 1);
-       nic = sym_get_string_value(sym);
-#ifdef WINDOWS
-               /* default NIC for unixes */
-               if (strcmp(nic, "eth0") == 0)
-                       nic = NULL;
-#endif
-  }
-
-  if (nic)
-  {
-       /* The user has selected a NIC before */
-       int niclen = strlen(nic);
-       int inslen = strlen(name);
-       suggestion = 0;
-       if (inslen >= niclen)
-       {
-#ifdef WINDOWS
-               if (strncmp(name + inslen - niclen - 1, nic, niclen) == 0)
-#else
-               if (strcmp(name, nic) == 0)
-#endif
-                       suggestion = 1; /* This is the previous selection */
-       }
-  }
-
-  return suggestion;
-}
-
-
-/**
- * @brief Make GNUnet start automatically
- * @param doAutoStart true to enable autostart, false to disable it
- * @param username name of the user account to use
- * @param groupname name of the group to use
- * @return 1 on success, 0 on error
- */
-int wiz_autostartService(int doAutoStart, 
-                        char *username, 
-                        char *groupname) {
-  int ret = os_modify_autostart(NULL,
-                               NO,
-                               doAutoStart,
-                               "gnunetd", 
-                               username,
-                               groupname);
-  if (ret ) {
-#ifdef MINGW
-    char *err = NULL;
-    switch(ret) {
-    case 1:
-      err = winErrorStr(_("Can't open Service Control Manager"),
-                       GetLastError());
-      break;
-    case 2:
-      if (GetLastError() != ERROR_SERVICE_EXISTS) {
-       err = winErrorStr(_("Can't create service"),
-                         GetLastError());
-      }
-      break;
-    case 3:
-      err = winErrorStr(_("Error changing the permissions of"
-                         " the GNUnet directory"),
-                       GetLastError());
-      break;
-    case 4:
-      err = _("Cannot write to the regisitry");
-      break;
-    case 5:
-      err = winErrorStr(_("Can't access the service"),
-                       GetLastError());
-         break;
-    case 6:
-      err = winErrorStr(_("Can't delete the service"),
-                       GetLastError());
-      break;
-    default:
-      err = winErrorStr(_("Unknown error"), GetLastError());
-    }
-    if (err) {
-      MessageBox(GetActiveWindow(),
-              err,
-              _("Error"),
-              MB_ICONSTOP | MB_OK);
-      free(err);
-    }
-#endif
-
-    return 0;
-  }
-  return 1;
-}
-
-/**
- * @brief Add a service account for GNUnet
- * @param group the group of the new user
- * @param name the name of the new user
- * @return 1 on success
- */
-int wiz_createGroupUser(char *group_name, char *user_name) {
-  int ret = os_modify_user(NULL, 
-                          NO,
-                          YES,
-                          user_name,
-                          group_name);
-
-  if (ret != OK) {
-#ifdef MINGW
-    char *err;
-
-    switch(ret) {
-    case 1:
-      err = _("This version of Windows does not support "
-             "multiple users.");
-      break;
-    case 2:
-      err = winErrorStr(_("Error creating user"), GetLastError());
-      break;
-    case 3:
-      err = winErrorStr(_("Error accessing local security policy"), 
GetLastError());
-      break;
-    case 4:
-      err = winErrorStr(_("Error granting service right to user"), 
GetLastError());
-      break;
-    default:
-      err = winErrorStr(_("Unknown error while creating a new user"), 
GetLastError());
-    }
-
-    if (err) {
-      MessageBox(0, err, _("Error"), MB_ICONSTOP | MB_OK);
-      free(err);
-    }
-#endif
-    return 0;
-  }
-  return 1;
-}
-
-/* end of wizard_util.c */

Deleted: GNUnet/src/setup/wizard_util.h
===================================================================
--- GNUnet/src/setup/wizard_util.h      2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/wizard_util.h      2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,38 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file conf/wizard_util.h
- * @brief Common helper functions
- * @author Nils Durner
- */
-
-#ifndef _WIZARD_UTIL_H_
-#define _WIZARD_UTIL_H_
-
-#include "platform.h"
-
-int wiz_is_nic_default(const char *name, int suggestion);
-int wiz_autostartService(int doAutoStart, char *username, char *groupname);
-int wiz_createGroupUser(char *group_name, char *user_name);
-
-#endif //_WIZARD_UTIL_H_
-
-/* end of wizard_util.c */

Deleted: GNUnet/src/setup/zconf.l
===================================================================
--- GNUnet/src/setup/zconf.l    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/zconf.l    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,374 +0,0 @@
-%option backup nostdinit noyywrap never-interactive full ecs
-%option 8bit backup nodefault perf-report perf-report
-%x COMMAND HELP STRING PARAM
-%{
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- * @brief Lexical analyzer for GNUnet's configuration definitions
- * @author Roman Zippel
- * @author Nils Durner (GNUnet extensions)
- */
-
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-#define START_STRSIZE  16
-
-char *text;
-static char *text_ptr;
-static int text_size, text_asize;
-
-struct buffer {
-        struct buffer *parent;
-        YY_BUFFER_STATE state;
-};
-
-struct buffer *current_buf;
-
-static int last_ts, first_ts;
-
-static void zconf_endhelp(void);
-static struct buffer *zconf_endfile(void);
-
-void new_string(void)
-{
-       text = malloc(START_STRSIZE);
-       text_asize = START_STRSIZE;
-       text_ptr = text;
-       text_size = 0;
-       *text_ptr = 0;
-}
-
-void append_string(const char *str, int size)
-{
-       int new_size = text_size + size + 1;
-       if (new_size > text_asize) {
-               text = realloc(text, new_size);
-               text_asize = new_size;
-               text_ptr = text + text_size;
-       }
-       memcpy(text_ptr, str, size);
-       text_ptr += size;
-       text_size += size;
-       *text_ptr = 0;
-}
-
-void alloc_string(const char *str, int size)
-{
-       text = malloc(size + 1);
-       memcpy(text, str, size);
-       text[size] = 0;
-}
-%}
-
-ws     [ \n\t]
-n      [A-Za-z0-9_:]
-
-%%
-       int str = 0;
-       int ts, i;
-
-[ \t]*#.*\n    current_file->lineno++;
-[ \t]*#.*
-
-[ \t]*\n       current_file->lineno++; return T_EOL;
-
-[ \t]+ {
-       BEGIN(COMMAND);
-}
-
-.      {
-       unput(yytext[0]);
-       BEGIN(COMMAND);
-}
-
-
-<COMMAND>{
-       "mainmenu"              BEGIN(PARAM); return T_MAINMENU;
-       "menu"                  BEGIN(PARAM); return T_MENU;
-       "endmenu"               BEGIN(PARAM); return T_ENDMENU;
-       "source"                BEGIN(PARAM); return T_SOURCE;
-       "choice"                BEGIN(PARAM); return T_CHOICE;
-       "endchoice"             BEGIN(PARAM); return T_ENDCHOICE;
-       "comment"               BEGIN(PARAM); return T_COMMENT;
-       "config"                BEGIN(PARAM); return T_CONFIG;
-       "menuconfig"            BEGIN(PARAM); return T_MENUCONFIG;
-       "help"                  BEGIN(PARAM); return T_HELP;
-       "if"                    BEGIN(PARAM); return T_IF;
-       "endif"                 BEGIN(PARAM); return T_ENDIF;
-       "depends"               BEGIN(PARAM); return T_DEPENDS;
-       "requires"              BEGIN(PARAM); return T_REQUIRES;
-       "optional"              BEGIN(PARAM); return T_OPTIONAL;
-       "default"               BEGIN(PARAM); return T_DEFAULT;
-       "prompt"                BEGIN(PARAM); return T_PROMPT;
-       "tristate"              BEGIN(PARAM); return T_TRISTATE;
-       "def_tristate"          BEGIN(PARAM); return T_DEF_TRISTATE;
-       "bool"                  BEGIN(PARAM); return T_BOOLEAN;
-       "boolean"               BEGIN(PARAM); return T_BOOLEAN;
-       "def_bool"              BEGIN(PARAM); return T_DEF_BOOLEAN;
-       "def_boolean"           BEGIN(PARAM); return T_DEF_BOOLEAN;
-       "int"                   BEGIN(PARAM); return T_INT;
-       "hex"                   BEGIN(PARAM); return T_HEX;
-       "string"                BEGIN(PARAM); return T_STRING;
-       "select"                BEGIN(PARAM); return T_SELECT;
-       "enable"                BEGIN(PARAM); return T_SELECT;
-       "range"                 BEGIN(PARAM); return T_RANGE;
-       {n}+    {
-               alloc_string(yytext, yyleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       .
-       \n      current_file->lineno++; BEGIN(INITIAL);
-}
-
-<PARAM>{
-       "&&"    return T_AND;
-       "||"    return T_OR;
-       "("     return T_OPEN_PAREN;
-       ")"     return T_CLOSE_PAREN;
-       "!"     return T_NOT;
-       "="     return T_EQUAL;
-       "!="    return T_UNEQUAL;
-       "if"    return T_IF;
-       "on"    return T_ON;
-       \"|\'   {
-               str = yytext[0];
-               new_string();
-               BEGIN(STRING);
-       }
-       \n      BEGIN(INITIAL); current_file->lineno++; return T_EOL;
-       ---     /* ignore */
-       ({n}|[-/.])+    {
-               alloc_string(yytext, yyleng);
-               zconflval.string = text;
-               return T_WORD;
-       }
-       #.*     /* comment */
-       \\\n    current_file->lineno++;
-       .
-       <<EOF>> {
-               BEGIN(INITIAL);
-       }
-}
-
-<STRING>{
-       [^'"\\\n]+/\n   {
-               append_string(yytext, yyleng);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       [^'"\\\n]+      {
-               append_string(yytext, yyleng);
-       }
-       \\.?/\n {
-               append_string(yytext + 1, yyleng - 1);
-               zconflval.string = text;
-               return T_WORD_QUOTE;
-       }
-       \\.?    {
-               append_string(yytext + 1, yyleng - 1);
-       }
-       \'|\"   {
-               if (str == yytext[0]) {
-                       BEGIN(PARAM);
-                       zconflval.string = text;
-                       return T_WORD_QUOTE;
-               } else
-                       append_string(yytext, 1);
-       }
-       \n      {
-               printf("%s:%d:warning: multi-line strings not supported\n", 
zconf_curname(), zconf_lineno());
-               current_file->lineno++;
-               BEGIN(INITIAL);
-               return T_EOL;
-       }
-       <<EOF>> {
-               BEGIN(INITIAL);
-       }
-}
-
-<HELP>{
-       [ \t]+  {
-               ts = 0;
-               for (i = 0; i < yyleng; i++) {
-                       if (yytext[i] == '\t')
-                               ts = (ts & ~7) + 8;
-                       else
-                               ts++;
-               }
-               last_ts = ts;
-               if (first_ts) {
-                       if (ts < first_ts) {
-                               zconf_endhelp();
-                               return T_HELPTEXT;
-                       }
-                       ts -= first_ts;
-                       while (ts > 8) {
-                               append_string("        ", 8);
-                               ts -= 8;
-                       }
-                       append_string("        ", ts);
-               }
-       }
-       [ \t]*\n/[^ \t\n] {
-               current_file->lineno++;
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-       [ \t]*\n        {
-               current_file->lineno++;
-               append_string("\n", 1);
-       }
-       [^ \t\n].* {
-               append_string(yytext, yyleng);
-               if (!first_ts)
-                       first_ts = last_ts;
-       }
-       <<EOF>> {
-               zconf_endhelp();
-               return T_HELPTEXT;
-       }
-}
-
-<<EOF>>        {
-       if (current_buf) {
-               zconf_endfile();
-               return T_EOF;
-       }
-       fclose(yyin);
-       yyterminate();
-}
-
-%%
-void zconf_starthelp(void)
-{
-       new_string();
-       last_ts = first_ts = 0;
-       BEGIN(HELP);
-}
-
-static void zconf_endhelp(void)
-{
-       zconflval.string = text;
-       BEGIN(INITIAL);
-}
-
-
-/*
- * Try to open specified file with $LANG appended
- * Return NULL if file is not found.
- */
-FILE *zconf_fopen(const char *name)
-{
-       char configFile[PATH_MAX+1], lang[3];
-       FILE *f;
-       
-       strlcpy(lang, getenv("LANG"), 3);
-       snprintf(configFile, PATH_MAX + 1, "%s.%s", name, lang);
-       if (!(f = FOPEN(configFile, "r")))
-               f = FOPEN(name, "r");
-       
-       return f;
-}
-
-void zconf_initscan(const char *name)
-{
-       yyin = zconf_fopen(name);
-       if (!yyin) {
-               printf("can't find file %s\n", name);
-               exit(1);
-       }
-
-       current_buf = malloc(sizeof(*current_buf));
-       memset(current_buf, 0, sizeof(*current_buf));
-
-       current_file = file_lookup(name);
-       current_file->lineno = 1;
-       current_file->flags = FILE_BUSY;
-}
-
-void zconf_nextfile(const char *name)
-{
-  char *realfn;
-       struct file *file;
-       struct buffer *buf;
-  
-  realfn = expandDollar("Meta", STRDUP(name));
-  if (strlen(realfn) == 0) {
-    FREE(realfn);
-    realfn = STRDUP(name);
-  }
-
-       file = file_lookup(name);
-       buf = malloc(sizeof(*buf));
-       memset(buf, 0, sizeof(*buf));
-
-       current_buf->state = YY_CURRENT_BUFFER;
-       yyin = zconf_fopen(realfn);
-       if (!yyin) {
-               printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), 
zconf_lineno(), realfn);
-               exit(1);
-       }
-       yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
-       buf->parent = current_buf;
-       current_buf = buf;
-
-       if (file->flags & FILE_BUSY) {
-               printf("recursive scan (%s)?\n", realfn);
-               exit(1);
-       }
-       if (file->flags & FILE_SCANNED) {
-               printf("file %s already scanned?\n", realfn);
-               exit(1);
-       }
-       file->flags |= FILE_BUSY;
-       file->lineno = 1;
-       file->parent = current_file;
-       current_file = file;
-       
-       FREE(realfn);
-}
-
-static struct buffer *zconf_endfile(void)
-{
-       struct buffer *parent;
-
-       current_file->flags |= FILE_SCANNED;
-       current_file->flags &= ~FILE_BUSY;
-       current_file = current_file->parent;
-
-       parent = current_buf->parent;
-       if (parent) {
-               fclose(yyin);
-               yy_delete_buffer(YY_CURRENT_BUFFER);
-               yy_switch_to_buffer(parent->state);
-       }
-       free(current_buf);
-       current_buf = parent;
-
-       return parent;
-}
-
-int zconf_lineno(void)
-{
-       if (current_buf)
-               return current_file->lineno - 1;
-       else
-               return 0;
-}
-
-char *zconf_curname(void)
-{
-       if (current_buf)
-               return current_file->name;
-       else
-               return "<none>";
-}

Deleted: GNUnet/src/setup/zconf.tab.h
===================================================================
--- GNUnet/src/setup/zconf.tab.h        2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/zconf.tab.h        2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,125 +0,0 @@
-/* A Bison parser, made from zconf.y, by GNU bison 1.75.  */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, 
Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-#ifndef BISON_ZCONF_TAB_H
-# define BISON_ZCONF_TAB_H
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     T_MAINMENU = 258,
-     T_MENU = 259,
-     T_ENDMENU = 260,
-     T_SOURCE = 261,
-     T_CHOICE = 262,
-     T_ENDCHOICE = 263,
-     T_COMMENT = 264,
-     T_CONFIG = 265,
-     T_HELP = 266,
-     T_HELPTEXT = 267,
-     T_IF = 268,
-     T_ENDIF = 269,
-     T_DEPENDS = 270,
-     T_REQUIRES = 271,
-     T_OPTIONAL = 272,
-     T_PROMPT = 273,
-     T_DEFAULT = 274,
-     T_TRISTATE = 275,
-     T_BOOLEAN = 276,
-     T_INT = 277,
-     T_HEX = 278,
-     T_WORD = 279,
-     T_STRING = 280,
-     T_UNEQUAL = 281,
-     T_EOF = 282,
-     T_EOL = 283,
-     T_CLOSE_PAREN = 284,
-     T_OPEN_PAREN = 285,
-     T_ON = 286,
-     T_OR = 287,
-     T_AND = 288,
-     T_EQUAL = 289,
-     T_NOT = 290
-   };
-#endif
-#define T_MAINMENU 258
-#define T_MENU 259
-#define T_ENDMENU 260
-#define T_SOURCE 261
-#define T_CHOICE 262
-#define T_ENDCHOICE 263
-#define T_COMMENT 264
-#define T_CONFIG 265
-#define T_HELP 266
-#define T_HELPTEXT 267
-#define T_IF 268
-#define T_ENDIF 269
-#define T_DEPENDS 270
-#define T_REQUIRES 271
-#define T_OPTIONAL 272
-#define T_PROMPT 273
-#define T_DEFAULT 274
-#define T_TRISTATE 275
-#define T_BOOLEAN 276
-#define T_INT 277
-#define T_HEX 278
-#define T_WORD 279
-#define T_STRING 280
-#define T_UNEQUAL 281
-#define T_EOF 282
-#define T_EOL 283
-#define T_CLOSE_PAREN 284
-#define T_OPEN_PAREN 285
-#define T_ON 286
-#define T_OR 287
-#define T_AND 288
-#define T_EQUAL 289
-#define T_NOT 290
-
-
-
-
-#ifndef YYSTYPE
-#line 33 "zconf.y"
-typedef union {
-       int token;
-       char *string;
-       struct symbol *symbol;
-       struct expr *expr;
-       struct menu *menu;
-} yystype;
-/* Line 1281 of /usr/share/bison/yacc.c.  */
-#line 118 "zconf.tab.h"
-# define YYSTYPE yystype
-#endif
-
-extern YYSTYPE zconflval;
-
-
-#endif /* not BISON_ZCONF_TAB_H */
-

Deleted: GNUnet/src/setup/zconf.y
===================================================================
--- GNUnet/src/setup/zconf.y    2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/zconf.y    2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,693 +0,0 @@
-%{
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- * @brief Parser for GNUnet's configuration definitions
- * @author Roman Zippel
- * @author Nils Durner (GNUnet extensions)
- */
-
-#include <ctype.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "bool.h"
-
-#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
-
-#define PRINTD         0x0001
-#define DEBUG_PARSE    0x0002
-
-int cdebug = PRINTD;
-
-extern int zconflex(void);
-static void zconfprint(const char *err, ...);
-static void zconferror(const char *err);
-static bool zconf_endtoken(int token, int starttoken, int endtoken);
-
-struct symbol *symbol_hash[257];
-extern char *current_sect;
-
-#define YYERROR_VERBOSE
-%}
-%expect 40
-
-%union
-{
-       int token;
-       char *string;
-       struct symbol *symbol;
-       struct expr *expr;
-       struct menu *menu;
-}
-
-%token T_MAINMENU
-%token T_MENU
-%token T_ENDMENU
-%token T_SOURCE
-%token T_CHOICE
-%token T_ENDCHOICE
-%token T_COMMENT
-%token T_CONFIG
-%token T_MENUCONFIG
-%token T_HELP
-%token <string> T_HELPTEXT
-%token T_IF
-%token T_ENDIF
-%token T_DEPENDS
-%token T_REQUIRES
-%token T_OPTIONAL
-%token T_PROMPT
-%token T_DEFAULT
-%token T_TRISTATE
-%token T_DEF_TRISTATE
-%token T_BOOLEAN
-%token T_DEF_BOOLEAN
-%token T_STRING
-%token T_INT
-%token T_HEX
-%token <string> T_WORD
-%token <string> T_WORD_QUOTE
-%token T_UNEQUAL
-%token T_EOF
-%token T_EOL
-%token T_CLOSE_PAREN
-%token T_OPEN_PAREN
-%token T_ON
-%token T_SELECT
-%token T_RANGE
-
-%left T_OR
-%left T_AND
-%left T_EQUAL T_UNEQUAL
-%nonassoc T_NOT
-
-%type <string> prompt
-%type <string> section
-%type <string> source
-%type <symbol> symbol
-%type <expr> expr
-%type <expr> if_expr
-%type <token> end
-
-%{
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-%}
-%%
-input:   /* empty */
-       | input block
-;
-
-block:   common_block
-       | choice_stmt
-       | menu_stmt
-       | T_MAINMENU prompt nl_or_eof
-       | T_ENDMENU             { zconfprint("unexpected 'endmenu' statement"); 
}
-       | T_ENDIF               { zconfprint("unexpected 'endif' statement"); }
-       | T_ENDCHOICE           { zconfprint("unexpected 'endchoice' 
statement"); }
-       | error nl_or_eof       { zconfprint("syntax error"); yyerrok; }
-;
-
-common_block:
-         if_stmt
-       | comment_stmt
-       | config_stmt
-       | menuconfig_stmt
-       | source_stmt
-       | nl_or_eof
-;
-
-
-/* config/menuconfig entry */
-
-config_entry_start: T_CONFIG T_WORD T_EOL
-{
-       struct symbol *sym = sym_lookup($2, current_sect, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), 
zconf_lineno(), $2);
-};
-
-config_stmt: config_entry_start config_option_list
-{
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), 
zconf_lineno());
-};
-
-menuconfig_entry_start: T_MENUCONFIG T_WORD T_EOL
-{
-       struct symbol *sym = sym_lookup($2, current_sect, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), 
zconf_lineno(), $2);
-};
-
-menuconfig_stmt: menuconfig_entry_start config_option_list
-{
-       if (current_entry->prompt)
-               current_entry->prompt->type = P_MENU;
-       else
-               zconfprint("warning: menuconfig statement without prompt");
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), 
zconf_lineno());
-};
-
-config_option_list:
-         /* empty */
-       | config_option_list config_option
-       | config_option_list depends
-       | config_option_list help
-       | config_option_list T_EOL
-;
-
-config_option: T_TRISTATE prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), 
zconf_lineno());
-};
-
-config_option: T_DEF_TRISTATE expr if_expr T_EOL
-{
-       menu_add_expr(P_DEFAULT, $2, $3);
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), 
zconf_lineno());
-};
-
-config_option: T_BOOLEAN prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_DEF_BOOLEAN expr if_expr T_EOL
-{
-       menu_add_expr(P_DEFAULT, $2, $3);
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), 
zconf_lineno());
-};
-
-config_option: T_INT prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_INT);
-       printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_HEX prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_HEX);
-       printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_STRING prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_STRING);
-       printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_PROMPT prompt if_expr T_EOL
-{
-       menu_add_prompt(P_PROMPT, $2, $3);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_DEFAULT expr if_expr T_EOL
-{
-       menu_add_expr(P_DEFAULT, $2, $3);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_SELECT T_WORD if_expr T_EOL
-{
-       menu_add_symbol(P_SELECT, sym_lookup($2, current_sect, 0), $3);
-       printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
-};
-
-config_option: T_RANGE symbol symbol if_expr T_EOL
-{
-       menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4);
-       printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
-};
-
-/* choice entry */
-
-choice: T_CHOICE T_EOL
-{
-       struct symbol *sym = sym_lookup(NULL, current_sect, 0);
-       sym->flags |= SYMBOL_CHOICE;
-       menu_add_entry(sym);
-       menu_add_expr(P_CHOICE, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
-};
-
-choice_entry: choice choice_option_list
-{
-       menu_end_entry();
-       menu_add_menu();
-};
-
-choice_end: end
-{
-       if (zconf_endtoken($1, T_CHOICE, T_ENDCHOICE)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), 
zconf_lineno());
-       }
-};
-
-choice_stmt:
-         choice_entry choice_block choice_end
-       | choice_entry choice_block
-{
-       printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", 
current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-};
-
-choice_option_list:
-         /* empty */
-       | choice_option_list choice_option
-       | choice_option_list depends
-       | choice_option_list help
-       | choice_option_list T_EOL
-;
-
-choice_option: T_PROMPT prompt if_expr T_EOL
-{
-       menu_add_prompt(P_PROMPT, $2, $3);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-};
-
-choice_option: T_TRISTATE prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), 
zconf_lineno());
-};
-
-choice_option: T_BOOLEAN prompt_stmt_opt T_EOL
-{
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-};
-
-choice_option: T_OPTIONAL T_EOL
-{
-       current_entry->sym->flags |= SYMBOL_OPTIONAL;
-       printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), 
zconf_lineno());
-};
-
-choice_option: T_DEFAULT T_WORD if_expr T_EOL
-{
-       menu_add_symbol(P_DEFAULT, sym_lookup($2, current_sect, 0), $3);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-};
-
-choice_block:
-         /* empty */
-       | choice_block common_block
-;
-
-/* if entry */
-
-if: T_IF expr T_EOL
-{
-       printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
-       menu_add_entry(NULL);
-       menu_add_dep($2);
-       menu_end_entry();
-       menu_add_menu();
-};
-
-if_end: end
-{
-       if (zconf_endtoken($1, T_IF, T_ENDIF)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), 
zconf_lineno());
-       }
-};
-
-if_stmt:
-         if if_block if_end
-       | if if_block
-{
-       printf("%s:%d: missing 'endif' for this 'if' statement\n", 
current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-};
-
-if_block:
-         /* empty */
-       | if_block common_block
-       | if_block menu_stmt
-       | if_block choice_stmt
-;
-
-/* menu entry */
-
-menu: T_MENU prompt section T_EOL
-{
-       menu_add_entry(NULL);
-       menu_add_prop(P_MENU, $2, NULL, NULL);
-       menu_add_section($3);
-       printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
-};
-
-menu_entry: menu depends_list
-{
-       menu_end_entry();
-       menu_add_menu();
-};
-
-menu_end: end
-{
-       if (zconf_endtoken($1, T_MENU, T_ENDMENU)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), 
zconf_lineno());
-       }
-};
-
-menu_stmt:
-         menu_entry menu_block menu_end
-       | menu_entry menu_block
-{
-       printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", 
current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-};
-
-menu_block:
-         /* empty */
-       | menu_block common_block
-       | menu_block menu_stmt
-       | menu_block choice_stmt
-       | menu_block error T_EOL                { zconfprint("invalid menu 
option"); yyerrok; }
-;
-
-source: T_SOURCE prompt T_EOL
-{
-       $$ = $2;
-       printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), 
zconf_lineno(), $2);
-};
-
-source_stmt: source
-{
-       zconf_nextfile($1);
-};
-
-/* comment entry */
-
-comment: T_COMMENT prompt T_EOL
-{
-       menu_add_entry(NULL);
-       menu_add_prop(P_COMMENT, $2, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
-};
-
-comment_stmt: comment depends_list
-{
-       menu_end_entry();
-};
-
-/* help option */
-
-help_start: T_HELP T_EOL
-{
-       printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
-       zconf_starthelp();
-};
-
-help: help_start T_HELPTEXT
-{
-       current_entry->sym->help = $2;
-};
-
-/* depends option */
-
-depends_list:    /* empty */
-               | depends_list depends
-               | depends_list T_EOL
-;
-
-depends: T_DEPENDS T_ON expr T_EOL
-{
-       menu_add_dep($3);
-       printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), 
zconf_lineno());
-}
-       | T_DEPENDS expr T_EOL
-{
-       menu_add_dep($2);
-       printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
-}
-       | T_REQUIRES expr T_EOL
-{
-       menu_add_dep($2);
-       printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), 
zconf_lineno());
-};
-
-/* prompt statement */
-
-prompt_stmt_opt:
-         /* empty */
-       | prompt if_expr
-{
-       menu_add_prop(P_PROMPT, $1, NULL, $2);
-};
-
-prompt:          T_WORD
-       | T_WORD_QUOTE
-;
-
-section:  T_WORD
-       | T_WORD_QUOTE
-;
-
-end:     T_ENDMENU nl_or_eof   { $$ = T_ENDMENU; }
-       | T_ENDCHOICE nl_or_eof { $$ = T_ENDCHOICE; }
-       | T_ENDIF nl_or_eof     { $$ = T_ENDIF; }
-;
-
-nl_or_eof:
-       T_EOL | T_EOF;
-
-if_expr:  /* empty */                  { $$ = NULL; }
-       | T_IF expr                     { $$ = $2; }
-;
-
-expr:    symbol                                { $$ = expr_alloc_symbol($1); }
-       | symbol T_EQUAL symbol                 { $$ = expr_alloc_comp(E_EQUAL, 
$1, $3); }
-       | symbol T_UNEQUAL symbol               { $$ = 
expr_alloc_comp(E_UNEQUAL, $1, $3); }
-       | T_OPEN_PAREN expr T_CLOSE_PAREN       { $$ = $2; }
-       | T_NOT expr                            { $$ = expr_alloc_one(E_NOT, 
$2); }
-       | expr T_OR expr                        { $$ = expr_alloc_two(E_OR, $1, 
$3); }
-       | expr T_AND expr                       { $$ = expr_alloc_two(E_AND, 
$1, $3); }
-;
-
-symbol:          T_WORD        { $$ = sym_lookup($1, current_sect, 0); 
free($1); }
-       | T_WORD_QUOTE  { $$ = sym_lookup($1, current_sect, 1); free($1); }
-;
-
-%%
-
-void conf_parse(const char *name)
-{
-       struct symbol *sym;
-       int i;
-
-       zconf_initscan(name);
-
-       sym_init();
-       menu_init();
-       modules_sym = sym_lookup("MODULES", "X", 0);
-       rootmenu.prompt = menu_add_prop(P_MENU, "GNUnet Configuration", NULL, 
NULL);
-
-       //zconfdebug = 1;
-       zconfparse();
-       if (zconfnerrs)
-               exit(1);
-       menu_finalize(&rootmenu);
-       for_all_symbols(i, sym) {
-                if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym))
-                        printf("\n");
-               else
-                       sym->flags |= SYMBOL_CHECK_DONE;
-        }
-
-       sym_change_count = 1;
-}
-
-const char *zconf_tokenname(int token)
-{
-       switch (token) {
-       case T_MENU:            return "menu";
-       case T_ENDMENU:         return "endmenu";
-       case T_CHOICE:          return "choice";
-       case T_ENDCHOICE:       return "endchoice";
-       case T_IF:              return "if";
-       case T_ENDIF:           return "endif";
-       }
-       return "<token>";
-}
-
-static bool zconf_endtoken(int token, int starttoken, int endtoken)
-{
-       if (token != endtoken) {
-               zconfprint("unexpected '%s' within %s block", 
zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       if (current_menu->file != current_file) {
-               zconfprint("'%s' in different file than '%s'", 
zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfprint("location of the '%s'", zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       return true;
-}
-
-static void zconfprint(const char *err, ...)
-{
-       va_list ap;
-
-       fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1);
-       va_start(ap, err);
-       vfprintf(stderr, err, ap);
-       va_end(ap);
-       fprintf(stderr, "\n");
-}
-
-static void zconferror(const char *err)
-{
-       fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, 
err);
-}
-
-void print_quoted_string(FILE *out, const char *str)
-{
-       const char *p;
-       int len;
-
-       putc('"', out);
-       while ((p = strchr(str, '"'))) {
-               len = p - str;
-               if (len)
-                       fprintf(out, "%.*s", len, str);
-               fputs("\\\"", out);
-               str = p + 1;
-       }
-       fputs(str, out);
-       putc('"', out);
-}
-
-void print_symbol(FILE *out, struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       struct property *prop;
-
-       if (sym_is_choice(sym))
-               fprintf(out, "choice\n");
-       else
-               fprintf(out, "config %s\n", sym->name);
-       switch (sym->type) {
-       case S_BOOLEAN:
-               fputs("  boolean\n", out);
-               break;
-       case S_TRISTATE:
-               fputs("  tristate\n", out);
-               break;
-       case S_STRING:
-               fputs("  string\n", out);
-               break;
-       case S_INT:
-               fputs("  integer\n", out);
-               break;
-       case S_HEX:
-               fputs("  hex\n", out);
-               break;
-       default:
-               fputs("  ???\n", out);
-               break;
-       }
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->menu != menu)
-                       continue;
-               switch (prop->type) {
-               case P_PROMPT:
-                       fputs("  prompt ", out);
-                       print_quoted_string(out, prop->text);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_DEFAULT:
-                       fputs( "  default ", out);
-                       expr_fprint(prop->expr, out);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_CHOICE:
-                       fputs("  #choice value\n", out);
-                       break;
-               default:
-                       fprintf(out, "  unknown prop %d!\n", prop->type);
-                       break;
-               }
-       }
-       if (sym->help) {
-               int len = strlen(sym->help);
-               while (sym->help[--len] == '\n')
-                       sym->help[len] = 0;
-               fprintf(out, "  help\n%s\n", sym->help);
-       }
-       fputc('\n', out);
-}
-
-void zconfdump(FILE *out)
-{
-       struct property *prop;
-       struct symbol *sym;
-       struct menu *menu;
-
-       menu = rootmenu.list;
-       while (menu) {
-               if ((sym = menu->sym))
-                       print_symbol(out, menu);
-               else if ((prop = menu->prompt)) {
-                       switch (prop->type) {
-                       case P_COMMENT:
-                               fputs("\ncomment ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       case P_MENU:
-                               fputs("\nmenu ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       default:
-                               ;
-                       }
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs("  depends ", out);
-                               expr_fprint(prop->visible.expr, out);
-                               fputc('\n', out);
-                       }
-                       fputs("\n", out);
-               }
-
-               if (menu->list)
-                       menu = menu->list;
-               else if (menu->next)
-                       menu = menu->next;
-               else while ((menu = menu->parent)) {
-                       if (menu->prompt && menu->prompt->type == P_MENU)
-                               fputs("\nendmenu\n", out);
-                       if (menu->next) {
-                               menu = menu->next;
-                               break;
-                       }
-               }
-       }
-}
-
-#include "lex.zconf.c"

Deleted: GNUnet/src/setup/zconf_tab.c
===================================================================
--- GNUnet/src/setup/zconf_tab.c        2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/zconf_tab.c        2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,2124 +0,0 @@
-/* A Bison parser, made by GNU Bison 1.875a.  */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software 
Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-/* If NAME_PREFIX is specified substitute the variables and functions
-   names.  */
-#define yyparse zconfparse
-#define yylex   zconflex
-#define yyerror zconferror
-#define yylval  zconflval
-#define yychar  zconfchar
-#define yydebug zconfdebug
-#define yynerrs zconfnerrs
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     T_MAINMENU = 258,
-     T_MENU = 259,
-     T_ENDMENU = 260,
-     T_SOURCE = 261,
-     T_CHOICE = 262,
-     T_ENDCHOICE = 263,
-     T_COMMENT = 264,
-     T_CONFIG = 265,
-     T_MENUCONFIG = 266,
-     T_HELP = 267,
-     T_HELPTEXT = 268,
-     T_IF = 269,
-     T_ENDIF = 270,
-     T_DEPENDS = 271,
-     T_REQUIRES = 272,
-     T_OPTIONAL = 273,
-     T_PROMPT = 274,
-     T_DEFAULT = 275,
-     T_TRISTATE = 276,
-     T_DEF_TRISTATE = 277,
-     T_BOOLEAN = 278,
-     T_DEF_BOOLEAN = 279,
-     T_STRING = 280,
-     T_INT = 281,
-     T_HEX = 282,
-     T_WORD = 283,
-     T_WORD_QUOTE = 284,
-     T_UNEQUAL = 285,
-     T_EOF = 286,
-     T_EOL = 287,
-     T_CLOSE_PAREN = 288,
-     T_OPEN_PAREN = 289,
-     T_ON = 290,
-     T_SELECT = 291,
-     T_RANGE = 292,
-     T_OR = 293,
-     T_AND = 294,
-     T_EQUAL = 295,
-     T_NOT = 296
-   };
-#endif
-#define T_MAINMENU 258
-#define T_MENU 259
-#define T_ENDMENU 260
-#define T_SOURCE 261
-#define T_CHOICE 262
-#define T_ENDCHOICE 263
-#define T_COMMENT 264
-#define T_CONFIG 265
-#define T_MENUCONFIG 266
-#define T_HELP 267
-#define T_HELPTEXT 268
-#define T_IF 269
-#define T_ENDIF 270
-#define T_DEPENDS 271
-#define T_REQUIRES 272
-#define T_OPTIONAL 273
-#define T_PROMPT 274
-#define T_DEFAULT 275
-#define T_TRISTATE 276
-#define T_DEF_TRISTATE 277
-#define T_BOOLEAN 278
-#define T_DEF_BOOLEAN 279
-#define T_STRING 280
-#define T_INT 281
-#define T_HEX 282
-#define T_WORD 283
-#define T_WORD_QUOTE 284
-#define T_UNEQUAL 285
-#define T_EOF 286
-#define T_EOL 287
-#define T_CLOSE_PAREN 288
-#define T_OPEN_PAREN 289
-#define T_ON 290
-#define T_SELECT 291
-#define T_RANGE 292
-#define T_OR 293
-#define T_AND 294
-#define T_EQUAL 295
-#define T_NOT 296
-
-
-
-
-/* Copy the first part of user declarations.  */
-
-
-/*
- * Copyright (C) 2002 Roman Zippel <address@hidden>
- * Released under the terms of the GNU GPL v2.0.
- * @brief Parser for GNUnet's configuration definitions
- * @author Roman Zippel
- * @author Nils Durner (GNUnet extensions)
- */
-
-#include <ctype.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "bool.h"
-
-#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
-
-#define PRINTD         0x0001
-#define DEBUG_PARSE    0x0002
-
-int cdebug = PRINTD;
-
-extern int zconflex(void);
-static void zconfprint(const char *err, ...);
-static void zconferror(const char *err);
-static bool zconf_endtoken(int token, int starttoken, int endtoken);
-
-struct symbol *symbol_hash[257];
-extern char *current_sect;
-
-#define YYERROR_VERBOSE
-
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-
-typedef union YYSTYPE {
-       int token;
-       char *string;
-       struct symbol *symbol;
-       struct expr *expr;
-       struct menu *menu;
-} YYSTYPE;
-/* Line 191 of yacc.c.  */
-
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations.  */
-
-
-#define LKC_DIRECT_LINK
-#include "lkc.h"
-
-
-/* Line 214 of yacc.c.  */
-
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  short yyss;
-  YYSTYPE yyvs;
-  };
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                
\
-      + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)             \
-      do                                       \
-       {                                       \
-         register YYSIZE_T yyi;                \
-         for (yyi = 0; yyi < (Count); yyi++)   \
-           (To)[yyi] = (From)[yyi];            \
-       }                                       \
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
-    do                                                                 \
-      {                                                                        
\
-       YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-       yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                        
\
-    while (0)
-
-#endif
-
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL  2
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   203
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  42
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  42
-/* YYNRULES -- Number of rules. */
-#define YYNRULES  106
-/* YYNRULES -- Number of states. */
-#define YYNSTATES  185
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   296
-
-#define YYTRANSLATE(YYX)                                               \
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const unsigned short yyprhs[] =
-{
-       0,     0,     3,     4,     7,     9,    11,    13,    17,    19,
-      21,    23,    26,    28,    30,    32,    34,    36,    38,    42,
-      45,    49,    52,    53,    56,    59,    62,    65,    69,    74,
-      78,    83,    87,    91,    95,   100,   105,   110,   116,   119,
-     122,   124,   128,   131,   132,   135,   138,   141,   144,   149,
-     153,   157,   160,   165,   166,   169,   173,   175,   179,   182,
-     183,   186,   189,   192,   197,   200,   202,   206,   209,   210,
-     213,   216,   219,   223,   227,   229,   233,   236,   239,   242,
-     243,   246,   249,   254,   258,   262,   263,   266,   268,   270,
-     272,   274,   277,   280,   283,   285,   287,   288,   291,   293,
-     297,   301,   305,   308,   312,   316,   318
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
-      43,     0,    -1,    -1,    43,    44,    -1,    45,    -1,    55,
-      -1,    66,    -1,     3,    77,    80,    -1,     5,    -1,    15,
-      -1,     8,    -1,     1,    80,    -1,    61,    -1,    71,    -1,
-      47,    -1,    49,    -1,    69,    -1,    80,    -1,    10,    28,
-      32,    -1,    46,    50,    -1,    11,    28,    32,    -1,    48,
-      50,    -1,    -1,    50,    51,    -1,    50,    75,    -1,    50,
-      73,    -1,    50,    32,    -1,    21,    76,    32,    -1,    22,
-      82,    81,    32,    -1,    23,    76,    32,    -1,    24,    82,
-      81,    32,    -1,    26,    76,    32,    -1,    27,    76,    32,
-      -1,    25,    76,    32,    -1,    19,    77,    81,    32,    -1,
-      20,    82,    81,    32,    -1,    36,    28,    81,    32,    -1,
-      37,    83,    83,    81,    32,    -1,     7,    32,    -1,    52,
-      56,    -1,    79,    -1,    53,    58,    54,    -1,    53,    58,
-      -1,    -1,    56,    57,    -1,    56,    75,    -1,    56,    73,
-      -1,    56,    32,    -1,    19,    77,    81,    32,    -1,    21,
-      76,    32,    -1,    23,    76,    32,    -1,    18,    32,    -1,
-      20,    28,    81,    32,    -1,    -1,    58,    45,    -1,    14,
-      82,    32,    -1,    79,    -1,    59,    62,    60,    -1,    59,
-      62,    -1,    -1,    62,    45,    -1,    62,    66,    -1,    62,
-      55,    -1,     4,    77,    78,    32,    -1,    63,    74,    -1,
-      79,    -1,    64,    67,    65,    -1,    64,    67,    -1,    -1,
-      67,    45,    -1,    67,    66,    -1,    67,    55,    -1,    67,
-       1,    32,    -1,     6,    77,    32,    -1,    68,    -1,     9,
-      77,    32,    -1,    70,    74,    -1,    12,    32,    -1,    72,
-      13,    -1,    -1,    74,    75,    -1,    74,    32,    -1,    16,
-      35,    82,    32,    -1,    16,    82,    32,    -1,    17,    82,
-      32,    -1,    -1,    77,    81,    -1,    28,    -1,    29,    -1,
-      28,    -1,    29,    -1,     5,    80,    -1,     8,    80,    -1,
-      15,    80,    -1,    32,    -1,    31,    -1,    -1,    14,    82,
-      -1,    83,    -1,    83,    40,    83,    -1,    83,    30,    83,
-      -1,    34,    82,    33,    -1,    41,    82,    -1,    82,    38,
-      82,    -1,    82,    39,    82,    -1,    28,    -1,    29,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short yyrline[] =
-{
-       0,    99,    99,   100,   103,   104,   105,   106,   107,   108,
-     109,   110,   114,   115,   116,   117,   118,   119,   125,   133,
-     139,   147,   157,   159,   160,   161,   162,   165,   171,   178,
-     184,   191,   197,   203,   209,   215,   221,   227,   235,   244,
-     250,   259,   260,   266,   268,   269,   270,   271,   274,   280,
-     286,   292,   298,   304,   306,   311,   320,   329,   330,   336,
-     338,   339,   340,   345,   353,   359,   368,   369,   375,   377,
-     378,   379,   380,   383,   389,   396,   403,   410,   416,   423,
-     424,   425,   428,   433,   438,   446,   448,   453,   454,   457,
-     458,   461,   462,   463,   467,   467,   469,   470,   473,   474,
-     475,   476,   477,   478,   479,   482,   483
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
-  "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
-  "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
-  "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
-  "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT",
-  "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL",
-  "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
-  "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block",
-  "common_block", "config_entry_start", "config_stmt",
-  "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
-  "config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
-  "choice_option_list", "choice_option", "choice_block", "if", "if_end",
-  "if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
-  "menu_block", "source", "source_stmt", "comment", "comment_stmt",
-  "help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
-  "prompt", "section", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const unsigned short yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
-{
-       0,    42,    43,    43,    44,    44,    44,    44,    44,    44,
-      44,    44,    45,    45,    45,    45,    45,    45,    46,    47,
-      48,    49,    50,    50,    50,    50,    50,    51,    51,    51,
-      51,    51,    51,    51,    51,    51,    51,    51,    52,    53,
-      54,    55,    55,    56,    56,    56,    56,    56,    57,    57,
-      57,    57,    57,    58,    58,    59,    60,    61,    61,    62,
-      62,    62,    62,    63,    64,    65,    66,    66,    67,    67,
-      67,    67,    67,    68,    69,    70,    71,    72,    73,    74,
-      74,    74,    75,    75,    75,    76,    76,    77,    77,    78,
-      78,    79,    79,    79,    80,    80,    81,    81,    82,    82,
-      82,    82,    82,    82,    82,    83,    83
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
-{
-       0,     2,     0,     2,     1,     1,     1,     3,     1,     1,
-       1,     2,     1,     1,     1,     1,     1,     1,     3,     2,
-       3,     2,     0,     2,     2,     2,     2,     3,     4,     3,
-       4,     3,     3,     3,     4,     4,     4,     5,     2,     2,
-       1,     3,     2,     0,     2,     2,     2,     2,     4,     3,
-       3,     2,     4,     0,     2,     3,     1,     3,     2,     0,
-       2,     2,     2,     4,     2,     1,     3,     2,     0,     2,
-       2,     2,     3,     3,     1,     3,     2,     2,     2,     0,
-       2,     2,     4,     3,     3,     0,     2,     1,     1,     1,
-       1,     2,     2,     2,     1,     1,     0,     2,     1,     3,
-       3,     3,     2,     3,     3,     1,     1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const unsigned char yydefact[] =
-{
-       2,     0,     1,     0,     0,     0,     8,     0,     0,    10,
-       0,     0,     0,     0,     9,    95,    94,     3,     4,    22,
-      14,    22,    15,    43,    53,     5,    59,    12,    79,    68,
-       6,    74,    16,    79,    13,    17,    11,    87,    88,     0,
-       0,     0,    38,     0,     0,     0,   105,   106,     0,     0,
-       0,    98,    19,    21,    39,    42,    58,    64,     0,    76,
-       7,    89,    90,     0,    73,    75,    18,    20,     0,   102,
-      55,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      85,     0,    85,     0,    85,    85,    85,    26,     0,     0,
-      23,     0,    25,    24,     0,     0,     0,    85,    85,    47,
-      44,    46,    45,     0,     0,     0,    54,    41,    40,    60,
-      62,    57,    61,    56,    81,    80,     0,    69,    71,    66,
-      70,    65,    63,   101,   103,   104,   100,    99,    77,     0,
-       0,     0,    96,    96,     0,    96,    96,     0,    96,     0,
-       0,     0,    96,     0,    78,    51,    96,    96,     0,     0,
-      91,    92,    93,    72,     0,    83,    84,     0,     0,     0,
-      27,    86,     0,    29,     0,    33,    31,    32,     0,    96,
-       0,     0,    49,    50,    82,    97,    34,    35,    28,    30,
-      36,     0,    48,    52,    37
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
-{
-      -1,     1,    17,    18,    19,    20,    21,    22,    52,    90,
-      23,    24,   107,    25,    54,   100,    55,    26,   111,    27,
-      56,    28,    29,   119,    30,    58,    31,    32,    33,    34,
-      91,    92,    57,    93,   134,   135,    63,   108,    35,   158,
-      50,    51
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -100
-static const short yypact[] =
-{
-    -100,    51,  -100,   -14,    -7,    -7,  -100,    -7,   -23,  -100,
-      -7,    14,    25,    57,  -100,  -100,  -100,  -100,  -100,  -100,
-    -100,  -100,  -100,  -100,  -100,  -100,  -100,  -100,  -100,  -100,
-    -100,  -100,  -100,  -100,  -100,  -100,  -100,  -100,  -100,   -14,
-      17,    39,  -100,    48,   100,   104,  -100,  -100,    57,    57,
-     103,   -27,   155,   155,    56,   138,   119,    -5,   107,    -5,
-    -100,  -100,  -100,   105,  -100,  -100,  -100,  -100,    11,  -100,
-    -100,    57,    57,    72,    72,   108,    -9,    57,    -7,    57,
-      -7,    57,    -7,    57,    -7,    -7,    -7,  -100,    35,    72,
-    -100,   118,  -100,  -100,   113,    -7,   131,    -7,    -7,  -100,
-    -100,  -100,  -100,   -14,   -14,   -14,  -100,  -100,  -100,  -100,
-    -100,  -100,  -100,  -100,  -100,  -100,   134,  -100,  -100,  -100,
-    -100,  -100,  -100,  -100,   129,  -100,  -100,  -100,  -100,    57,
-     122,   124,   159,     2,   151,   159,     2,   152,     2,   153,
-     154,   156,   159,    72,  -100,  -100,   159,   159,   157,   158,
-    -100,  -100,  -100,  -100,   126,  -100,  -100,    57,   161,   162,
-    -100,  -100,   163,  -100,   164,  -100,  -100,  -100,   165,   159,
-     166,   167,  -100,  -100,  -100,    81,  -100,  -100,  -100,  -100,
-    -100,   168,  -100,  -100,  -100
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const short yypgoto[] =
-{
-    -100,  -100,  -100,    41,  -100,  -100,  -100,  -100,   180,  -100,
-    -100,  -100,  -100,   -50,  -100,  -100,  -100,  -100,  -100,  -100,
-    -100,  -100,  -100,  -100,    31,  -100,  -100,  -100,  -100,  -100,
-    -100,   148,   170,    10,     8,     0,  -100,    99,    -1,   -99,
-     -48,   -59
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -68
-static const short yytable[] =
-{
-      68,    69,    36,    73,    39,    40,   110,    41,   118,    42,
-      43,    76,    77,    74,   126,   127,   157,    15,    16,    46,
-      47,    37,    38,   124,   125,    48,   129,   114,   130,   131,
-     143,   133,    49,   136,   159,   138,   161,   162,    60,   164,
-      71,    72,    44,   168,   123,    61,    62,   170,   171,    71,
-      72,     2,     3,    45,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,   142,   102,    13,    14,   115,    75,   115,
-     181,    64,    76,    77,    94,    95,    96,    97,   132,    98,
-      65,   154,    15,    16,   169,    46,    47,   112,    99,   120,
-     137,    48,   139,   140,   141,   146,   106,   109,    49,   117,
-      46,    47,   150,   151,   152,   148,   149,   -67,   116,   175,
-     -67,     5,   103,     7,     8,   104,    10,    11,    12,    71,
-      72,    13,   105,     5,   103,     7,     8,   104,    10,    11,
-      12,   144,    66,    13,   105,    70,    67,   122,    15,    16,
-     128,    71,    72,   103,     7,   145,   104,    10,    11,    12,
-      15,    16,    13,   105,   155,   113,   156,   121,   174,   147,
-      71,    72,    71,    72,    71,    72,   153,    75,    72,    15,
-      16,    76,    77,   157,    78,    79,    80,    81,    82,    83,
-      84,    85,    86,   160,   163,   165,   166,    87,   167,   172,
-     173,    88,    89,   176,   177,   178,   179,   180,   182,   183,
-     184,    53,   101,    59
-};
-
-static const unsigned char yycheck[] =
-{
-      48,    49,     3,    30,     4,     5,    56,     7,    58,    32,
-      10,    16,    17,    40,    73,    74,    14,    31,    32,    28,
-      29,    28,    29,    71,    72,    34,    35,    32,    76,    77,
-      89,    79,    41,    81,   133,    83,   135,   136,    39,   138,
-      38,    39,    28,   142,    33,    28,    29,   146,   147,    38,
-      39,     0,     1,    28,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    28,    54,    14,    15,    57,    12,    59,
-     169,    32,    16,    17,    18,    19,    20,    21,    78,    23,
-      32,   129,    31,    32,   143,    28,    29,    56,    32,    58,
-      82,    34,    84,    85,    86,    95,    55,    56,    41,    58,
-      28,    29,   103,   104,   105,    97,    98,     0,     1,   157,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    38,
-      39,    14,    15,     4,     5,     6,     7,     8,     9,    10,
-      11,    13,    32,    14,    15,    32,    32,    32,    31,    32,
-      32,    38,    39,     5,     6,    32,     8,     9,    10,    11,
-      31,    32,    14,    15,    32,    56,    32,    58,    32,    28,
-      38,    39,    38,    39,    38,    39,    32,    12,    39,    31,
-      32,    16,    17,    14,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    32,    32,    32,    32,    32,    32,    32,
-      32,    36,    37,    32,    32,    32,    32,    32,    32,    32,
-      32,    21,    54,    33
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
-{
-       0,    43,     0,     1,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    14,    15,    31,    32,    44,    45,    46,
-      47,    48,    49,    52,    53,    55,    59,    61,    63,    64,
-      66,    68,    69,    70,    71,    80,    80,    28,    29,    77,
-      77,    77,    32,    77,    28,    28,    28,    29,    34,    41,
-      82,    83,    50,    50,    56,    58,    62,    74,    67,    74,
-      80,    28,    29,    78,    32,    32,    32,    32,    82,    82,
-      32,    38,    39,    30,    40,    12,    16,    17,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    32,    36,    37,
-      51,    72,    73,    75,    18,    19,    20,    21,    23,    32,
-      57,    73,    75,     5,     8,    15,    45,    54,    79,    45,
-      55,    60,    66,    79,    32,    75,     1,    45,    55,    65,
-      66,    79,    32,    33,    82,    82,    83,    83,    32,    35,
-      82,    82,    77,    82,    76,    77,    82,    76,    82,    76,
-      76,    76,    28,    83,    13,    32,    77,    28,    76,    76,
-      80,    80,    80,    32,    82,    32,    32,    14,    81,    81,
-      32,    81,    81,    32,    81,    32,    32,    32,    81,    83,
-      81,    81,    32,    32,    32,    82,    32,    32,    32,    32,
-      32,    81,    32,    32,    32
-};
-
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                (-2)
-#define YYEOF          0
-
-#define YYACCEPT       goto yyacceptlab
-#define YYABORT                goto yyabortlab
-#define YYERROR                goto yyerrlab1
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
-
-#define YYFAIL         goto yyerrlab
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)                                 \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    {                                                          \
-      yychar = (Token);                                                \
-      yylval = (Value);                                                \
-      yytoken = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK;                                              \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    {                                                          \
-      yyerror ("syntax error: cannot back up");\
-      YYERROR;                                                 \
-    }                                                          \
-while (0)
-
-#define YYTERROR       1
-#define YYERRCODE      256
-
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).  */
-
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)         \
-  Current.first_line   = Rhs[1].first_line;      \
-  Current.first_column = Rhs[1].first_column;    \
-  Current.last_line    = Rhs[N].last_line;       \
-  Current.last_column  = Rhs[N].last_column;
-#endif
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)                       \
-do {                                           \
-  if (yydebug)                                 \
-    YYFPRINTF Args;                            \
-} while (0)
-
-# define YYDSYMPRINT(Args)                     \
-do {                                           \
-  if (yydebug)                                 \
-    yysymprint Args;                           \
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location)           \
-do {                                                           \
-  if (yydebug)                                                 \
-    {                                                          \
-      YYFPRINTF (stderr, "%s ", Title);                                \
-      yysymprint (stderr,                                      \
-                  Token, Value);       \
-      YYFPRINTF (stderr, "\n");                                        \
-    }                                                          \
-} while (0)
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (cinluded).                                                   |
-`------------------------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_stack_print (short *bottom, short *top)
-#else
-static void
-yy_stack_print (bottom, top)
-    short *bottom;
-    short *top;
-#endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (/* Nothing. */; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)                           \
-do {                                                           \
-  if (yydebug)                                                 \
-    yy_stack_print ((Bottom), (Top));                          \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_reduce_print (int yyrule)
-#else
-static void
-yy_reduce_print (yyrule)
-    int yyrule;
-#endif
-{
-  int yyi;
-  unsigned int yylineno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-             yyrule - 1, yylineno);
-  /* Print the symbols being reduced, and their result.  */
-  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-}
-
-# define YY_REDUCE_PRINT(Rule)         \
-do {                                   \
-  if (yydebug)                         \
-    yy_reduce_print (Rule);            \
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef        YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#if YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined (__GLIBC__) && defined (_STRING_H)
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-#   if defined (__STDC__) || defined (__cplusplus)
-yystrlen (const char *yystr)
-#   else
-yystrlen (yystr)
-     const char *yystr;
-#   endif
-{
-  register const char *yys = yystr;
-
-  while (*yys++ != '\0')
-    continue;
-
-  return yys - yystr - 1;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-#   if defined (__STDC__) || defined (__cplusplus)
-yystpcpy (char *yydest, const char *yysrc)
-#   else
-yystpcpy (yydest, yysrc)
-     char *yydest;
-     const char *yysrc;
-#   endif
-{
-  register char *yyd = yydest;
-  register const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-# endif
-
-#endif /* !YYERROR_VERBOSE */
-
-
-
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-
-  if (yytype < YYNTOKENS)
-    {
-      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
-      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-    }
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-  YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yytype, yyvaluep)
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-
-  switch (yytype)
-    {
-
-      default:
-        break;
-    }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes.  */
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM);
-# else
-int yyparse ();
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
-  void *YYPARSE_PARAM;
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-
-  register int yystate;
-  register int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
-
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
-
-  /* The state stack.  */
-  short        yyssa[YYINITDEPTH];
-  short *yyss = yyssa;
-  register short *yyssp;
-
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  register YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK   (yyvsp--, yyssp--)
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
-
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-
-  /* When reducing, the number of symbols on the RHS of the reduced
-     rule.  */
-  int yylen;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-
-  yyssp = yyss;
-  yyvsp = yyvs;
-
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed. so pushing a state here evens the stacks.
-     */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-       /* Give user a chance to reallocate the stack. Use copies of
-          these so that the &'s don't force the real ones into
-          memory.  */
-       YYSTYPE *yyvs1 = yyvs;
-       short *yyss1 = yyss;
-
-
-       /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  This used to be a
-          conditional around just the two extra args, but that might
-          be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-
-                   &yystacksize);
-
-       yyss = yyss1;
-       yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyoverflowlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-       goto yyoverflowlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-       yystacksize = YYMAXDEPTH;
-
-      {
-       short *yyss1 = yyss;
-       union yyalloc *yyptr =
-         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-       if (! yyptr)
-         goto yyoverflowlab;
-       YYSTACK_RELOCATE (yyss);
-       YYSTACK_RELOCATE (yyvs);
-
-#  undef YYSTACK_RELOCATE
-       if (yyss1 != yyssa)
-         YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                 (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-       YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-/* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
-/* yyresume: */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-
-  yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
-       goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
-
-  /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
-  *++yyvsp = yylval;
-
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 8:
-
-    { zconfprint("unexpected 'endmenu' statement"); ;}
-    break;
-
-  case 9:
-
-    { zconfprint("unexpected 'endif' statement"); ;}
-    break;
-
-  case 10:
-
-    { zconfprint("unexpected 'endchoice' statement"); ;}
-    break;
-
-  case 11:
-
-    { zconfprint("syntax error"); yyerrok; ;}
-    break;
-
-  case 18:
-
-    {
-       struct symbol *sym = sym_lookup(yyvsp[-1].string, current_sect, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), 
zconf_lineno(), yyvsp[-1].string);
-;}
-    break;
-
-  case 19:
-
-    {
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 20:
-
-    {
-       struct symbol *sym = sym_lookup(yyvsp[-1].string, current_sect, 0);
-       sym->flags |= SYMBOL_OPTIONAL;
-       menu_add_entry(sym);
-       printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), 
zconf_lineno(), yyvsp[-1].string);
-;}
-    break;
-
-  case 21:
-
-    {
-       if (current_entry->prompt)
-               current_entry->prompt->type = P_MENU;
-       else
-               zconfprint("warning: menuconfig statement without prompt");
-       menu_end_entry();
-       printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 27:
-
-    {
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 28:
-
-    {
-       menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 29:
-
-    {
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 30:
-
-    {
-       menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 31:
-
-    {
-       menu_set_type(S_INT);
-       printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 32:
-
-    {
-       menu_set_type(S_HEX);
-       printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 33:
-
-    {
-       menu_set_type(S_STRING);
-       printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 34:
-
-    {
-       menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 35:
-
-    {
-       menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 36:
-
-    {
-       menu_add_symbol(P_SELECT, sym_lookup(yyvsp[-2].string, current_sect, 
0), yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 37:
-
-    {
-       menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,yyvsp[-3].symbol, 
yyvsp[-2].symbol), yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 38:
-
-    {
-       struct symbol *sym = sym_lookup(NULL, current_sect, 0);
-       sym->flags |= SYMBOL_CHOICE;
-       menu_add_entry(sym);
-       menu_add_expr(P_CHOICE, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 39:
-
-    {
-       menu_end_entry();
-       menu_add_menu();
-;}
-    break;
-
-  case 40:
-
-    {
-       if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), 
zconf_lineno());
-       }
-;}
-    break;
-
-  case 42:
-
-    {
-       printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", 
current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-;}
-    break;
-
-  case 48:
-
-    {
-       menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 49:
-
-    {
-       menu_set_type(S_TRISTATE);
-       printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 50:
-
-    {
-       menu_set_type(S_BOOLEAN);
-       printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 51:
-
-    {
-       current_entry->sym->flags |= SYMBOL_OPTIONAL;
-       printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 52:
-
-    {
-       menu_add_symbol(P_DEFAULT, sym_lookup(yyvsp[-2].string, current_sect, 
0), yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 55:
-
-    {
-       printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
-       menu_add_entry(NULL);
-       menu_add_dep(yyvsp[-1].expr);
-       menu_end_entry();
-       menu_add_menu();
-;}
-    break;
-
-  case 56:
-
-    {
-       if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), 
zconf_lineno());
-       }
-;}
-    break;
-
-  case 58:
-
-    {
-       printf("%s:%d: missing 'endif' for this 'if' statement\n", 
current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-;}
-    break;
-
-  case 63:
-
-    {
-       menu_add_entry(NULL);
-       menu_add_prop(P_MENU, yyvsp[-2].string, NULL, NULL);
-       menu_add_section(yyvsp[-1].string);
-       printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 64:
-
-    {
-       menu_end_entry();
-       menu_add_menu();
-;}
-    break;
-
-  case 65:
-
-    {
-       if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) {
-               menu_end_menu();
-               printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), 
zconf_lineno());
-       }
-;}
-    break;
-
-  case 67:
-
-    {
-       printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", 
current_menu->file->name, current_menu->lineno);
-       zconfnerrs++;
-;}
-    break;
-
-  case 72:
-
-    { zconfprint("invalid menu option"); yyerrok; ;}
-    break;
-
-  case 73:
-
-    {
-       yyval.string = yyvsp[-1].string;
-       printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), 
zconf_lineno(), yyvsp[-1].string);
-;}
-    break;
-
-  case 74:
-
-    {
-      zconf_nextfile(yyvsp[0].string);
-;}
-    break;
-
-  case 75:
-
-    {
-       menu_add_entry(NULL);
-       menu_add_prop(P_COMMENT, yyvsp[-1].string, NULL, NULL);
-       printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 76:
-
-    {
-       menu_end_entry();
-;}
-    break;
-
-  case 77:
-
-    {
-       printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
-       zconf_starthelp();
-;}
-    break;
-
-  case 78:
-
-    {
-       current_entry->sym->help = yyvsp[0].string;
-;}
-    break;
-
-  case 82:
-
-    {
-       menu_add_dep(yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 83:
-
-    {
-       menu_add_dep(yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
-;}
-    break;
-
-  case 84:
-
-    {
-       menu_add_dep(yyvsp[-1].expr);
-       printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), 
zconf_lineno());
-;}
-    break;
-
-  case 86:
-
-    {
-       menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr);
-;}
-    break;
-
-  case 91:
-
-    { yyval.token = T_ENDMENU; ;}
-    break;
-
-  case 92:
-
-    { yyval.token = T_ENDCHOICE; ;}
-    break;
-
-  case 93:
-
-    { yyval.token = T_ENDIF; ;}
-    break;
-
-  case 96:
-
-    { yyval.expr = NULL; ;}
-    break;
-
-  case 97:
-
-    { yyval.expr = yyvsp[0].expr; ;}
-    break;
-
-  case 98:
-
-    { yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;}
-    break;
-
-  case 99:
-
-    { yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, 
yyvsp[0].symbol); ;}
-    break;
-
-  case 100:
-
-    { yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, 
yyvsp[0].symbol); ;}
-    break;
-
-  case 101:
-
-    { yyval.expr = yyvsp[-1].expr; ;}
-    break;
-
-  case 102:
-
-    { yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;}
-    break;
-
-  case 103:
-
-    { yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;}
-    break;
-
-  case 104:
-
-    { yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;}
-    break;
-
-  case 105:
-
-    { yyval.symbol = sym_lookup(yyvsp[0].string, current_sect, 0); 
free(yyvsp[0].string); ;}
-    break;
-
-  case 106:
-
-    { yyval.symbol = sym_lookup(yyvsp[0].string, current_sect, 1); 
free(yyvsp[0].string); ;}
-    break;
-
-
-    }
-
-/* Line 999 of yacc.c.  */
-
-
-  yyvsp -= yylen;
-  yyssp -= yylen;
-
-
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (YYPACT_NINF < yyn && yyn < YYLAST)
-       {
-         YYSIZE_T yysize = 0;
-         int yytype = YYTRANSLATE (yychar);
-         char *yymsg;
-         int yyx, yycount;
-
-         yycount = 0;
-         /* Start YYX at -YYN if negative to avoid negative indexes in
-            YYCHECK.  */
-         for (yyx = yyn < 0 ? -yyn : 0;
-              yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-             yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("syntax error, unexpected ") + 1;
-         yysize += yystrlen (yytname[yytype]);
-         yymsg = (char *) YYSTACK_ALLOC (yysize);
-         if (yymsg != 0)
-           {
-             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[yytype]);
-
-             if (yycount < 5)
-               {
-                 yycount = 0;
-                 for (yyx = yyn < 0 ? -yyn : 0;
-                      yyx < (int) (sizeof (yytname) / sizeof (char *));
-                      yyx++)
-                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-                     {
-                       const char *yyq = ! yycount ? ", expecting " : " or ";
-                       yyp = yystpcpy (yyp, yyq);
-                       yyp = yystpcpy (yyp, yytname[yyx]);
-                       yycount++;
-                     }
-               }
-             yyerror (yymsg);
-             YYSTACK_FREE (yymsg);
-           }
-         else
-           yyerror ("syntax error; also virtual memory exhausted");
-       }
-      else
-#endif /* YYERROR_VERBOSE */
-       yyerror ("syntax error");
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-        error, discard it.  */
-
-      /* Return failure if at end of input.  */
-      if (yychar == YYEOF)
-        {
-         /* Pop the error token.  */
-          YYPOPSTACK;
-         /* Pop the rest of the stack.  */
-         while (yyss < yyssp)
-           {
-             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-             yydestruct (yystos[*yyssp], yyvsp);
-             YYPOPSTACK;
-           }
-         YYABORT;
-        }
-
-      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-      yydestruct (yytoken, &yylval);
-      yychar = YYEMPTY;
-
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*----------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action.  |
-`----------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
-       {
-         yyn += YYTERROR;
-         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-           {
-             yyn = yytable[yyn];
-             if (0 < yyn)
-               break;
-           }
-       }
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-       YYABORT;
-
-      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-      yydestruct (yystos[yystate], yyvsp);
-      yyvsp--;
-      yystate = *--yyssp;
-
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  YYDPRINTF ((stderr, "Shifting error token, "));
-
-  *++yyvsp = yylval;
-
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here.  |
-`----------------------------------------------*/
-yyoverflowlab:
-  yyerror ("parser stack overflow");
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-  return yyresult;
-}
-
-
-
-
-
-void conf_parse(const char *name)
-{
-       struct symbol *sym;
-       int i;
-
-       zconf_initscan(name);
-
-       sym_init();
-       menu_init();
-       modules_sym = sym_lookup("MODULES", "X", 0);
-       rootmenu.prompt = menu_add_prop(P_MENU, "GNUnet Configuration", NULL, 
NULL);
-
-       //zconfdebug = 1;
-       zconfparse();
-       if (zconfnerrs)
-               exit(1);
-       menu_finalize(&rootmenu);
-       for_all_symbols(i, sym) {
-                if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym))
-                        printf("\n");
-               else
-                       sym->flags |= SYMBOL_CHECK_DONE;
-        }
-
-       sym_change_count = 1;
-}
-
-const char *zconf_tokenname(int token)
-{
-       switch (token) {
-       case T_MENU:            return "menu";
-       case T_ENDMENU:         return "endmenu";
-       case T_CHOICE:          return "choice";
-       case T_ENDCHOICE:       return "endchoice";
-       case T_IF:              return "if";
-       case T_ENDIF:           return "endif";
-       }
-       return "<token>";
-}
-
-static bool zconf_endtoken(int token, int starttoken, int endtoken)
-{
-       if (token != endtoken) {
-               zconfprint("unexpected `%s' within %s block", 
zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       if (current_menu->file != current_file) {
-               zconfprint("`%s' in different file than `%s'", 
zconf_tokenname(token), zconf_tokenname(starttoken));
-               zconfprint("location of the `%s'", zconf_tokenname(starttoken));
-               zconfnerrs++;
-               return false;
-       }
-       return true;
-}
-
-static void zconfprint(const char *err, ...)
-{
-       va_list ap;
-
-       fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1);
-       va_start(ap, err);
-       vfprintf(stderr, err, ap);
-       va_end(ap);
-       fprintf(stderr, "\n");
-}
-
-static void zconferror(const char *err)
-{
-       fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, 
err);
-}
-
-void print_quoted_string(FILE *out, const char *str)
-{
-       const char *p;
-       int len;
-
-       putc('"', out);
-       while ((p = strchr(str, '"'))) {
-               len = p - str;
-               if (len)
-                       fprintf(out, "%.*s", len, str);
-               fputs("\\\"", out);
-               str = p + 1;
-       }
-       fputs(str, out);
-       putc('"', out);
-}
-
-void print_symbol(FILE *out, struct menu *menu)
-{
-       struct symbol *sym = menu->sym;
-       struct property *prop;
-
-       if (sym_is_choice(sym))
-               fprintf(out, "choice\n");
-       else
-               fprintf(out, "config %s\n", sym->name);
-       switch (sym->type) {
-       case S_BOOLEAN:
-               fputs("  boolean\n", out);
-               break;
-       case S_TRISTATE:
-               fputs("  tristate\n", out);
-               break;
-       case S_STRING:
-               fputs("  string\n", out);
-               break;
-       case S_INT:
-               fputs("  integer\n", out);
-               break;
-       case S_HEX:
-               fputs("  hex\n", out);
-               break;
-       default:
-               fputs("  ???\n", out);
-               break;
-       }
-       for (prop = sym->prop; prop; prop = prop->next) {
-               if (prop->menu != menu)
-                       continue;
-               switch (prop->type) {
-               case P_PROMPT:
-                       fputs("  prompt ", out);
-                       print_quoted_string(out, prop->text);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_DEFAULT:
-                       fputs( "  default ", out);
-                       expr_fprint(prop->expr, out);
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs(" if ", out);
-                               expr_fprint(prop->visible.expr, out);
-                       }
-                       fputc('\n', out);
-                       break;
-               case P_CHOICE:
-                       fputs("  #choice value\n", out);
-                       break;
-               default:
-                       fprintf(out, "  unknown prop %d!\n", prop->type);
-                       break;
-               }
-       }
-       if (sym->help) {
-               int len = strlen(sym->help);
-               while (sym->help[--len] == '\n')
-                       sym->help[len] = 0;
-               fprintf(out, "  help\n%s\n", sym->help);
-       }
-       fputc('\n', out);
-}
-
-void zconfdump(FILE *out)
-{
-       struct property *prop;
-       struct symbol *sym;
-       struct menu *menu;
-
-       menu = rootmenu.list;
-       while (menu) {
-               if ((sym = menu->sym))
-                       print_symbol(out, menu);
-               else if ((prop = menu->prompt)) {
-                       switch (prop->type) {
-                       case P_COMMENT:
-                               fputs("\ncomment ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       case P_MENU:
-                               fputs("\nmenu ", out);
-                               print_quoted_string(out, prop->text);
-                               fputs("\n", out);
-                               break;
-                       default:
-                               ;
-                       }
-                       if (!expr_is_yes(prop->visible.expr)) {
-                               fputs("  depends ", out);
-                               expr_fprint(prop->visible.expr, out);
-                               fputc('\n', out);
-                       }
-                       fputs("\n", out);
-               }
-
-               if (menu->list)
-                       menu = menu->list;
-               else if (menu->next)
-                       menu = menu->next;
-               else while ((menu = menu->parent)) {
-                       if (menu->prompt && menu->prompt->type == P_MENU)
-                               fputs("\nendmenu\n", out);
-                       if (menu->next) {
-                               menu = menu->next;
-                               break;
-                       }
-               }
-       }
-}
-
-#include "lex.zconf.c"
-
-

Deleted: GNUnet/src/setup/zconf_tab.h
===================================================================
--- GNUnet/src/setup/zconf_tab.h        2006-08-19 12:31:07 UTC (rev 3254)
+++ GNUnet/src/setup/zconf_tab.h        2006-08-19 19:42:12 UTC (rev 3255)
@@ -1,33 +0,0 @@
-/*
-     This file is part of GNUnet.
-     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
-
-     GNUnet is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-*/
-
-
-/**
- * @file conf/gconf.h
- * @brief GNUnet Setup
- * @author Nils Durner
- */
-
-#ifndef ZCONF_TAB_H
-#define ZCONF_TAB_H
-
-void conf_parse(const char * filename);
-
-#endif





reply via email to

[Prev in Thread] Current Thread [Next in Thread]