/*
* 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 <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 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 */