xref: /titanic_44/usr/src/ucbcmd/sed/sed.h (revision 1a7c1b724419d3cb5fa6eea75123c6b2060ba31b)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * Copyright 1996 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 /*	Copyright (c) 1984 AT&T	*/
28 /*	  All Rights Reserved  	*/
29 
30 #pragma ident	"%Z%%M%	%I%	%E% SMI"	/* from S5R3.1 1.8	*/
31 
32 /*
33  * sed -- stream  editor
34  */
35 
36 #include <ctype.h>
37 #include <locale.h>
38 
39 /*
40  * define some macros for rexexp.h
41  */
42 
43 #define INIT	extern char *cp;	/* cp points to RE string */\
44 		register char *sp = cp;
45 #define GETC()		(*sp++)
46 #define PEEKC()		(*sp)
47 #define UNGETC(c)	(--sp)
48 #define RETURN(c)	cp = sp; return(ep);
49 #define ERROR(c)	regerr(c)
50 
51 #define CEND	16
52 #define CLNUM	14
53 
54 #define NLINES  256
55 #define DEPTH   20
56 #define PTRSIZE 200
57 #define RESIZE  10000
58 #define ABUFSIZE        20
59 #define LBSIZE  4000
60 #define ESIZE   256
61 #define LABSIZE 50
62 
63 extern union reptr     *abuf[];
64 extern union reptr **aptr;
65 extern char    genbuf[];
66 extern char	*lcomend;
67 extern long long lnum;
68 extern char    linebuf[];
69 extern char    holdsp[];
70 extern char    *spend;
71 extern char    *hspend;
72 extern int     nflag;
73 extern long long tlno[];
74 
75 #define ACOM    01
76 #define BCOM    020
77 #define CCOM    02
78 #define CDCOM   025
79 #define CNCOM   022
80 #define COCOM   017
81 #define CPCOM   023
82 #define DCOM    03
83 #define ECOM    015
84 #define EQCOM   013
85 #define FCOM    016
86 #define GCOM    027
87 #define CGCOM   030
88 #define HCOM    031
89 #define CHCOM   032
90 #define ICOM    04
91 #define LCOM    05
92 #define NCOM    012
93 #define PCOM    010
94 #define QCOM    011
95 #define RCOM    06
96 #define SCOM    07
97 #define TCOM    021
98 #define WCOM    014
99 #define CWCOM   024
100 #define YCOM    026
101 #define XCOM    033
102 
103 
104 union   reptr {
105         struct reptr1 {
106                 char    *ad1;
107                 char    *ad2;
108                 char    *re1;
109                 char    *rhs;
110                 FILE    *fcode;
111                 char    command;
112                 int    gfl;
113                 char    pfl;
114                 char    inar;
115                 char    negfl;
116         } r1;
117         struct reptr2 {
118                 char    *ad1;
119                 char    *ad2;
120                 union reptr     *lb1;
121                 char    *rhs;
122                 FILE    *fcode;
123                 char    command;
124                 int    gfl;
125                 char    pfl;
126                 char    inar;
127                 char    negfl;
128         } r2;
129 };
130 extern union reptr ptrspace[];
131 
132 
133 
134 struct label {
135         char    asc[9];
136         union reptr     *chain;
137         union reptr     *address;
138 };
139 
140 
141 
142 extern int     eargc;
143 
144 extern union reptr     *pending;
145 char    *compile();
146 char    *ycomp();
147 char    *address();
148 char    *text();
149 char    *compsub();
150 struct label    *search();
151 char    *gline();
152 char    *place();
153