diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/ape/cmd/sed/sed.h |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/ape/cmd/sed/sed.h')
-rwxr-xr-x | sys/src/ape/cmd/sed/sed.h | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/sys/src/ape/cmd/sed/sed.h b/sys/src/ape/cmd/sed/sed.h new file mode 100755 index 000000000..ac4481bd8 --- /dev/null +++ b/sys/src/ape/cmd/sed/sed.h @@ -0,0 +1,178 @@ +# +/* + * sed -- stream editor + * + * + */ + +#define CBRA 1 +#define CCHR 2 +#define CDOT 4 +#define CCL 6 +#define CNL 8 +#define CDOL 10 +#define CEOF 11 +#define CKET 12 +#define CNULL 13 +#define CLNUM 14 +#define CEND 16 +#define CDONT 17 +#define CBACK 18 + +#define STAR 01 + +#define NLINES 256 +#define DEPTH 20 +#define PTRSIZE 1024 +#define RESIZE 20000 +#define ABUFSIZE 20 +#define LBSIZE 4000 +#define LABSIZE 50 +#define NBRA 9 + +typedef unsigned char uchar; + +FILE *fin; +union reptr *abuf[ABUFSIZE]; +union reptr **aptr; +uchar *lastre; +uchar ibuf[512]; +uchar *cbp; +uchar *ebp; +uchar genbuf[LBSIZE]; +uchar *loc1; +uchar *loc2; +uchar *locs; +uchar seof; +uchar *reend; +uchar *lbend; +uchar *hend; +uchar *lcomend; +union reptr *ptrend; +int eflag; +int dolflag; +int sflag; +int jflag; +int numbra; +int delflag; +long lnum; +uchar linebuf[LBSIZE+1]; +uchar holdsp[LBSIZE+1]; +uchar *spend; +uchar *hspend; +int nflag; +int gflag; +uchar *braelist[NBRA]; +uchar *braslist[NBRA]; +long tlno[NLINES]; +int nlno; +#define MAXFILES 120 +char fname[MAXFILES][40]; +FILE *fcode[MAXFILES]; +int nfiles; + +#define ACOM 01 +#define BCOM 020 +#define CCOM 02 +#define CDCOM 025 +#define CNCOM 022 +#define COCOM 017 +#define CPCOM 023 +#define DCOM 03 +#define ECOM 015 +#define EQCOM 013 +#define FCOM 016 +#define GCOM 027 +#define CGCOM 030 +#define HCOM 031 +#define CHCOM 032 +#define ICOM 04 +#define LCOM 05 +#define NCOM 012 +#define PCOM 010 +#define QCOM 011 +#define RCOM 06 +#define SCOM 07 +#define TCOM 021 +#define WCOM 014 +#define CWCOM 024 +#define YCOM 026 +#define XCOM 033 + +uchar *cp; +uchar *reend; +uchar *lbend; + +union reptr { + struct reptr1 { + uchar *ad1; + uchar *ad2; + uchar *re1; + uchar *rhs; + FILE *fcode; + uchar command; + uchar gfl; + uchar pfl; + uchar inar; + uchar negfl; + } r1; + struct reptr2 { + uchar *ad1; + uchar *ad2; + union reptr *lb1; + uchar *rhs; + FILE *fcode; + uchar command; + uchar gfl; + uchar pfl; + uchar inar; + uchar negfl; + } r2; +} ptrspace[PTRSIZE], *rep; + + +uchar respace[RESIZE]; + +struct label { + uchar asc[9]; + union reptr *chain; + union reptr *address; +} ltab[LABSIZE]; + +struct label *lab; +struct label *labend; + +int f; +int depth; + +int eargc; +uchar **eargv; + +uchar *address(uchar *); +int advance(uchar *, uchar *); +void arout(void); +extern uchar bittab[]; +uchar bad; +uchar *badp; +int cmp(uchar *, uchar *); +union reptr **cmpend[DEPTH]; +void command(union reptr *); +uchar compfl; +uchar *compile(uchar *); +uchar *compsub(uchar *); +void dechain(void); +int depth; +void dosub(uchar *); +int ecmp(uchar *, uchar *, int); +void execute(uchar *); +void fcomp(void); +uchar *gline(uchar *); +uchar *lformat(int, uchar *); +int match(uchar *, int); +union reptr *pending; +uchar *place(uchar *, uchar *, uchar *); +int rline(uchar *); +struct label *search(struct label *); +int substitute(union reptr *); +uchar *text(uchar *); +uchar *ycomp(uchar *); |