Remove build-vlc, lxdialog and menuconfig: they are outdated,
authorPavlov Konstantin <thresh@altlinux.ru>
Wed, 27 Aug 2008 09:05:04 +0000 (13:05 +0400)
committerPavlov Konstantin <thresh@altlinux.ru>
Wed, 27 Aug 2008 09:05:04 +0000 (13:05 +0400)
unmaintained and confuse users.

15 files changed:
build-vlc [deleted file]
lxdialog/.gitignore [deleted file]
lxdialog/BIG.FAT.WARNING [deleted file]
lxdialog/Makefile [deleted file]
lxdialog/checklist.c [deleted file]
lxdialog/colors.h [deleted file]
lxdialog/dialog.h [deleted file]
lxdialog/inputbox.c [deleted file]
lxdialog/lxdialog.c [deleted file]
lxdialog/menubox.c [deleted file]
lxdialog/msgbox.c [deleted file]
lxdialog/textbox.c [deleted file]
lxdialog/util.c [deleted file]
lxdialog/yesno.c [deleted file]
menuconfig [deleted file]

diff --git a/build-vlc b/build-vlc
deleted file mode 100755 (executable)
index 1e47799..0000000
--- a/build-vlc
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/bin/sh
-
-FEATURES="
-SKINS skins2
-PDA pda
-WXWIDGETS wxwidgets
-OPIE opie
-MACOSX macosx
-QNX qnx
-NCURSES ncurses
-XOSD xosd
-VISUAL visual
-GOOM goom
-SLP slp
-LIRC lirc
-JOYSTICK joystick
-LIVEDOTCOM livedotcom
-DVDREAD dvdread
-DVDNAV dvdnav
-DSHOW dshow
-DVBPSI dvbpsi
-V4L v4l
-PVR pvr
-VCD vcd
-SATELLITE satellite
-DVB dvb
-OGG ogg
-MKV mkv
-MOD mod
-CDIO libcdio
-VCDX vcdx
-CDDAX cddax
-CDDB libcddb
-X11 x11
-XVIDEO xvideo
-GLX glx
-FB fb
-MGA mga
-SDL sdl
-FREETYPE freetype
-FRIBIDI fribidi
-SVG svg
-QTE qte
-HD1000V hd1000v
-DIRECTX directx
-WINGDI wingdi
-SVGALIB svgalib
-GGI ggi
-AA aa
-CACA caca
-OSS oss
-ESD esd
-ARTS arts
-ALSA alsa
-WAVEOUT waveout
-COREAUDIO coreaudio
-HD1000A hd1000a
-MAD mad
-FFMPEG ffmpeg
-FAAD faad
-QUICKTIME quicktime
-A52 a52
-DTS dts
-FLAC flac
-LIBMPEG2 libmpeg2
-VORBIS vorbis
-TREMOR tremor
-SPEEX speex
-TARKIN tarkin
-THEORA theora
-CMML cmml
-UTF8 utf8
-PTH pth
-ST st
-GPROF gprof
-CPROF cprof
-MOZILLA mozilla
-TESTSUITE testsuite
-OPTIMIZATIONS optimizations
-ALTIVEC altivec
-DEBUG debug
-RELEASE release
-SOUT sout
-WITHFFMPEGMP3LAME ffmpeg-mp3lame
-WITHFFMPEGFAAC ffmpeg-faac
-GALAKTOS galaktos
-HTTPD httpd
-JACK jack
-QT4 qt4
-"
-PATHS="
-WITHXML2CONFIGPATH xml2-config-path
-WITHWXCONFIGPATH wx-config-path
-WITHWXCONFIG wx-config
-WITHQTE qte
-WITHGOOMTREE goom-tree
-WITHSLP slp
-WITHLIVEDOTCOMTREE livedotcom-tree
-WITHDVDREAD dvdread
-WITHDVDREADTREEE dvdread-tree
-WITHDVDNAVCONFIGPATH dvdnav-config-path
-WITHDVBPSI dvbpsi
-WITHDVBPSITREE dvbpsi-tree
-WITHV4L v4l
-WITHDVB dvb
-WITHSDLCONFIGPATH sdl-config-path
-WITHSDLPREFIX sdl-prefix
-WITHFREETYPECONFIGPATH freetype-config-path
-WITHFRIBIDICONFIGPATH fribidi-config-path
-WITHQTE qte
-WITHDIRECTX directx
-WITHGGI ggi
-WITHCACACONFIGPATH caca-config-path
-WITHMAD mad
-WITHMADTREE mad-tree
-WITHFFMPEGTREE ffmpeg-tree
-WITHFAADTREE faad-tree
-WITHA52 a52
-WITHA52TREE a52-tree
-WITHDTSTREE dts-tree
-WITHLIBMPEG2TREE libmpeg2-tree
-WITHTARKINTREE tarkin-tree
-WITHMOZILLASDKPATH mozilla-sdk-path
-ENDIANNESS words
-"
-if [ ! -e .config ]
-then
-   ./menuconfig
-fi
-
-if [ -e .cmd ]
-then
-   echo ".cmd still exist. Removing it."
-   rm -f .cmd
-fi
-
-echo -n "./configure " > .cmd
-. ./.config
-
-check_features () {
-while [ -n "$1" ]
-do
-   eval x="\$CONFIG_$1"
-   if [ "$x" = "y" ]
-   then
-      if [ "$1" = "WITHFFMPEGMP3LAME" ] || [ "$1" = "WITHFFMPEGFAAC" ]
-      then
-         echo -n "--with-$2 " >> .cmd
-      else
-         echo -n "--enable-$2 " >> .cmd
-      fi
-   else
-      if [ "$1" != "WITHFFMPEGMP3LAME" ] && [ "$1" != "WITHFFMPEGFAAC" ]
-      then
-         echo -n "--disable-$2 " >> .cmd
-      fi
-   fi
-   shift; shift
-done
-}
-
-check_paths () {
-while [ -n "$1" ]
-do
-   if [ -n $1 ]
-   then
-      eval x="\$CONFIG_$1"
-      if [ "$x" != "" ]
-      then
-         echo -n "--with-$2=$x " >> .cmd
-      fi
-   fi
-   shift; shift
-done
-}
-
-check_features $FEATURES
-check_paths $PATHS
-
-#XXX
-echo "--enable-maintainer-mode " >> .cmd
-
-if [ ! -e configure ]
-then
-   ./bootstrap
-fi
-
-. ./.cmd
-make
-rm -f .cmd
diff --git a/lxdialog/.gitignore b/lxdialog/.gitignore
deleted file mode 100644 (file)
index 2460008..0000000
+++ /dev/null
@@ -1 +0,0 @@
-!Makefile
diff --git a/lxdialog/BIG.FAT.WARNING b/lxdialog/BIG.FAT.WARNING
deleted file mode 100644 (file)
index a8999d8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-This is NOT the official version of dialog.  This version has been
-significantly modified from the original.  It is for use by the Linux
-kernel configuration script.  Please do not bother Savio Lam with 
-questions about this program.
diff --git a/lxdialog/Makefile b/lxdialog/Makefile
deleted file mode 100644 (file)
index 32f26e3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-HOSTCC = gcc
-HOSTCFLAGS += -DLOCALE 
-LIBS = -lncurses
-
-ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h))
-        HOSTCFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"
-else
-ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h))
-        HOSTCFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"
-else
-ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h))
-        HOSTCFLAGS += -DCURSES_LOC="<ncurses.h>"
-else
-       HOSTCFLAGS += -DCURSES_LOC="<curses.h>"
-endif
-endif
-endif
-
-
-OBJS = checklist.o menubox.o textbox.o yesno.o inputbox.o \
-       util.o lxdialog.o msgbox.o
-
-%.o: %.c
-       $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
-
-all: ncurses lxdialog
-
-lxdialog: $(OBJS)
-       $(HOSTCC) -o lxdialog $(OBJS) $(LIBS)
-
-ncurses:
-       @echo "main() {}" > lxtemp.c
-       @if $(HOSTCC) -lncurses lxtemp.c ; then \
-               rm -f lxtemp.c a.out; \
-       else \
-               rm -f lxtemp.c; \
-               echo -e "\007" ;\
-               echo ">> Unable to find the Ncurses libraries." ;\
-               echo ">>" ;\
-               echo ">> You must have Ncurses installed in order" ;\
-               echo ">> to use 'make menuconfig'" ;\
-               echo ;\
-               exit 1 ;\
-       fi
-
-clean:
-       rm -f core *.o *~ lxdialog
diff --git a/lxdialog/checklist.c b/lxdialog/checklist.c
deleted file mode 100644 (file)
index 4f78688..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- *  checklist.c -- implements the checklist box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *     Stuart Herbert - S.Herbert@sheffield.ac.uk: radiolist extension
- *     Alessandro Rubini - rubini@ipvvis.unipv.it: merged the two
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  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.
- */
-
-#include "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, const char * const * items, int flag)
-       
-{
-    int i, x, y, box_x, box_y;
-    int key = 0, button = 0, choice = 0, scroll = 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] = !strcasecmp (items[i * 3 + 2], "on");
-       if (!choice && status[i])
-            choice = i;
-    }
-
-    max_choice = 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 && 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 = MAX (check_x, + strlen (items[i * 3 + 1]) + 4);
-
-    check_x = (list_width - check_x) / 2;
-    item_x = check_x + 4;
-
-    if (choice >= list_height) {
-       scroll = choice - list_height + 1;
-       choice -= scroll;
-    }
-
-    /* Print the list */
-    for (i = 0; i < max_choice; i++) {
-       print_item (list, items[(scroll+i) * 3 + 1],
-                   status[i+scroll], i, i == choice);
-    }
-
-    print_arrows(dialog, choice, item_no, scroll,
-                       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);
-
-       for (i = 0; i < max_choice; i++)
-            if (toupper(key) == toupper(items[(scroll+i)*3+1][0]))
-                break;
-
-
-       if ( i < max_choice || key == KEY_UP || key == KEY_DOWN || 
-           key == '+' || key == '-' ) {
-           if (key == KEY_UP || key == '-') {
-               if (!choice) {
-                   if (!scroll)
-                       continue;
-                   /* Scroll list down */
-                   if (list_height > 1) {
-                       /* De-highlight current first item */
-                       print_item (list, items[scroll * 3 + 1],
-                                       status[scroll], 0, FALSE);
-                       scrollok (list, TRUE);
-                       wscrl (list, -1);
-                       scrollok (list, FALSE);
-                   }
-                   scroll--;
-                   print_item (list, items[scroll * 3 + 1],
-                               status[scroll], 0, TRUE);
-                   wnoutrefresh (list);
-
-                   print_arrows(dialog, choice, item_no, scroll,
-                               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 + 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 + max_choice - 1) * 3 + 1],
-                                   status[scroll + max_choice - 1],
-                                   max_choice - 1, FALSE);
-                       scrollok (list, TRUE);
-                       scroll (list);
-                       scrollok (list, FALSE);
-                   }
-                   scroll++;
-                   print_item (list, items[(scroll + max_choice - 1) * 3 + 1],
-                               status[scroll + max_choice - 1],
-                               max_choice - 1, TRUE);
-                   wnoutrefresh (list);
-
-                   print_arrows(dialog, choice, item_no, scroll,
-                               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 + choice) * 3 + 1],
-                           status[scroll + choice], choice, FALSE);
-               /* Highlight new item */
-               choice = i;
-               print_item (list, items[(scroll + choice) * 3 + 1],
-                           status[scroll + 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;
-       case 'S':
-       case 's':
-       case ' ':
-       case '\n':
-           if (!button) {
-               if (flag == FLAG_CHECK) {
-                   status[scroll + choice] = !status[scroll + choice];
-                   wmove (list, choice, check_x);
-                   wattrset (list, check_selected_attr);
-                   wprintw (list, "[%c]", status[scroll + choice] ? 'X' : ' ');
-               } else {
-                   if (!status[scroll + choice]) {
-                       for (i = 0; i < item_no; i++)
-                           status[i] = 0;
-                       status[scroll + choice] = 1;
-                       for (i = 0; i < max_choice; i++)
-                           print_item (list, items[(scroll + i) * 3 + 1],
-                                       status[scroll + i], i, i == choice);
-                   }
-               }
-               wnoutrefresh (list);
-               wrefresh (dialog);
-            
-               for (i = 0; i < item_no; i++) {
-                   if (status[i]) {
-                       if (flag == FLAG_CHECK) {
-                           fprintf (stderr, "\"%s\" ", items[i * 3]);
-                       } else {
-                           fprintf (stderr, "%s", items[i * 3]);
-                       }
-
-                   }
-               }
-            }
-           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 */
-}
diff --git a/lxdialog/colors.h b/lxdialog/colors.h
deleted file mode 100644 (file)
index d34dd37..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- *  colors.h -- color attribute definitions
- *
- *  AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *
- *  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.
- */
-
-
-/*
- *   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];
diff --git a/lxdialog/dialog.h b/lxdialog/dialog.h
deleted file mode 100644 (file)
index 0e30d00..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-
-/*
- *  dialog.h -- common declarations for all dialog modules
- *
- *  AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *
- *  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.
- */
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include CURSES_LOC
-
-/*
- * 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 MIN(x,y) (x < y ? x : y)
-#define 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 use_shadow;
-
-extern chtype attributes[];
-
-extern const char *backtitle;
-
-/*
- * Function prototypes
- */
-extern void create_rc (const char *filename);
-extern int parse_rc (void);
-
-
-void init_dialog (void);
-void end_dialog (void);
-void attr_clear (WINDOW * win, int height, int width, chtype attr);
-void dialog_clear (void);
-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);
-
-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, int item_no, 
-               const char * const * items);
-int dialog_checklist (const char *title, const char *prompt, int height,
-               int width, int list_height, int item_no,
-               const char * const * items, int flag);
-extern unsigned char dialog_input_result[];
-int dialog_inputbox (const char *title, const char *prompt, int height,
-               int width, const char *init);
-
-/*
- * 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')
- */
-#define M_EVENT (KEY_MAX+1)
-
-
-/*
- * The `flag' parameter in checklist is used to select between
- * radiolist and checklist
- */
-#define FLAG_CHECK 1
-#define FLAG_RADIO 0
diff --git a/lxdialog/inputbox.c b/lxdialog/inputbox.c
deleted file mode 100644 (file)
index fa7bebc..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- *  inputbox.c -- implements the input box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  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.
- */
-
-#include "dialog.h"
-
-unsigned 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;
-    unsigned 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) >= 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 (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:
-               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;
-       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 */
-}
diff --git a/lxdialog/lxdialog.c b/lxdialog/lxdialog.c
deleted file mode 100644 (file)
index bc4f2d5..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- *  dialog - Display simple dialog boxes from shell scripts
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  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.
- */
-
-#include "dialog.h"
-
-static void Usage (const char *name);
-
-typedef int (jumperFn) (const char *title, int argc, const char * const * argv);
-
-struct Mode {
-    char *name;
-    int argmin, argmax, argmod;
-    jumperFn *jumper;
-};
-
-jumperFn j_menu, j_checklist, j_radiolist, j_yesno, j_textbox, j_inputbox;
-jumperFn j_msgbox, j_infobox;
-
-static struct Mode modes[] =
-{
-    {"--menu", 9, 0, 3, j_menu},
-    {"--checklist", 9, 0, 3, j_checklist},
-    {"--radiolist", 9, 0, 3, j_radiolist},
-    {"--yesno",    5,5,1, j_yesno},
-    {"--textbox",  5,5,1, j_textbox},
-    {"--inputbox", 5, 6, 1, j_inputbox},
-    {"--msgbox", 5, 5, 1, j_msgbox},
-    {"--infobox", 5, 5, 1, j_infobox},
-    {NULL, 0, 0, 0, NULL}
-};
-
-static struct Mode *modePtr;
-
-#ifdef LOCALE
-#include <locale.h>
-#endif
-
-int
-main (int argc, const char * const * argv)
-{
-    int offset = 0, clear_screen = 0, end_common_opts = 0, retval;
-    const char *title = NULL;
-
-#ifdef LOCALE
-    (void) setlocale (LC_ALL, "");
-#endif
-
-#ifdef TRACE
-    trace(TRACE_CALLS|TRACE_UPDATE);
-#endif
-    if (argc < 2) {
-       Usage (argv[0]);
-       exit (-1);
-    }
-
-    while (offset < argc - 1 && !end_common_opts) {    /* Common options */
-       if (!strcmp (argv[offset + 1], "--title")) {
-           if (argc - offset < 3 || title != NULL) {
-               Usage (argv[0]);
-               exit (-1);
-           } else {
-               title = argv[offset + 2];
-               offset += 2;
-           }
-        } else if (!strcmp (argv[offset + 1], "--backtitle")) {
-            if (backtitle != NULL) {
-                Usage (argv[0]);
-                exit (-1);
-            } else {
-                backtitle = argv[offset + 2];
-                offset += 2;
-            }
-       } else if (!strcmp (argv[offset + 1], "--clear")) {
-           if (clear_screen) { /* Hey, "--clear" can't appear twice! */
-               Usage (argv[0]);
-               exit (-1);
-           } else if (argc == 2) {     /* we only want to clear the screen */
-               init_dialog ();
-               refresh ();     /* init_dialog() will clear the screen for us */
-               end_dialog ();
-               return 0;
-           } else {
-               clear_screen = 1;
-               offset++;
-           }
-       } else                  /* no more common options */
-           end_common_opts = 1;
-    }
-
-    if (argc - 1 == offset) {  /* no more options */
-       Usage (argv[0]);
-       exit (-1);
-    }
-    /* use a table to look for the requested mode, to avoid code duplication */
-
-    for (modePtr = modes; modePtr->name; modePtr++)    /* look for the mode */
-       if (!strcmp (argv[offset + 1], modePtr->name))
-           break;
-
-    if (!modePtr->name)
-       Usage (argv[0]);
-    if (argc - offset < modePtr->argmin)
-       Usage (argv[0]);
-    if (modePtr->argmax && argc - offset > modePtr->argmax)
-       Usage (argv[0]);
-
-
-
-    init_dialog ();
-    retval = (*(modePtr->jumper)) (title, argc - offset, argv + offset);
-
-    if (clear_screen) {                /* clear screen before exit */
-       attr_clear (stdscr, LINES, COLS, screen_attr);
-       refresh ();
-    }
-    end_dialog();
-
-    exit (retval);
-}
-
-/*
- * Print program usage
- */
-static void
-Usage (const char *name)
-{
-    fprintf (stderr, "\
-\ndialog, by Savio Lam (lam836@cs.cuhk.hk).\
-\n  patched by Stuart Herbert (S.Herbert@shef.ac.uk)\
-\n  modified/gutted for use as a Linux kernel config tool by \
-\n  William Roadcap (roadcapw@cfw.com)\
-\n\
-\n* Display dialog boxes from shell scripts *\
-\n\
-\nUsage: %s --clear\
-\n       %s [--title <title>] [--backtitle <backtitle>] --clear <Box options>\
-\n\
-\nBox options:\
-\n\
-\n  --menu      <text> <height> <width> <menu height> <tag1> <item1>...\
-\n  --checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...\
-\n  --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...\
-\n  --textbox   <file> <height> <width>\
-\n  --inputbox  <text> <height> <width> [<init>]\
-\n  --yesno     <text> <height> <width>\
-\n", name, name);
-    exit (-1);
-}
-
-/*
- * These are the program jumpers
- */
-
-int
-j_menu (const char *t, int ac, const char * const * av)
-{
-    return dialog_menu (t, av[2], atoi (av[3]), atoi (av[4]),
-                       atoi (av[5]), av[6], (ac - 6) / 2, av + 7);
-}
-
-int
-j_checklist (const char *t, int ac, const char * const * av)
-{
-    return dialog_checklist (t, av[2], atoi (av[3]), atoi (av[4]),
-       atoi (av[5]), (ac - 6) / 3, av + 6, FLAG_CHECK);
-}
-
-int
-j_radiolist (const char *t, int ac, const char * const * av)
-{
-    return dialog_checklist (t, av[2], atoi (av[3]), atoi (av[4]),
-       atoi (av[5]), (ac - 6) / 3, av + 6, FLAG_RADIO);
-}
-
-int
-j_textbox (const char *t, int ac, const char * const * av)
-{
-    return dialog_textbox (t, av[2], atoi (av[3]), atoi (av[4]));
-}
-
-int
-j_yesno (const char *t, int ac, const char * const * av)
-{
-    return dialog_yesno (t, av[2], atoi (av[3]), atoi (av[4]));
-}
-
-int
-j_inputbox (const char *t, int ac, const char * const * av)
-{
-    int ret = dialog_inputbox (t, av[2], atoi (av[3]), atoi (av[4]),
-                            ac == 6 ? av[5] : (char *) NULL);
-    if (ret == 0)
-        fprintf(stderr, "%s", dialog_input_result);
-    return ret;
-}
-
-int
-j_msgbox (const char *t, int ac, const char * const * av)
-{
-    return dialog_msgbox (t, av[2], atoi (av[3]), atoi (av[4]), 1);
-}
-
-int
-j_infobox (const char *t, int ac, const char * const * av)
-{
-    return dialog_msgbox (t, av[2], atoi (av[3]), atoi (av[4]), 0);
-}
-
diff --git a/lxdialog/menubox.c b/lxdialog/menubox.c
deleted file mode 100644 (file)
index a234e9f..0000000
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- *  menubox.c -- implements the menu box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcapw@cfw.com)
- *
- *  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 (god@clifford.at)
- *
- *  [ 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 (mec@shout.net)
- * 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.
- */
-
-#include "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);
-       wrefresh (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 *current, int item_no,
-               const char * const * items)
-
-{
-    int i, j, x, y, box_x, box_y;
-    int key = 0, button = 0, scroll = 0, choice = 0, first_item = 0, max_choice;
-    WINDOW *dialog, *menu;
-    FILE *f;
-
-    max_choice = 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 && 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 = MAX (item_x, MIN(menu_width, strlen (items[i * 2 + 1]) + 2));
-       if (strcmp(current, items[i*2]) == 0) choice = i;
-    }
-
-    item_x = (menu_width - item_x) / 2;
-
-    /* get the scroll info from the temp file */
-    if ( (f=fopen("lxdialog.scrltmp","r")) != NULL ) {
-       if ( (fscanf(f,"%d\n",&scroll) == 1) && (scroll <= choice) &&
-            (scroll+max_choice > choice) && (scroll >= 0) &&
-            (scroll+max_choice <= item_no) ) {
-           first_item = scroll;
-           choice = choice - scroll;
-           fclose(f);
-       } else {
-           scroll=0;
-           remove("lxdialog.scrltmp");
-           fclose(f);
-           f=NULL;
-       }
-    }
-    if ( (choice >= max_choice) || (f==NULL && choice >= max_choice/2) ) {
-       if (choice >= item_no-max_choice/2)
-           scroll = first_item = item_no-max_choice;
-       else
-           scroll = first_item = choice - max_choice/2;
-       choice = choice - scroll;
-    }
-
-    /* Print the menu */
-    for (i=0; i < max_choice; i++) {
-       print_item (menu, items[(first_item + i) * 2 + 1], i, i == choice,
-                    (items[(first_item + i)*2][0] != ':'));
-    }
-
-    wnoutrefresh (menu);
-
-    print_arrows(dialog, item_no, scroll,
-                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 (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)*2+1], "YyNnMm");
-               if (key == tolower(items[(scroll+i)*2+1][j]))
-                       break;
-       }
-       if (i == max_choice)
-                       for (i = 0; i < max_choice; i++) {
-                       j = first_alpha(items[(scroll+i)*2+1], "YyNnMm");
-                       if (key == tolower(items[(scroll+i)*2+1][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+choice)*2+1], choice, FALSE,
-                       (items[(scroll+choice)*2][0] != ':'));
-
-           if (key == KEY_UP || key == '-') {
-                if (choice < 2 && scroll) {
-                   /* Scroll menu down */
-                    scrollok (menu, TRUE);
-                    wscrl (menu, -1);
-                    scrollok (menu, FALSE);
-
-                    scroll--;
-
-                    print_item (menu, items[scroll * 2 + 1], 0, FALSE,
-                               (items[scroll*2][0] != ':'));
-               } else
-                   choice = MAX(choice - 1, 0);
-
-           } else if (key == KEY_DOWN || key == '+')  {
-
-               print_item (menu, items[(scroll+choice)*2+1], choice, FALSE,
-                                (items[(scroll+choice)*2][0] != ':'));
-
-                if ((choice > max_choice-3) &&
-                    (scroll + max_choice < item_no)
-                   ) {
-                   /* Scroll menu up */
-                   scrollok (menu, TRUE);
-                    scroll (menu);
-                    scrollok (menu, FALSE);
-
-                    scroll++;
-
-                    print_item (menu, items[(scroll+max_choice-1)*2+1],
-                               max_choice-1, FALSE,
-                               (items[(scroll+max_choice-1)*2][0] != ':'));
-                } else
-                    choice = MIN(choice+1, max_choice-1);
-
-           } else if (key == KEY_PPAGE) {
-               scrollok (menu, TRUE);
-                for (i=0; (i < max_choice); i++) {
-                    if (scroll > 0) {
-                       wscrl (menu, -1);
-                       scroll--;
-                       print_item (menu, items[scroll * 2 + 1], 0, FALSE,
-                       (items[scroll*2][0] != ':'));
-                    } else {
-                        if (choice > 0)
-                            choice--;
-                    }
-                }
-                scrollok (menu, FALSE);
-
-            } else if (key == KEY_NPAGE) {
-                for (i=0; (i < max_choice); i++) {
-                    if (scroll+max_choice < item_no) {
-                       scrollok (menu, TRUE);
-                       scroll(menu);
-                       scrollok (menu, FALSE);
-                       scroll++;
-                       print_item (menu, items[(scroll+max_choice-1)*2+1],
-                                   max_choice-1, FALSE,
-                                   (items[(scroll+max_choice-1)*2][0] != ':'));
-                   } else {
-                       if (choice+1 < max_choice)
-                           choice++;
-                   }
-                }
-
-            } else
-                choice = i;
-
-            print_item (menu, items[(scroll+choice)*2+1], choice, TRUE,
-                       (items[(scroll+choice)*2][0] != ':'));
-
-            print_arrows(dialog, item_no, scroll,
-                         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;
-       case ' ':
-       case 's':
-       case 'y':
-       case 'n':
-       case 'm':
-           /* save scroll info */
-           if ( (f=fopen("lxdialog.scrltmp","w")) != NULL ) {
-               fprintf(f,"%d\n",scroll);
-               fclose(f);
-           }
-           delwin (dialog);
-            fprintf(stderr, "%s\n", items[(scroll + choice) * 2]);
-            switch (key) {
-            case 's': return 3;
-            case 'y': return 3;
-            case 'n': return 4;
-            case 'm': return 5;
-            case ' ': return 6;
-            }
-           return 0;
-       case 'h':
-       case '?':
-           button = 2;
-       case '\n':
-           delwin (dialog);
-           if (button == 2) 
-               fprintf(stderr, "%s \"%s\"\n", 
-                       items[(scroll + choice) * 2],
-                       items[(scroll + choice) * 2 + 1] +
-                       first_alpha(items[(scroll + choice) * 2 + 1],""));
-           else
-               fprintf(stderr, "%s\n", items[(scroll + choice) * 2]);
-
-           remove("lxdialog.scrltmp");
-           return button;
-       case 'e':
-       case 'x':
-           key = ESC;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    remove("lxdialog.scrltmp");
-    return -1;                 /* ESC pressed */
-}
diff --git a/lxdialog/msgbox.c b/lxdialog/msgbox.c
deleted file mode 100644 (file)
index 93692e1..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *  msgbox.c -- implements the message box and info box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcapw@cfw.com)
- *
- *  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.
- */
-
-#include "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) >= 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')
-           key = wgetch (dialog);
-    } else {
-       key = '\n';
-       wrefresh (dialog);
-    }
-
-    delwin (dialog);
-    return key == ESC ? -1 : 0;
-}
diff --git a/lxdialog/textbox.c b/lxdialog/textbox.c
deleted file mode 100644 (file)
index ecf5541..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- *  textbox.c -- implements the text box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  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.
- */
-
-#include "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 = 0, fd, file_size, bytes_read;
-static int begin_reached = 1, end_reached = 0, 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 = open (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) >= 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);
-       switch (key) {
-       case 'E':               /* Exit */
-       case 'e':
-       case 'X':
-       case 'x':
-           delwin (dialog);
-           free (buf);
-           close (fd);
-           return 0;
-       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 += MIN (strlen (line), hscroll);      /* Scroll horizontally */
-    wmove (win, row, 0);       /* move cursor to correct line */
-    waddch (win, ' ');
-    waddnstr (win, line, MIN (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);
-}
diff --git a/lxdialog/util.c b/lxdialog/util.c
deleted file mode 100644 (file)
index b3a7af9..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- *  util.c
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  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.
- */
-
-#include "dialog.h"
-
-
-/* use colors by default? */
-bool use_colors = 1;
-
-const 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 "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 ();
-}
-
-
-/*
- * 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 i, prompt_len, room, wlen;
-    char tempstr[MAX_LEN + 1], *word, *sp, *sp2;
-
-    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 = index(word, ' ');
-           if (sp)
-               *sp++ = 0;
-
-           /* 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 = index(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)
-{
-       int i, 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;
-
-               if ((! in_paren) && isalpha(c) && 
-                    strchr(exempt, c) == 0)
-                       return i;
-       }
-
-       return 0;
-}
diff --git a/lxdialog/yesno.c b/lxdialog/yesno.c
deleted file mode 100644 (file)
index 11fcc25..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- *  yesno.c -- implements the yes/no box
- *
- *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
- *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com)
- *
- *  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.
- */
-
-#include "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) >= 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);
-       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;
-       case ' ':
-       case '\n':
-           delwin (dialog);
-           return button;
-       case ESC:
-           break;
-       }
-    }
-
-    delwin (dialog);
-    return -1;                 /* ESC pressed */
-}
diff --git a/menuconfig b/menuconfig
deleted file mode 100755 (executable)
index 8a2081f..0000000
+++ /dev/null
@@ -1,1429 +0,0 @@
-#!/usr/bin/env bash
-#
-# VLC media player configuration script, borrowed from linux menuconfig
-# Cyril Deguet <asmax@videolan.org>
-#
-#-----------------------------------------------------------------
-# William Roadcap was the original author of Menuconfig.
-# Michael Elizabeth Chastain (mec@shout.net) is the current maintainer.
-#
-# 070497 Bernhard Kaindl (bkaindl@netway.at) - get default values for
-# new bool, tristate and dep_tristate parameters from the defconfig file.
-# new configuration parameters are marked with '(NEW)' as in make config.
-#
-# 180697 Bernhard Kaindl (bkaindl@netway.at) - added the needed support
-# for string options. They are handled like the int and hex options.
-#
-# 081297 Pavel Machek (pavel@atrey.karlin.mff.cuni.cz) - better error 
-# handling
-#
-# 131197 Michael Chastain (mec@shout.net) - output all lines for a
-# choice list, not just the selected one.  This makes the output
-# the same as Configure output, which is important for smart config
-# dependencies.
-#
-# 101297 Michael Chastain (mec@shout.net) - remove sound driver cruft.
-#
-# 221297 Michael Chastain (mec@shout.net) - make define_bool actually
-# define its arguments so that later tests on them work right.
-#
-# 160198 Michael Chastain (mec@shout.net) - fix bug with 'c' command
-# (complement existing value) when used on virgin uninitialized variables.
-#
-# 090398 Axel Boldt (boldt@math.ucsb.edu) - allow for empty lines in help
-# texts.
-#
-# 12 Dec 1998, Michael Elizabeth Chastain (mec@shout.net)
-# Remove a /tmp security hole in get_def (also makes it faster).
-# Give uninitialized variables canonical values rather than null value.
-# Change a lot of places to call set_x_info uniformly.
-# Take out message about preparing version (old sound driver cruft).
-#
-# 13 Dec 1998, Riley H Williams <Riley@Williams.Name>
-# When an error occurs, actually display the error message as well as
-# our comments thereon.
-#
-# 31 Dec 1998, Michael Elizabeth Chastain (mec@shout.net)
-# Fix mod_bool to honor $CONFIG_MODULES.
-# Fix dep_tristate to call define_bool when dependency is "n".
-#
-# 02 January 1999, Michael Elizabeth Chastain (mec@shout.net)
-# Blow away lxdialog.scrltmp on entry to activate_menu.  This protects
-# against people who use commands like ' ' to select menus.
-#
-# 24 January 1999, Michael Elizabeth Chastain, <mec@shout.net>
-# - Improve the exit message (Jeff Ronne).
-#
-# 06 July 1999, Andrzej M. Krzysztofowicz, <ankry@mif.pg.gda.pl>
-# - Support for multiple conditions in dep_tristate().
-# - Implemented new functions: define_tristate(), define_int(), define_hex(),
-#   define_string(), dep_bool().
-#
-# 12 November 2001, Keith Owens <kaos@ocs.com.au>
-# Escape double quotes on eval so the quotes are still there on the second
-# evaluation, required to handle strings with special characters.
-# 
-
-
-#
-# Change this to TRUE if you prefer all kernel options listed
-# in a single menu rather than the standard menu hierarchy.
-#
-single_menu_mode=
-
-#
-# Make sure we're really running bash.
-#
-[ -z "$BASH" ] && { echo "Menuconfig requires bash" 1>&2; exit 1; }
-
-#
-# Cache function definitions, turn off posix compliance
-#
-set -h +o posix
-
-
-
-# Given a configuration variable, set the global variable $x to its value,
-# and the global variable $info to the string " (NEW)" if this is a new
-# variable.
-#
-# This function looks for: (1) the current value, or (2) the default value
-# from the arch-dependent defconfig file, or (3) a default passed by the caller.
-
-function set_x_info () {
-    eval x=\$$1
-    if [ -z "$x" ]; then
-       eval `sed -n -e 's/# \(.*\) is not set.*/\1=n/' -e "/^$1=/p" arch/$ARCH/defconfig`
-       eval x=\${$1:-\"$2\"}
-       eval $1=$x
-       eval INFO_$1="' (NEW)'"
-    fi
-    eval info=\"\$INFO_$1\"
-}
-
-#
-# Load the functions used by the config.in files.
-#
-# I do this because these functions must be redefined depending
-# on whether they are being called for interactive use or for
-# saving a configuration to a file.
-#
-# Thank the heavens bash supports nesting function definitions.
-#
-load_functions () {
-
-#
-# Additional comments
-#
-function comment () {
-       comment_ctr=$[ comment_ctr + 1 ]
-       echo -ne "': $comment_ctr' '--- $1' " >>MCmenu
-}
-
-#
-# Define a boolean to a specific value.
-#
-function define_bool () {
-       eval $1=$2
-}
-
-function define_tristate () {
-       eval $1=$2
-}
-
-function define_hex () {
-       eval $1=$2
-}
-
-function define_int () {
-       eval $1=$2
-}
-
-function define_string () {
-       eval $1=\"$2\"
-}
-
-#
-# Create a boolean (Yes/No) function for our current menu
-# which calls our local bool function.
-#
-function bool () {
-       set_x_info "$2" "n"
-
-       case $x in
-       y|m)    flag="*" ;;
-       n)      flag=" " ;;
-       esac
-
-       echo -ne "'$2' '[$flag] $1$info' " >>MCmenu
-
-       echo -e "function $2 () { l_bool '$2' \"\$1\" ;}\n" >>MCradiolists
-}
-
-#
-# Create a tristate (Yes/No/Module) radiolist function
-# which calls our local tristate function.
-#
-# Collapses to a boolean (Yes/No) if module support is disabled.
-#
-function tristate () {
-       if [ "$CONFIG_MODULES" != "y" ]
-       then
-               bool "$1" "$2"
-       else
-               set_x_info "$2" "n"
-       
-               case $x in
-               y) flag="*" ;;
-               m) flag="M" ;;
-               *) flag=" " ;;
-               esac
-       
-               echo -ne "'$2' '<$flag> $1$info' " >>MCmenu
-       
-               echo -e "
-               function $2 () { l_tristate '$2' \"\$1\" ;}" >>MCradiolists
-       fi
-}
-
-#
-# Create a tristate radiolist function which is dependent on
-# another vlc configuration option.
-#
-# Quote from the original configure script:
-#
-#       If the option we depend upon is a module,
-#       then the only allowable options are M or N.  If Y, then
-#       this is a normal tristate.  This is used in cases where modules
-#       are nested, and one module requires the presence of something
-#       else in the kernel.
-#
-function dep_tristate () {
-       ques="$1"
-       var="$2"
-       dep=y
-       shift 2
-       while [ $# -gt 0 ]; do
-               if   [ "$1" = y ]; then
-                       shift
-               elif [ "$1" = m ]; then
-                       dep=m
-                       shift
-               else
-                       dep=n
-                       shift $#
-               fi
-       done
-       if [ "$dep" = y ]; then
-           tristate "$ques" "$var"
-       elif [ "$dep" = m ]; then
-           mod_bool "$ques" "$var"
-       else 
-           define_tristate "$var" n
-       fi
-}
-
-#
-#   Same as above, but now only Y and N are allowed as dependency
-#   (i.e. third and next arguments).
-#
-function dep_bool () {
-       ques="$1"
-       var="$2"
-       dep=y
-       shift 2
-       while [ $# -gt 0 ]; do
-               if [ "$1" = y ]; then
-                       shift
-               else
-                       dep=n
-                       shift $#
-               fi
-       done
-       if [ "$dep" = y ]; then
-           bool "$ques" "$var"
-       else 
-           define_bool "$var" n
-       fi
-}
-
-function dep_mbool () {
-       ques="$1"
-       var="$2"
-       dep=y
-       shift 2
-       while [ $# -gt 0 ]; do
-               if [ "$1" = y -o "$1" = m ]; then
-                       shift
-               else
-                       dep=n
-                       shift $#
-               fi
-       done
-       if [ "$dep" = y ]; then
-           bool "$ques" "$var"
-       else 
-           define_bool "$var" n
-       fi
-}
-
-#
-# Add a menu item which will call our local int function.
-# 
-function int () {
-       set_x_info "$2" "$3"
-
-       echo -ne "'$2' '($x) $1$info' " >>MCmenu
-
-       echo -e "function $2 () { l_int '$1' '$2' '$3' '$x' ;}" >>MCradiolists
-}
-
-#
-# Add a menu item which will call our local hex function.
-# 
-function hex () {
-       set_x_info "$2" "$3"
-       x=${x##*[x,X]}
-
-       echo -ne "'$2' '($x) $1$info' " >>MCmenu
-
-       echo -e "function $2 () { l_hex '$1' '$2' '$3' '$x' ;}" >>MCradiolists
-}
-
-#
-# Add a menu item which will call our local string function.
-# 
-function string () {
-       set_x_info "$2" "$3"
-
-       echo -ne "'$2' '     $1: \"$x\"$info' " >>MCmenu
-
-       echo -e "function $2 () { l_string '$1' '$2' '$3' '$x' ;}" >>MCradiolists
-}
-
-#
-# Add a menu item which will call our local One-of-Many choice list.
-#
-function choice () {
-       #
-       # Need to remember params cause they're gonna get reset.
-       #
-       title=$1
-       choices=$2
-       default=$3
-       current=
-
-       #
-       # Find out if one of the choices is already set.
-       # If it's not then make it the default.
-       #
-       set -- $choices
-       firstchoice=$2
-
-       while [ -n "$2" ]
-       do
-               if eval [ \"_\$$2\" = \"_y\" ]
-               then
-                       current=$1
-                       break
-               fi
-               shift ; shift
-       done
-
-       : ${current:=$default}
-
-       echo -ne "'$firstchoice' '($current) $title' " >>MCmenu
-
-       echo -e "
-       function $firstchoice () \
-               { l_choice '$title' \"$choices\" \"$current\" ;}" >>MCradiolists
-}
-
-} # END load_functions()
-
-
-
-
-
-#
-# Extract available help for an option from Configure.help
-# and send it to standard output.
-#
-# Most of this function was borrowed from the original kernel
-# Configure script.
-#
-function extract_help () {
-  if [ -f doc/Configure.help ]
-  then
-     #first escape regexp special characters in the argument:
-     var=$(echo "$1"|sed 's/[][\/.^$*]/\\&/g')
-     #now pick out the right help text:
-     text=$(sed -n "/^$var[    ]*\$/,\${
-                        /^$var[        ]*\$/c\\
-${var}:\\
-
-                        /^#/b
-                        /^[^   ]/q
-                        s/^  //
-                       /<file:\\([^>]*\\)>/s//\\1/g
-                        p
-                    }" doc/Configure.help)
-
-     if [ -z "$text" ]
-     then
-          echo "There is no help available for this option."
-         return 1
-     else
-         echo "$text"
-     fi
-  else
-        echo "There is no help available for this option."
-         return 1
-  fi
-}
-
-#
-# Activate a help dialog.
-#
-function help () {
-       if extract_help $1 >help.out
-       then
-               $DIALOG --backtitle "$backtitle" --title "$2"\
-                       --textbox help.out $ROWS $COLS
-       else
-               $DIALOG --backtitle "$backtitle" \
-                       --textbox help.out $ROWS $COLS
-       fi
-       rm -f help.out
-}
-
-#
-# Show the README file.
-#
-function show_readme () {
-       $DIALOG --backtitle "$backtitle" \
-               --textbox scripts/README.Menuconfig $ROWS $COLS
-}
-
-#
-# Begin building the dialog menu command and Initialize the 
-# Radiolist function file.
-#
-function menu_name () {
-       echo -ne "$DIALOG --title '$1'\
-                       --backtitle '$backtitle' \
-                       --menu '$menu_instructions' \
-                       $ROWS $COLS $((ROWS-10)) \
-                       '$default' " >MCmenu
-       >MCradiolists
-}
-
-#
-# Add a submenu option to the menu currently under construction.
-#
-function submenu () {
-       echo -ne "'activate_menu $2' '$1  --->' " >>MCmenu
-}
-
-#
-# Handle a boolean (Yes/No) option.
-#
-function l_bool () {
-       if [ -n "$2" ]
-       then
-               case "$2" in
-               y|m)    eval $1=y ;;
-               c)      eval x=\$$1
-                       case $x in
-                       y) eval $1=n ;;
-                       n) eval $1=y ;;
-                       *) eval $1=y ;;
-                       esac ;;
-               *)      eval $1=n ;;
-               esac
-       else
-               echo -ne "\007"
-       fi
-}
-
-#
-# Same as bool() except options are (Module/No)
-#
-function mod_bool () {
-       if [ "$CONFIG_MODULES" != "y" ]; then
-           define_bool "$2" "n"
-       else
-           set_x_info "$2" "n"
-           case $x in
-           y|m) flag='M' ;;
-           *)   flag=' ' ;;
-           esac
-           echo -ne "'$2' '<$flag> $1$info' " >>MCmenu
-           echo -e "function $2 () { l_mod_bool '$2' \"\$1\" ;}" >>MCradiolists
-       fi
-}
-
-#
-# Same as l_bool() except options are (Module/No)
-#
-function l_mod_bool() {
-       if [ -n "$2" ]
-       then
-               case "$2" in
-               y)      echo -en "\007"
-                       ${DIALOG} --backtitle "$backtitle" \
-                                 --infobox "\
-This feature depends on another which has been configured as a module.  \
-As a result, this feature will be built as a module." 4 70
-                       sleep 5
-                       eval $1=m ;;
-               m)      eval $1=m ;;
-               c)      eval x=\$$1
-                       case $x in
-                       m) eval $1=n ;;
-                       n) eval $1=m ;;
-                       *) eval $1=m ;;
-                       esac ;;
-               *)      eval $1=n ;;
-               esac
-       else
-               echo -ne "\007"
-       fi
-}
-
-#
-# Handle a tristate (Yes/No/Module) option.
-#
-function l_tristate () {
-       if [ -n "$2" ]
-       then
-               eval x=\$$1
-
-               case "$2" in
-               y) eval $1=y ;;
-               m) eval $1=m ;;
-               c) eval x=\$$1
-                  case $x in
-                  y) eval $1=n ;;
-                  n) eval $1=m ;;
-                  m) eval $1=y ;;
-                  *) eval $1=y ;;
-                  esac ;;
-               *) eval $1=n ;;
-               esac
-       else
-               echo -ne "\007"
-       fi
-}
-
-#
-# Create a dialog for entering an integer into a kernel option.
-#
-function l_int () {
-       while true
-       do
-               if $DIALOG --title "$1" \
-                       --backtitle "$backtitle" \
-                       --inputbox "$inputbox_instructions_int" \
-                       10 75 "$4" 2>MCdialog.out
-               then
-                       answer="`cat MCdialog.out`"
-                       answer="${answer:-$3}"
-
-                       # Semantics of + and ? in GNU expr changed, so
-                       # we avoid them:
-                       if expr "$answer" : '0$' '|' "$answer" : '[1-9][0-9]*$' '|' "$answer" : '-[1-9][0-9]*$' >/dev/null
-                       then
-                               eval $2=\"$answer\"
-                       else
-                               eval $2=\"$3\"
-                               echo -en "\007"
-                               ${DIALOG} --backtitle "$backtitle" \
-                                       --infobox "You have made an invalid entry." 3 43
-                               sleep 2
-                       fi
-
-                       break
-               fi
-
-               help "$2" "$1"
-       done
-}
-
-#
-# Create a dialog for entering a hexadecimal into a kernel option.
-#
-function l_hex () {
-       while true
-       do
-               if $DIALOG --title "$1" \
-                       --backtitle "$backtitle" \
-                       --inputbox "$inputbox_instructions_hex" \
-                       10 75 "$4" 2>MCdialog.out
-               then
-                       answer="`cat MCdialog.out`"
-                       answer="${answer:-$3}"
-                       answer="${answer##*[x,X]}"
-
-                       if expr "$answer" : '[0-9a-fA-F][0-9a-fA-F]*$' >/dev/null
-                       then
-                               eval $2=\"$answer\"
-                       else
-                               eval $2=\"$3\"
-                               echo -en "\007"
-                               ${DIALOG} --backtitle "$backtitle" \
-                                       --infobox "You have made an invalid entry." 3 43
-                               sleep 2
-                       fi
-
-                       break
-               fi
-
-               help "$2" "$1"
-       done
-}
-
-#
-# Create a dialog for entering a string into a kernel option.
-#
-function l_string () {
-       while true
-       do
-               if $DIALOG --title "$1" \
-                       --backtitle "$backtitle" \
-                       --inputbox "$inputbox_instructions_string" \
-                       10 75 "$4" 2>MCdialog.out
-               then
-                       answer="`cat MCdialog.out`"
-                       answer="${answer:-$3}"
-
-                       #
-                       # Someone may add a nice check for the entered
-                       # string here...
-                       #
-                       eval $2=\"$answer\"
-
-                       break
-               fi
-
-               help "$2" "$1"
-       done
-}
-
-
-#
-# Handle a one-of-many choice list.
-#
-function l_choice () {
-       #
-       # Need to remember params cause they're gonna get reset.
-       #
-       title="$1"
-       choices="$2"
-       current="$3"
-        chosen=
-
-       #
-       # Scan current value of choices and set radiolist switches.
-       #
-       list=
-       set -- $choices
-       firstchoice=$2
-       while [ -n "$2" ]
-       do
-               case "$1" in
-               "$current"*)    if [ -z "$chosen" ]; then
-                                       list="$list $2 $1 ON "
-                                       chosen=1
-                               else
-                                       list="$list $2 $1 OFF "
-                               fi  ;;
-               *)              list="$list $2 $1 OFF " ;;
-               esac
-                       
-               shift ; shift
-       done
-
-       while true
-       do
-               if $DIALOG --title "$title" \
-                       --backtitle "$backtitle" \
-                       --radiolist "$radiolist_instructions" \
-                       15 70 6 $list 2>MCdialog.out
-               then
-                       choice=`cat MCdialog.out`
-                       break
-               fi
-
-               help "$firstchoice" "$title"
-       done
-
-       #
-       # Now set the boolean value of each option based on
-       # the selection made from the radiolist.
-       #
-       set -- $choices
-       while [ -n "$2" ]
-       do
-               if [ "$2" = "$choice" ]
-               then
-                       eval $2=\"y\"
-               else
-                       eval $2=\"n\"
-               fi
-               
-               shift ; shift
-       done
-}
-
-#
-# Call awk, and watch for error codes, etc.
-#
-function callawk () {
-awk "$1" || { echo "Awk died with error code $?. Giving up."; exit 1; }
-}
-
-#
-# A faster awk based recursive parser. (I hope)
-#
-function parser1 () {
-callawk '
-BEGIN {
-       menu_no = 0
-       comment_is_option = 0
-       parser("'$CONFIG_IN'","MCmenu0")
-}
-
-function parser(ifile,menu) {
-
-       while (getline <ifile) {
-               if ($1 == "mainmenu_option") {
-                       comment_is_option = "1"
-               }
-               else if ($1 == "comment" && comment_is_option == "1") {
-                       comment_is_option= "0"
-                       sub($1,"",$0)
-                       ++menu_no
-
-                       printf("submenu %s MCmenu%s\n", $0, menu_no) >>menu
-
-                       newmenu = sprintf("MCmenu%d", menu_no);
-                       printf( "function MCmenu%s () {\n"\
-                               "default=$1\n"\
-                               "menu_name %s\n",\
-                                menu_no, $0) >newmenu
-
-                       parser(ifile, newmenu)
-               }
-               else if ($0 ~ /^#|\$MAKE|mainmenu_name/) {
-                       printf("") >>menu
-               }
-               else if ($1 ~ "endmenu") {
-                       printf("}\n") >>menu
-                       return
-               } 
-               else if ($1 == "source") {
-                       parser($2,menu)
-               }
-               else {
-                       print >>menu
-               }
-       }
-}'
-}
-
-#
-# Secondary parser for single menu mode.
-#
-function parser2 () {
-callawk '
-BEGIN {
-       parser("'$CONFIG_IN'","MCmenu0")
-}
-
-function parser(ifile,menu) {
-
-       while (getline <ifile) {
-               if ($0 ~ /^#|$MAKE|mainmenu_name/) {
-                       printf("") >>menu
-               }
-               else if ($1 ~ /mainmenu_option|endmenu/) {
-                       printf("") >>menu
-               } 
-               else if ($1 == "source") {
-                       parser($2,menu)
-               }
-               else {
-                       print >>menu
-               }
-       }
-}'
-}
-
-#
-# Parse all the config.in files into mini scripts.
-#
-function parse_config_files () {
-       rm -f MCmenu*
-
-       echo "function MCmenu0 () {" >MCmenu0
-       echo 'default=$1' >>MCmenu0
-       echo "menu_name 'Main Menu'" >>MCmenu0
-
-       if [ "_$single_menu_mode" = "_TRUE" ]
-       then
-               parser2
-       else
-               parser1
-       fi
-
-       echo "comment ''"       >>MCmenu0
-       echo "g_alt_config"     >>MCmenu0
-       echo "s_alt_config"     >>MCmenu0
-
-       echo "}" >>MCmenu0
-
-       #
-       # These mini scripts must be sourced into the current
-       # environment in order for all of this to work.  Leaving
-       # them on the disk as executables screws up the recursion
-       # in activate_menu(), among other things.  Once they are
-       # sourced we can discard them.
-       #
-       for i in MCmenu*
-       do
-               echo -n "."
-               source ./$i
-       done
-       rm -f MCmenu*
-}
-
-#
-# This is the menu tree's bootstrap.
-#
-# Executes the parsed menus on demand and creates a set of functions,
-# one per configuration option.  These functions will in turn execute
-# dialog commands or recursively call other menus.
-#
-function activate_menu () {
-       rm -f lxdialog.scrltmp
-       while true
-       do
-               comment_ctr=0           #So comment lines get unique tags
-
-               $1 "$default" 2> MCerror #Create the lxdialog menu & functions
-
-               if [ "$?" != "0" ]
-               then
-                       clear
-                       cat <<EOM
-
-Menuconfig has encountered a possible error in one of the vlc's
-configuration files and is unable to continue.  Here is the error
-report:
-
-EOM
-                       sed 's/^/ Q> /' MCerror
-                       cat <<EOM
-
-Please report this to the maintainer <asmax@videolan.org>.
-
-Please indicate the vlc version you are trying to configure and
-which menu you were trying to enter when this error occurred.
-
-EOM
-                       cleanup
-                       exit 1
-               fi
-               rm -f MCerror
-
-               . ./MCradiolists                #Source the menu's functions
-
-               . ./MCmenu 2>MCdialog.out       #Activate the lxdialog menu
-               ret=$?
-
-               read selection <MCdialog.out
-
-               case "$ret" in
-               0|3|4|5|6)
-                       defaults="$selection\12$defaults"  #pseudo stack
-                       case "$ret" in
-                       0) eval $selection   ;;
-                       3) eval $selection y ;;
-                       4) eval $selection n ;;
-                       5) eval $selection m ;;
-                       6) eval $selection c ;;
-                       esac
-                       default="${defaults%%\12*}" defaults="${defaults#*\12}"
-                       ;;
-               2)      
-                       default="${selection%%\ *}"
-
-                       case "$selection" in
-                       *"-->"*|*"alt_config"*)
-                               show_readme ;;
-                       *)
-                               eval help $selection ;;
-                       esac
-                       ;;
-               255|1)
-                       break
-                       ;;
-               139)
-                       stty sane
-                       clear
-                       cat <<EOM
-
-There seems to be a problem with the lxdialog companion utility which is
-built prior to running Menuconfig.  Usually this is an indicator that you
-have upgraded/downgraded your ncurses libraries and did not remove the 
-old ncurses header file(s) in /usr/include or /usr/include/ncurses.
-
-It is VERY important that you have only one set of ncurses header files
-and that those files are properly version matched to the ncurses libraries 
-installed on your machine.
-
-You may also need to rebuild lxdialog.  This can be done by moving to
-the /usr/src/linux/scripts/lxdialog directory and issuing the 
-"make clean all" command.
-
-If you have verified that your ncurses install is correct, you may email
-the maintainer <asmax@videolan.org>.
-
-EOM
-                       cleanup
-                       exit 139
-                       ;;
-               esac
-       done
-}
-
-#
-# Create a menu item to load an alternate configuration file.
-#
-g_alt_config () {
-       echo -n "get_alt_config 'Load an Alternate Configuration File' "\
-               >>MCmenu
-}
-
-#
-# Get alternate config file name and load the 
-# configuration from it.
-#
-get_alt_config () {
-       set -f ## Switch file expansion OFF
-
-       while true
-       do
-               ALT_CONFIG="${ALT_CONFIG:-$DEFAULTS}"
-
-               $DIALOG --backtitle "$backtitle" \
-                       --inputbox "\
-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."\
-                       11 55 "$ALT_CONFIG" 2>MCdialog.out
-
-               if [ "$?" = "0" ]
-               then
-                       ALT_CONFIG=`cat MCdialog.out`
-
-                       [ "_" = "_$ALT_CONFIG" ] && break
-
-                       if eval [ -r \"$ALT_CONFIG\" ]
-                       then
-                               eval load_config_file \"$ALT_CONFIG\"
-                               break
-                       else
-                               echo -ne "\007"
-                               $DIALOG --backtitle "$backtitle" \
-                                       --infobox "File does not exist!"  3 38
-                               sleep 2
-                       fi
-               else
-                       cat <<EOM >help.out
-
-For various reasons, one may wish to keep several different vlc
-configurations available on a single machine.  
-
-If you have saved a previous configuration in a file other than the
-vlc's default, entering the name of the file here will allow you
-to modify that configuration.
-
-If you are uncertain, then you have probably never used alternate 
-configuration files.  You should therefor leave this blank to abort.
-
-EOM
-                       $DIALOG --backtitle "$backtitle"\
-                               --title "Load Alternate Configuration"\
-                               --textbox help.out $ROWS $COLS
-               fi
-       done
-
-       set +f ## Switch file expansion ON
-       rm -f help.out MCdialog.out
-}
-
-#
-# Create a menu item to store an alternate config file.
-#
-s_alt_config () {
-       echo -n "save_alt_config 'Save Configuration to an Alternate File' "\
-                >>MCmenu
-}
-
-#
-# Get an alternate config file name and save the current
-# configuration to it.
-#
-save_alt_config () {
-       set -f  ## Switch file expansion OFF
-                       
-       while true
-       do
-               $DIALOG --backtitle "$backtitle" \
-                       --inputbox "\
-Enter a filename to which this configuration should be saved \
-as an alternate.  Leave blank to abort."\
-                       10 55 "$ALT_CONFIG" 2>MCdialog.out
-
-               if [ "$?" = "0" ]
-               then
-                       ALT_CONFIG=`cat MCdialog.out`
-
-                       [ "_" = "_$ALT_CONFIG" ] && break
-
-                       if eval touch $ALT_CONFIG 2>/dev/null
-                       then
-                               eval save_configuration $ALT_CONFIG
-                               load_functions  ## RELOAD
-                               break
-                       else
-                               echo -ne "\007"
-                               $DIALOG --backtitle "$backtitle" \
-                                       --infobox "Can't create file!  Probably a nonexistent directory." 3 60
-                               sleep 2
-                       fi
-               else
-                       cat <<EOM >help.out
-
-For various reasons, one may wish to keep different vlc
-configurations available on a single machine.  
-
-Entering a file name here will allow you to later retrieve, modify
-and use the current configuration as an alternate to whatever 
-configuration options you have selected at that time.
-
-If you are uncertain what all this means then you should probably
-leave this blank.
-EOM
-                       $DIALOG --backtitle "$backtitle"\
-                               --title "Save Alternate Configuration"\
-                               --textbox help.out $ROWS $COLS
-               fi
-       done
-
-       set +f  ## Switch file expansion ON
-       rm -f help.out MCdialog.out
-}
-
-#
-# Load config options from a file.
-# Converts all "# OPTION is not set" lines to "OPTION=n" lines
-#
-function load_config_file () {
-       awk '
-         /# .* is not set.*/ { printf("%s=n\n", $2) }
-       ! /# .* is not set.*/ { print }
-       ' $1 >.tmpconfig
-
-       source ./.tmpconfig
-       rm -f .tmpconfig
-}
-
-#
-# Just what it says.
-#
-save_configuration () {
-        echo
-       echo -n "Saving your vlc configuration."
-
-       #
-       # Now, let's redefine the configuration functions for final
-       # output to the config files.
-       #
-       # Nested function definitions, YIPEE!
-       #
-       function bool () {
-               set_x_info "$2" "n"
-               eval define_bool \"$2\" \"$x\"
-       }
-
-       function tristate () {
-               set_x_info "$2" "n"
-               eval define_tristate \"$2\" \"$x\"
-       }
-
-       function dep_tristate () {
-               set_x_info "$2" "n"
-               var="$2"
-               shift 2
-               while [ $# -gt 0 ]; do
-                       if   [ "$1" = y ]; then
-                               shift
-                       elif [ "$1" = m -a "$x" != n ]; then
-                               x=m; shift
-                       else 
-                               x=n; shift $#
-                       fi
-               done
-               define_tristate "$var" "$x"
-       }
-
-       function dep_bool () {
-               set_x_info "$2" "n"
-               var="$2"
-               shift 2
-               while [ $# -gt 0 ]; do
-                       if   [ "$1" = y ]; then
-                               shift
-                       else 
-                               x=n; shift $#
-                       fi
-               done
-               define_bool "$var" "$x"
-       }
-
-       function dep_mbool () {
-               set_x_info "$2" "n"
-               var="$2"
-               shift 2
-               while [ $# -gt 0 ]; do
-                       if   [ "$1" = y -o "$1" = m ]; then
-                               shift
-                       else 
-                               x=n; shift $#
-                       fi
-               done
-               define_bool "$var" "$x"
-       }
-
-       function int () {
-               set_x_info "$2" "$3"
-               echo "$2=$x"            >>$CONFIG
-       }
-
-       function hex () {
-               set_x_info "$2" "$3"
-               echo "$2=$x"                     >>$CONFIG
-       }
-
-       function string () {
-               set_x_info "$2" "$3"
-               echo "$2=\"$x\""                         >>$CONFIG
-       }
-
-       function define_hex () {
-               eval $1=\"$2\"
-                       echo "$1=$2"                    >>$CONFIG
-       }
-
-       function define_int () {
-               eval $1=\"$2\"
-               echo "$1=$2"                    >>$CONFIG
-       }
-
-       function define_string () {
-               eval $1=\"$2\"
-               echo "$1=\"$2\""                >>$CONFIG
-       }
-
-       function define_bool () {
-               define_tristate "$1" "$2"
-       }
-
-       function define_tristate () {
-               eval $1=\"$2\"
-
-               case "$2" in
-               y)
-                       echo "$1=y"             >>$CONFIG
-                       ;;
-
-               m)
-                       if [ "$CONFIG_MODULES" = "y" ]
-                       then
-                               echo "$1=m"                >>$CONFIG
-                       else
-                               echo "$1=y"             >>$CONFIG
-                       fi
-                       ;;
-
-               n)
-                       echo "# $1 is not set"  >>$CONFIG
-                       ;;
-               esac
-       }
-
-       function choice () {
-               #
-               # Find the first choice that's already set to 'y'
-               #
-               choices="$2"
-               default="$3"
-               current=
-               chosen=
-
-               set -- $choices
-               while [ -n "$2" ]
-               do
-                       if eval [ \"_\$$2\" = \"_y\" ]
-                       then
-                               current=$1
-                               break
-                       fi
-                       shift ; shift
-               done
-
-               #
-               # Use the default if none were set.  
-               #
-               : ${current:=$default}
-
-               #
-               # Output all choices (to be compatible with other configs).
-               #
-               set -- $choices
-               while [ -n "$2" ]
-               do
-                       case "$1" in
-                       "$current"*)    if [ -z "$chosen" ]; then
-                                               define_bool "$2" "y"
-                                               chosen=1
-                                       else
-                                               define_bool "$2" "n"
-                                       fi ;;
-                       *)              define_bool "$2" "n" ;;
-                       esac
-                       shift ; shift
-               done
-       }
-
-       function mainmenu_name () {
-               :
-       }
-
-       function mainmenu_option () {
-               comment_is_option=TRUE
-       }
-
-       function endmenu () {
-               :
-       }
-
-       function comment () {
-               if [ "$comment_is_option" ]
-               then
-                       comment_is_option=
-                       echo        >>$CONFIG
-                       echo "#"    >>$CONFIG
-                       echo "# $1" >>$CONFIG
-                       echo "#"    >>$CONFIG
-               fi
-       }
-
-       echo -n "."
-
-       DEF_CONFIG="${1:-.config}"
-
-       CONFIG=.tmpconfig
-
-       echo "#" >$CONFIG
-       echo "# Automatically generated by make menuconfig: don't edit" >>$CONFIG
-       echo "#" >>$CONFIG
-
-       echo -n "."
-       if . $CONFIG_IN >>.menuconfig.log 2>&1
-       then
-               if [ -f "$DEF_CONFIG" ]
-               then
-                       rm -f ${DEF_CONFIG}.old
-                       mv $DEF_CONFIG ${DEF_CONFIG}.old
-               fi
-
-               mv $CONFIG $DEF_CONFIG
-                       
-               return 0
-       else
-               return 1
-       fi
-}
-
-#
-# Remove temporary files
-#
-cleanup () {
-       cleanup1
-       cleanup2
-}
-
-cleanup1 () {
-       rm -f MCmenu* MCradiolists MCdialog.out help.out
-}
-
-cleanup2 () {
-       rm -f .tmpconfig
-}
-
-set_geometry () {
-       # Some distributions export these with incorrect values
-       # which can really screw up some ncurses programs.
-       LINES=  COLUMNS=
-
-       ROWS=${1:-24}  COLS=${2:-80} 
-
-       # Just in case the nasty rlogin bug returns.
-       #
-       [ $ROWS = 0 ] && ROWS=24
-       [ $COLS = 0 ] && COLS=80
-
-       if [ $ROWS -lt 19 -o $COLS -lt 80 ]
-       then
-               echo -e "\n\007Your display is too small to run Menuconfig!"
-               echo "It must be at least 19 lines by 80 columns."
-               exit 1
-       fi 
-
-       ROWS=$((ROWS-4))  COLS=$((COLS-5))
-}
-
-
-set_geometry `stty size 2>/dev/null`
-
-menu_instructions="\
-Arrow keys navigate the menu.  \
-<Enter> selects submenus --->.  \
-Highlighted letters are hotkeys.  \
-Pressing <Y> includes, <N> excludes, <M> modularizes features.  \
-Press <Esc><Esc> to exit, <?> for Help.  \
-Legend: [*] built-in  [ ] excluded  <M> module  < > module capable"
-
-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."
-
-DIALOG="./lxdialog/lxdialog"
-
-backtitle="VLC media player configuration"
-
-trap "cleanup ; exit 1" 1 2 15
-
-
-#
-# Locate default files.
-#
-CONFIG_IN=./config.in
-if [ "$1" != "" ] ; then
-       CONFIG_IN=$1
-fi
-
-DEFAULTS=defconfig
-if [ -f .config ]; then
-  DEFAULTS=.config
-fi
-
-if [ -f $DEFAULTS ]
-then
-  echo "Using defaults found in" $DEFAULTS
-  load_config_file $DEFAULTS
-else
-  echo "No defaults found"
-fi
-
-
-# Fresh new log.
->.menuconfig.log
-
-# Load the functions used by the config.in files.
-echo -n "Preparing scripts: functions" 
-load_functions
-
-if [ ! -e $CONFIG_IN ]
-then
-       echo "Your main config.in file ($CONFIG_IN) does not exist"
-       exit 1
-fi
-
-if [ ! -x $DIALOG ]
-then
-       echo "Building lxdialog"
-       cd lxdialog
-       make
-       cd ..
-fi
-if [ ! -x $DIALOG ]
-then
-       echo "Your lxdialog utility does not exist"
-       exit 1
-fi
-
-
-#
-# Read config.in files and parse them into one shell function per menu.
-#
-echo -n ", parsing"
-parse_config_files $CONFIG_IN
-
-echo "done."
-#
-# Start the ball rolling from the top.
-#
-activate_menu MCmenu0
-
-#
-# All done!
-#
-cleanup1
-
-#
-# Confirm and Save
-#
-if $DIALOG --backtitle "$backtitle" \
-          --yesno "Do you wish to save your new vlc configuration?" 5 60
-then
-       save_configuration
-       echo
-       echo "*** End of VideoLAN client configuration. ***"
-       echo "Run ./build-vlc to launch the build process"
-       echo
-else
-       echo
-       echo 
-       echo Your vlc configuration changes were NOT saved.
-       echo
-fi
-
-# Remove log if empty.
-if [ ! -s .menuconfig.log ] ; then
-       rm -f .menuconfig.log
-fi
-
-exit 0