V9/cmd/emacs/emacs_cmds.h
/* word and sentence stuff */
/* EMACS_MODES: c !fill */
#define WRDSEP 01 /* separates words */
#define WRDCHR 02 /* makes words */
#define WHITE 04 /* white space */
#define SENTE 010 /* ends sentences */
char bits[128] = {
05, 01, 01, 01, 01, 01, 01, 01,
01, 05, 05, 01, 01, 05, 01, 01,
01, 01, 01, 01, 01, 01, 01, 01,
01, 01, 01, 01, 01, 01, 01, 01,
05, 011, 01, 01, 01, 01, 01, 03,
01, 01, 01, 01, 01, 01, 011, 01,
02, 02, 02, 02, 02, 02, 02, 02,
02, 02, 011, 01, 01, 01, 01, 011,
03, 02, 02, 02, 02, 02, 02, 02,
02, 02, 02, 02, 02, 02, 02, 02,
02, 02, 02, 02, 02, 02, 02, 02,
02, 02, 02, 01, 01, 01, 01, 01,
02, 02, 02, 02, 02, 02, 02, 02,
02, 02, 02, 02, 02, 02, 02, 02,
02, 02, 02, 02, 02, 02, 02, 02,
02, 02, 02, 01, 01, 01, 01, 01,
};
char casem[128];
/* mark stuff */
#define MARK struct markst
struct markst {
int markl;
int markc;
};
#define NMARKS 16
struct markst marks[NMARKS];
/* command execution status */
int cstatus; /* status from command */
/* modes */
int FILLMD = 1;
int FILLCOL = 72;
int SAVEMD = 0;
int SAVECHAR = 256;
int NSCHAR = 0;
int NLINS = 0;
int NOCASE = 0; /* caseless search */
int CKMAIL = 100; /* check mail interval */
int NLRUN = 0;
int USILENT = 0; /* invisible unix commands */
int NOECHO = 0; /* don't echo unix commands */
int srch_nl = 0; /* Terminate search on newline */
/* C mode stuff */
int comcol = 40;
int comln = 0;
int TABMD = 0;
int BACKP = 0;
int AUTOLOAD = 1;
/* mode edit data */
struct mdata {
char *modename;
int *modeloc;
char modetype;
char moderset;
};
#define ONOFF 1
#define INT 2
/* parameters that describe what should be reset following mode display */
#define DISPLAY 1 /* re-display */
#define DSIZE 2 /* re-format display */
#define CSE 4 /* re-compute case map */
#define CTYPE 8 /* Need to recompute display types */
extern int BINMODE;
extern int LNOWID;
extern int LNOMOD;
extern int TABSTOP;
extern int NOBEL;
extern int keepg;
extern int kbapp;
extern int ttywarp;
extern int NOTABS;
extern int ctlify;
extern int CONCHAR;
extern int PMODE;
extern int FLOWMIN;
extern int EOFNL;
extern int ttcnt;
#ifdef PC
extern int NORMATB;
#endif
int savelink = 0;
int timemd = 0;
int VERBOSE = 1;
int OVERW = 0;
int READONLY = 0;
extern int bit8;
extern int hcol;
struct mdata mdata[] = {
"save",&SAVEMD,ONOFF,0,
"savetype",&SAVECHAR,INT,0,
"fill",&FILLMD,ONOFF,0,
"lnumb",&LNOMOD,ONOFF,DISPLAY,
"c",&TABMD,ONOFF,0,
"tabstop",&TABSTOP,INT,DISPLAY,
"comcol",&comcol,INT,0,
"fillcol",&FILLCOL,INT,0,
"height",&SCRLINES,INT,DISPLAY+DSIZE,
"width", &SCRWID,INT,DISPLAY+DSIZE,
"backspace",&BACKP,ONOFF,DISPLAY|CTYPE,
"time",&timemd,ONOFF,0,
"verbose",&VERBOSE,ONOFF,0,
"overwrite",&OVERW,ONOFF,0,
"nobell", &NOBEL, ONOFF,0,
"lnowid", &LNOWID, INT,DISPLAY,
"keepscroll", &keepg, INT,DISPLAY,
"rigid_newline", &NLINS, ONOFF, 0,
"caseless", &NOCASE, ONOFF, CSE,
"mailtype",&CKMAIL, INT, 0,
"end_newline",&NLRUN, ONOFF, 0,
#ifdef PC
"binary",&BINMODE, ONOFF, 0,
"attrib",&NORMATB, INT, DISPLAY,
#else
"tspeed",&ttywarp, INT, 0,
#endif PC
"usilent",&USILENT, ONOFF, 0,
"noecho",&NOECHO, ONOFF, 0,
"readonly",&READONLY, ONOFF, 0,
"notabs",&NOTABS, ONOFF, DISPLAY|CTYPE,
"controlify",&ctlify,ONOFF,0,
"ctl_char",&CONCHAR, INT, 0,
"display_percent",&PMODE,ONOFF,0,
"picture",&PICMODE,ONOFF,DISPLAY,
"nodelete",&NODEL,ONOFF,0,
"flow_lim",&FLOWMIN,INT,0,
"eofnl",&EOFNL,ONOFF,0,
"savelink",&savelink,ONOFF,0,
"search_newline",&srch_nl,ONOFF,0,
"autoload",&AUTOLOAD,ONOFF,0,
"7bit_ascii",&bit8,ONOFF,DISPLAY|CTYPE,
"leftmargin",&hcol,INT,DISPLAY,
};
#define NMODES (sizeof(mdata) / sizeof(struct mdata))
#define NMAC 31 /* Macro hash table size */
int machash[NMAC];
#define MACEXIT if (infrn>=0) return(0)
/* saved search and replace strings */
char presst[128];
char rstring[128];
/* function defns */
MARK *markptr();
extern int junked;
extern int numarg;
char *mstrcpy();
char *expenv();
char *getenv();
extern FILE *fdopen();
extern int loc2;
extern char *endput;
extern int macptr;
extern int fbkno;
extern char *inget();
extern char *nscan();
extern char *hmap();
extern int curbf;
extern int nln;
extern int ncol;
extern int wbase;
extern int etrace;
extern char ctype[];
extern int metal;