mksh/edit.h

75 lines
1.8 KiB
C

/** $MirBSD: edit.h,v 1.5 2004/10/28 11:53:41 tg Exp $ */
/* $OpenBSD: edit.h,v 1.3 1999/11/14 22:04:02 d Exp $ */
/* $From: edit.h,v 1.2 1994/05/19 18:32:40 michael Exp michael $ */
#ifndef EDIT_H
#define EDIT_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(void);
void x_flush(void);
void x_putc(int c);
void x_puts(const char *s);
bool_t x_mode(bool_t onoff);
int promptlen(const char *cp, const char **spp);
int x_do_comment(char *buf, int bsize, int *lenp);
void x_print_expansions(int nwords, char *const *words, int is_command);
int x_cf_glob(int flags, const char *buf, int buflen, int pos, int *startp,
int *endp, char ***wordsp, int *is_commandp);
int x_longest_prefix(int nwords, char *const *words);
int x_basename(const char *s, const char *se);
void x_free_words(int nwords, char **words);
int x_escape(const char *, size_t, int (*)(const char *s, size_t len));
/* emacs.c */
int x_emacs(char *buf, size_t len);
void x_init_emacs(void);
void x_emacs_keys(X_chars *ec);
/* vi.c */
int x_vi(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__
#endif /* ndef EDIT_H */