summaryrefslogtreecommitdiff
path: root/input.c
diff options
context:
space:
mode:
authortgoodwin <tgoodwin>1998-02-23 15:45:05 +0000
committerToby Goodwin <toby@paccrat.org>2015-05-16 21:23:05 +0100
commitac8a8fcf0dad4e73b16a584d4ba3c02b89c1b86e (patch)
tree56bf5bd2a1a0f52a66a588b33f0127e1fce0b646 /input.c
parented765fba692da152247018becb1f407a4ee64452 (diff)
incorporate Tom Culliton's patches for readline
Diffstat (limited to 'input.c')
-rw-r--r--input.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/input.c b/input.c
index 3735b5e..6f8b755 100644
--- a/input.c
+++ b/input.c
@@ -2,6 +2,8 @@
#include <errno.h>
#include <setjmp.h>
+#include <signal.h>
+
#include "rc.h"
#include "jbwrap.h"
@@ -22,11 +24,28 @@ typedef struct Input {
#if READLINE
extern void add_history(char *);
-static char *rlinebuf;
-char *prompt;
+extern char *readline(char *);
+
+static char *rlinebuf, *prompt;
+bool in_readline;
+
+static char *rc_readline(char *prompt) {
+ char *r;
+ void (*old)(int);
+
+ in_readline = TRUE;
+ old = signal(SIGINT, sigint);
+ r = readline(prompt);
+ signal(SIGINT, old);
+ in_readline = FALSE;
+ sigchk();
+
+ return r;
+}
+
#endif
-char *prompt2;
+static char *prompt2;
bool rcrc;
static int dead(void);