summaryrefslogtreecommitdiff
path: root/graphics/asymptote/interact.h
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/asymptote/interact.h
Initial commit
Diffstat (limited to 'graphics/asymptote/interact.h')
-rw-r--r--graphics/asymptote/interact.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/graphics/asymptote/interact.h b/graphics/asymptote/interact.h
new file mode 100644
index 0000000000..e1827e3701
--- /dev/null
+++ b/graphics/asymptote/interact.h
@@ -0,0 +1,54 @@
+/*****
+ * interact.h
+ *
+ * The glue between the lexical analyzer and the readline library.
+ *****/
+
+#ifndef INTERACT_H
+#define INTERACT_H
+
+#include "common.h"
+
+void interruptHandler(int);
+
+namespace interact {
+
+extern bool interactive;
+extern bool uptodate;
+extern int lines; // Interactive scroll count
+extern bool query; // Enable interactive scrolling;
+
+void init_interactive();
+
+// Read a line from the input, without any processing.
+string simpleline(string prompt);
+
+// Add a line of input to the readline history.
+void addToHistory(string line);
+
+// Functions to work with the most recently entered line in the history.
+string getLastHistoryLine();
+void setLastHistoryLine(string line);
+
+// Remove the line last added to the history.
+void deleteLastLine();
+
+// Write out the history of input lines to the history file.
+void cleanup_interactive();
+
+// This class is used to set a text completion function for readline. A class
+// is used instead the usual function pointer so that information such as the
+// current environment can be coded into the function (mimicking a closure).
+class completer {
+public:
+ virtual ~completer() {};
+ virtual char *operator () (const char *text, int state) = 0;
+};
+
+void setCompleter(completer *c);
+
+#define YY_READ_BUF_SIZE YY_BUF_SIZE
+
+}
+
+#endif // INTERACT_H