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