diff options
Diffstat (limited to 'chared.h')
-rw-r--r-- | chared.h | 55 |
1 files changed, 32 insertions, 23 deletions
@@ -1,4 +1,4 @@ -/* $NetBSD: chared.h,v 1.6 2001/01/10 07:45:41 jdolecek Exp $ */ +/* $NetBSD: chared.h,v 1.15 2005/08/01 23:00:15 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -15,11 +15,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -66,28 +62,36 @@ typedef struct c_macro_t { int level; + int offset; char **macro; - char *nline; } c_macro_t; /* - * Undo information for both vi and emacs + * Undo information for vi - no undo in emacs (yet) */ typedef struct c_undo_t { - int action; - size_t isize; - size_t dsize; - char *ptr; - char *buf; + int len; /* length of saved line */ + int cursor; /* position of saved cursor */ + char *buf; /* full saved text */ } c_undo_t; +/* redo for vi */ +typedef struct c_redo_t { + char *buf; /* redo insert key sequence */ + char *pos; + char *lim; + el_action_t cmd; /* command to redo */ + char ch; /* char that invoked it */ + int count; + int action; /* from cv_action() */ +} c_redo_t; + /* * Current action information for vi */ typedef struct c_vcmd_t { int action; char *pos; - char *ins; } c_vcmd_t; /* @@ -106,6 +110,7 @@ typedef struct c_kill_t { typedef struct el_chared_t { c_undo_t c_undo; c_kill_t c_kill; + c_redo_t c_redo; c_vcmd_t c_vcmd; c_macro_t c_macro; } el_chared_t; @@ -120,10 +125,10 @@ typedef struct el_chared_t { #define NOP 0x00 #define DELETE 0x01 #define INSERT 0x02 -#define CHANGE 0x04 +#define YANK 0x04 -#define CHAR_FWD 0 -#define CHAR_BACK 1 +#define CHAR_FWD (+1) +#define CHAR_BACK (-1) #define MODE_INSERT 0 #define MODE_REPLACE 1 @@ -137,23 +142,27 @@ typedef struct el_chared_t { protected int cv__isword(int); +protected int cv__isWord(int); protected void cv_delfini(EditLine *); -protected char *cv__endword(char *, char *, int); +protected char *cv__endword(char *, char *, int, int (*)(int)); protected int ce__isword(int); -protected void cv_undo(EditLine *, int, size_t, char *); +protected void cv_undo(EditLine *); +protected void cv_yank(EditLine *, const char *, int); protected char *cv_next_word(EditLine*, char *, char *, int, int (*)(int)); -protected char *cv_prev_word(EditLine*, char *, char *, int, int (*)(int)); +protected char *cv_prev_word(char *, char *, int, int (*)(int)); protected char *c__next_word(char *, char *, int, int (*)(int)); protected char *c__prev_word(char *, char *, int, int (*)(int)); protected void c_insert(EditLine *, int); protected void c_delbefore(EditLine *, int); +protected void c_delbefore1(EditLine *); protected void c_delafter(EditLine *, int); -protected int c_gets(EditLine *, char *); +protected void c_delafter1(EditLine *); +protected int c_gets(EditLine *, char *, const char *); protected int c_hpos(EditLine *); protected int ch_init(EditLine *); -protected void ch_reset(EditLine *); -protected int ch_enlargebufs __P((EditLine *, size_t)); +protected void ch_reset(EditLine *, int); +protected int ch_enlargebufs(EditLine *, size_t); protected void ch_end(EditLine *); #endif /* _h_el_chared */ |