/*
* regcomp and regexec - front ends to re_ routines
*
* Mostly for implementation of backward-compatibility kludges. Note that
* these routines exist ONLY in char versions.
*
* Copyright (c) 1998, 1999 Henry Spencer. All rights reserved.
*
* Development of this software was funded, in part, by Cray Research Inc.,
* UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
* Corporation, none of whom are responsible for the results. The author
* thanks all of them.
*
* Redistribution and use in source and binary forms -- with or without
* modification -- are permitted for any purpose, provided that
* redistributions in source form retain this entire copyright notice and
* indicate the origin and nature of any modifications.
*
* I'd appreciate being given credit for this package in the documentation of
* software which uses it, but that is not a requirement.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "regguts.h"
/*
- regcomp - compile regular expression
*/
int
regcomp(
regex_t *re,
CONST char *str,
int flags)
{
size_t len;
int f = flags;
if (f®_PEND) {
len = re->re_endp - str;
f &= ~REG_PEND;
} else {
len = strlen(str);
}
return re_comp(re, str, len, f);
}
/*
- regexec - execute regular expression
*/
int
regexec(
regex_t *re,
CONST char *str,
size_t nmatch,
regmatch_t pmatch[],
int flags)
{
CONST char *start;
size_t len;
int f = flags;
if (f & REG_STARTEND) {
start = str + pmatch[0].rm_so;
len = pmatch[0].rm_eo - pmatch[0].rm_so;
f &= ~REG_STARTEND;
} else {
start = str;
len = strlen(str);
}
return re_exec(re, start, len, nmatch, pmatch, f);
}
/*
* Local Variables:
* mode: c
* c-basic-offset: 4
* fill-column: 78
* End:
*/
>bug_1581955fff
Tk is a free and open-source, cross-platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface (GUI) in many programming languages.
/* * tkInitScript.h -- * * This file contains Unix & Windows common init script * It is not used on the Mac. (the mac init script is in tkMacInit.c) * * Copyright (c) 1997 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: tkInitScript.h,v 1.8 1999/04/16 01:51:15 stanton Exp $ *//* * In order to find tk.tcl during initialization, the following script * is invoked by Tk_Init(). It looks in several different directories: * * $tk_library - can specify a primary location, if set * no other locations will be checked * * $env(TK_LIBRARY) - highest priority so user can always override * the search path unless the application has * specified an exact directory above * * $tcl_library/../tk$tk_version * - look relative to init.tcl in an installed * lib directory (e.g. /usr/local) * * <executable directory>/../lib/tk$tk_version * - look for a lib/tk<ver> in a sibling of * the bin directory (e.g. /usr/local) * * <executable directory>/../library * - look in Tk build directory * * <executable directory>/../../tk$tk_patchLevel/library * - look for Tk build directory relative * to a parallel build directory * * The first directory on this path that contains a valid tk.tcl script * will be set ast the value of tk_library. * * Note that this entire search mechanism can be bypassed by defining an * alternate tkInit procedure before calling Tk_Init(). */static char initScript[] ="if {[info proc tkInit]==\"\"} {\n\ proc tkInit {} {\n\ global tk_library tk_version tk_patchLevel\n\ rename tkInit {}\n\ tcl_findLibrary tk $tk_version $tk_patchLevel tk.tcl TK_LIBRARY tk_library\n\ }\n\}\n\tkInit";