diff --git a/config.h.in b/config.h.in index 5586fe4..e79da7d 100644 --- a/config.h.in +++ b/config.h.in @@ -1,11 +1,17 @@ /* config.h.in. Generated from configure.ac by autoheader. */ -/* Define to include ANSI arrow keys support in minix-editline */ -#undef ANSI_ARROWS - /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID +/* Define to enable terminal bell on completion. */ +#undef CONFIG_ANNOYING_NOISE + +/* Define to include ANSI arrow keys support. */ +#undef CONFIG_ANSI_ARROWS + +/* Define to enable SIGSTOP (Ctrl-Z) key. */ +#undef CONFIG_SIGSTOP + /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H diff --git a/configure b/configure index 30f1b54..0511feb 100755 --- a/configure +++ b/configure @@ -746,8 +746,8 @@ ac_includes_default="\ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS -COMPLETE_FALSE -COMPLETE_TRUE +CONFIG_DEFAULT_COMPLETE_FALSE +CONFIG_DEFAULT_COMPLETE_TRUE LIBOBJS CPP OTOOL64 @@ -869,6 +869,8 @@ with_gnu_ld enable_libtool_lock enable_default_complete enable_arrow_keys +enable_sigstop +enable_terminal_bell ' ac_precious_vars='build_alias host_alias @@ -1509,6 +1511,8 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-default-complete Enable default completion handler. --enable-arrow-keys Enable ANSI arrow keys. + --enable-sigstop Enable SIGSTOP key. + --enable-terminal-bell Enable terminal bell on completion. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -4550,13 +4554,13 @@ if test "${lt_cv_nm_interface+set}" = set; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4553: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4557: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4556: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4560: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4559: output\"" >&5) + (eval echo "\"\$as_me:4563: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5762,7 +5766,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5765 "configure"' > conftest.$ac_ext + echo '#line 5769 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7292,11 +7296,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7295: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7299: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7299: \$? = $ac_status" >&5 + echo "$as_me:7303: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7631,11 +7635,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7634: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7638: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7638: \$? = $ac_status" >&5 + echo "$as_me:7642: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7736,11 +7740,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7739: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7743: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7743: \$? = $ac_status" >&5 + echo "$as_me:7747: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -7791,11 +7795,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7794: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7798: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7798: \$? = $ac_status" >&5 + echo "$as_me:7802: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10175,7 +10179,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10178 "configure" +#line 10182 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10271,7 +10275,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10274 "configure" +#line 10278 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11079,11 +11083,11 @@ else fi if test x$complete = xtrue; then - COMPLETE_TRUE= - COMPLETE_FALSE='#' + CONFIG_DEFAULT_COMPLETE_TRUE= + CONFIG_DEFAULT_COMPLETE_FALSE='#' else - COMPLETE_TRUE='#' - COMPLETE_FALSE= + CONFIG_DEFAULT_COMPLETE_TRUE='#' + CONFIG_DEFAULT_COMPLETE_FALSE= fi @@ -11098,7 +11102,37 @@ fi if test "x${ac_enable_arrow_keys}" = xyes ; then -$as_echo "#define ANSI_ARROWS /**/" >>confdefs.h +$as_echo "#define CONFIG_ANSI_ARROWS /**/" >>confdefs.h + +fi + +ac_enable_sigstop=no +# Check whether --enable-sigstop was given. +if test "${enable_sigstop+set}" = set; then : + enableval=$enable_sigstop; ac_enable_sigstop=$enableval +else + ac_enable_sigstop=no +fi + + +if test "x${ac_enable_sigstop}" = xyes ; then + +$as_echo "#define CONFIG_SIGSTOP /**/" >>confdefs.h + +fi + +ac_enable_terminal_bell=no +# Check whether --enable-terminal-bell was given. +if test "${enable_terminal_bell+set}" = set; then : + enableval=$enable_terminal_bell; ac_enable_terminal_bell=$enableval +else + ac_enable_terminal_bell=no +fi + + +if test "x${ac_enable_terminal_bell}" = xyes ; then + +$as_echo "#define CONFIG_ANNOYING_NOISE /**/" >>confdefs.h fi @@ -11217,8 +11251,8 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${COMPLETE_TRUE}" && test -z "${COMPLETE_FALSE}"; then - as_fn_error "conditional \"COMPLETE\" was never defined. +if test -z "${CONFIG_DEFAULT_COMPLETE_TRUE}" && test -z "${CONFIG_DEFAULT_COMPLETE_FALSE}"; then + as_fn_error "conditional \"CONFIG_DEFAULT_COMPLETE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi diff --git a/configure.ac b/configure.ac index 30c441c..e22006c 100644 --- a/configure.ac +++ b/configure.ac @@ -55,7 +55,7 @@ AC_ARG_ENABLE([default-complete], AC_MSG_ERROR([bad value ${enableval} for --enable-default-complete]) ;; esac],[complete=false]) -AM_CONDITIONAL([COMPLETE], [test x$complete = xtrue]) +AM_CONDITIONAL([CONFIG_DEFAULT_COMPLETE], [test x$complete = xtrue]) ac_enable_arrow_keys=no AC_ARG_ENABLE(arrow-keys, @@ -63,8 +63,28 @@ AC_ARG_ENABLE(arrow-keys, [ ac_enable_arrow_keys=$enableval ], [ ac_enable_arrow_keys=no]) if test "x${ac_enable_arrow_keys}" = xyes ; then - AC_DEFINE([ANSI_ARROWS], [], - [Define to include ANSI arrow keys support in minix-editline]) + AC_DEFINE([CONFIG_ANSI_ARROWS], [], + [Define to include ANSI arrow keys support.]) +fi + +ac_enable_sigstop=no +AC_ARG_ENABLE(sigstop, + [ --enable-sigstop Enable SIGSTOP key.], + [ ac_enable_sigstop=$enableval ], [ ac_enable_sigstop=no]) + +if test "x${ac_enable_sigstop}" = xyes ; then + AC_DEFINE([CONFIG_SIGSTOP], [], + [Define to enable SIGSTOP (Ctrl-Z) key.]) +fi + +ac_enable_terminal_bell=no +AC_ARG_ENABLE(terminal-bell, + [ --enable-terminal-bell Enable terminal bell on completion.], + [ ac_enable_terminal_bell=$enableval ], [ ac_enable_terminal_bell=no]) + +if test "x${ac_enable_terminal_bell}" = xyes ; then + AC_DEFINE([CONFIG_ANNOYING_NOISE], [], + [Define to enable terminal bell on completion.]) fi AC_OUTPUT(Makefile src/Makefile include/Makefile man/Makefile examples/Makefile) diff --git a/examples/cli.c b/examples/cli.c index d695cdd..c9e0345 100644 --- a/examples/cli.c +++ b/examples/cli.c @@ -1,4 +1,24 @@ -/* Custom CLI command completion. */ +/* Custom CLI command completion. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ + #include "editline.h" #include @@ -6,10 +26,8 @@ static char *list[] = { "foo ", "bar ", "bsd ", "cli ", "ls ", "cd ", "malloc ", "tee ", NULL }; -/* -** Attempt to complete the pathname, returning an allocated copy. -** Fill in *unique if we completed it, or set it to 0 if ambiguous. -*/ +/* Attempt to complete the pathname, returning an allocated copy. + * Fill in *unique if we completed it, or set it to 0 if ambiguous. */ static char *my_rl_complete(char *token, int *match) { int i; @@ -38,9 +56,7 @@ static char *my_rl_complete(char *token, int *match) return NULL; } -/* -** Return all possible completions. -*/ +/* Return all possible completions. */ static int my_rl_list_possib(char *token, char ***av) { int i, num, total = 0; diff --git a/examples/testit.c b/examples/testit.c index 2bf5ad0..8f3a747 100644 --- a/examples/testit.c +++ b/examples/testit.c @@ -1,8 +1,24 @@ -/* $Revision: 5 $ -** -** A "micro-shell" to test editline library. -** If given any arguments, commands aren't executed. -*/ +/* A "micro-shell" to test editline library. + * If given any arguments, commands aren't executed. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ #include #include #ifdef HAVE_STDLIB_H @@ -53,7 +69,3 @@ int main(int argc, char *argv[] __attribute__ ((unused))) return 0; } - -/* - * $PchId: testit.c,v 1.3 1996/02/22 21:18:51 philip Exp $ - */ diff --git a/include/editline.h b/include/editline.h index bf624a4..b07f950 100644 --- a/include/editline.h +++ b/include/editline.h @@ -1,4 +1,23 @@ -/* Minix editline */ +/* Minix editline + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ #ifndef __EDITLINE_H__ #define __EDITLINE_H__ @@ -10,9 +29,7 @@ extern int rl_meta_chars; extern char *(*rl_complete)(char *token, int *match); extern int (*rl_list_possib)(char *token, char ***av); -/* -** For compatibility with FSF readline. -*/ +/* For compatibility with FSF readline. */ extern void rl_reset_terminal(char *p); extern void rl_initialize(void); diff --git a/src/Makefile.am b/src/Makefile.am index ee74d8c..252bf67 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ AUTOMAKE_OPTIONS = foreign lib_LTLIBRARIES = libeditline.la libeditline_la_SOURCES = editline.c editline.h sysunix.c unix.h -if COMPLETE +if CONFIG_DEFAULT_COMPLETE # Built-in completion handler. libeditline_la_SOURCES += complete.c AM_CPPFLAGS = -DCOMPLETE diff --git a/src/Makefile.in b/src/Makefile.in index 9475c15..a26d5f8 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -35,7 +35,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ # Built-in completion handler. -@COMPLETE_TRUE@am__append_1 = complete.c +@CONFIG_DEFAULT_COMPLETE_TRUE@am__append_1 = complete.c subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -75,7 +75,7 @@ LTLIBRARIES = $(lib_LTLIBRARIES) libeditline_la_LIBADD = am__libeditline_la_SOURCES_DIST = editline.c editline.h sysunix.c \ unix.h complete.c -@COMPLETE_TRUE@am__objects_1 = complete.lo +@CONFIG_DEFAULT_COMPLETE_TRUE@am__objects_1 = complete.lo am_libeditline_la_OBJECTS = editline.lo sysunix.lo $(am__objects_1) libeditline_la_OBJECTS = $(am_libeditline_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) @@ -228,7 +228,7 @@ AUTOMAKE_OPTIONS = foreign lib_LTLIBRARIES = libeditline.la libeditline_la_SOURCES = editline.c editline.h sysunix.c unix.h \ $(am__append_1) -@COMPLETE_TRUE@AM_CPPFLAGS = -DCOMPLETE +@CONFIG_DEFAULT_COMPLETE_TRUE@AM_CPPFLAGS = -DCOMPLETE all: all-am .SUFFIXES: diff --git a/src/complete.c b/src/complete.c index 1bb9ca7..c53c58f 100644 --- a/src/complete.c +++ b/src/complete.c @@ -1,31 +1,43 @@ -/* $Revision: 5 $ -** -** History and file completion functions for editline library. -*/ +/* History and file completion functions for editline library. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ + #include "editline.h" +#define MAX_TOTAL_MATCHES (256 << sizeof(char *)) -#if defined(NEED_STRDUP) -/* -** Return an allocated copy of a string. -*/ -char * -strdup(p) - char *p; +#ifdef NEED_STRDUP +/* Return an allocated copy of a string. */ +char *strdup(const char *p) { - char *new; + char *new; if ((new = NEW(char, strlen(p) + 1)) != NULL) (void)strcpy(new, p); + return new; } -#endif /* defined(NEED_STRDUP) */ +#endif -/* -** strcmp-like sorting predicate for qsort. -*/ -static int -compare(void *p1, void *p2) +/* Wrap strcmp() for qsort() */ +static int compare(void *p1, void *p2) { char **v1 = (char **)p1; char **v2 = (char **)p2; @@ -33,15 +45,9 @@ compare(void *p1, void *p2) return strcmp(*v1, *v2); } -/* -** Fill in *avp with an array of names that match file, up to its length. -** Ignore . and .. . -*/ -static int -FindMatches(dir, file, avp) - char *dir; - char *file; - char ***avp; +/* Fill in *avp with an array of names that match file, up to its length. + * Ignore . and .. . */ +static int FindMatches(char *dir, char *file, char ***avp) { char **av; char **new; @@ -52,7 +58,6 @@ FindMatches(dir, file, avp) SIZE_T len; SIZE_T choices; SIZE_T total; -#define MAX_TOTAL (256 << sizeof(char *)) if ((dp = opendir(dir)) == NULL) return 0; @@ -70,7 +75,7 @@ FindMatches(dir, file, avp) continue; choices++; - if ((total += strlen(p)) > MAX_TOTAL) { + if ((total += strlen(p)) > MAX_TOTAL_MATCHES) { /* This is a bit too much. */ while (ac > 0) DISPOSE(av[--ac]); continue; @@ -98,8 +103,8 @@ FindMatches(dir, file, avp) } /* Clean up and return. */ - (void)closedir(dp); - if (total > MAX_TOTAL) { + closedir(dp); + if (total > MAX_TOTAL_MATCHES) { char many[sizeof(total) * 3]; p = many + sizeof(many); *--p = '\0'; @@ -114,17 +119,12 @@ FindMatches(dir, file, avp) if (ac) qsort(av, ac, sizeof (char **), compare); } + return ac; } -/* -** Split a pathname into allocated directory and trailing filename parts. -*/ -static int -SplitPath(path, dirpart, filepart) - char *path; - char **dirpart; - char **filepart; +/* Split a pathname into allocated directory and trailing filename parts. */ +static int SplitPath(char *path, char **dirpart, char **filepart) { static char DOT[] = "."; char *dpart; @@ -149,17 +149,13 @@ SplitPath(path, dirpart, filepart) } *dirpart = dpart; *filepart = fpart; + return 0; } -/* -** Attempt to complete the pathname, returning an allocated copy. -** Fill in *unique if we completed it, or set it to 0 if ambiguous. -*/ -char * -default_rl_complete(pathname, unique) - char *pathname; - int *unique; +/* Attempt to complete the pathname, returning an allocated copy. + * Fill in *unique if we completed it, or set it to 0 if ambiguous. */ +char *default_rl_complete(char *pathname, int *unique) { char **av; char *dir; @@ -174,9 +170,11 @@ default_rl_complete(pathname, unique) if (SplitPath(pathname, &dir, &file) < 0) return NULL; + if ((ac = FindMatches(dir, file, &av)) == 0) { DISPOSE(dir); DISPOSE(file); + return NULL; } @@ -222,16 +220,12 @@ default_rl_complete(pathname, unique) for (i = 0; i < ac; i++) DISPOSE(av[i]); DISPOSE(av); + return p; } -/* -** Return all possible completions. -*/ -int -default_rl_list_possib(pathname, avp) - char *pathname; - char ***avp; +/* Return all possible completions. */ +int default_rl_list_possib(char *pathname, char ***avp) { char *dir; char *file; @@ -239,12 +233,10 @@ default_rl_list_possib(pathname, avp) if (SplitPath(pathname, &dir, &file) < 0) return 0; + ac = FindMatches(dir, file, avp); DISPOSE(dir); DISPOSE(file); + return ac; } - -/* - * $PchId: complete.c,v 1.3 1996/02/22 21:18:51 philip Exp $ - */ diff --git a/src/editline.c b/src/editline.c index 3d0d3b4..09dbce0 100644 --- a/src/editline.c +++ b/src/editline.c @@ -1,7 +1,24 @@ -/* $Revision: 2220 $ -** -** Main editing routines for editline library. -*/ +/* Main editing routines for editline library. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ + #include "editline.h" #include #include @@ -64,9 +81,9 @@ int rl_erase; int rl_intr; int rl_kill; int rl_quit; -#if defined(DO_SIGTSTP) +#ifdef CONFIG_SIGSTOP int rl_susp; -#endif /* defined(DO_SIGTSTP) */ +#endif static const char NIL[] = ""; static const char *Input = NIL; @@ -105,12 +122,12 @@ int (*rl_list_possib)(char *token, char ***av); ** Declarations. */ static char *editinput(void); -#if defined(USE_TERMCAP) +#ifdef USE_TERMCAP extern char *getenv(void); extern char *tgetstr(void); extern int tgetent(void); extern int tgetnum(void); -#endif /* defined(USE_TERMCAP) */ +#endif /* ** TTY input/output functions. @@ -196,30 +213,30 @@ static void tty_backn(int n) static void tty_info(void) { static int init; -#if defined(USE_TERMCAP) +#ifdef USE_TERMCAP char *term; char buff[2048]; char *bp; -#endif /* defined(USE_TERMCAP) */ -#if defined(TIOCGWINSZ) +#endif +#ifdef TIOCGWINSZ struct winsize W; -#endif /* defined(TIOCGWINSZ) */ +#endif if (init) { -#if defined(TIOCGWINSZ) +#ifdef TIOCGWINSZ /* Perhaps we got resized. */ if (ioctl(0, TIOCGWINSZ, &W) >= 0 && W.ws_col > 0 && W.ws_row > 0) { tty_width = (int)W.ws_col; tty_rows = (int)W.ws_row; } -#endif /* defined(TIOCGWINSZ) */ +#endif return; } init++; tty_width = tty_rows = 0; -#if defined(USE_TERMCAP) +#ifdef USE_TERMCAP bp = &buff[0]; if ((term = getenv("TERM")) == NULL) term = "dumb"; @@ -232,14 +249,14 @@ static void tty_info(void) backspace = strdup(backspace); tty_width = tgetnum("co"); tty_rows = tgetnum("li"); -#endif /* defined(USE_TERMCAP) */ +#endif -#if defined(TIOCGWINSZ) +#ifdef TIOCGWINSZ if (ioctl(0, TIOCGWINSZ, &W) >= 0) { tty_width = (int)W.ws_col; tty_rows = (int)W.ws_row; } -#endif /* defined(TIOCGWINSZ) */ +#endif if (tty_width <= 0 || tty_rows <= 0) { tty_width = SCREEN_WIDTH; @@ -323,7 +340,7 @@ static el_status_t ring_bell(void) static el_status_t do_macro(int c) { - char name[4]; + char name[4]; name[0] = '_'; name[1] = c; @@ -367,7 +384,7 @@ static el_status_t do_case(el_case_t type) int count; char *p; - (void)do_forward(CSstay); + do_forward(CSstay); if (OldPoint != Point) { if ((count = Point - OldPoint) < 0) count = -count; @@ -379,8 +396,9 @@ static el_status_t do_case(el_case_t type) if (islower(*p)) *p = toupper(*p); } - else if (isupper(*p)) + else if (isupper(*p)) { *p = tolower(*p); + } right(CSmove); } } @@ -496,7 +514,7 @@ static el_status_t do_insert_hist(const char *p) return insert_string(p); } -static el_status_t do_hist(const char *(*move)()) +static el_status_t do_hist(const char *(*move)(void)) { const char *p; int i; @@ -544,7 +562,7 @@ static int substrcmp(const char *text, const char *pat, size_t len) return 1; } -static const char *search_hist(const char *search, const char *(*move)()) +static const char *search_hist(const char *search, const char *(*move)(void)) { static char *old_search; int len; @@ -610,7 +628,7 @@ static el_status_t h_search(void) p = search_hist(p, move); clear_line(); if (p == NULL) { - (void)ring_bell(); + ring_bell(); return redisplay(); } return do_insert_hist(p); @@ -723,11 +741,11 @@ static el_status_t kill_line(void) i = Point; Point = Repeat; reposition(); - (void)delete_string(i - Point); + delete_string(i - Point); } else if (Repeat > Point) { right(CSmove); - (void)delete_string(Repeat - Point - 1); + delete_string(Repeat - Point - 1); } return CSmove; } @@ -794,7 +812,7 @@ static el_status_t meta(void) if ((c = tty_get()) == EOF) return CSeof; -#if defined(ANSI_ARROWS) +#ifdef CONFIG_ANSI_ARROWS /* Also include VT-100 arrows. */ if (c == '[' || c == 'O') { c = tty_get(); @@ -814,7 +832,7 @@ static el_status_t meta(void) case 'H': return beg_line(); /* Home */ } } -#endif /* defined(ANSI_ARROWS) */ +#endif /* CONFIG_ANSI_ARROWS */ if (isdigit(c)) { for (Repeat = c - '0'; (c = tty_get()) != EOF && isdigit(c); ) @@ -883,12 +901,12 @@ static el_status_t tty_special(int c) Signal = SIGQUIT; return CSeof; } -#if defined(DO_SIGTSTP) +#ifdef CONFIG_SIGSTOP if (c == rl_susp) { Signal = SIGTSTP; return CSsignal; } -#endif /* defined(DO_SIGTSTP) */ +#endif return CSdispatch; } @@ -984,17 +1002,14 @@ static char *read_redirected(void) return line; } -/* -** For compatibility with FSF readline. -*/ -/* ARGSUSED0 */ +/* For compatibility with FSF readline. */ void rl_reset_terminal(char *p __attribute__((__unused__))) { } void rl_initialize(void) { -#ifdef COMPLETE +#ifdef CONFIG_DEFAULT_COMPLETE int done = 0; if (!done) @@ -1057,7 +1072,7 @@ char *readline(const char *prompt) if (Signal > 0) { s = Signal; Signal = 0; - (void)kill(getpid(), s); + kill(getpid(), s); } return (char *)line; } @@ -1170,9 +1185,9 @@ static el_status_t c_complete(void) DISPOSE(word); if (len > 0) { s = insert_string(new); -#if ANNOYING_NOISE +#ifdef CONFIG_ANNOYING_NOISE if (!unique) - (void)ring_bell(); + ring_bell(); #endif } DISPOSE(new); @@ -1294,7 +1309,7 @@ static el_status_t fd_kill_word(void) { int i; - (void)do_forward(CSstay); + do_forward(CSstay); if (OldPoint != Point) { i = Point - OldPoint; Point = OldPoint; @@ -1325,7 +1340,7 @@ static el_status_t bk_word(void) static el_status_t bk_kill_word(void) { - (void)bk_word(); + bk_word(); if (OldPoint != Point) return delete_string(OldPoint - Point); return CSstay; @@ -1452,6 +1467,3 @@ static el_keymap_t MetaMap[]= { { 0, NULL } }; -/* - * $PchId: editline.c,v 1.4 1996/02/22 21:16:56 philip Exp $ - */ diff --git a/src/editline.h b/src/editline.h index 2724dd6..d291e57 100644 --- a/src/editline.h +++ b/src/editline.h @@ -1,7 +1,24 @@ -/* $Revision: 5 $ -** -** Internal header file for editline library. -*/ +/* Internal header file for editline library. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ + #ifndef __PRIVATE_EDITLINE_H__ #define __PRIVATE_EDITLINE_H__ @@ -51,10 +68,10 @@ extern int rl_erase; extern int rl_intr; extern int rl_kill; extern int rl_quit; -#ifdef DO_SIGTSTP +#ifdef CONFIG_SIGSTOP extern int rl_susp; #endif -#ifdef COMPLETE +#ifdef CONFIG_DEFAULT_COMPLETE extern char *default_rl_complete(); extern int default_rl_list_possib(char *pathname, char ***avp); #endif @@ -62,18 +79,18 @@ extern void rl_ttyset(int Reset); extern void rl_add_slash(char *path, char *p); #ifndef HAVE_STDLIB_H -extern char *getenv(); -extern char *malloc(); -extern char *realloc(); -extern char *memcpy(); -extern char *strcat(); -extern char *strchr(); -extern char *strrchr(); -extern char *strcpy(); -extern char *strdup(); -extern int strcmp(); -extern int strlen(); -extern int strncmp(); +extern char *getenv(const char *name); +extern char *malloc(size_t size); +extern char *realloc(void *ptr, size_t size); +extern char *memcpy(void *dest, const void *src, size_t n); +extern char *strcat(char *dest, const char *src); +extern char *strchr(const char *s, int c); +extern char *strrchr(const char *s, int c); +extern char *strcpy(char *dest, const char *src); +extern char *strdup(const char *s); +extern int strcmp(const char *s1, const char *s2); +extern int strlen(const char *s); +extern int strncmp(const char *s1, const char *s2, size_t n); #endif/* !HAVE_STDLIB */ #ifdef NEED_STRDUP diff --git a/src/sysunix.c b/src/sysunix.c index a3473e5..4cff17c 100644 --- a/src/sysunix.c +++ b/src/sysunix.c @@ -1,7 +1,23 @@ -/* $Revision: 5 $ -** -** Unix system-dependant routines for editline library. -*/ +/* Unix system-dependant routines for editline library. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ #include "editline.h" #if defined(HAVE_TCGETATTR) @@ -19,7 +35,7 @@ void rl_ttyset(int Reset) rl_eof = old.c_cc[VEOF]; rl_intr = old.c_cc[VINTR]; rl_quit = old.c_cc[VQUIT]; -#ifdef DO_SIGTSTP +#ifdef CONFIG_SIGSTOP rl_susp = old.c_cc[VSUSP]; #endif @@ -49,7 +65,7 @@ void rl_ttyset(int Reset) rl_eof = old.c_cc[VEOF]; rl_intr = old.c_cc[VINTR]; rl_quit = old.c_cc[VQUIT]; -#ifdef DO_SIGTSTP +#ifdef CONFIG_SIGSTOP rl_susp = old.c_cc[VSUSP]; #endif @@ -73,7 +89,7 @@ void rl_ttyset(int Reset) static struct tchars old_tchars; struct sgttyb new_sgttyb; struct tchars new_tchars; -#ifdef DO_SIGTSTP +#ifdef CONFIG_SIGSTOP struct ltchars old_ltchars; #endif @@ -87,7 +103,7 @@ void rl_ttyset(int Reset) rl_intr = old_tchars.t_intrc; rl_quit = old_tchars.t_quitc; -#ifdef DO_SIGTSTP +#ifdef CONFIG_SIGSTOP (void)ioctl(0, TIOCGLTC, &old_ltchars); rl_susp = old_ltchars.t_suspc; #endif @@ -119,6 +135,3 @@ void rl_add_slash(char *path, char *p) (void)strcat(p, S_ISDIR(Sb.st_mode) ? "/" : " "); } -/* - * $PchId: sysunix.c,v 1.4 1996/02/22 21:16:56 philip Exp $ - */ diff --git a/src/unix.h b/src/unix.h index 42890a8..8c2cc52 100644 --- a/src/unix.h +++ b/src/unix.h @@ -1,7 +1,26 @@ -/* $Revision: 5 $ -** -** Editline system header file for Unix. -*/ +/* Editline system header file for Unix. + * + * Copyright (c) 1992, 1993 Simmule Turner and Rich Salz. All rights reserved. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * 1. The authors are not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * 4. This notice may not be removed or altered. + */ + +#ifndef __EDITLINE_UNIX_H__ +#define __EDITLINE_UNIX_H__ #define CRLF "\r\n" #define FORWARD STATIC @@ -10,18 +29,16 @@ #include #include -#if defined(USE_DIRENT) +#ifdef USE_DIRENT #include typedef struct dirent DIRENTRY; #else #include typedef struct direct DIRENTRY; -#endif /* defined(USE_DIRENT) */ +#endif -#if !defined(S_ISDIR) +#ifndef S_ISDIR #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#endif /* !defined(S_ISDIR) */ +#endif -/* - * $PchId: unix.h,v 1.3 1996/02/22 21:18:51 philip Exp $ - */ +#endif /* __EDITLINE_UNIX_H__ */