1*35137Smarc /* 2*35137Smarc 3*35137Smarc * Copyright (c) 1984, 1985, 1986 AT&T 4*35137Smarc * All Rights Reserved 5*35137Smarc 6*35137Smarc * THIS IS UNPUBLISHED PROPRIETARY SOURCE 7*35137Smarc * CODE OF AT&T. 8*35137Smarc * The copyright notice above does not 9*35137Smarc * evidence any actual or intended 10*35137Smarc * publication of such source code. 11*35137Smarc 12*35137Smarc */ 13*35137Smarc 14*35137Smarc /* @(#)edit.h 1.1 */ 15*35137Smarc 16*35137Smarc /* 17*35137Smarc * edit.h - common data structure for vi and emacs edit options 18*35137Smarc * 19*35137Smarc * David Korn 20*35137Smarc * AT&T Bell Laboratories 21*35137Smarc * Room 5D-112 22*35137Smarc * Murray Hill, N. J. 07974 23*35137Smarc * Tel. x7975 24*35137Smarc * 25*35137Smarc */ 26*35137Smarc 27*35137Smarc #define LOOKAHEAD 80 28*35137Smarc #ifdef VENIX 29*35137Smarc #define READAHEAD 1 30*35137Smarc #else 31*35137Smarc #define READAHEAD LOOKAHEAD 32*35137Smarc #endif /* VENIX */ 33*35137Smarc 34*35137Smarc #ifdef MULTIBYTE 35*35137Smarc # ifndef ESS_MAXCHAR 36*35137Smarc # include "national.h" 37*35137Smarc # endif /* ESS_MAXCHAR */ 38*35137Smarc # if ESS_MAXCHAR<=2 39*35137Smarc typedef unsigned short genchar; 40*35137Smarc # else 41*35137Smarc typedef long genchar; 42*35137Smarc # endif 43*35137Smarc #define CHARSIZE 2 44*35137Smarc #else 45*35137Smarc typedef char genchar; 46*35137Smarc #define CHARSIZE 1 47*35137Smarc #endif /* MULTIBYTE */ 48*35137Smarc 49*35137Smarc struct edit 50*35137Smarc { 51*35137Smarc int e_kill; 52*35137Smarc int e_erase; 53*35137Smarc int e_eof; 54*35137Smarc int e_fchar; 55*35137Smarc char e_plen; /* length of prompt string */ 56*35137Smarc char e_crlf; /* zero if cannot return to beginning of line */ 57*35137Smarc jmp_buf e_env; 58*35137Smarc int e_llimit; /* line length limit */ 59*35137Smarc int e_hline; /* current history line number */ 60*35137Smarc int e_hloff; /* line number offset for command */ 61*35137Smarc int e_hismin; /* minimum history line number */ 62*35137Smarc int e_hismax; /* maximum history line number */ 63*35137Smarc int e_raw; /* set when in raw mode or alt mode */ 64*35137Smarc int e_cur; /* current line position */ 65*35137Smarc int e_eol; /* end-of-line position */ 66*35137Smarc int e_pcur; /* current physical line position */ 67*35137Smarc int e_peol; /* end of physical line position */ 68*35137Smarc int e_mode; /* edit mode */ 69*35137Smarc int e_index; /* index in look-ahead buffer */ 70*35137Smarc int e_repeat; 71*35137Smarc int e_saved; 72*35137Smarc int e_fcol; /* first column */ 73*35137Smarc int e_ucol; /* column for undo */ 74*35137Smarc int e_addnl; /* set if new-line must be added */ 75*35137Smarc int e_wsize; /* width of display window */ 76*35137Smarc unsigned char *e_outptr; /* pointer with output buffer */ 77*35137Smarc genchar *e_inbuf; /* pointer to input buffer */ 78*35137Smarc char *e_prompt; /* pointer to buffer containing the prompt */ 79*35137Smarc genchar *e_ubuf; /* pointer to the undo buffer */ 80*35137Smarc genchar *e_tmp; /* temporary workspace buffer */ 81*35137Smarc char *e_search; /* temporary workspace buffer */ 82*35137Smarc genchar *e_Ubuf; /* temporary workspace buffer */ 83*35137Smarc genchar *e_physbuf; /* temporary workspace buffer */ 84*35137Smarc int e_lbuf[LOOKAHEAD];/* pointer to look-ahead buffer */ 85*35137Smarc int e_fd; /* file descriptor */ 86*35137Smarc int e_ttyspeed; /* line speed, also indicates tty parms are valid */ 87*35137Smarc int *e_globals; /* global variables */ 88*35137Smarc genchar *e_window; /* display window image */ 89*35137Smarc char e_inmacro; /* processing macro expansion */ 90*35137Smarc }; 91*35137Smarc 92*35137Smarc #define FEMAX 50 /* maximum number of file matches for q_expand */ 93*35137Smarc #define MAXWINDOW 160 /* maximum width window */ 94*35137Smarc #define MINWINDOW 20 /* minimum width window */ 95*35137Smarc #define DFLTWINDOW 80 /* default window width */ 96*35137Smarc #define MAXPAT 100 /* maximum length for pattern word */ 97*35137Smarc #define YES 1 98*35137Smarc #define NO 0 99*35137Smarc #define FAST 2 100*35137Smarc #define SLOW 1 101*35137Smarc #define RAWMODE 1 102*35137Smarc #define ALTMODE 2 103*35137Smarc #define DELETE '\177' 104*35137Smarc #define BELL '\7' 105*35137Smarc #define ESC 033 106*35137Smarc #define UEOF -2 /* user eof char synonym */ 107*35137Smarc #define UERASE -3 /* user erase char synonym */ 108*35137Smarc #define UINTR -4 /* user intr char synonym */ 109*35137Smarc #define UKILL -5 /* user kill char synonym */ 110*35137Smarc #define UQUIT -6 /* user quit char synonym */ 111*35137Smarc 112*35137Smarc #define cntl(x) ('x'&037) 113*35137Smarc 114*35137Smarc #ifndef KSHELL 115*35137Smarc #define STRIP 0377 116*35137Smarc #define TO_PRINT 0100 117*35137Smarc #define GMACS 1 118*35137Smarc #define EMACS 2 119*35137Smarc #define VIRAW 4 120*35137Smarc #define EDITVI 8 121*35137Smarc #define NOHIST 16 122*35137Smarc #define EDITMASK 15 123*35137Smarc #define is_option(m) (opt_flag&(m)) 124*35137Smarc extern char opt_flag; 125*35137Smarc #define read(fd,buff,n) syscall(3,fd,buff,n) 126*35137Smarc #endif /* KSHELL */ 127*35137Smarc 128*35137Smarc extern void setcooked(); 129*35137Smarc extern struct edit editb; 130*35137Smarc extern MSG big_vi; 131*35137Smarc extern MSG version; 132