1 /*
2  * psql - the PostgreSQL interactive terminal
3  *
4  * Copyright (c) 2000-2018, PostgreSQL Global Development Group
5  *
6  * src/bin/psql/input.h
7  */
8 #ifndef INPUT_H
9 #define INPUT_H
10 
11 /*
12  * If some other file needs to have access to readline/history, include this
13  * file and save yourself all this work.
14  *
15  * USE_READLINE is what to conditionalize readline-dependent code on.
16  */
17 #ifdef HAVE_LIBREADLINE
18 #define USE_READLINE 1
19 
20 #if defined(HAVE_READLINE_READLINE_H)
21 #include <readline/readline.h>
22 #if defined(HAVE_READLINE_HISTORY_H)
23 #include <readline/history.h>
24 #endif
25 #elif defined(HAVE_EDITLINE_READLINE_H)
26 #include <editline/readline.h>
27 #if defined(HAVE_EDITLINE_HISTORY_H)
28 #include <editline/history.h>
29 #endif
30 #elif defined(HAVE_READLINE_H)
31 #include <readline.h>
32 #if defined(HAVE_HISTORY_H)
33 #include <history.h>
34 #endif
35 #endif							/* HAVE_READLINE_READLINE_H, etc */
36 #endif							/* HAVE_LIBREADLINE */
37 
38 #include "pqexpbuffer.h"
39 
40 
41 extern char *gets_interactive(const char *prompt, PQExpBuffer query_buf);
42 extern char *gets_fromFile(FILE *source);
43 
44 extern void initializeInput(int flags);
45 
46 extern bool printHistory(const char *fname, unsigned short int pager);
47 
48 extern void pg_append_history(const char *s, PQExpBuffer history_buf);
49 extern void pg_send_history(PQExpBuffer history_buf);
50 
51 #endif							/* INPUT_H */
52