| /* |
| * 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 |
| |
| /* |
| * sed -- stream editor |
| */ |
| |
| #include <ctype.h> |
| #include <locale.h> |
| |
| /* |
| * 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 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 *) __NORETURN; |
| void regerr(int) __NORETURN; |
| #define ERROR(c) regerr(c) |
| void execute(char *); |
| |
| #endif /* _SED_H */ |