summaryrefslogtreecommitdiff
path: root/edit.h
diff options
context:
space:
mode:
Diffstat (limited to 'edit.h')
-rw-r--r--edit.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/edit.h b/edit.h
new file mode 100644
index 0000000..14ffc27
--- /dev/null
+++ b/edit.h
@@ -0,0 +1,89 @@
+/* $NetBSD: edit.h,v 1.5 2017/07/01 23:12:08 joerg Exp $ */
+
+/* NAME:
+ * edit.h - globals for edit modes
+ *
+ * DESCRIPTION:
+ * This header defines various global edit objects.
+ *
+ * SEE ALSO:
+ *
+ *
+ * RCSid:
+ * $NetBSD: edit.h,v 1.5 2017/07/01 23:12:08 joerg Exp $
+ *
+ */
+
+#include <stdbool.h>
+
+/* some useful #defines */
+#ifdef EXTERN
+# define I__(i) = i
+#else
+# define I__(i)
+# define EXTERN extern
+# define EXTERN_DEFINED
+#endif
+
+#define BEL 0x07
+
+/* tty driver characters we are interested in */
+typedef struct {
+ int erase;
+ int kill;
+ int werase;
+ int intr;
+ int quit;
+ int eof;
+} X_chars;
+
+EXTERN X_chars edchars;
+
+/* x_fc_glob() flags */
+#define XCF_COMMAND BIT(0) /* Do command completion */
+#define XCF_FILE BIT(1) /* Do file completion */
+#define XCF_FULLPATH BIT(2) /* command completion: store full path */
+#define XCF_COMMAND_FILE (XCF_COMMAND|XCF_FILE)
+
+/* edit.c */
+int x_getc ARGS((void));
+void x_flush ARGS((void));
+void x_putc ARGS((int c));
+void x_puts ARGS((const char *s));
+bool x_mode(bool onoff);
+int promptlen ARGS((const char *cp, const char **spp));
+int x_do_comment ARGS((char *buf, int bsize, int *lenp));
+void x_print_expansions ARGS((int nwords, char *const *words, int is_command));
+int x_cf_glob ARGS((int flags, const char *buf, int buflen, int pos, int *startp,
+ int *endp, char ***wordsp, int *is_commandp));
+int x_longest_prefix ARGS((int nwords, char *const *words));
+int x_basename ARGS((const char *s, const char *se));
+void x_free_words ARGS((int nwords, char **words));
+int x_escape ARGS((const char *, size_t, int (*)(const char *s, size_t len)));
+/* emacs.c */
+int x_emacs ARGS((char *buf, size_t len));
+void x_init_emacs ARGS((void));
+void x_emacs_keys ARGS((X_chars *ec));
+/* vi.c */
+int x_vi ARGS((char *buf, size_t len));
+
+
+#ifdef DEBUG
+# define D__(x) x
+#else
+# define D__(x)
+#endif
+
+/* This lot goes at the END */
+/* be sure not to interfere with anyone else's idea about EXTERN */
+#ifdef EXTERN_DEFINED
+# undef EXTERN_DEFINED
+# undef EXTERN
+#endif
+#undef I__
+/*
+ * Local Variables:
+ * version-control:t
+ * comment-column:40
+ * End:
+ */