--- configure.in.orig 2008-05-21 11:44:16.000000000 -0500 +++ configure.in 2010-12-20 08:49:09.000000000 -0600 @@ -43,6 +43,21 @@ dnl CHECK COMMAND LINE OPTIONS dnl -------------------------- +dnl Do you want whatnow to use readline()? +dnl (e.g. enable tab completion and editor support) +AC_ARG_WITH([readline], + [AS_HELP_STRING([--with-readline], + [enable whatnow readline() (e.g. enable tab completion and editor support)])], + [], + [with_readline=no]) +LIBREADLINE= +if test x"$with_readline" = x"yes"; then + AC_DEFINE(HAVE_LIBREADLINE, 1, + [Define if you have libreadline.])dnl + LIBREADLINE="-lreadline -lncurses" +fi +AC_SUBST(LIBREADLINE)dnl + dnl Do you want client-side support for apop? AC_ARG_ENABLE(apop, AS_HELP_STRING([--enable-apop], [enable client-side support for POP3 and APOP])) --- sbr/getans.c.orig 2007-04-29 17:34:04.000000000 -0500 +++ sbr/getans.c 2010-12-20 08:20:04.000000000 -0600 @@ -2,7 +2,7 @@ /* * getans.c -- get an answer from the user and return a string array * - * $Id: getans.c,v 1.3 2007/04/29 22:34:04 pm215 Exp $ + * $Id: getans.c,v 1.2 2010/12/20 14:03:51 rader Exp rader $ * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -14,6 +14,11 @@ #include #include +#if HAVE_LIBREADLINE +#include +#include +#endif + static char ansbuf[BUFSIZ]; static jmp_buf sigenv; @@ -69,6 +74,39 @@ } +#if HAVE_LIBREADLINE +char ** +getans_via_readline (char *prompt, struct swit *ansp) +{ + char *ans, **cpp; + + for (;;) { + ans = readline (prompt); + if (ans[0] == '?' || ans[0] == 0 ) { + printf ("Options are:\n"); + print_sw (ALL, ansp, ""); + free(ans); + continue; + } + strcpy (ansbuf,ans); + cpp = brkstring (ansbuf, " ", NULL); + switch (smatch (*cpp, ansp)) { + case AMBIGSW: + ambigsw (*cpp, ansp); + continue; + case UNKWNSW: + printf (" -%s unknown. Hit for help.\n", *cpp); + continue; + default: + free(ans); + return cpp; + } + free(ans); + } + +} +#endif + static RETSIGTYPE intrser (int i) { --- uip/Makefile.in.orig 2005-12-24 11:17:38.000000000 -0600 +++ uip/Makefile.in 2010-12-20 08:35:24.000000000 -0600 @@ -30,6 +30,7 @@ SASL_LIBS = @SASL_LIBS@ HESIOD_LIBS = @HESIOD_LIBS@ NDBM_LIBS = @NDBM_LIBS@ +READLINE_LIBS = @LIBREADLINE@ LOCALLIBS = ../config/version.o ../config/config.o $(MTSLIB) ../sbr/libmh.a LINKLIBS = $(LOCALLIBS) $(KRB4_LIBS) $(SASL_LIBS) $(HESIOD_LIBS) $(LIBS) @@ -114,14 +115,14 @@ burst: burst.o $(LOCALLIBS) $(LINK) burst.o $(LINKLIBS) -comp: comp.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) - $(LINK) comp.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) +comp: comp.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) + $(LINK) comp.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) $(READLINE_LIBS) conflict: conflict.o aliasbr.o $(LOCALLIBS) $(LINK) conflict.o aliasbr.o $(LINKLIBS) dist: dist.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) - $(LINK) dist.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) + $(LINK) dist.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) $(READLINE_LIBS) dp: dp.o termsbr.o $(LOCALLIBS) $(LINK) dp.o termsbr.o $(LINKLIBS) $(TERMLIB) @@ -136,7 +137,7 @@ $(LINK) folder.o $(LINKLIBS) forw: forw.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) - $(LINK) forw.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) + $(LINK) forw.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) $(READLINE_LIBS) inc: inc.o scansbr.o dropsbr.o termsbr.o $(POPLIB) $(LOCALLIBS) $(LINK) inc.o scansbr.o dropsbr.o termsbr.o $(POPLIB) $(LINKLIBS) $(TERMLIB) @@ -211,7 +212,7 @@ $(LINK) refile.o $(LINKLIBS) repl: repl.o replsbr.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) - $(LINK) repl.o replsbr.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) + $(LINK) repl.o replsbr.o whatnowproc.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) $(READLINE_LIBS) rmf: rmf.o $(LOCALLIBS) $(LINK) rmf.o $(LINKLIBS) @@ -223,7 +224,7 @@ $(LINK) scan.o scansbr.o termsbr.o $(LINKLIBS) $(TERMLIB) send: send.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) - $(LINK) send.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) + $(LINK) send.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) $(READLINE_LIBS) show: show.o mhlsbr.o termsbr.o $(LOCALLIBS) $(LINK) show.o mhlsbr.o termsbr.o $(LINKLIBS) $(TERMLIB) @@ -244,7 +245,7 @@ $(LINK) vmh.o vmhsbr.o $(LINKLIBS) $(TERMLIB) whatnow: whatnow.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS) - $(LINK) whatnow.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) + $(LINK) whatnow.o whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS) $(READLINE_LIBS) whom: whom.o distsbr.o $(LOCALLIBS) $(LINK) whom.o distsbr.o $(LINKLIBS) --- uip/whatnowsbr.c.orig 2008-05-22 05:42:10.000000000 -0500 +++ uip/whatnowsbr.c 2010-12-20 08:22:25.000000000 -0600 @@ -2,7 +2,7 @@ /* * whatnowsbr.c -- the WhatNow shell * - * $Id: whatnowsbr.c,v 1.9.2.1 2008/05/22 10:42:10 pm215 Exp $ + * $Id: whatnowsbr.c,v 1.1 2010/12/20 14:22:25 rader Exp $ * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -243,7 +243,11 @@ snprintf (prompt, sizeof(prompt), myprompt, invo_name); for (;;) { +#ifndef HAVE_LIBREADLINE if (!(argp = getans (prompt, aleqs))) { +#else + if (!(argp = getans_via_readline (prompt, aleqs))) { +#endif unlink (LINK); done (1); }