summaryrefslogtreecommitdiff
path: root/input.c
diff options
context:
space:
mode:
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);