summaryrefslogtreecommitdiff
path: root/usr/src/ucbhead
diff options
context:
space:
mode:
authorGarrett D'Amore <Garrett.Damore@Sun.COM>2009-10-10 12:41:46 -0700
committerGarrett D'Amore <Garrett.Damore@Sun.COM>2009-10-10 12:41:46 -0700
commit838c28f8478fa1760801af9a06c2b1f912d6709d (patch)
tree65934e61788bf4722c9352b0f42df72591d3b942 /usr/src/ucbhead
parent4468e2cfe87530e52052b7a809d4fdf877eabe25 (diff)
downloadillumos-joyent-838c28f8478fa1760801af9a06c2b1f912d6709d.tar.gz
6889898 ucb lint libraries and headers should go go go (fix unref)
Diffstat (limited to 'usr/src/ucbhead')
-rw-r--r--usr/src/ucbhead/regexp.h549
1 files changed, 0 insertions, 549 deletions
diff --git a/usr/src/ucbhead/regexp.h b/usr/src/ucbhead/regexp.h
deleted file mode 100644
index 5d0e0cccb1..0000000000
--- a/usr/src/ucbhead/regexp.h
+++ /dev/null
@@ -1,549 +0,0 @@
-/*
- * 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 1997 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
-/*
- * University Copyright- Copyright (c) 1982, 1986, 1988
- * The Regents of the University of California
- * All Rights Reserved
- *
- * University Acknowledgment- Portions of this document are derived from
- * software developed by the University of California, Berkeley, and its
- * contributors.
- */
-
-#ifndef _REGEXP_H
-#define _REGEXP_H
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <ctype.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define CBRA 2
-#define CCHR 4
-#define CDOT 8
-#define CCL 12
-#define CXCL 16
-#define CDOL 20
-#define CCEOF 22
-#define CKET 24
-#define CBACK 36
-#define NCCL 40
-
-#define STAR 01
-#define RNGE 03
-
-#define NBRA 9
-
-#define PLACE(c) ep[c >> 3] |= bittab[c & 07]
-#define ISTHERE(c) (ep[c >> 3] & bittab[c & 07])
-#define ecmp(s1, s2, n) (strncmp(s1, s2, n) == 0)
-
-static char *braslist[NBRA];
-static char *braelist[NBRA];
-int sed, nbra;
-char *loc1, *loc2, *locs;
-static int nodelim;
-
-int circf;
-static int low;
-static int size;
-
-static char bittab[] = { 1, 2, 4, 8, 16, 32, 64, 128 };
-
-char *
-compile(instring, ep, endbuf, seof)
-char *ep;
-char *instring, *endbuf;
-{
- INIT /* Dependent declarations and initializations */
- int c;
- int eof = seof;
- char *lastep = instring;
- int cclcnt;
- char bracket[NBRA], *bracketp;
- int closed;
- int neg;
- int lc;
- int i, cflg;
- int iflag; /* used for non-ascii characters in brackets */
-
- lastep = 0;
- if ((c = GETC()) == eof || c == '\n') {
- if (c == '\n') {
- UNGETC(c);
- nodelim = 1;
- }
- if (*ep == 0 && !sed)
- ERROR(41);
- RETURN(ep);
- }
- bracketp = bracket;
- circf = closed = nbra = 0;
- if (c == '^')
- circf++;
- else
- UNGETC(c);
- while (1) {
- if (ep >= endbuf)
- ERROR(50);
- c = GETC();
- if (c != '*' && ((c != '\\') || (PEEKC() != '{')))
- lastep = ep;
- if (c == eof) {
- *ep++ = CCEOF;
- if (bracketp != bracket)
- ERROR(42);
- RETURN(ep);
- }
- switch (c) {
-
- case '.':
- *ep++ = CDOT;
- continue;
-
- case '\n':
- if (!sed) {
- UNGETC(c);
- *ep++ = CCEOF;
- nodelim = 1;
- if (bracketp != bracket)
- ERROR(42);
- RETURN(ep);
- } else ERROR(36);
- case '*':
- if (lastep == 0 || *lastep == CBRA || *lastep == CKET)
- goto defchar;
- *lastep |= STAR;
- continue;
-
- case '$':
- if (PEEKC() != eof && PEEKC() != '\n')
- goto defchar;
- *ep++ = CDOL;
- continue;
-
- case '[':
- if (&ep[17] >= endbuf)
- ERROR(50);
-
- *ep++ = CCL;
- lc = 0;
- for (i = 0; i < 16; i++)
- ep[i] = 0;
-
- neg = 0;
- if ((c = GETC()) == '^') {
- neg = 1;
- c = GETC();
- }
- iflag = 1;
- do {
- c &= 0377;
- if (c == '\0' || c == '\n')
- ERROR(49);
- if ((c & 0200) && iflag) {
- iflag = 0;
- if (&ep[32] >= endbuf)
- ERROR(50);
- ep[-1] = CXCL;
- for (i = 16; i < 32; i++)
- ep[i] = 0;
- }
- if (c == '-' && lc != 0) {
- if ((c = GETC()) == ']') {
- PLACE('-');
- break;
- }
- if ((c & 0200) && iflag) {
- iflag = 0;
- if (&ep[32] >= endbuf)
- ERROR(50);
- ep[-1] = CXCL;
- for (i = 16; i < 32; i++)
- ep[i] = 0;
- }
- while (lc < c) {
- PLACE(lc);
- lc++;
- }
- }
- lc = c;
- PLACE(c);
- } while ((c = GETC()) != ']');
-
- if (iflag)
- iflag = 16;
- else
- iflag = 32;
-
- if (neg) {
- if (iflag == 32) {
- for (cclcnt = 0; cclcnt < iflag;
- cclcnt++)
- ep[cclcnt] ^= 0377;
- ep[0] &= 0376;
- } else {
- ep[-1] = NCCL;
- /* make nulls match so test fails */
- ep[0] |= 01;
- }
- }
-
- ep += iflag;
-
- continue;
-
- case '\\':
- switch (c = GETC()) {
-
- case '(':
- if (nbra >= NBRA)
- ERROR(43);
- *bracketp++ = nbra;
- *ep++ = CBRA;
- *ep++ = nbra++;
- continue;
-
- case ')':
- if (bracketp <= bracket)
- ERROR(42);
- *ep++ = CKET;
- *ep++ = *--bracketp;
- closed++;
- continue;
-
- case '{':
- if (lastep == (char *) 0)
- goto defchar;
- *lastep |= RNGE;
- cflg = 0;
- nlim:
- c = GETC();
- i = 0;
- do {
- if ('0' <= c && c <= '9')
- i = 10 * i + c - '0';
- else
- ERROR(16);
- } while (((c = GETC()) != '\\') && (c != ','));
- if (i >= 255)
- ERROR(11);
- *ep++ = i;
- if (c == ',') {
- if (cflg++)
- ERROR(44);
- if ((c = GETC()) == '\\')
- *ep++ = 255;
- else {
- UNGETC(c);
- goto nlim;
- /* get 2'nd number */
- }
- }
- if (GETC() != '}')
- ERROR(45);
- if (!cflg) /* one number */
- *ep++ = i;
- else if ((ep[-1] & 0377) < (ep[-2] & 0377))
- ERROR(46);
- continue;
-
- case '\n':
- ERROR(36);
-
- case 'n':
- c = '\n';
- goto defchar;
-
- default:
- if (c >= '1' && c <= '9') {
- if ((c -= '1') >= closed)
- ERROR(25);
- *ep++ = CBACK;
- *ep++ = c;
- continue;
- }
- }
- /* Drop through to default to use \ to turn off special chars */
-
- defchar:
- default:
- lastep = ep;
- *ep++ = CCHR;
- *ep++ = c;
- }
- }
-}
-
-int
-step(p1, p2)
-char *p1, *p2;
-{
- int c;
-
-
- if (circf) {
- loc1 = p1;
- return (advance(p1, p2));
- }
- /* fast check for first character */
- if (*p2 == CCHR) {
- c = p2[1];
- do {
- if (*p1 != c)
- continue;
- if (advance(p1, p2)) {
- loc1 = p1;
- return (1);
- }
- } while (*p1++);
- return (0);
- }
- /* regular algorithm */
- do {
- if (advance(p1, p2)) {
- loc1 = p1;
- return (1);
- }
- } while (*p1++);
- return (0);
-}
-
-advance(lp, ep)
-char *lp, *ep;
-{
- char *curlp;
- int c;
- char *bbeg;
- char neg;
- int ct;
-
- while (1) {
- neg = 0;
- switch (*ep++) {
-
- case CCHR:
- if (*ep++ == *lp++)
- continue;
- return (0);
-
- case CDOT:
- if (*lp++)
- continue;
- return (0);
-
- case CDOL:
- if (*lp == 0)
- continue;
- return (0);
-
- case CCEOF:
- loc2 = lp;
- return (1);
-
- case CXCL:
- c = (unsigned char)*lp++;
- if (ISTHERE(c)) {
- ep += 32;
- continue;
- }
- return (0);
-
- case NCCL:
- neg = 1;
-
- case CCL:
- c = *lp++;
- if (((c & 0200) == 0 && ISTHERE(c)) ^ neg) {
- ep += 16;
- continue;
- }
- return (0);
-
- case CBRA:
- braslist[*ep++] = lp;
- continue;
-
- case CKET:
- braelist[*ep++] = lp;
- continue;
-
- case CCHR | RNGE:
- c = *ep++;
- getrnge(ep);
- while (low--)
- if (*lp++ != c)
- return (0);
- curlp = lp;
- while (size--)
- if (*lp++ != c)
- break;
- if (size < 0)
- lp++;
- ep += 2;
- goto star;
-
- case CDOT | RNGE:
- getrnge(ep);
- while (low--)
- if (*lp++ == '\0')
- return (0);
- curlp = lp;
- while (size--)
- if (*lp++ == '\0')
- break;
- if (size < 0)
- lp++;
- ep += 2;
- goto star;
-
- case CXCL | RNGE:
- getrnge(ep + 32);
- while (low--) {
- c = (unsigned char)*lp++;
- if (!ISTHERE(c))
- return (0);
- }
- curlp = lp;
- while (size--) {
- c = (unsigned char)*lp++;
- if (!ISTHERE(c))
- break;
- }
- if (size < 0)
- lp++;
- ep += 34; /* 32 + 2 */
- goto star;
-
- case NCCL | RNGE:
- neg = 1;
-
- case CCL | RNGE:
- getrnge(ep + 16);
- while (low--) {
- c = *lp++;
- if (((c & 0200) || !ISTHERE(c)) ^ neg)
- return (0);
- }
- curlp = lp;
- while (size--) {
- c = *lp++;
- if (((c & 0200) || !ISTHERE(c)) ^ neg)
- break;
- }
- if (size < 0)
- lp++;
- ep += 18; /* 16 + 2 */
- goto star;
-
- case CBACK:
- bbeg = braslist[*ep];
- ct = braelist[*ep++] - bbeg;
-
- if (ecmp(bbeg, lp, ct)) {
- lp += ct;
- continue;
- }
- return (0);
-
- case CBACK | STAR:
- bbeg = braslist[*ep];
- ct = braelist[*ep++] - bbeg;
- curlp = lp;
- while (ecmp(bbeg, lp, ct))
- lp += ct;
-
- while (lp >= curlp) {
- if (advance(lp, ep))
- return (1);
- lp -= ct;
- }
- return (0);
-
-
- case CDOT | STAR:
- curlp = lp;
- while (*lp++);
- goto star;
-
- case CCHR | STAR:
- curlp = lp;
- while (*lp++ == *ep);
- ep++;
- goto star;
-
- case CXCL | STAR:
- curlp = lp;
- do {
- c = (unsigned char)*lp++;
- } while (ISTHERE(c));
- ep += 32;
- goto star;
-
- case NCCL | STAR:
- neg = 1;
-
- case CCL | STAR:
- curlp = lp;
- do {
- c = *lp++;
- } while (((c & 0200) == 0 && ISTHERE(c)) ^ neg);
- ep += 16;
- goto star;
-
- star:
- do {
- if (--lp == locs)
- break;
- if (advance(lp, ep))
- return (1);
- } while (lp > curlp);
- return (0);
-
- }
- }
-}
-
-static
-getrnge(str)
-char *str;
-{
- low = *str++ & 0377;
- size = ((*str & 0377) == 255)? 20000: (*str &0377) - low;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _REGEXP_H */