/* * Copyright (c) 1984, 1985, 1986 AT&T * All Rights Reserved * THIS IS UNPUBLISHED PROPRIETARY SOURCE * CODE OF AT&T. * The copyright notice above does not * evidence any actual or intended * publication of such source code. */ /* @(#)edit.h 1.1 */ /* * edit.h - common data structure for vi and emacs edit options * * David Korn * AT&T Bell Laboratories * Room 5D-112 * Murray Hill, N. J. 07974 * Tel. x7975 * */ #define LOOKAHEAD 80 #ifdef VENIX #define READAHEAD 1 #else #define READAHEAD LOOKAHEAD #endif /* VENIX */ #ifdef MULTIBYTE # ifndef ESS_MAXCHAR # include "national.h" # endif /* ESS_MAXCHAR */ # if ESS_MAXCHAR<=2 typedef unsigned short genchar; # else typedef long genchar; # endif #define CHARSIZE 2 #else typedef char genchar; #define CHARSIZE 1 #endif /* MULTIBYTE */ struct edit { int e_kill; int e_erase; int e_eof; int e_fchar; char e_plen; /* length of prompt string */ char e_crlf; /* zero if cannot return to beginning of line */ jmp_buf e_env; int e_llimit; /* line length limit */ int e_hline; /* current history line number */ int e_hloff; /* line number offset for command */ int e_hismin; /* minimum history line number */ int e_hismax; /* maximum history line number */ int e_raw; /* set when in raw mode or alt mode */ int e_cur; /* current line position */ int e_eol; /* end-of-line position */ int e_pcur; /* current physical line position */ int e_peol; /* end of physical line position */ int e_mode; /* edit mode */ int e_index; /* index in look-ahead buffer */ int e_repeat; int e_saved; int e_fcol; /* first column */ int e_ucol; /* column for undo */ int e_addnl; /* set if new-line must be added */ int e_wsize; /* width of display window */ unsigned char *e_outptr; /* pointer with output buffer */ genchar *e_inbuf; /* pointer to input buffer */ char *e_prompt; /* pointer to buffer containing the prompt */ genchar *e_ubuf; /* pointer to the undo buffer */ genchar *e_tmp; /* temporary workspace buffer */ char *e_search; /* temporary workspace buffer */ genchar *e_Ubuf; /* temporary workspace buffer */ genchar *e_physbuf; /* temporary workspace buffer */ int e_lbuf[LOOKAHEAD];/* pointer to look-ahead buffer */ int e_fd; /* file descriptor */ int e_ttyspeed; /* line speed, also indicates tty parms are valid */ int *e_globals; /* global variables */ genchar *e_window; /* display window image */ char e_inmacro; /* processing macro expansion */ }; #define FEMAX 50 /* maximum number of file matches for q_expand */ #define MAXWINDOW 160 /* maximum width window */ #define MINWINDOW 20 /* minimum width window */ #define DFLTWINDOW 80 /* default window width */ #define MAXPAT 100 /* maximum length for pattern word */ #define YES 1 #define NO 0 #define FAST 2 #define SLOW 1 #define RAWMODE 1 #define ALTMODE 2 #define DELETE '\177' #define BELL '\7' #define ESC 033 #define UEOF -2 /* user eof char synonym */ #define UERASE -3 /* user erase char synonym */ #define UINTR -4 /* user intr char synonym */ #define UKILL -5 /* user kill char synonym */ #define UQUIT -6 /* user quit char synonym */ #define cntl(x) ('x'&037) #ifndef KSHELL #define STRIP 0377 #define TO_PRINT 0100 #define GMACS 1 #define EMACS 2 #define VIRAW 4 #define EDITVI 8 #define NOHIST 16 #define EDITMASK 15 #define is_option(m) (opt_flag&(m)) extern char opt_flag; #define read(fd,buff,n) syscall(3,fd,buff,n) #endif /* KSHELL */ extern void setcooked(); extern struct edit editb; extern MSG big_vi; extern MSG version;