diff options
Diffstat (limited to 'readline/examples/rltest.c')
-rw-r--r-- | readline/examples/rltest.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/readline/examples/rltest.c b/readline/examples/rltest.c new file mode 100644 index 00000000000..453f8ec2ada --- /dev/null +++ b/readline/examples/rltest.c @@ -0,0 +1,67 @@ +/* **************************************************************** */ +/* */ +/* Testing Readline */ +/* */ +/* **************************************************************** */ + +/* + * Remove the next line if you're compiling this against an installed + * libreadline.a + */ +#define READLINE_LIBRARY + +#if defined (HAVE_CONFIG_H) +#include <config.h> +#endif + +#include <stdio.h> +#include <sys/types.h> +#include "readline.h" +#include "history.h" + +extern HIST_ENTRY **history_list (); + +main () +{ + char *temp, *prompt; + int done; + + temp = (char *)NULL; + prompt = "readline$ "; + done = 0; + + while (!done) + { + temp = readline (prompt); + + /* Test for EOF. */ + if (!temp) + exit (1); + + /* If there is anything on the line, print it and remember it. */ + if (*temp) + { + fprintf (stderr, "%s\r\n", temp); + add_history (temp); + } + + /* Check for `command' that we handle. */ + if (strcmp (temp, "quit") == 0) + done = 1; + + if (strcmp (temp, "list") == 0) + { + HIST_ENTRY **list; + register int i; + + list = history_list (); + if (list) + { + for (i = 0; list[i]; i++) + fprintf (stderr, "%d: %s\r\n", i, list[i]->line); + } + } + free (temp); + } + exit (0); +} |