summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/interact.h
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-05-16 00:19:13 +0000
committerKarl Berry <karl@freefriends.org>2009-05-16 00:19:13 +0000
commitbab45528d65eaafe68a705dbb2a57075c7b7cbd8 (patch)
tree10b4ae2b5195c8dede153ab89359ec00f55f325f /Build/source/utils/asymptote/interact.h
parent8643d90372e9c31e0f461c15c596b60a545bd7d3 (diff)
asymptote 1.72 sources (not integrated into build yet)
git-svn-id: svn://tug.org/texlive/trunk@13110 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/interact.h')
-rw-r--r--Build/source/utils/asymptote/interact.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/interact.h b/Build/source/utils/asymptote/interact.h
new file mode 100644
index 00000000000..317496b52d4
--- /dev/null
+++ b/Build/source/utils/asymptote/interact.h
@@ -0,0 +1,52 @@
+/*****
+ * interact.h
+ *
+ * The glue between the lexical analyzer and the readline library.
+ *****/
+
+#ifndef INTERACT_H
+#define INTERACT_H
+
+#include "common.h"
+
+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 gc {
+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