diff options
Diffstat (limited to 'usr/src/lib/libast/common/regex')
19 files changed, 125 insertions, 114 deletions
diff --git a/usr/src/lib/libast/common/regex/regalloc.c b/usr/src/lib/libast/common/regex/regalloc.c index 710800ef60..8c90f5f7f3 100644 --- a/usr/src/lib/libast/common/regex/regalloc.c +++ b/usr/src/lib/libast/common/regex/regalloc.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regcache.c b/usr/src/lib/libast/common/regex/regcache.c index f40f31fc09..438f7e79e1 100644 --- a/usr/src/lib/libast/common/regex/regcache.c +++ b/usr/src/lib/libast/common/regex/regcache.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * @@ -23,31 +23,25 @@ /* * regcomp() regex_t cache - * AT&T Research + * at&t research */ #include <ast.h> #include <regex.h> #define CACHE 8 /* default # cached re's */ -#define MAXPAT 256 /* max pattern length + 1 */ +#define ROUND 64 /* pattern buffer size round */ -#define KEEP 01 -#define DROP 02 - -typedef union Pattern_u -{ - unsigned long key; - char buf[MAXPAT]; -} Pattern_t; +typedef unsigned long Key_t; typedef struct Cache_s { - Pattern_t pattern; + char* pattern; regex_t re; unsigned long serial; regflags_t reflags; - int flags; + int keep; + int size; } Cache_t; typedef struct State_s @@ -70,9 +64,9 @@ flushcache(void) register int i; for (i = matchstate.size; i--;) - if (matchstate.cache[i] && matchstate.cache[i]->flags) + if (matchstate.cache[i] && matchstate.cache[i]->keep) { - matchstate.cache[i]->flags = 0; + matchstate.cache[i]->keep = 0; regfree(&matchstate.cache[i]->re); } } @@ -90,7 +84,7 @@ regcache(const char* pattern, regflags_t reflags, int* status) int empty; int unused; int old; - Pattern_t head; + Key_t key; /* * 0 pattern flushes the cache and reflags>0 extends cache @@ -137,25 +131,18 @@ regcache(const char* pattern, regflags_t reflags, int* status) * check if the pattern is in the cache */ - for (i = 0; i < sizeof(unsigned long) && pattern[i]; i++) - head.buf[i] = pattern[i]; - for (; i < sizeof(unsigned long); i++) - head.buf[i] = 0; + for (i = 0; i < sizeof(key) && pattern[i]; i++) + ((char*)&key)[i] = pattern[i]; + for (; i < sizeof(key); i++) + ((char*)&key)[i] = 0; empty = unused = -1; old = 0; for (i = matchstate.size; i--;) if (!matchstate.cache[i]) empty = i; - else if (!(matchstate.cache[i]->flags & KEEP)) - { - if (matchstate.cache[i]->flags) - { - matchstate.cache[i]->flags = 0; - regfree(&matchstate.cache[i]->re); - } + else if (!matchstate.cache[i]->keep) unused = i; - } - else if (matchstate.cache[i]->pattern.key == head.key && !strcmp(matchstate.cache[i]->pattern.buf, pattern) && matchstate.cache[i]->reflags == reflags) + else if (*(Key_t*)matchstate.cache[i]->pattern == key && !strcmp(matchstate.cache[i]->pattern, pattern) && matchstate.cache[i]->reflags == reflags) break; else if (!matchstate.cache[old] || matchstate.cache[old]->serial > matchstate.cache[i]->serial) old = i; @@ -174,29 +161,33 @@ regcache(const char* pattern, regflags_t reflags, int* status) *status = REG_ESPACE; return 0; } - if (cp->flags) + if (cp->keep) { - cp->flags = 0; + cp->keep = 0; regfree(&cp->re); } - cp->reflags = reflags; - if ((i = strlen(pattern)) < sizeof(cp->pattern.buf)) + if ((i = strlen(pattern) + 1) >= cp->size) { - if (i < sizeof(unsigned long)) - memset(cp->pattern.buf, 0, sizeof(unsigned long)); - strcpy(cp->pattern.buf, pattern); - pattern = (const char*)cp->pattern.buf; - cp->flags = KEEP; + cp->size = roundof(i, ROUND); + if (!(cp->pattern = newof(cp->pattern, char, cp->size, 0))) + { + if (status) + *status = REG_ESPACE; + return 0; + } } - else - cp->flags = DROP; - if (i = regcomp(&cp->re, pattern, cp->reflags)) + strcpy(cp->pattern, pattern); + while (++i < sizeof(Key_t)) + cp->pattern[i] = 0; + pattern = (const char*)cp->pattern; + if (i = regcomp(&cp->re, pattern, reflags)) { if (status) *status = i; - cp->flags = 0; return 0; } + cp->keep = 1; + cp->reflags = reflags; } else cp = matchstate.cache[i]; diff --git a/usr/src/lib/libast/common/regex/regclass.c b/usr/src/lib/libast/common/regex/regclass.c index b68ef4b00b..e908d6821c 100644 --- a/usr/src/lib/libast/common/regex/regclass.c +++ b/usr/src/lib/libast/common/regex/regclass.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regcoll.c b/usr/src/lib/libast/common/regex/regcoll.c index 178b635790..240dcc1f4c 100644 --- a/usr/src/lib/libast/common/regex/regcoll.c +++ b/usr/src/lib/libast/common/regex/regcoll.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regcomp.c b/usr/src/lib/libast/common/regex/regcomp.c index 90098dfbc2..4573cc217b 100644 --- a/usr/src/lib/libast/common/regex/regcomp.c +++ b/usr/src/lib/libast/common/regex/regcomp.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * @@ -85,6 +85,7 @@ typedef struct Stats_s unsigned short a; /* number of alternations */ unsigned short b; /* number of backrefs */ unsigned short c; /* number of closures */ + unsigned short e; /* $ */ unsigned short i; /* number of negations */ unsigned short p; /* number of named subexpressions */ unsigned short s; /* number of simple closures */ @@ -461,6 +462,9 @@ stats(register Cenv_t* env, register Rex_t* e) if ((env->stats.n += cn) < nn) return 1; break; + case REX_END: + env->stats.e = 1; + break; case REX_GROUP: if (e->re.group.number && ++env->stats.p <= 0 || !e->re.group.number && ++env->stats.u <= 0) return 1; @@ -995,9 +999,9 @@ token(register Cenv_t* env) } else if (c == '^') { - if (env->type == BRE && (env->cursor == env->pattern || posixkludge)) + if (env->type == BRE && (env->cursor == env->pattern || posixkludge == 1)) { - env->posixkludge = 1; + env->posixkludge = 2; return T_CFLX; } } @@ -1069,7 +1073,7 @@ col(Celt_t* ce, int ic, unsigned char* bp, int bw, int bc, unsigned char* ep, in if (cc > 0) { cc = -1; - k += wctomb((char*)k, c); + k += mbconv((char*)k, c); } else for (e = k + bw; k < e; *k++ = *s++); @@ -1125,7 +1129,7 @@ col(Celt_t* ce, int ic, unsigned char* bp, int bw, int bc, unsigned char* ep, in if (cc > 0) { cc = -1; - k += wctomb((char*)k, c); + k += mbconv((char*)k, c); } else for (e = k + ew; k < e; *k++ = *s++); @@ -1199,10 +1203,10 @@ bra(Cenv_t* env) inrange = 0; for (;;) { - if (!(c = *env->cursor) || c == env->terminator || (env->flags & REG_ESCAPE) && c == env->delimiter) + if (!(c = *env->cursor) || c == env->terminator || c == env->delimiter && (env->flags & REG_ESCAPE)) goto error; env->cursor += (w = MBSIZE(env->cursor)); - if (c == '\\') + if (c == '\\' && ((env->flags & REG_CLASS_ESCAPE) || env->type >= SRE && env->parnest || *env->cursor == env->delimiter && (env->flags & REG_ESCAPE))) { if (*env->cursor) { @@ -1380,18 +1384,24 @@ bra(Cenv_t* env) complicated++; if (inrange == 2) { - if (last > c) + if (last <= c) + { + for (i = last; i <= c; i++) + setadd(e->re.charclass, i); + inrange = env->type >= SRE || (env->flags & REG_LENIENT); + elements += 2; + } + else if (env->type >= SRE) { - if (env->type < SRE && !(env->flags & REG_LENIENT)) - goto erange; setadd(e->re.charclass, last); setadd(e->re.charclass, c); + elements += 2; + inrange = 1; } + else if (!(env->flags & REG_LENIENT)) + goto erange; else - for (i = last; i <= c; i++) - setadd(e->re.charclass, i); - inrange = env->type >= SRE || (env->flags & REG_LENIENT); - elements += 2; + inrange = 0; } else if (inrange == 1) { @@ -1465,7 +1475,7 @@ bra(Cenv_t* env) goto error; pp = env->cursor; env->cursor += (w = MBSIZE(env->cursor)); - if (c == '\\') + if (c == '\\' && ((env->flags & REG_CLASS_ESCAPE) || env->type >= SRE && env->parnest || *env->cursor == env->delimiter && (env->flags & REG_ESCAPE))) { if (*env->cursor) { @@ -1497,7 +1507,7 @@ bra(Cenv_t* env) if (env->token.len > 1 || w >= 0 && w < T_META) { c = w; - w = wctomb(mbc, c); + w = mbconv(mbc, c); pp = (unsigned char*)mbc; env->cursor += env->token.len; } @@ -1597,7 +1607,7 @@ bra(Cenv_t* env) if (iswupper(wc)) { wc = towlower(wc); - rw = wctomb((char*)pp, wc); + rw = mbconv((char*)pp, wc); c = 'u'; } else if (iswlower(wc)) @@ -1635,7 +1645,7 @@ bra(Cenv_t* env) wc = towupper(wc); c = 'U'; } - rw = wctomb((char*)pp, wc); + rw = mbconv((char*)pp, wc); } inrange = 0; c = *pp; @@ -2048,6 +2058,7 @@ grp(Cenv_t* env, int parno) case 'M': /* glob(3) */ case 'N': /* glob(3) */ case 'O': /* glob(3) */ + case 'P': case 'R': /* pcre */ case 'S': case 'U': /* pcre */ @@ -2138,28 +2149,28 @@ grp(Cenv_t* env, int parno) env->flags &= ~REG_COMMENT; break; case 'A': - env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT); + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); env->flags |= REG_AUGMENTED|REG_EXTENDED; typ = ARE; break; case 'B': case 'G': - env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT); + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); typ = BRE; break; case 'E': - env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT); + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); env->flags |= REG_EXTENDED; typ = ERE; break; case 'F': case 'L': - env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT); + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); env->flags |= REG_LITERAL; typ = ERE; break; case 'K': - env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT); + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); env->flags |= REG_AUGMENTED|REG_SHELL|REG_LEFT|REG_RIGHT; typ = KRE; break; @@ -2172,8 +2183,13 @@ grp(Cenv_t* env, int parno) case 'O': /* used by caller to disable glob(3) GLOB_STARSTAR */ break; + case 'P': + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); + env->flags |= REG_EXTENDED|REG_CLASS_ESCAPE; + typ = ERE; + break; case 'S': - env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT); + env->flags &= ~(REG_AUGMENTED|REG_EXTENDED|REG_LITERAL|REG_SHELL|REG_LEFT|REG_RIGHT|REG_CLASS_ESCAPE); env->flags |= REG_SHELL|REG_LEFT|REG_RIGHT; typ = SRE; break; @@ -2549,7 +2565,7 @@ seq(Cenv_t* env) c = towupper(c); if ((&buf[sizeof(buf)] - s) < MB_CUR_MAX) break; - if ((n = wctomb((char*)s, c)) < 0) + if ((n = mbconv((char*)s, c)) < 0) *s++ = c; else if (n) s += n; @@ -3004,7 +3020,7 @@ special(Cenv_t* env, regex_t* p) a->re.bm.back = (y == e || y == e->re.group.expr.rex) ? (m - n) : -1; a->re.bm.left = l - 1; a->re.bm.right = env->stats.m - l - n; - a->re.bm.complete = (y != e && (e->type != REX_GROUP || y != e->re.group.expr.rex) || e->next || ((a->re.bm.left + a->re.bm.right) >= 0)) ? 0 : n; + a->re.bm.complete = (env->stats.e || y != e && (e->type != REX_GROUP || y != e->re.group.expr.rex) || e->next || ((a->re.bm.left + a->re.bm.right) >= 0)) ? 0 : n; h = (Bm_mask_t*)&a->re.bm.mask[n]; a->re.bm.skip = (size_t*)(h + n * (UCHAR_MAX + 1)); a->re.bm.fail = &a->re.bm.skip[UCHAR_MAX + 1]; @@ -3394,6 +3410,7 @@ regcomb(regex_t* p, regex_t* q) Rex_t* e = p->env->rex; Rex_t* f = q->env->rex; Rex_t* g; + Rex_t* h; Cenv_t env; if (!e || !f) @@ -3428,13 +3445,15 @@ regcomb(regex_t* p, regex_t* q) drop(env.disc, f); f = q->env->rex; } - if (e->next && e->next->type == REX_END && f->next && f->next->type == REX_END) + for (g = e; g->next; g = g->next); + for (h = f; h->next; h = h->next); + if (g->next && g->next->type == REX_END && h->next && h->next->type == REX_END) { p->env->flags |= REG_RIGHT; - drop(env.disc, e->next); - e->next = 0; - drop(env.disc, f->next); - f->next = 0; + drop(env.disc, g->next); + g->next = 0; + drop(env.disc, h->next); + h->next = 0; } if (!(g = trie(&env, f, e))) return fatal(p->env->disc, REG_BADPAT, NiL); diff --git a/usr/src/lib/libast/common/regex/regdecomp.c b/usr/src/lib/libast/common/regex/regdecomp.c index a89722480a..1f239615b1 100644 --- a/usr/src/lib/libast/common/regex/regdecomp.c +++ b/usr/src/lib/libast/common/regex/regdecomp.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * @@ -75,6 +75,7 @@ decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) unsigned char* s; unsigned char* t; int c; + int m; int cb; int cd; int cr; @@ -152,19 +153,19 @@ decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) cb = cd = cr = 0; s = nc; t = ic; - for (c = 0; c <= UCHAR_MAX; c++) - if (settst(e->re.charclass, c)) + for (m = 0; m <= UCHAR_MAX; m++) + if (settst(e->re.charclass, m)) { - if (c == ']') + if (m == ']') cb = 1; - else if (c == '-') + else if (m == '-') cr = 1; - else if (c == delimiter) + else if (m == delimiter) cd = 1; else if (nb < 0) - ne = nb = c; - else if (ne == (c - 1)) - ne = c; + ne = nb = m; + else if (ne == (m - 1)) + ne = m; else { if (ne == nb) @@ -175,21 +176,21 @@ decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) *s++ = '-'; *s++ = ne; } - ne = nb = c; + ne = nb = m; } } else { - if (c == ']') + if (m == ']') cb = -1; - else if (c == '-') + else if (m == '-') cr = -1; - else if (c == delimiter) + else if (m == delimiter) cd = -1; else if (ib < 0) - ie = ib = c; - else if (ie == (c - 1)) - ie = c; + ie = ib = m; + else if (ie == (m - 1)) + ie = m; else { if (ie == ib) @@ -200,7 +201,7 @@ decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) *t++ = '-'; *t++ = ie; } - ie = ib = c; + ie = ib = m; } } if (nb >= 0) @@ -228,7 +229,7 @@ decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) sfputc(sp, ']'); if (cr < 0) sfputc(sp, '-'); - if (cd < 0) + if (cd < 0 && delimiter > 0) { if (flags & REG_ESCAPE) sfputc(sp, '\\'); @@ -242,7 +243,7 @@ decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) sfputc(sp, ']'); if (cr > 0) sfputc(sp, '-'); - if (cd > 0) + if (cd > 0 && delimiter > 0) { if (flags & REG_ESCAPE) sfputc(sp, '\\'); @@ -400,7 +401,7 @@ regdecomp(regex_t* p, regflags_t flags, char* buf, size_t n) if (!(sp = sfstropen())) return 0; - if (flags < 0) + if (flags == (regflags_t)~0) flags = p->env->flags; switch (flags & (REG_AUGMENTED|REG_EXTENDED|REG_SHELL)) { @@ -427,12 +428,12 @@ regdecomp(regex_t* p, regflags_t flags, char* buf, size_t n) sfputc(sp, delimiter); } else - delimiter = 0; + delimiter = -1; if (decomp(p->env->rex, sp, type, delimiter, flags)) r = 0; else { - if (delimiter) + if (delimiter > 0) sfputc(sp, delimiter); if ((r = sfstrtell(sp) + 1) <= n) { diff --git a/usr/src/lib/libast/common/regex/regerror.c b/usr/src/lib/libast/common/regex/regerror.c index 596e62ce45..3899e47008 100644 --- a/usr/src/lib/libast/common/regex/regerror.c +++ b/usr/src/lib/libast/common/regex/regerror.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * @@ -25,7 +25,7 @@ * posix regex error message handler */ -static const char id[] = "\n@(#)$Id: regex (AT&T Research) 2008-05-11 $\0\n"; +static const char id[] = "\n@(#)$Id: regex (AT&T Research) 2009-12-11 $\0\n"; #include "reglib.h" @@ -45,7 +45,7 @@ static const char* reg_error[] = /* REG_BADBR */ "invalid {...} digits", /* REG_ERANGE */ "invalid [...] range endpoint", /* REG_ESPACE */ "out of space", - /* REG_BADRPT */ "unary op not preceeded by re", + /* REG_BADRPT */ "unary op not preceded by re", /* REG_ENULL */ "empty subexpr in pattern", /* REG_ECOUNT */ "re component count overflow", /* REG_BADESC */ "invalid \\char escape", diff --git a/usr/src/lib/libast/common/regex/regexec.c b/usr/src/lib/libast/common/regex/regexec.c index 3293c2207e..e73efa09bc 100644 --- a/usr/src/lib/libast/common/regex/regexec.c +++ b/usr/src/lib/libast/common/regex/regexec.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regfatal.c b/usr/src/lib/libast/common/regex/regfatal.c index ccf3a1ec44..ae48477e90 100644 --- a/usr/src/lib/libast/common/regex/regfatal.c +++ b/usr/src/lib/libast/common/regex/regfatal.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/reginit.c b/usr/src/lib/libast/common/regex/reginit.c index 133702b721..23066fa5b5 100644 --- a/usr/src/lib/libast/common/regex/reginit.c +++ b/usr/src/lib/libast/common/regex/reginit.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/reglib.h b/usr/src/lib/libast/common/regex/reglib.h index 25f461debe..8d2d3ea707 100644 --- a/usr/src/lib/libast/common/regex/reglib.h +++ b/usr/src/lib/libast/common/regex/reglib.h @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regnexec.c b/usr/src/lib/libast/common/regex/regnexec.c index 28763b471a..13bb1b7238 100644 --- a/usr/src/lib/libast/common/regex/regnexec.c +++ b/usr/src/lib/libast/common/regex/regnexec.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * @@ -628,7 +628,7 @@ collic(register Celt_t* ce, char* key, register char* nxt, int c, int x) c = towlower(c); else return 0; - x = wctomb(key, c); + x = mbconv(key, c); key[x] = 0; return collelt(ce, key, c, 0); } diff --git a/usr/src/lib/libast/common/regex/regrecord.c b/usr/src/lib/libast/common/regex/regrecord.c index 1f531aa63a..1a3b428ac1 100644 --- a/usr/src/lib/libast/common/regex/regrecord.c +++ b/usr/src/lib/libast/common/regex/regrecord.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regrexec.c b/usr/src/lib/libast/common/regex/regrexec.c index 4b49a57d63..a6d5fb5351 100644 --- a/usr/src/lib/libast/common/regex/regrexec.c +++ b/usr/src/lib/libast/common/regex/regrexec.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regstat.c b/usr/src/lib/libast/common/regex/regstat.c index c896068672..456bec1e86 100644 --- a/usr/src/lib/libast/common/regex/regstat.c +++ b/usr/src/lib/libast/common/regex/regstat.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regsub.c b/usr/src/lib/libast/common/regex/regsub.c index 749c9d1a13..288ed1418f 100644 --- a/usr/src/lib/libast/common/regex/regsub.c +++ b/usr/src/lib/libast/common/regex/regsub.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regsubcomp.c b/usr/src/lib/libast/common/regex/regsubcomp.c index d7b3625049..bc0f866a40 100644 --- a/usr/src/lib/libast/common/regex/regsubcomp.c +++ b/usr/src/lib/libast/common/regex/regsubcomp.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/regsubexec.c b/usr/src/lib/libast/common/regex/regsubexec.c index b4599ee5a1..d94635b548 100644 --- a/usr/src/lib/libast/common/regex/regsubexec.c +++ b/usr/src/lib/libast/common/regex/regsubexec.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * diff --git a/usr/src/lib/libast/common/regex/ucs_names.h b/usr/src/lib/libast/common/regex/ucs_names.h index 13acdd5edd..c97e48d916 100644 --- a/usr/src/lib/libast/common/regex/ucs_names.h +++ b/usr/src/lib/libast/common/regex/ucs_names.h @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1985-2009 AT&T Intellectual Property * +* Copyright (c) 1985-2010 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * |