1/* **************************************************************** */
2/*								    */
3/*			Testing Readline			    */
4/*								    */
5/* **************************************************************** */
6
7/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
8
9   This file is part of the GNU Readline Library (Readline), a library for
10   reading lines of text with interactive input and history editing.
11
12   Readline is free software: you can redistribute it and/or modify
13   it under the terms of the GNU General Public License as published by
14   the Free Software Foundation, either version 3 of the License, or
15   (at your option) any later version.
16
17   Readline is distributed in the hope that it will be useful,
18   but WITHOUT ANY WARRANTY; without even the implied warranty of
19   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20   GNU General Public License for more details.
21
22   You should have received a copy of the GNU General Public License
23   along with Readline.  If not, see <http://www.gnu.org/licenses/>.
24*/
25
26#if defined (HAVE_CONFIG_H)
27#include <config.h>
28#endif
29
30#include <stdio.h>
31#include <sys/types.h>
32
33#ifdef HAVE_STDLIB_H
34#  include <stdlib.h>
35#else
36extern void exit();
37#endif
38
39#ifdef READLINE_LIBRARY
40#  include "readline.h"
41#  include "history.h"
42#else
43#  include <readline/readline.h>
44#  include <readline/history.h>
45#endif
46
47extern HIST_ENTRY **history_list ();
48
49int
50main ()
51{
52  char *temp, *prompt;
53  int done;
54
55  temp = (char *)NULL;
56  prompt = "readline$ ";
57  done = 0;
58
59  while (!done)
60    {
61      temp = readline (prompt);
62
63      /* Test for EOF. */
64      if (!temp)
65	exit (1);
66
67      /* If there is anything on the line, print it and remember it. */
68      if (*temp)
69	{
70	  fprintf (stderr, "%s\r\n", temp);
71	  add_history (temp);
72	}
73
74      /* Check for `command' that we handle. */
75      if (strcmp (temp, "quit") == 0)
76	done = 1;
77
78      if (strcmp (temp, "list") == 0)
79	{
80	  HIST_ENTRY **list;
81	  register int i;
82
83	  list = history_list ();
84	  if (list)
85	    {
86	      for (i = 0; list[i]; i++)
87		fprintf (stderr, "%d: %s\r\n", i, list[i]->line);
88	    }
89	}
90      free (temp);
91    }
92  exit (0);
93}
94