diff options
Diffstat (limited to 'edit.h')
-rw-r--r-- | edit.h | 89 |
1 files changed, 89 insertions, 0 deletions
@@ -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: + */ |