From f0ab98af0cd34d1e69b08c3bb20c151c2b8f740b Mon Sep 17 00:00:00 2001 From: David Schleef Date: Sat, 2 Apr 2005 23:48:24 +0000 Subject: [PATCH] Change the way files are disted. Remove all the crap from scripts/ that's no longer used. --- Makefile.am | 66 +- scripts/Configure | 570 ------------ scripts/Menuconfig | 1472 ------------------------------ scripts/config.dist | 85 -- scripts/config.dist-2.0.39 | 78 -- scripts/config.in | 5 - scripts/dep.linux | 105 --- scripts/dep.pcmcia | 18 - scripts/dep.rtai | 25 - scripts/dep.rtlinux | 29 - scripts/generate_makefile | 48 - scripts/linux_flags-2.6/Makefile | 21 - scripts/linux_flags/Makefile | 26 - scripts/lxdialog/BIG.FAT.WARNING | 4 - scripts/lxdialog/Makefile | 49 - scripts/lxdialog/checklist.c | 369 -------- scripts/lxdialog/colors.h | 161 ---- scripts/lxdialog/dialog.h | 184 ---- scripts/lxdialog/inputbox.c | 240 ----- scripts/lxdialog/lxdialog.c | 226 ----- scripts/lxdialog/menubox.c | 443 --------- scripts/lxdialog/msgbox.c | 85 -- scripts/lxdialog/textbox.c | 556 ----------- scripts/lxdialog/util.c | 359 -------- scripts/lxdialog/yesno.c | 118 --- scripts/mkdep.c | 628 ------------- scripts/pathdown.sh | 13 - scripts/release | 44 - 28 files changed, 64 insertions(+), 5963 deletions(-) delete mode 100755 scripts/Configure delete mode 100755 scripts/Menuconfig delete mode 100644 scripts/config.dist delete mode 100644 scripts/config.dist-2.0.39 delete mode 100644 scripts/config.in delete mode 100755 scripts/dep.linux delete mode 100644 scripts/dep.pcmcia delete mode 100755 scripts/dep.rtai delete mode 100755 scripts/dep.rtlinux delete mode 100755 scripts/generate_makefile delete mode 100644 scripts/linux_flags-2.6/Makefile delete mode 100644 scripts/linux_flags/Makefile delete mode 100644 scripts/lxdialog/BIG.FAT.WARNING delete mode 100644 scripts/lxdialog/Makefile delete mode 100644 scripts/lxdialog/checklist.c delete mode 100644 scripts/lxdialog/colors.h delete mode 100644 scripts/lxdialog/dialog.h delete mode 100644 scripts/lxdialog/inputbox.c delete mode 100644 scripts/lxdialog/lxdialog.c delete mode 100644 scripts/lxdialog/menubox.c delete mode 100644 scripts/lxdialog/msgbox.c delete mode 100644 scripts/lxdialog/textbox.c delete mode 100644 scripts/lxdialog/util.c delete mode 100644 scripts/lxdialog/yesno.c delete mode 100644 scripts/mkdep.c delete mode 100644 scripts/pathdown.sh delete mode 100755 scripts/release diff --git a/Makefile.am b/Makefile.am index 35792785..1a86b6bd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,11 +1,73 @@ SUBDIRS = comedi -EXTRA_DIST = Documentation include scripts autogen.sh \ +EXTRA_DIST = autogen.sh \ m4/as-linux.m4 \ m4/as-modtool.m4 \ m4/rtai.m4 \ - m4/rtlinux.m4 + m4/rtlinux.m4 \ + Documentation/comedi/command \ + Documentation/comedi/FAQ \ + Documentation/comedi/notes/atmio_notes \ + Documentation/comedi/notes/README \ + Documentation/comedi/notes/boards \ + Documentation/comedi/notes/regmaps \ + Documentation/comedi/notes/testing \ + Documentation/comedi/Hardware_Driver.HOWTO \ + Documentation/comedi/counter-spec \ + Documentation/comedi/hacks \ + Documentation/comedi/insn_config \ + Documentation/comedi/pci.ids \ + Documentation/comedi/redhat-notes \ + Documentation/comedi/drivers.txt \ + Documentation/comedi/devices.txt \ + Documentation/Configure.help \ + Documentation/Configure.help.append \ + include/asm/pgtable.h \ + include/asm/div64.h \ + include/asm/dma.h \ + include/asm/page.h \ + include/asm/uaccess.h \ + include/asm/types.h \ + include/asm/semaphore.h \ + include/linux/comedi.h \ + include/linux/comedi_rt.h \ + include/linux/comedidev.h \ + include/linux/comedilib.h \ + include/linux/config.h \ + include/linux/devfs_fs_kernel.h \ + include/linux/fs.h \ + include/linux/highmem.h \ + include/linux/init.h \ + include/linux/interrupt.h \ + include/linux/ioport.h \ + include/linux/irq.h \ + include/linux/isapnp.h \ + include/linux/kdev_t.h \ + include/linux/kern_compat.h \ + include/linux/kmod.h \ + include/linux/mm.h \ + include/linux/module.h \ + include/linux/pci.h \ + include/linux/poll.h \ + include/linux/sched.h \ + include/linux/slab.h \ + include/linux/spinlock.h \ + include/linux/timer.h \ + include/linux/usb.h \ + include/linux/version.h \ + include/linux/vmalloc.h \ + include/linux/wait.h \ + include/linux/wrapper.h \ + include/linux/compiler.h \ + include/linux/device.h \ + include/pcmcia/ds.h \ + scripts/check_driver \ + scripts/check_cmdtest \ + scripts/check_kernel \ + scripts/call_trace \ + scripts/doc_devlist \ + scripts/dump_doc ACLOCAL_AMFLAGS = -I m4 diff --git a/scripts/Configure b/scripts/Configure deleted file mode 100755 index 83b7ee76..00000000 --- a/scripts/Configure +++ /dev/null @@ -1,570 +0,0 @@ -#! /bin/bash -# -# This script was hacked from Linux-2.2.17 -# -# -# This script is used to configure the Linux kernel. -# -# It was inspired by the challenge in the original Configure script -# to ``do something better'', combined with the actual need to ``do -# something better'' because the old configure script wasn't flexible -# enough. -# -# Raymond Chen was the original author of Configure. -# Michael Elizabeth Chastain (mec@shout.net) is the current maintainer. -# -# 050793 - use IFS='@' to get around a bug in a pre-version of bash-1.13 -# with an empty IFS. -# -# 030995 (storner@osiris.ping.dk) - added support for tri-state answers, -# for selecting modules to compile. -# -# 180995 Bernhard Kaindl (bkaindl@ping.at) - added dummy functions for -# use with a config.in modified for make menuconfig. -# -# 301195 (boldt@math.ucsb.edu) - added help text support -# -# 281295 Paul Gortmaker - make tri_state functions collapse to boolean -# if module support is not enabled. -# -# 010296 Aaron Ucko (ucko@vax1.rockhurst.edu) - fix int and hex to accept -# arbitrary ranges -# -# 150296 Dick Streefland (dicks@tasking.nl) - report new configuration -# items and ask for a value even when doing a "make oldconfig" -# -# 200396 Tom Dyas (tdyas@eden.rutgers.edu) - when the module option is -# chosen for an item, define the macro _MODULE -# -# 090397 Axel Boldt (boldt@math.ucsb.edu) - avoid ? and + in regular -# expressions for GNU expr since version 1.15 and up use \? and \+. -# -# 300397 Phil Blundell (pjb27@cam.ac.uk) - added support for min/max -# arguments to "int", allow dep_tristate to take a list of dependencies -# rather than just one. -# -# 090398 Axel Boldt (boldt@math.ucsb.edu) - allow for empty lines in help -# texts. -# -# 102598 Michael Chastain (mec@shout.net) - put temporary files in -# current directory, not in /tmp. -# -# 24 January 1999, Michael Elizabeth Chastain, -# - Improve the exit message (Jeff Ronne). - -. ${LINUXDIR}/.config - -# -# Make sure we're really running bash. -# -# I would really have preferred to write this script in a language with -# better string handling, but alas, bash is the only scripting language -# that I can be reasonable sure everybody has on their linux machine. -# -[ -z "$BASH" ] && { echo "Configure requires bash" 1>&2; exit 1; } - -# Disable filename globbing once and for all. -# Enable function cacheing. -set -f -h - -# -# Dummy functions for use with a config.in modified for menuconf -# -function mainmenu_option () { - : -} -function mainmenu_name () { - : -} -function endmenu () { - : -} - -# -# help prints the corresponding help text from Configure.help to stdout -# -# help variable -# -function help () { - if [ -f Documentation/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 - p - }" Documentation/Configure.help) - if [ -z "$text" ] - then - echo; echo " Sorry, no help available for this option yet.";echo - else - (echo; echo "$text") | ${PAGER:-more} - fi - else - echo; - echo " Can't access the file Documentation/Configure.help which" - echo " should contain the help texts." - echo - fi -} - - -# -# readln reads a line into $ans. -# -# readln prompt default oldval -# -function readln () { - if [ "$DEFAULT" = "-d" -a -n "$3" ]; then - echo "$1" - ans=$2 - else - echo -n "$1" - [ -z "$3" ] && echo -n "(NEW) " - IFS='@' read ans || exit 1 - [ -z "$ans" ] && ans=$2 - fi -} - -# -# comment does some pretty-printing -# -# comment 'xxx' -# -function comment () { - echo "*"; echo "* $1" ; echo "*" - (echo "" ; echo "#"; echo "# $1" ; echo "#") >>$CONFIG - (echo "" ; echo "/*"; echo " * $1" ; echo " */") >>$CONFIG_H -} - -# -# define_bool sets the value of a boolean argument -# -# define_bool define value -# -function define_bool () { - define_tristate $1 $2 -} - -function define_tristate () { - case "$2" in - "y") - echo "$1=y" >>$CONFIG - echo "#define $1 1" >>$CONFIG_H - ;; - - "m") - echo "$1=m" >>$CONFIG - echo "#undef $1" >>$CONFIG_H - echo "#define $1_MODULE 1" >>$CONFIG_H - ;; - - "n") - echo "# $1 is not set" >>$CONFIG - echo "#undef $1" >>$CONFIG_H - ;; - esac - eval "$1=$2" -} - -# -# bool processes a boolean argument -# -# bool question define -# -function bool () { - old=$(eval echo "\${$2}") - def=${old:-'n'} - case "$def" in - "y" | "m") defprompt="Y/n/?" - def="y" - ;; - "n") defprompt="N/y/?" - ;; - esac - while :; do - readln "$1 ($2) [$defprompt] " "$def" "$old" - case "$ans" in - [yY] | [yY]es ) define_bool "$2" "y" - break;; - [nN] | [nN]o ) define_bool "$2" "n" - break;; - * ) help "$2" - ;; - esac - done -} - -# -# tristate processes a tristate argument -# -# tristate question define -# -function tristate () { - if [ "$CONFIG_MODULES" != "y" ]; then - bool "$1" "$2" - else - old=$(eval echo "\${$2}") - def=${old:-'n'} - case "$def" in - "y") defprompt="Y/m/n/?" - ;; - "m") defprompt="M/n/y/?" - ;; - "n") defprompt="N/y/m/?" - ;; - esac - while :; do - readln "$1 ($2) [$defprompt] " "$def" "$old" - case "$ans" in - [yY] | [yY]es ) define_tristate "$2" "y" - break ;; - [nN] | [nN]o ) define_tristate "$2" "n" - break ;; - [mM] ) define_tristate "$2" "m" - break ;; - * ) help "$2" - ;; - esac - done - fi -} - -# -# dep_tristate processes a tristate argument that depends upon -# another option or options. If any of the options we depend upon is a -# module, then the only allowable options are M or N. If all are 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. -# -# dep_tristate question define default ... -# -function dep_tristate () { - old=$(eval echo "\${$2}") - def=${old:-'n'} - ques=$1 - var=$2 - need_module=0 - shift 2 - while [ $# -gt 0 ]; do - case "$1" in - n) - define_tristate "$var" "n" - return - ;; - m) - need_module=1 - ;; - esac - shift - done - - if [ $need_module = 1 ]; then - if [ "$CONFIG_MODULES" = "y" ]; then - case "$def" in - "y" | "m") defprompt="M/n/?" - def="m" - ;; - "n") defprompt="N/m/?" - ;; - esac - while :; do - readln "$ques ($var) [$defprompt] " "$def" "$old" - case "$ans" in - [nN] | [nN]o ) define_tristate "$var" "n" - break ;; - [mM] ) define_tristate "$var" "m" - break ;; - [yY] | [yY]es ) echo - echo " This answer is not allowed, because it is not consistent with" - echo " your other choices." - echo " This driver depends on another one which you chose to compile" - echo " as a module. This means that you can either compile this one" - echo " as a module as well (with M) or leave it out altogether (N)." - echo - ;; - * ) help "$var" - ;; - esac - done - fi - else - tristate "$ques" "$var" - fi -} - -function dep_bool () { - ques=$1 - var=$2 - shift 2 - while [ $# -gt 0 ]; do - case "$1" in - m | n) - define_bool "$var" "n" - return - ;; - esac - shift - done - - bool "$ques" "$var" -} - -function dep_mbool () { - ques=$1 - var=$2 - shift 2 - while [ $# -gt 0 ]; do - case "$1" in - n) - define_bool "$var" "n" - return - ;; - m) - eval "$var=y" - ;; - esac - shift - done - - bool "$ques" "$var" -} - -# -# define_int sets the value of a integer argument -# -# define_int define value -# -function define_int () { - echo "$1=$2" >>$CONFIG - echo "#define $1 ($2)" >>$CONFIG_H - eval "$1=$2" -} - -# -# int processes an integer argument with optional limits -# -# int question define default [min max] -# -function int () { - old=$(eval echo "\${$2}") - def=${old:-$3} - if [ $# -gt 3 ]; then - min=$4 - else - min=-10000000 # !! - fi - if [ $# -gt 4 ]; then - max=$5 - else - max=10000000 # !! - fi - while :; do - readln "$1 ($2) [$def] " "$def" "$old" - if expr \( \( $ans + 0 \) \>= $min \) \& \( $ans \<= $max \) >/dev/null 2>&1 ; then - define_int "$2" "$ans" - break - else - help "$2" - fi - done -} - -# -# define_hex sets the value of a hexadecimal argument -# -# define_hex define value -# -function define_hex () { - echo "$1=$2" >>$CONFIG - echo "#define $1 0x${2#*[x,X]}" >>$CONFIG_H - eval "$1=$2" -} - -# -# hex processes an hexadecimal argument -# -# hex question define default -# -function hex () { - old=$(eval echo "\${$2}") - def=${old:-$3} - def=${def#*[x,X]} - while :; do - readln "$1 ($2) [$def] " "$def" "$old" - ans=${ans#*[x,X]} - if expr "$ans" : '[0-9a-fA-F][0-9a-fA-F]*$' > /dev/null; then - define_hex "$2" "$ans" - break - else - help "$2" - fi - done -} - -# -# define_string sets the value of a string argument -# -# define_string define value -# -function define_string () { - echo "$1=\"$2\"" >>$CONFIG - echo "#define $1 \"$2\"" >>$CONFIG_H - eval "$1=\"$2\"" -} - -# -# string processes a string argument -# -# string question define default -# -function string () { - old=$(eval echo "\${$2}") - def=${old:-$3} - readln "$1 ($2) [$def] " "$def" "$old" - define_string "$2" "$ans" -} -# -# choice processes a choice list (1-out-of-n) -# -# choice question choice-list default -# -# The choice list has a syntax of: -# NAME WHITESPACE VALUE { WHITESPACE NAME WHITESPACE VALUE } -# The user may enter any unique prefix of one of the NAMEs and -# choice will define VALUE as if it were a boolean option. -# VALUE must be in all uppercase. Normally, VALUE is of the -# form CONFIG_. Thus, if the user selects , -# the CPP symbol CONFIG_ will be defined and the -# shell variable CONFIG_ will be set to "y". -# -function choice () { - question="$1" - choices="$2" - old= - def=$3 - - # determine default answer: - names="" - set -- $choices - firstvar=$2 - while [ -n "$2" ]; do - if [ -n "$names" ]; then - names="$names, $1" - else - names="$1" - fi - if [ "$(eval echo \"\${$2}\")" = "y" ]; then - old=$1 - def=$1 - fi - shift; shift - done - - val="" - while [ -z "$val" ]; do - ambg=n - readln "$question ($names) [$def] " "$def" "$old" - ans=$(echo $ans | tr a-z A-Z) - set -- $choices - while [ -n "$1" ]; do - name=$(echo $1 | tr a-z A-Z) - case "$name" in - "$ans"* ) - if [ "$name" = "$ans" ]; then - val="$2" - break # stop on exact match - fi - if [ -n "$val" ]; then - echo;echo \ - " Sorry, \"$ans\" is ambiguous; please enter a longer string." - echo - val="" - ambg=y - break - else - val="$2" - fi;; - esac - shift; shift - done - if [ "$val" = "" -a "$ambg" = "n" ]; then - help "$firstvar" - fi - done - set -- $choices - while [ -n "$2" ]; do - if [ "$2" = "$val" ]; then - echo " defined $val" - define_bool "$2" "y" - else - define_bool "$2" "n" - fi - shift; shift - done -} - -CONFIG=.tmpconfig -CONFIG_H=.tmpconfig.h -trap "rm -f $CONFIG $CONFIG_H ; exit 1" 1 2 - -# -# Make sure we start out with a clean slate. -# -echo "#" > $CONFIG -echo "# Automatically generated make config: don't edit" >> $CONFIG -echo "#" >> $CONFIG - -echo "/*" > $CONFIG_H -echo " * Automatically generated C config: don't edit" >> $CONFIG_H -echo " */" >> $CONFIG_H -echo "#define AUTOCONF_INCLUDED" >> $CONFIG_H - -DEFAULT="" -if [ "$1" = "-d" ] ; then - DEFAULT="-d" - shift -fi - -CONFIG_IN=./scripts/config.in -if [ "$1" != "" ] ; then - CONFIG_IN=$1 -fi - -#DEFAULTS=arch/$ARCH/defconfig -DEFAULTS=scripts/config.dist -if [ -f .config ]; then - DEFAULTS=.config -fi - -if [ -f $DEFAULTS ]; then - echo "#" - echo "# Using defaults found in" $DEFAULTS - echo "#" - . $DEFAULTS - sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$ - . .config-is-not.$$ - rm .config-is-not.$$ -else - echo "#" - echo "# No defaults found" - echo "#" -fi - -. $CONFIG_IN - -rm -f .config.old -if [ -f .config ]; then - mv .config .config.old -fi -mv .tmpconfig .config -#mv .tmpconfig.h include/linux/autoconf.h -mv .tmpconfig.h include/config.h - -exit 0 diff --git a/scripts/Menuconfig b/scripts/Menuconfig deleted file mode 100755 index f387b6ef..00000000 --- a/scripts/Menuconfig +++ /dev/null @@ -1,1472 +0,0 @@ -#! /bin/sh -# -# This script is used to configure the linux kernel. -# -# It was inspired by a desire to not have to hit 9 million times -# or startup the X server just to change a single kernel parameter. -# -# This script attempts to parse the configuration files, which are -# scattered throughout the kernel source tree, and creates a temporary -# set of mini scripts which are in turn used to create nested menus and -# radiolists. -# -# It uses a very modified/mutilated version of the "dialog" utility -# written by Savio Lam (lam836@cs.cuhk.hk). Savio is not responsible -# for this script or the version of dialog used by this script. -# Please do not contact him with questions. The official version of -# dialog is available at sunsite.unc.edu or a sunsite mirror. -# -# Portions of this script were borrowed from the original Configure -# script. -# -# 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 -# 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, -# - Improve the exit message (Jeff Ronne). -# -# 06 July 1999, Andrzej M. Krzysztofowicz, -# - Support for multiple conditions in dep_tristate(). -# - Implemented new functions: define_tristate(), define_int(), define_hex(), -# define_string(), dep_bool(). -# - -. ${LINUXDIR}/.config - -# -# 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 kernel 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 Documentation/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/^ // - /]*\\)>/s//\\1/g - p - }" Documentation/Configure.help) - - if [ -z "$text" ] - then - echo "There is no help available for this kernel option." - return 1 - else - echo "$text" - fi - else - echo "There is no help available for this kernel 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 >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 >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 < /' MCerror - cat <. You may also -send a problem report to . - -Please indicate the kernel 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 "*|*"alt_config"*) - show_readme ;; - *) - eval help $selection ;; - esac - ;; - 255|1) - break - ;; - 139) - stty sane - clear - cat < or post a message to - for additional assistance. - -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 <help.out - -For various reasons, one may wish to keep several different kernel -configurations available on a single machine. - -If you have saved a previous configuration in a file other than the -kernel'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 <help.out - -For various reasons, one may wish to keep different kernel -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 kernel 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 - echo "#define $2 ($x)" >>$CONFIG_H - } - - function hex () { - set_x_info "$2" "$3" - echo "$2=$x" >>$CONFIG - echo "#define $2 0x${x##*[x,X]}" >>$CONFIG_H - } - - function string () { - set_x_info "$2" "$3" - echo "$2=\"$x\"" >>$CONFIG - echo "#define $2 \"$x\"" >>$CONFIG_H - } - - function define_hex () { - eval $1="$2" - echo "$1=$2" >>$CONFIG - echo "#define $1 0x${2##*[x,X]}" >>$CONFIG_H - } - - function define_int () { - eval $1="$2" - echo "$1=$2" >>$CONFIG - echo "#define $1 ($2)" >>$CONFIG_H - } - - function define_string () { - eval $1="$2" - echo "$1=\"$2\"" >>$CONFIG - echo "#define $1 \"$2\"" >>$CONFIG_H - } - - function define_bool () { - define_tristate "$1" "$2" - } - - function define_tristate () { - eval $1="$2" - - case "$2" in - y) - echo "$1=y" >>$CONFIG - echo "#define $1 1" >>$CONFIG_H - ;; - - m) - if [ "$CONFIG_MODULES" = "y" ] - then - echo "$1=m" >>$CONFIG - echo "#undef $1" >>$CONFIG_H - echo "#define $1_MODULE 1" >>$CONFIG_H - else - echo "$1=y" >>$CONFIG - echo "#define $1 1" >>$CONFIG_H - fi - ;; - - n) - echo "# $1 is not set" >>$CONFIG - echo "#undef $1" >>$CONFIG_H - ;; - 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 - - echo >>$CONFIG_H - echo "/*" >>$CONFIG_H - echo " * $1" >>$CONFIG_H - echo " */" >>$CONFIG_H - fi - } - - echo -n "." - - DEF_CONFIG="${1:-.config}" - #DEF_CONFIG_H="include/linux/autoconf.h" - DEF_CONFIG_H="include/config.h" - - CONFIG=.tmpconfig - CONFIG_H=.tmpconfig.h - - echo "#" >$CONFIG - echo "# Automatically generated by make menuconfig: don't edit" >>$CONFIG - echo "#" >>$CONFIG - - echo "/*" >$CONFIG_H - echo " * Automatically generated by make menuconfig: don't edit" >>$CONFIG_H - echo " */" >>$CONFIG_H - echo "#define AUTOCONF_INCLUDED" >> $CONFIG_H - - echo -n "." - if . $CONFIG_IN >>.menuconfig.log 2>&1 - then - if [ "$DEF_CONFIG" = ".config" ] - then - mv $CONFIG_H $DEF_CONFIG_H - fi - - 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 .tmpconfig.h -} - -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. \ - selects submenus --->. \ -Highlighted letters are hotkeys. \ -Pressing includes, excludes, modularizes features. \ -Press to exit, for Help. \ -Legend: [*] built-in [ ] excluded 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 . -Press for additional information about this option." - -inputbox_instructions_int="\ -Please enter a decimal value. \ -Fractions will not be accepted. \ -Use the key to move from the input field to the buttons below it." - -inputbox_instructions_hex="\ -Please enter a hexadecimal value. \ -Use the key to move from the input field to the buttons below it." - -inputbox_instructions_string="\ -Please enter a string value. \ -Use the key to move from the input field to the buttons below it." - -DIALOG="./scripts/lxdialog/lxdialog" - -kernel_version="${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}" - -backtitle="Linux Kernel v$kernel_version Configuration" - -trap "cleanup ; exit 1" 1 2 15 - - -# -# Locate default files. -# -CONFIG_IN=./config.in -if [ "$1" != "" ] ; then - CONFIG_IN=$1 -fi - -DEFAULTS=arch/$ARCH/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 "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 kernel configuration?" 5 60 -then - save_configuration - echo - echo - echo "*** End of Linux kernel configuration." - echo "*** Check the top-level Makefile for additional configuration." - if [ ! -f .hdepend -o "$CONFIG_MODVERSIONS" = "y" ] ; then - echo "*** Next, you must run 'make dep'." - else - echo "*** Next, you may run 'make bzImage', 'make bzdisk', or 'make install'." - fi - echo -else - echo - echo - echo Your kernel configuration changes were NOT saved. - echo -fi - -# Remove log if empty. -if [ ! -s .menuconfig.log ] ; then - rm -f .menuconfig.log -fi - -exit 0 diff --git a/scripts/config.dist b/scripts/config.dist deleted file mode 100644 index 34e0d987..00000000 --- a/scripts/config.dist +++ /dev/null @@ -1,85 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_COMEDI=m - -# -# Comedi Features -# -# CONFIG_COMEDI_RT is not set -CONFIG_COMEDI_DEBUG=y -CONFIG_COMEDI_KLIB=m - -# -# Hardware device drivers -# -CONFIG_COMEDI_DT=y -CONFIG_COMEDI_DT2801=m -CONFIG_COMEDI_DT2811=m -CONFIG_COMEDI_DT2814=m -CONFIG_COMEDI_DT2815=m -CONFIG_COMEDI_DT2817=m -CONFIG_COMEDI_DT282X=m -CONFIG_COMEDI_DT3000=m -CONFIG_COMEDI_NI=y -CONFIG_COMEDI_NI_ATMIO=m -CONFIG_COMEDI_NI_MIO_CS=m -CONFIG_COMEDI_NI_DAQ_DIO24=m -CONFIG_COMEDI_NI_PCIMIO=m -CONFIG_COMEDI_NI_PCIDIO=m -CONFIG_COMEDI_NI_6527=m -CONFIG_COMEDI_NI_660X=m -CONFIG_COMEDI_NI_670X=m -CONFIG_COMEDI_MITE=y -CONFIG_COMEDI_NI_ATMIO16D=m -CONFIG_COMEDI_NI_AT_A2150=m -CONFIG_COMEDI_NI_LABPC=m -CONFIG_COMEDI_NI_AT_AO=m -CONFIG_COMEDI_DAS08=m -CONFIG_COMEDI_DAS16=m -CONFIG_COMEDI_DAS16M1=m -CONFIG_COMEDI_DAS6402=m -CONFIG_COMEDI_DAS800=m -CONFIG_COMEDI_DAS1800=m -CONFIG_COMEDI_CB_PCIDAS=m -CONFIG_COMEDI_CB_PCIDAS64=m -CONFIG_COMEDI_CB_PCIDDA=m -CONFIG_COMEDI_CB_PCIMDDA=m -CONFIG_COMEDI_CB_PCIMDAS=m -CONFIG_COMEDI_CB_DAS16_CS=m -CONFIG_COMEDI_8255=m -CONFIG_COMEDI_MULTIQ3=m -CONFIG_COMEDI_PARPORT=m -CONFIG_COMEDI_ADL_PCI9111=m -CONFIG_COMEDI_ADL_PCI9118=m -CONFIG_COMEDI_ADV_PCI1710=m -CONFIG_COMEDI_ADV_PCI_DIO=m -CONFIG_COMEDI_PCL711=m -CONFIG_COMEDI_PCL724=m -CONFIG_COMEDI_PCL725=m -CONFIG_COMEDI_PCL726=m -CONFIG_COMEDI_PCL812=m -CONFIG_COMEDI_PCL816=m -CONFIG_COMEDI_PCL818=m -CONFIG_COMEDI_RTD520=m -CONFIG_COMEDI_RTI800=m -CONFIG_COMEDI_RTI802=m -CONFIG_COMEDI_II_PCI20KC=m -CONFIG_COMEDI_CONTEC_PCI_DIO=m -CONFIG_COMEDI_QUATECH_DAQP=m -CONFIG_COMEDI_DAQBOARD2000=m -CONFIG_COMEDI_FL512=m -CONFIG_COMEDI_POC=m -CONFIG_COMEDI_PCM3730=m -CONFIG_COMEDI_PCMAD=m -CONFIG_COMEDI_AMPLC_PCI230=m -CONFIG_COMEDI_AMPLC_PC236=m -CONFIG_COMEDI_AMPLC_PC263=m -CONFIG_COMEDI_SSV_DNP=m -CONFIG_COMEDI_ICP_MULTI=m -CONFIG_COMEDI_KE_COUNTER=m -CONFIG_COMEDI_ME_DAQ=m -CONFIG_COMEDI_GSC_HPDI=m -CONFIG_COMEDI_TEST=m -CONFIG_COMEDI_SKEL=m -CONFIG_COMEDI_FC=m diff --git a/scripts/config.dist-2.0.39 b/scripts/config.dist-2.0.39 deleted file mode 100644 index d8c0feb6..00000000 --- a/scripts/config.dist-2.0.39 +++ /dev/null @@ -1,78 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_COMEDI=m - -# -# Comedi Features -# -# CONFIG_COMEDI_RT is not set -CONFIG_COMEDI_DEBUG=y -CONFIG_COMEDI_KLIB=m - -# -# Hardware device drivers -# -CONFIG_COMEDI_DT=y -CONFIG_COMEDI_DT2801=m -CONFIG_COMEDI_DT2811=m -CONFIG_COMEDI_DT2814=m -CONFIG_COMEDI_DT2815=m -CONFIG_COMEDI_DT2817=m -CONFIG_COMEDI_DT282X=m -# CONFIG_COMEDI_DT3000 is not set -CONFIG_COMEDI_NI=y -# CONFIG_COMEDI_NI_ATMIO is not set -# CONFIG_COMEDI_NI_PCIMIO is not set -# CONFIG_COMEDI_NI_PCIDIO is not set -# CONFIG_COMEDI_NI_670X is not set -CONFIG_COMEDI_NI_ATMIO16D=m -CONFIG_COMEDI_NI_AT_A2150=m -# CONFIG_COMEDI_NI_LABPC is not set -CONFIG_COMEDI_NI_AT_AO=m -# CONFIG_COMEDI_DAS08 is not set -# CONFIG_COMEDI_DAS16 is not set -CONFIG_COMEDI_DAS16M1=m -CONFIG_COMEDI_DAS6402=m -CONFIG_COMEDI_DAS800=m -# CONFIG_COMEDI_DAS1800 is not set -# CONFIG_COMEDI_CB_PCIDAS is not set -# CONFIG_COMEDI_CB_PCIDAS64 is not set -# CONFIG_COMEDI_CB_PCIDDA is not set -# CONFIG_COMEDI_CB_PCIMDDA is not set -# CONFIG_COMEDI_CB_PCIMDAS is not set -# CONFIG_COMEDI_CB_DAS16_CS is not set -CONFIG_COMEDI_8255=m -CONFIG_COMEDI_MULTIQ3=m -CONFIG_COMEDI_PARPORT=m -# CONFIG_COMEDI_ADL_PCI9111 is not set -# CONFIG_COMEDI_ADL_PCI9118 is not set -# CONFIG_COMEDI_ADV_PCI1710 is not set -CONFIG_COMEDI_PCL711=m -CONFIG_COMEDI_PCL724=m -CONFIG_COMEDI_PCL725=m -CONFIG_COMEDI_PCL726=m -CONFIG_COMEDI_PCL812=m -CONFIG_COMEDI_PCL816=m -CONFIG_COMEDI_PCL818=m -# CONFIG_COMEDI_RTD520 is not set -CONFIG_COMEDI_RTI800=m -CONFIG_COMEDI_RTI802=m -# CONFIG_COMEDI_II_PCI20KC is not set -# CONFIG_COMEDI_CONTEC_PCI_DIO is not set -# CONFIG_COMEDI_DAQBOARD2000 is not set -# CONFIG_COMEDI_DAQBOARD2000_FPGA is not set -CONFIG_COMEDI_FL512=m -CONFIG_COMEDI_POC=m -CONFIG_COMEDI_PCM3730=m -CONFIG_COMEDI_PCMAD=m -# CONFIG_COMEDI_AMPLC_PCI230 is not set -# CONFIG_COMEDI_AMPLC_PC236 is not set -# CONFIG_COMEDI_AMPLC_PC263 is not set -CONFIG_COMEDI_SSV_DNP=m -# CONFIG_COMEDI_ICP_MULTI is not set -# CONFIG_COMEDI_KE_COUNTER is not set -# CONFIG_COMEDI_ME_DAQ is not set -CONFIG_COMEDI_TEST=m -# CONFIG_COMEDI_SKEL is not set -CONFIG_COMEDI_FC=m diff --git a/scripts/config.in b/scripts/config.in deleted file mode 100644 index 11b511cb..00000000 --- a/scripts/config.in +++ /dev/null @@ -1,5 +0,0 @@ - -define_bool CONFIG_COMEDI m - -source comedi/Config.in - diff --git a/scripts/dep.linux b/scripts/dep.linux deleted file mode 100755 index df444b95..00000000 --- a/scripts/dep.linux +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh - -if [ -f /lib/modules/$(uname -r)/build/Makefile ];then - default="/lib/modules/$(uname -r)/build" -else - default="/usr/src/linux" -fi -default=${LINUXDIR:=$default} -if [ "${interactive}" = "y" ];then - echo -n "Enter location of Linux source tree [$default]: " - read LINUXDIR -fi -: ${LINUXDIR:=$default} - -if [ ! -f "$LINUXDIR/.config" ];then - echo - echo Kernel source tree at $LINUXDIR is not configured - echo Fix before continuing - echo - exit 1 -fi - -UTS_VERSION=$(grep UTS_RELEASE ${LINUXDIR}/include/linux/version.h| \ - sed 's/[^"]*"\(.*\)\{1\}"/\1/') -LINUX_VERSION_CODE=$(grep LINUX_VERSION_CODE ${LINUXDIR}/include/linux/version.h| \ - sed 's/.*LINUX_VERSION_CODE\([0-9xXa-fA-F]*\)/\1/') - -echo using LINUXDIR=$LINUXDIR - -export LINUXDIR - -if (( $LINUX_VERSION_CODE < 0x20500 )); then - if [ ! -f "$LINUXDIR/.hdepend" ];then - echo - echo You need to run \'make dep\' on the kernel source before - echo continuing. - echo - exit 1 - fi -fi - -. $LINUXDIR/.config - -# -# check for a bad situation -# -if [ "$CONFIG_MODULES" = "n" ] -then - cat <= 0x20500 )); then - FLAGDIR=${topdir}/scripts/linux_flags-2.6 - make -C ${LINUXDIR} V=1 SUBDIRS=${FLAGDIR} LINUXDIR=${LINUXDIR} MODVERDIR=${FLAGDIR} modules -else - FLAGDIR=${topdir}/scripts/linux_flags - make -C ${FLAGDIR} LINUXDIR=${LINUXDIR} -fi -if [ $? != 0 ]; then - echo "make in linux source directory failed, do you have write permission?" - exit $? -fi -mv ${FLAGDIR}/flags .buildvars - - -if (( $LINUX_VERSION_CODE >= 0x00020300 ));then - echo "FLAT_MODULES := no" >>.buildvars -else - echo "FLAT_MODULES := yes" >>.buildvars -fi - - diff --git a/scripts/dep.pcmcia b/scripts/dep.pcmcia deleted file mode 100644 index a9dca18f..00000000 --- a/scripts/dep.pcmcia +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -default="" -for i in $PCMCIADIR `echo $LINUXDIR/pcmcia*`; do - if [ -r $i ]; then - default=$i - fi -done - -echo -n "Enter location of PCMCIA source tree [$default]: " -read PCMCIADIR -: ${PCMCIADIR:=$default} - -if [ -r $PCMCIADIR ]; then - echo using PCMCIADIR=$PCMCIADIR -else - echo not configuring PCMCIA support -fi diff --git a/scripts/dep.rtai b/scripts/dep.rtai deleted file mode 100755 index 46ff84d7..00000000 --- a/scripts/dep.rtai +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -if [ "$CONFIG_RTHAL" != "" ];then - echo You appear to be running an RTAI-patched kernel - - default=${RTAIDIR:=/usr/src/rtai} - if [ "${interactive}" = "y" ] - then - echo -n "Enter location of RTAI source tree [${default}]: " - read RTAIDIR - fi - : ${RTAIDIR:=${default}} - if [ -d ${RTAIDIR}/include ];then - echo RTAIDIR=$RTAIDIR >>.buildvars - echo CFLAGS += -I $RTAIDIR/include >>.buildvars - else - if [ -d ${RTAIDIR}/rtai-core/include ];then - echo RTAIDIR=$RTAIDIR >>.buildvars - echo CFLAGS += -I $RTAIDIR >>.buildvars - echo CFLAGS += -I $RTAIDIR/rtai-core/include >>.buildvars - fi - fi - export RTAIDIR -fi - diff --git a/scripts/dep.rtlinux b/scripts/dep.rtlinux deleted file mode 100755 index 9db852bc..00000000 --- a/scripts/dep.rtlinux +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -if [ -f "$LINUXDIR/include/asm/rt_irq.h" ]; then - CONFIG_RTL_V1="y" -fi -if [ "$CONFIG_RTLINUX" = "y" ]; then - CONFIG_RTL=y -fi -if [ "$CONFIG_RTL" != "" -o "$CONFIG_RTL_V1" = "y" ]; then - echo You appear to be running an RTL-patched kernel - - default=${RTLDIR:=/usr/src/rtl} -STOPASKING="" -while [ -z "$STOPASKING" ]; do - if [ "${interactive}" = "y" ];then - echo -n "Enter location of RTL source tree [$default]: " - read RTLDIR - fi - : ${RTLDIR:=$default} - if [ -d ${RTLDIR}/include ];then - echo RTLDIR=$RTLDIR >>.buildvars - echo CFLAGS += -I $RTLDIR/include -I $RTLDIR/include/compat -I $RTLDIR/include/posix -D__RT__ >>.buildvars - STOPASKING="1" - else - echo "$RTLDIR does not contain an include/ subdirectory. Try again!" - fi -done - export RTLDIR -fi diff --git a/scripts/generate_makefile b/scripts/generate_makefile deleted file mode 100755 index 531f7a66..00000000 --- a/scripts/generate_makefile +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/perl -w - - -open(IN, "$ARGV[0]"); - -print "# This Makefile is autogenerated. Edit Makefile.in instead.\n"; -while($_=){ - if(m/select\(([\w_]+) ([\w_. ]+)\)/){ - print "obj-\$($1) += $2\n"; - }elsif(m/expsyms\(([\w_. ]+)\)/){ - print "export-objs += $1\n"; - }elsif(m/objlink\(([\w_.]+) ([\w_. ]+)\)/){ - print "$1-objs += $2\n"; - push @later,"$1"; - }elsif(m/link_subdirs\(([\w_.]+)\)/){ - print "subdir-m += $1\n"; - }elsif(m/ifsel\(([\w_]+)\)/){ - print "ifneq (\$($1),)\n"; - }elsif(m/endif/){ - print "endif\n"; - }elsif(m/^$/){ - }elsif(m/^#/){ - }else{ - print "ack! $_"; - } -} - -#print "\n"; -#print "M_OBJS := \$(sort \$(filter-out \$(export-objs), \$(obj-m)))\n"; -#print "MX_OBJS := \$(sort \$(filter \$(export-objs), \$(obj-m)))\n"; -#print "SUB_DIRS := \$(subdirs-m)\n"; -#print "ALL_SUB_DIRS := \$(SUB_DIRS)\n"; -#print "MOD_SUB_DIRS := \$(SUB_DIRS)\n"; -print "\n"; -print "include \$(TOPDIR)/Rules.make\n"; -print "\n"; - -@later = sort @later; - -$last=""; -foreach $s (@later){ - if($s ne $last){ - print "$s: \$($s-objs)\n"; - print "\t\$(LD) -r -o \$@ \$($s-objs)\n"; - } - $last=$s; -} - diff --git a/scripts/linux_flags-2.6/Makefile b/scripts/linux_flags-2.6/Makefile deleted file mode 100644 index 1b1957ea..00000000 --- a/scripts/linux_flags-2.6/Makefile +++ /dev/null @@ -1,21 +0,0 @@ - -obj-m += fake.o - -$(obj)/fake.c: flags - touch $(obj)/fake.c - -.PHONY: flags -flags: - echo LINUXDIR=$(LINUXDIR) >$(obj)/flags - echo ARCH=$(ARCH) >>$(obj)/flags - echo AFLAGS="$(AFLAGS)" | sed 's_Iinclude_I"$(LINUXDIR)/include"_g'>>$(obj)/flags - echo LDFLAGS="$(LDFLAGS)" >>$(obj)/flags - echo ARFLAGS="$(ARFLAGS)" >>$(obj)/flags - echo CROSS_COMPILE="$(CROSS_COMPILE)" >>$(obj)/flags - echo KERNELRELEASE="$(KERNELRELEASE)" >>$(obj)/flags - echo CFLAGS="$(CFLAGS)" | sed 's_Iinclude_I"$(LINUXDIR)/include"_g'>>$(obj)/flags - echo CC="$(CC)" >>$(obj)/flags - echo LD="$(LD)" >>$(obj)/flags - echo AS="$(AS)" >>$(obj)/flags - - diff --git a/scripts/linux_flags/Makefile b/scripts/linux_flags/Makefile deleted file mode 100644 index 98c65ff4..00000000 --- a/scripts/linux_flags/Makefile +++ /dev/null @@ -1,26 +0,0 @@ - -#LINUXDIR=/home/ds/linux/linux-2.4.16-rthal5 - -all: - $(MAKE) -C $(LINUXDIR) SUBDIRS=$(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) modules - -modules: - echo LINUXDIR=$(LINUXDIR) >flags - echo ARCH=$(ARCH) >>flags - echo AFLAGS="$(AFLAGS)" >>flags - echo LDFLAGS="$(LDFLAGS)" >>flags - echo ARFLAGS="$(ARFLAGS)" >>flags - echo CROSS_COMPILE="$(CROSS_COMPILE)" >>flags - echo KERNELRELEASE="$(KERNELRELEASE)" >>flags -# This is evil Makefile hackery. Please look the other way. -ifneq (,$(findstring __KERNEL__,$(CC))) - echo CFLAGS="$(wordlist 2,100,$(CC)) $(CFLAGS)" >>flags - echo CC=$(word 1,$(CC)) >>flags -else - echo CFLAGS="$(CFLAGS)" >>flags - echo CC="$(CC)" >>flags -endif - echo LD="$(LD)" >>flags - echo AS="$(AS)" >>flags - - diff --git a/scripts/lxdialog/BIG.FAT.WARNING b/scripts/lxdialog/BIG.FAT.WARNING deleted file mode 100644 index a8999d82..00000000 --- a/scripts/lxdialog/BIG.FAT.WARNING +++ /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/scripts/lxdialog/Makefile b/scripts/lxdialog/Makefile deleted file mode 100644 index befb1293..00000000 --- a/scripts/lxdialog/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -HOSTCC = gcc -HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer - -HOSTCFLAGS += -DLOCALE -LIBS = -lncurses - -ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) - HOSTCFLAGS += -I/usr/include/ncurses -DCURSES_LOC="" -else -ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h)) - HOSTCFLAGS += -I/usr/include/ncurses -DCURSES_LOC="" -else -ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h)) - HOSTCFLAGS += -DCURSES_LOC="" -else - HOSTCFLAGS += -DCURSES_LOC="" -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/scripts/lxdialog/checklist.c b/scripts/lxdialog/checklist.c deleted file mode 100644 index 4f78688e..00000000 --- a/scripts/lxdialog/checklist.c +++ /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/scripts/lxdialog/colors.h b/scripts/lxdialog/colors.h deleted file mode 100644 index d34dd37c..00000000 --- a/scripts/lxdialog/colors.h +++ /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/scripts/lxdialog/dialog.h b/scripts/lxdialog/dialog.h deleted file mode 100644 index 0e30d00d..00000000 --- a/scripts/lxdialog/dialog.h +++ /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 -#include -#include -#include -#include -#include - -#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/scripts/lxdialog/inputbox.c b/scripts/lxdialog/inputbox.c deleted file mode 100644 index fa7bebc6..00000000 --- a/scripts/lxdialog/inputbox.c +++ /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/scripts/lxdialog/lxdialog.c b/scripts/lxdialog/lxdialog.c deleted file mode 100644 index 6f4c1fd4..00000000 --- a/scripts/lxdialog/lxdialog.c +++ /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 -#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 ] [--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, 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/scripts/lxdialog/menubox.c b/scripts/lxdialog/menubox.c deleted file mode 100644 index a234e9f3..00000000 --- a/scripts/lxdialog/menubox.c +++ /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/scripts/lxdialog/msgbox.c b/scripts/lxdialog/msgbox.c deleted file mode 100644 index 93692e1f..00000000 --- a/scripts/lxdialog/msgbox.c +++ /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/scripts/lxdialog/textbox.c b/scripts/lxdialog/textbox.c deleted file mode 100644 index ecf55410..00000000 --- a/scripts/lxdialog/textbox.c +++ /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/scripts/lxdialog/util.c b/scripts/lxdialog/util.c deleted file mode 100644 index b3a7af9d..00000000 --- a/scripts/lxdialog/util.c +++ /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/scripts/lxdialog/yesno.c b/scripts/lxdialog/yesno.c deleted file mode 100644 index 11fcc25f..00000000 --- a/scripts/lxdialog/yesno.c +++ /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/scripts/mkdep.c b/scripts/mkdep.c deleted file mode 100644 index cf37e006..00000000 --- a/scripts/mkdep.c +++ /dev/null @@ -1,628 +0,0 @@ -/* - * Originally by Linus Torvalds. - * Smart CONFIG_* processing by Werner Almesberger, Michael Chastain. - * - * Usage: mkdep cflags -- file ... - * - * Read source files and output makefile dependency lines for them. - * I make simple dependency lines for #include <*.h> and #include "*.h". - * I also find instances of CONFIG_FOO and generate dependencies - * like include/config/foo.h. - * - * 1 August 1999, Michael Elizabeth Chastain, <mec@shout.net> - * - Keith Owens reported a bug in smart config processing. There used - * to be an optimization for "#define CONFIG_FOO ... #ifdef CONFIG_FOO", - * so that the file would not depend on CONFIG_FOO because the file defines - * this symbol itself. But this optimization is bogus! Consider this code: - * "#if 0 \n #define CONFIG_FOO \n #endif ... #ifdef CONFIG_FOO". Here - * the definition is inactivated, but I still used it. It turns out this - * actually happens a few times in the kernel source. The simple way to - * fix this problem is to remove this particular optimization. - * - * 2.3.99-pre1, Andrew Morton <andrewm@uow.edu.au> - * - Changed so that 'filename.o' depends upon 'filename.[cS]'. This is so that - * missing source files are noticed, rather than silently ignored. - * - * 2.4.2-pre3, Keith Owens <kaos@ocs.com.au> - * - Accept cflags followed by '--' followed by filenames. mkdep extracts -I - * options from cflags and looks in the specified directories as well as the - * defaults. Only -I is supported, no attempt is made to handle -idirafter, - * -isystem, -I- etc. - */ - -#include <ctype.h> -#include <fcntl.h> -#include <limits.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include <sys/fcntl.h> -#include <sys/mman.h> -#include <sys/stat.h> -#include <sys/types.h> - - - -char __depname[512] = "\n\t@touch "; -#define depname (__depname+9) -int hasdep; - -struct path_struct { - int len; - char *buffer; -}; -struct path_struct *path_array; -int paths; - - -/* Current input file */ -static const char *g_filename; - -/* - * This records all the configuration options seen. - * In perl this would be a hash, but here it's a long string - * of values separated by newlines. This is simple and - * extremely fast. - */ -char * str_config = NULL; -int size_config = 0; -int len_config = 0; - -static void -do_depname(void) -{ - if (!hasdep) { - hasdep = 1; - printf("%s:", depname); - if (g_filename) - printf(" %s", g_filename); - } -} - -/* - * Grow the configuration string to a desired length. - * Usually the first growth is plenty. - */ -void grow_config(int len) -{ - while (len_config + len > size_config) { - if (size_config == 0) - size_config = 2048; - str_config = realloc(str_config, size_config *= 2); - if (str_config == NULL) - { perror("malloc config"); exit(1); } - } -} - - - -/* - * Lookup a value in the configuration string. - */ -int is_defined_config(const char * name, int len) -{ - const char * pconfig; - const char * plast = str_config + len_config - len; - for ( pconfig = str_config + 1; pconfig < plast; pconfig++ ) { - if (pconfig[ -1] == '\n' - && pconfig[len] == '\n' - && !memcmp(pconfig, name, len)) - return 1; - } - return 0; -} - - - -/* - * Add a new value to the configuration string. - */ -void define_config(const char * name, int len) -{ - grow_config(len + 1); - - memcpy(str_config+len_config, name, len); - len_config += len; - str_config[len_config++] = '\n'; -} - - - -/* - * Clear the set of configuration strings. - */ -void clear_config(void) -{ - len_config = 0; - define_config("", 0); -} - - - -/* - * This records all the precious .h filenames. No need for a hash, - * it's a long string of values enclosed in tab and newline. - */ -char * str_precious = NULL; -int size_precious = 0; -int len_precious = 0; - - - -/* - * Grow the precious string to a desired length. - * Usually the first growth is plenty. - */ -void grow_precious(int len) -{ - while (len_precious + len > size_precious) { - if (size_precious == 0) - size_precious = 2048; - str_precious = realloc(str_precious, size_precious *= 2); - if (str_precious == NULL) - { perror("malloc"); exit(1); } - } -} - - - -/* - * Add a new value to the precious string. - */ -void define_precious(const char * filename) -{ - int len = strlen(filename); - grow_precious(len + 4); - *(str_precious+len_precious++) = '\t'; - memcpy(str_precious+len_precious, filename, len); - len_precious += len; - memcpy(str_precious+len_precious, " \\\n", 3); - len_precious += 3; -} - - - -/* - * Handle an #include line. - */ -void handle_include(int start, const char * name, int len) -{ - struct path_struct *path; - int i; - - if (len == 14 && !memcmp(name, "linux/config.h", len)) - return; - - if (len >= 7 && !memcmp(name, "config/", 7)) - define_config(name+7, len-7-2); - - for (i = start, path = path_array+start; i < paths; ++i, ++path) { - memcpy(path->buffer+path->len, name, len); - path->buffer[path->len+len] = '\0'; - if (access(path->buffer, F_OK) == 0) { - do_depname(); - printf(" \\\n %s", path->buffer); - return; - } - } - -} - - - -/* - * Add a path to the list of include paths. - */ -void add_path(const char * name) -{ - struct path_struct *path; - char resolved_path[PATH_MAX+1]; - const char *name2; - - if (strcmp(name, ".")) { - name2 = realpath(name, resolved_path); - if (!name2) { - fprintf(stderr, "realpath(%s) failed, %m\n", name); - exit(1); - } - } - else { - name2 = ""; - } - - path_array = realloc(path_array, (++paths)*sizeof(*path_array)); - if (!path_array) { - fprintf(stderr, "cannot expand path_arry\n"); - exit(1); - } - - path = path_array+paths-1; - path->len = strlen(name2); - path->buffer = malloc(path->len+1+256+1); - if (!path->buffer) { - fprintf(stderr, "cannot allocate path buffer\n"); - exit(1); - } - strcpy(path->buffer, name2); - if (path->len && *(path->buffer+path->len-1) != '/') { - *(path->buffer+path->len) = '/'; - *(path->buffer+(++(path->len))) = '\0'; - } -} - - - -/* - * Record the use of a CONFIG_* word. - */ -void use_config(const char * name, int len) -{ - char *pc; - int i; - - pc = path_array[paths-1].buffer + path_array[paths-1].len; - memcpy(pc, "config/", 7); - pc += 7; - - for (i = 0; i < len; i++) { - char c = name[i]; - if (isupper(c)) c = tolower(c); - if (c == '_') c = '/'; - pc[i] = c; - } - pc[len] = '\0'; - - if (is_defined_config(pc, len)) - return; - - define_config(pc, len); - - do_depname(); - printf(" \\\n $(wildcard %s.h)", path_array[paths-1].buffer); -} - - - -/* - * Macros for stunningly fast map-based character access. - * __buf is a register which holds the current word of the input. - * Thus, there is one memory access per sizeof(unsigned long) characters. - */ - -#if defined(__alpha__) || defined(__i386__) || defined(__ia64__) || defined(__x86_64__) || defined(__MIPSEL__) \ - || defined(__arm__) -#define LE_MACHINE -#endif - -#ifdef LE_MACHINE -#define next_byte(x) (x >>= 8) -#define current ((unsigned char) __buf) -#else -#define next_byte(x) (x <<= 8) -#define current (__buf >> 8*(sizeof(unsigned long)-1)) -#endif - -#define GETNEXT { \ - next_byte(__buf); \ - if ((unsigned long) next % sizeof(unsigned long) == 0) { \ - if (next >= end) \ - break; \ - __buf = * (unsigned long *) next; \ - } \ - next++; \ -} - -/* - * State machine macros. - */ -#define CASE(c,label) if (current == c) goto label -#define NOTCASE(c,label) if (current != c) goto label - -/* - * Yet another state machine speedup. - */ -#define MAX2(a,b) ((a)>(b)?(a):(b)) -#define MIN2(a,b) ((a)<(b)?(a):(b)) -#define MAX5(a,b,c,d,e) (MAX2(a,MAX2(b,MAX2(c,MAX2(d,e))))) -#define MIN5(a,b,c,d,e) (MIN2(a,MIN2(b,MIN2(c,MIN2(d,e))))) - - - -/* - * The state machine looks for (approximately) these Perl regular expressions: - * - * m|\/\*.*?\*\/| - * m|\/\/.*| - * m|'.*?'| - * m|".*?"| - * m|#\s*include\s*"(.*?)"| - * m|#\s*include\s*<(.*?>"| - * m|#\s*(?define|undef)\s*CONFIG_(\w*)| - * m|(?!\w)CONFIG_| - * - * About 98% of the CPU time is spent here, and most of that is in - * the 'start' paragraph. Because the current characters are - * in a register, the start loop usually eats 4 or 8 characters - * per memory read. The MAX5 and MIN5 tests dispose of most - * input characters with 1 or 2 comparisons. - */ -void state_machine(const char * map, const char * end) -{ - const char * next = map; - const char * map_dot; - unsigned long __buf = 0; - - for (;;) { -start: - GETNEXT -__start: - if (current > MAX5('/','\'','"','#','C')) goto start; - if (current < MIN5('/','\'','"','#','C')) goto start; - CASE('/', slash); - CASE('\'', squote); - CASE('"', dquote); - CASE('#', pound); - CASE('C', cee); - goto start; - -/* // */ -slash_slash: - GETNEXT - CASE('\n', start); - NOTCASE('\\', slash_slash); - GETNEXT - goto slash_slash; - -/* / */ -slash: - GETNEXT - CASE('/', slash_slash); - NOTCASE('*', __start); -slash_star_dot_star: - GETNEXT -__slash_star_dot_star: - NOTCASE('*', slash_star_dot_star); - GETNEXT - NOTCASE('/', __slash_star_dot_star); - goto start; - -/* '.*?' */ -squote: - GETNEXT - CASE('\'', start); - NOTCASE('\\', squote); - GETNEXT - goto squote; - -/* ".*?" */ -dquote: - GETNEXT - CASE('"', start); - NOTCASE('\\', dquote); - GETNEXT - goto dquote; - -/* #\s* */ -pound: - GETNEXT - CASE(' ', pound); - CASE('\t', pound); - CASE('i', pound_i); - CASE('d', pound_d); - CASE('u', pound_u); - goto __start; - -/* #\s*i */ -pound_i: - GETNEXT NOTCASE('n', __start); - GETNEXT NOTCASE('c', __start); - GETNEXT NOTCASE('l', __start); - GETNEXT NOTCASE('u', __start); - GETNEXT NOTCASE('d', __start); - GETNEXT NOTCASE('e', __start); - goto pound_include; - -/* #\s*include\s* */ -pound_include: - GETNEXT - CASE(' ', pound_include); - CASE('\t', pound_include); - map_dot = next; - CASE('"', pound_include_dquote); - CASE('<', pound_include_langle); - goto __start; - -/* #\s*include\s*"(.*)" */ -pound_include_dquote: - GETNEXT - CASE('\n', start); - NOTCASE('"', pound_include_dquote); - handle_include(0, map_dot, next - map_dot - 1); - goto start; - -/* #\s*include\s*<(.*)> */ -pound_include_langle: - GETNEXT - CASE('\n', start); - NOTCASE('>', pound_include_langle); - handle_include(1, map_dot, next - map_dot - 1); - goto start; - -/* #\s*d */ -pound_d: - GETNEXT NOTCASE('e', __start); - GETNEXT NOTCASE('f', __start); - GETNEXT NOTCASE('i', __start); - GETNEXT NOTCASE('n', __start); - GETNEXT NOTCASE('e', __start); - goto pound_define_undef; - -/* #\s*u */ -pound_u: - GETNEXT NOTCASE('n', __start); - GETNEXT NOTCASE('d', __start); - GETNEXT NOTCASE('e', __start); - GETNEXT NOTCASE('f', __start); - goto pound_define_undef; - -/* - * #\s*(define|undef)\s*CONFIG_(\w*) - * - * this does not define the word, because it could be inside another - * conditional (#if 0). But I do parse the word so that this instance - * does not count as a use. -- mec - */ -pound_define_undef: - GETNEXT - CASE(' ', pound_define_undef); - CASE('\t', pound_define_undef); - - NOTCASE('C', __start); - GETNEXT NOTCASE('O', __start); - GETNEXT NOTCASE('N', __start); - GETNEXT NOTCASE('F', __start); - GETNEXT NOTCASE('I', __start); - GETNEXT NOTCASE('G', __start); - GETNEXT NOTCASE('_', __start); - - map_dot = next; -pound_define_undef_CONFIG_word: - GETNEXT - if (isalnum(current) || current == '_') - goto pound_define_undef_CONFIG_word; - goto __start; - -/* \<CONFIG_(\w*) */ -cee: - if (next >= map+2 && (isalnum(next[-2]) || next[-2] == '_')) - goto start; - GETNEXT NOTCASE('O', __start); - GETNEXT NOTCASE('N', __start); - GETNEXT NOTCASE('F', __start); - GETNEXT NOTCASE('I', __start); - GETNEXT NOTCASE('G', __start); - GETNEXT NOTCASE('_', __start); - - map_dot = next; -cee_CONFIG_word: - GETNEXT - if (isalnum(current) || current == '_') - goto cee_CONFIG_word; - use_config(map_dot, next - map_dot - 1); - goto __start; - } -} - - - -/* - * Generate dependencies for one file. - */ -void do_depend(const char * filename, const char * command) -{ - int mapsize; - int pagesizem1 = getpagesize()-1; - int fd; - struct stat st; - char * map; - - fd = open(filename, O_RDONLY); - if (fd < 0) { - perror(filename); - return; - } - - fstat(fd, &st); - if (st.st_size == 0) { - fprintf(stderr,"%s is empty\n",filename); - close(fd); - return; - } - - mapsize = st.st_size; - mapsize = (mapsize+pagesizem1) & ~pagesizem1; - map = mmap(NULL, mapsize, PROT_READ, MAP_PRIVATE, fd, 0); - if ((long) map == -1) { - perror("mkdep: mmap"); - close(fd); - return; - } - if ((unsigned long) map % sizeof(unsigned long) != 0) - { - fprintf(stderr, "do_depend: map not aligned\n"); - exit(1); - } - - hasdep = 0; - clear_config(); - state_machine(map, map+st.st_size); - if (hasdep) { - puts(command); - if (*command) - define_precious(filename); - } - - munmap(map, mapsize); - close(fd); -} - - - -/* - * Generate dependencies for all files. - */ -int main(int argc, char **argv) -{ - int len; - const char *hpath; - - hpath = getenv("HPATH"); - if (!hpath) { - fputs("mkdep: HPATH not set in environment. " - "Don't bypass the top level Makefile.\n", stderr); - return 1; - } - - add_path("."); /* for #include "..." */ - - while (++argv, --argc > 0) { - if (strncmp(*argv, "-I", 2) == 0) { - if (*((*argv)+2)) { - add_path((*argv)+2); - } - else { - ++argv; - --argc; - add_path(*argv); - } - } - else if (strcmp(*argv, "--") == 0) { - break; - } - } - - add_path(hpath); /* must be last entry, for config files */ - - while (--argc > 0) { - const char * filename = *++argv; - const char * command = __depname; - g_filename = 0; - len = strlen(filename); - memcpy(depname, filename, len+1); - if (len > 2 && filename[len-2] == '.') { - if (filename[len-1] == 'c' || filename[len-1] == 'S') { - depname[len-1] = 'o'; - g_filename = filename; - command = ""; - } - } - do_depend(filename, command); - } - if (len_precious) { - *(str_precious+len_precious) = '\0'; - printf(".PRECIOUS:%s\n", str_precious); - } - return 0; -} diff --git a/scripts/pathdown.sh b/scripts/pathdown.sh deleted file mode 100644 index 16c17b2a..00000000 --- a/scripts/pathdown.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -UP= -DN=${PWD:?} -TP=${TOPDIR:?} - -while [ ! $TP/$UP/. -ef $DN ] ;do - UP=`basename $PWD`/$UP - cd .. - if [ "$PWD" = "/" ]; then echo "Lost"; exit 1; fi -done - -echo $UP -exit 0 diff --git a/scripts/release b/scripts/release deleted file mode 100755 index 90e3da0a..00000000 --- a/scripts/release +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -export CVSROOT=ds@cvs.comedi.org:/var/cvs -export CVS_RSH=ssh - -topdir=$(pwd) - -if [ ! "$1" ] -then - echo -n "minor version: " - read minor -else - minor=$1 -fi - -lastminor=$(($minor - 1)) - -tag=r0_7_$minor -version=0.7.$minor -lasttag=r0_7_$lastminor - -echo "deleting tag $tag" -cvs rtag -d $tag comedi - -echo "tagging $tag" -cvs rtag $tag comedi - -echo "exporting" -cvs export -r $tag -d comedi-$version comedi - -echo "generating patch" -cvs rdiff -u -r $lasttag -r $tag comedi >patch-comedi-$version - -cd comedi-$version - -sed -e "s/^SUBLEVEL.*/SUBLEVEL = $minor/" -e \ - "s/^EXTRAVERSION.*/EXTRAVERSION = /" \ - Makefile >Makefile.tmp -mv Makefile.tmp Makefile -make drivers.txt - -cd $topdir -tar -czf comedi-$version.tgz comedi-$version - -- 2.26.2