diff options
Diffstat (limited to 'lib/libedit/el.h')
-rw-r--r-- | lib/libedit/el.h | 95 |
1 files changed, 54 insertions, 41 deletions
diff --git a/lib/libedit/el.h b/lib/libedit/el.h index 9514a70..dc1d257 100644 --- a/lib/libedit/el.h +++ b/lib/libedit/el.h @@ -34,60 +34,65 @@ * SUCH DAMAGE. * * @(#)el.h 8.1 (Berkeley) 6/4/93 + * $NetBSD: el.h,v 1.7 2000/11/11 22:18:57 christos Exp $ + * $FreeBSD$ */ /* * el.h: Internal structures. */ #ifndef _h_el -#define _h_el +#define _h_el /* * Local defaults */ -#define KSHVI -#define VIDEFAULT -#define ANCHOR +#define KSHVI +#define VIDEFAULT +#define ANCHOR #include <stdio.h> #include <sys/types.h> -#define EL_BUFSIZ 1024 /* Maximum line size */ +#define EL_BUFSIZ 1024 /* Maximum line size */ -#define HANDLE_SIGNALS 1 +#define HANDLE_SIGNALS 1<<0 +#define NO_TTY 1<<1 +#define EDIT_DISABLED 1<<2 typedef int bool_t; /* True or not */ typedef unsigned char el_action_t; /* Index to command array */ typedef struct coord_t { /* Position on the screen */ - int h, v; + int h; + int v; } coord_t; typedef struct el_line_t { - char *buffer, /* Input line */ - *cursor, /* Cursor position */ - *lastchar, /* Last character */ - *limit; /* Max position */ + char *buffer; /* Input line */ + char *cursor; /* Cursor position */ + char *lastchar; /* Last character */ + const char *limit; /* Max position */ } el_line_t; /* * Editor state */ typedef struct el_state_t { - int inputmode; /* What mode are we in? */ - int doingarg; /* Are we getting an argument? */ - int argument; /* Numeric argument */ - int metanext; /* Is the next char a meta char */ - el_action_t lastcmd; /* Previous command */ + int inputmode; /* What mode are we in? */ + int doingarg; /* Are we getting an argument? */ + int argument; /* Numeric argument */ + int metanext; /* Is the next char a meta char */ + el_action_t lastcmd; /* Previous command */ } el_state_t; /* * Until we come up with something better... */ -#define el_malloc(a) malloc(a) -#define el_realloc(a,b) realloc(a, b) +#define el_malloc(a) malloc(a) +#define el_realloc(a,b) realloc(a, b) #define el_reallocf(a,b) reallocf(a, b) -#define el_free(a) free(a) +#define el_free(a) free(a) #include "tty.h" #include "prompt.h" @@ -104,29 +109,37 @@ typedef struct el_state_t { #include "help.h" struct editline { - char *el_prog; /* the program name */ - FILE *el_outfile; /* Stdio stuff */ - FILE *el_errfile; /* Stdio stuff */ - int el_infd; /* Input file descriptor */ - int el_flags; /* Various flags. */ - coord_t el_cursor; /* Cursor location */ - char **el_display, /* Real screen image = what is there */ - **el_vdisplay; /* Virtual screen image = what we see */ + char *el_prog; /* the program name */ + FILE *el_outfile; /* Stdio stuff */ + FILE *el_errfile; /* Stdio stuff */ + int el_infd; /* Input file descriptor */ + int el_flags; /* Various flags. */ + coord_t el_cursor; /* Cursor location */ + char **el_display; /* Real screen image = what is there */ + char **el_vdisplay; /* Virtual screen image = what we see */ + el_line_t el_line; /* The current line information */ + el_state_t el_state; /* Current editor state */ + el_term_t el_term; /* Terminal dependent stuff */ + el_tty_t el_tty; /* Tty dependent stuff */ + el_refresh_t el_refresh; /* Refresh stuff */ + el_prompt_t el_prompt; /* Prompt stuff */ + el_prompt_t el_rprompt; /* Prompt stuff */ + el_chared_t el_chared; /* Characted editor stuff */ + el_map_t el_map; /* Key mapping stuff */ + el_key_t el_key; /* Key binding stuff */ + el_history_t el_history; /* History stuff */ + el_search_t el_search; /* Search stuff */ + el_signal_t el_signal; /* Signal handling stuff */ - el_line_t el_line; /* The current line information */ - el_state_t el_state; /* Current editor state */ - el_term_t el_term; /* Terminal dependent stuff */ - el_tty_t el_tty; /* Tty dependent stuff */ - el_refresh_t el_refresh; /* Refresh stuff */ - el_prompt_t el_prompt; /* Prompt stuff */ - el_chared_t el_chared; /* Characted editor stuff */ - el_map_t el_map; /* Key mapping stuff */ - el_key_t el_key; /* Key binding stuff */ - el_history_t el_history; /* History stuff */ - el_search_t el_search; /* Search stuff */ - el_signal_t el_signal; /* Signal handling stuff */ - - void *data; /* user data */ + void *data; /* user data */ }; +protected int el_editmode(EditLine *, int, char **); + +#ifdef DEBUG +#define EL_ABORT(a) (void) (fprintf(el->el_errfile, "%s, %d: ", \ + __FILE__, __LINE__), fprintf a, abort()) +#else +#define EL_ABORT(a) abort() +#endif #endif /* _h_el */ |