/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1984 AT&T */ /* All Rights Reserved */ #ifndef _SED_H #define _SED_H #pragma ident "%Z%%M% %I% %E% SMI" /* * sed -- stream editor */ #include #include /* * define some macros for rexexp.h */ #define INIT extern char *cp; /* cp points to RE string */\ register char *sp = cp; #define GETC() (*sp++) #define PEEKC() (*sp) #define UNGETC(c) (--sp) #define RETURN(c) cp = sp; return(ep); #define ERROR(c) regerr(c) #define CEND 16 #define CLNUM 14 #define NLINES 256 #define DEPTH 20 #define PTRSIZE 200 #define RESIZE 10000 #define ABUFSIZE 20 #define LBSIZE 4000 #define ESIZE 256 #define LABSIZE 50 extern union reptr *abuf[]; extern union reptr **aptr; extern char genbuf[]; extern char *lcomend; extern long long lnum; extern char linebuf[]; extern char holdsp[]; extern char *spend; extern char *hspend; extern int nflag; extern long long tlno[]; #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 union reptr { struct reptr1 { char *ad1; char *ad2; char *re1; char *rhs; FILE *fcode; char command; int gfl; char pfl; char inar; char negfl; } r1; struct reptr2 { char *ad1; char *ad2; union reptr *lb1; char *rhs; FILE *fcode; char command; int gfl; char pfl; char inar; char negfl; } r2; }; extern union reptr ptrspace[]; struct label { char asc[9]; union reptr *chain; union reptr *address; }; extern int eargc; extern union reptr *pending; char *compile(); char *ycomp(); char *address(); char *text(); char *compsub(); struct label *search(); char *gline(); char *place(); void comperr(char *); void execute(char *); #endif /* _SED_H */