| /* **************************************************************** */ |
| /* */ |
| /* Testing Readline */ |
| /* */ |
| /* **************************************************************** */ |
| |
| /* Copyright (C) 1987-2009 Free Software Foundation, Inc. |
| |
| This file is part of the GNU Readline Library (Readline), a library for |
| reading lines of text with interactive input and history editing. |
| |
| Readline 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 3 of the License, or |
| (at your option) any later version. |
| |
| Readline 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 Readline. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| |
| #if defined (HAVE_CONFIG_H) |
| #include <config.h> |
| #endif |
| |
| #include <stdio.h> |
| #include <sys/types.h> |
| |
| #ifdef HAVE_STDLIB_H |
| # include <stdlib.h> |
| #else |
| extern void exit(); |
| #endif |
| |
| #ifdef READLINE_LIBRARY |
| # include "readline.h" |
| # include "history.h" |
| #else |
| # include <readline/readline.h> |
| # include <readline/history.h> |
| #endif |
| |
| 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); |
| } |