|
|
1.1 root 1: #
2: /*
3: * sed -- stream editor
4: *
5: * Copyright 1975 Bell Telephone Laboratories, Incorporated
6: *
7: * Owner: lem
8: */
9:
10: #define CBRA 1
11: #define CCHR 2
12: #define CDOT 4
13: #define CCL 6
14: #define CNL 8
15: #define CDOL 10
16: #define CEOF 11
17: #define CKET 12
18: #define CNULL 13
19: #define CLNUM 14
20: #define CEND 16
21: #define CDONT 17
22: #define CBACK 18
23:
24: #define STAR 01
25:
26: #define NLINES 256
27: #define DEPTH 20
28: #define PTRSIZE 200
29: #define RESIZE 10000
30: #define ABUFSIZE 20
31: #define LBSIZE 4000
32: #define ESIZE 256
33: #define LABSIZE 50
34: #define NBRA 9
35:
36: FILE *fin;
37: union reptr *abuf[ABUFSIZE];
38: union reptr **aptr;
39: char *lastre;
40: char ibuf[BUFSIZ];
41: char *cbp;
42: char *ebp;
43: char genbuf[LBSIZE];
44: char *loc1;
45: char *loc2;
46: char *locs;
47: char seof;
48: char *reend;
49: char *lbend;
50: char *hend;
51: union reptr *ptrend;
52: int eflag;
53: int dolflag;
54: int sflag;
55: int jflag;
56: int numbra;
57: int delflag;
58: long lnum;
59: char linebuf[LBSIZE+1];
60: char holdsp[LBSIZE+1];
61: char *spend;
62: char *hspend;
63: int nflag;
64: int gflag;
65: char *braelist[NBRA];
66: char *braslist[NBRA];
67: long tlno[NLINES];
68: int nlno;
69: char fname[12][40];
70: FILE *fcode[12];
71: int nfiles;
72:
73: #define ACOM 01
74: #define BCOM 020
75: #define CCOM 02
76: #define CDCOM 025
77: #define CNCOM 022
78: #define COCOM 017
79: #define CPCOM 023
80: #define DCOM 03
81: #define ECOM 015
82: #define EQCOM 013
83: #define FCOM 016
84: #define GCOM 027
85: #define CGCOM 030
86: #define HCOM 031
87: #define CHCOM 032
88: #define ICOM 04
89: #define LCOM 05
90: #define NCOM 012
91: #define PCOM 010
92: #define QCOM 011
93: #define RCOM 06
94: #define SCOM 07
95: #define TCOM 021
96: #define WCOM 014
97: #define CWCOM 024
98: #define YCOM 026
99: #define XCOM 033
100:
101: char *cp;
102: char *reend;
103: char *lbend;
104:
105: union reptr {
106: struct reptr1 {
107: char *ad1;
108: char *ad2;
109: char *re1;
110: char *rhs;
111: FILE *fcode;
112: char command;
113: char gfl;
114: char pfl;
115: char inar;
116: char negfl;
117: } A;
118: struct reptr2 {
119: char *ad1;
120: char *ad2;
121: union reptr *lb1;
122: char *rhs;
123: FILE *fcode;
124: char command;
125: char gfl;
126: char pfl;
127: char inar;
128: char negfl;
129: } B;
130: } ptrspace[PTRSIZE], *rep;
131:
132:
133: char respace[RESIZE];
134:
135: struct label {
136: char asc[9];
137: union reptr *chain;
138: union reptr *address;
139: } ltab[LABSIZE];
140:
141: struct label *lab;
142: struct label *labend;
143:
144: int f;
145: int depth;
146:
147: int eargc;
148: char **eargv;
149:
150: extern char bittab[];
151:
152: union reptr **cmpend[DEPTH];
153: int depth;
154: union reptr *pending;
155: char *badp;
156: char bad;
157: char *compile();
158: char *ycomp();
159: char *address();
160: char *text();
161: char *compsub();
162: struct label *search();
163: char *gline();
164: char *place();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.