#include "stdio.h" #include "ed.h" #ifndef GOOD #define GOOD 0 #endif #ifdef OWNER #define Extern #else #define Extern extern #endif Extern int currow; /* Working cursor row */ Extern int curcol; /* Working cursor column */ Extern int fillcol; /* Current fill column */ Extern int thisflag; /* Flags, this command */ Extern int lastflag; /* Flags, last command */ Extern int curgoal; /* Goal column */ Extern BUFFER *curbp; /* Current buffer */ Extern WINDOW *curwp; /* Current window */ Extern BUFFER *bheadp; /* BUFFER listhead */ Extern WINDOW *wheadp; /* WINDOW listhead */ Extern BUFFER *blistp; /* Buffer list BUFFER */ /* Extern short kbdm[NKBDM] /* #ifdef OWNER /* = { CTLX|')', 0 } /* #endif /* ; /* Macro */ /* Extern short *kbdmip; /* Input for above */ /* Extern short *kbdmop; /* Output for above */ Extern char pat[NPAT]; /* Pattern */ typedef struct { short k_code; /* Key code */ int (*k_fp)(); /* Routine to handle it */ } KEYTAB; typedef struct { short k_code; /* same as KEYTAB */ char ovcode; /* which overlay. */ char ovparm; /* which routine in overlay. */ } OVERTAB; extern int ctrlg(); /* Abort out of things */ extern int quit(); /* Quit */ extern int getccol(); /* Get current column */ extern int gotobol(); /* Move to start of line */ extern int forwchar(); /* Move forward by characters */ extern int gotoeol(); /* Move to end of line */ extern int backchar(); /* Move backward by characters */ extern int setfillcol(); /* Set fill column. */ extern int tab(); /* Insert tab */ extern int newline(); /* Insert CR-LF */ extern int backword(); /* Backup by words */ extern int forwword(); /* Advance by words */ extern int forwdel(); /* Forward delete */ extern int backdel(); /* Backward delete */ extern int delfword(); /* Delete forward word. */ extern int delbword(); /* Delete backward word. */ extern int quickexit(); /* low keystroke style exit. */ extern char *strcpy(); /* copy string */ extern KEYTAB keytab[]; extern int NKEYTAB; extern OVERTAB overtab[]; extern int NOVERTAB;  .