X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/a5a1425258ffb1f72e853b6adc6ff0ae58c636bd..394a751fd883d2bbfc769fed7e254e008a2ef45e:/sbr/read_switch_multiword_via_readline.c diff --git a/sbr/read_switch_multiword_via_readline.c b/sbr/read_switch_multiword_via_readline.c index 2c6912ba..df91701c 100644 --- a/sbr/read_switch_multiword_via_readline.c +++ b/sbr/read_switch_multiword_via_readline.c @@ -1,13 +1,16 @@ - -/* - * read_switch_multiword_via_readline.c -- get an answer from the user, with readline +/* read_switch_multiword_via_readline.c -- get an answer from the user, with readline * * This code is Copyright (c) 2012, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. */ -#include +#include "h/mh.h" +#include "read_switch_multiword_via_readline.h" +#include "smatch.h" +#include "brkstring.h" +#include "ambigsw.h" +#include "print_sw.h" #ifdef READLINE_SUPPORT #include @@ -51,6 +54,8 @@ read_switch_multiword_via_readline(char *prompt, struct swit *ansp) add_history(ans); strncpy(ansbuf, ans, sizeof(ansbuf)); ansbuf[sizeof(ansbuf) - 1] = '\0'; + free(ans); + cpp = brkstring(ansbuf, " ", NULL); switch (smatch(*cpp, ansp)) { case AMBIGSW: @@ -60,10 +65,8 @@ read_switch_multiword_via_readline(char *prompt, struct swit *ansp) printf(" -%s unknown. Hit for help.\n", *cpp); continue; default: - free(ans); return cpp; } - free(ans); } } @@ -77,16 +80,12 @@ initialize_readline(void) static char ** nmh_completion(const char *text, int start, int end) { - char **matches; - NMH_UNUSED (end); - matches = (char **) NULL; - if (start == 0) - matches = rl_completion_matches(text, nmh_command_generator); + return rl_completion_matches(text, nmh_command_generator); - return matches; + return NULL; } static char * @@ -113,4 +112,3 @@ nmh_command_generator(const char *text, int state) return NULL; } #endif /* READLINE_SUPPORT */ -