This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

optimization/8367: ICE compiling tcl/generic/regcomp.c (new in last week)


>Number:         8367
>Category:       optimization
>Synopsis:       ICE compiling tcl/generic/regcomp.c (new in last week)
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 26 17:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Donn Terry
>Release:        Current CVS leading edge
>Organization:
>Environment:
Interix
>Description:
Sometime since last Monday afternoon (and before ~5PM PDT friday), this bug was introduced.  The problem is in alias.c, line 2814:

2814                      else if (REG_N_SETS (regno) == 1
2815                               && GET_CODE (src) == PLUS
2816                               && GET_CODE (XEXP (src, 0)) == REG
2817                               && REGNO (XEXP (src, 0)) >= FIRST_PSEUDO_REGI
STER

REG_N_SETS devolves to VARRAY_REG (reg_n_info, N)->sets,
and VARRAY_REG(...) is NULL for this value of regno.

Command line:
/dev/fs/C/home/donn.intel/gnu2.intel/local_bin/cc1 -fpreprocessed regcomp.i -quiet -dumpbase regcomp.c -auxbase regcomp -g -O2 -O -Wall -Wconversion -Wno-implicit-int -version -o regcomp.s

Alias.c has not changed recently (in this area), but whether it should be more robust and allow the null, or whether the presence of the null is itself a bug, I don't know.
>How-To-Repeat:
Command line and .i file attached.  Repeats with CVS synced as of ~noon PDT Saturday on Interix.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="regcomp.i"
Content-Disposition: inline; filename="regcomp.i"

# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
# 33 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h" 1
# 38 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h" 1
# 30 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 1
# 30 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
# 1 "/usr/include/stdio.h" 1 3 4
# 67 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 68 "/usr/include/stdio.h" 2 3 4

# 1 "/usr/include/sys/types.h" 1 3 4
# 37 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/sys/endian.h" 1 3 4
# 38 "/usr/include/sys/types.h" 2 3 4







typedef unsigned long mode_t;




typedef unsigned long nlink_t;




typedef long pid_t;




typedef unsigned long gid_t;




typedef unsigned long uid_t;



typedef long off_t;




typedef unsigned long dev_t;




typedef unsigned long ino_t;




typedef long time_t;




typedef unsigned int size_t;




typedef signed int ssize_t;
# 106 "/usr/include/sys/types.h" 3 4
typedef long clock_t;




typedef unsigned long useconds_t;




typedef unsigned long id_t;




typedef char *caddr_t;


typedef int key_t;


typedef unsigned char uchar_t;
typedef unsigned int uint_t;
typedef unsigned short ushort_t;
typedef unsigned long ulong_t;


typedef signed char int8_t;
typedef unsigned char u_int8_t;
typedef short int16_t;
typedef unsigned short u_int16_t;
typedef int int32_t;
typedef unsigned int u_int32_t;


typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;





typedef long long int quad_t;
typedef unsigned long long int u_quad_t;
typedef long long int int64_t;
typedef unsigned long long int u_int64_t;
# 167 "/usr/include/sys/types.h" 3 4
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned short ushort;
typedef unsigned int u_int;
typedef unsigned long u_long;

typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char unchar;
# 70 "/usr/include/stdio.h" 2 3 4
# 83 "/usr/include/stdio.h" 3 4
typedef off_t fpos_t;
# 124 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/va_list.h" 1 3 4
# 47 "/usr/include/va_list.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stdarg.h" 1 3 4
# 43 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 48 "/usr/include/va_list.h" 2 3 4
typedef __builtin_va_list __va_list;
# 74 "/usr/include/va_list.h" 3 4
typedef __va_list va_list;
# 125 "/usr/include/stdio.h" 2 3 4
# 149 "/usr/include/stdio.h" 3 4
struct __sbuf {
        unsigned char *_base;
        int _size;
};
# 180 "/usr/include/stdio.h" 3 4
typedef struct __sFILE {
        unsigned char *_p;
        int _r;
        int _w;
        short _flags;
        short _file;
        struct __sbuf _bf;
        int _lbfsize;


        void *_cookie;
        int (*_close) (void *);
        int (*_read) (void *, char *, int);
        fpos_t (*_seek) (void *, fpos_t, int);
        int (*_write) (void *, const char *, int);


        struct __sbuf _ub;
        unsigned char *_up;
        int _ur;


        unsigned char _ubuf[3];
        unsigned char _nbuf[1];


        struct __sbuf _lb;


        int _blksize;
        fpos_t _offset;
} FILE;

extern FILE __sF[];
# 247 "/usr/include/stdio.h" 3 4
extern void __attribute__((__cdecl__)) clearerr (FILE *);
extern int __attribute__((__cdecl__)) fclose (FILE *);
extern int __attribute__((__cdecl__)) feof (FILE *);
extern int __attribute__((__cdecl__)) ferror (FILE *);
extern int __attribute__((__cdecl__)) fflush (FILE *);
extern int __attribute__((__cdecl__)) fgetc (FILE *);
extern int __attribute__((__cdecl__)) fgetpos (FILE *, fpos_t *);
extern char * __attribute__((__cdecl__)) fgets (char *, int, FILE *);
extern FILE * __attribute__((__cdecl__)) fopen (const char *, const char *);
extern int __attribute__((__cdecl__)) fprintf (FILE *, const char *, ...);
extern int __attribute__((__cdecl__)) fputc (int, FILE *);
extern int __attribute__((__cdecl__)) fputs (const char *, FILE *);
extern size_t __attribute__((__cdecl__)) fread (void *, size_t, size_t, FILE *);
extern FILE * __attribute__((__cdecl__)) freopen (const char *, const char *, FILE *);
extern int __attribute__((__cdecl__)) fscanf (FILE *, const char *, ...);
extern int __attribute__((__cdecl__)) fseek (FILE *, long, int);
extern int __attribute__((__cdecl__)) fsetpos (FILE *, const fpos_t *);
extern long __attribute__((__cdecl__)) ftell (FILE *);
extern size_t __attribute__((__cdecl__)) fwrite (const void *, size_t, size_t, FILE *);
extern int __attribute__((__cdecl__)) getc (FILE *);
extern int __attribute__((__cdecl__)) getchar (void);
extern char * __attribute__((__cdecl__)) gets (char *);
extern void __attribute__((__cdecl__)) perror (const char *);
extern int __attribute__((__cdecl__)) printf (const char *, ...);
extern int __attribute__((__cdecl__)) putc (int, FILE *);
extern int __attribute__((__cdecl__)) putchar (int);
extern int __attribute__((__cdecl__)) puts (const char *);
extern int __attribute__((__cdecl__)) remove (const char *);
extern int __attribute__((__cdecl__)) rename (const char *, const char *);
extern void __attribute__((__cdecl__)) rewind (FILE *);
extern int __attribute__((__cdecl__)) scanf (const char *, ...);
extern void __attribute__((__cdecl__)) setbuf (FILE *, char *);
extern int __attribute__((__cdecl__)) setvbuf (FILE *, char *, int, size_t);
extern int __attribute__((__cdecl__)) sprintf (char *, const char *, ...);
extern int __attribute__((__cdecl__)) sscanf (const char *, const char *, ...);
extern FILE * __attribute__((__cdecl__)) tmpfile (void);
extern char * __attribute__((__cdecl__)) tmpnam (char *);
extern int __attribute__((__cdecl__)) ungetc (int, FILE *);


extern int __attribute__((__cdecl__)) vfprintf (FILE *, const char *, va_list);
extern int __attribute__((__cdecl__)) vprintf (const char *, va_list);
extern int __attribute__((__cdecl__)) vsprintf (char *, const char *, va_list);
# 303 "/usr/include/stdio.h" 3 4
char * __attribute__((__cdecl__)) ctermid (char *);
FILE * __attribute__((__cdecl__)) fdopen (int, const char *);
int __attribute__((__cdecl__)) fileno (FILE *);
# 314 "/usr/include/stdio.h" 3 4
int __attribute__((__cdecl__)) pclose (FILE *);
FILE* __attribute__((__cdecl__)) popen (const char *, const char *);





extern char* __attribute__((__cdecl__)) tempnam (const char *, const char *);
extern int __attribute__((__cdecl__)) getopt(int, char * const [], const char *);


extern char *optarg;
extern int optind, opterr, optopt;


extern char * __attribute__((__cdecl__)) cuserid(char *);
extern int __attribute__((__cdecl__)) getw(FILE *);
extern int __attribute__((__cdecl__)) putw (int, FILE *);
# 340 "/usr/include/stdio.h" 3 4
extern char* __attribute__((__cdecl__)) fgetln (FILE *, size_t *);
extern int __attribute__((__cdecl__)) fpurge (FILE *);
extern void __attribute__((__cdecl__)) setbuffer (FILE *, char *, int);
extern int __attribute__((__cdecl__)) setlinebuf (FILE *);
extern int __attribute__((__cdecl__)) snprintf (char *, size_t, const char *, ...);

extern int __attribute__((__cdecl__)) vsnprintf (char *, size_t, const char *, va_list);
extern int __attribute__((__cdecl__)) vscanf (const char *, va_list);
extern int __attribute__((__cdecl__)) vsscanf (const char *, const char *, va_list);
# 365 "/usr/include/stdio.h" 3 4
FILE *funopen (
                const void *,
                int (*)(void *, char *, int),
                int (*)(void *, const char *, int),
                fpos_t (*)(void *, fpos_t, int),
                int (*)(void *));







extern int __attribute__((__cdecl__)) __srget (FILE *);
extern int __attribute__((__cdecl__)) __swbuf (int, FILE *);

extern int __attribute__((__cdecl__)) __svfscanf (FILE *, const char *, va_list);
# 393 "/usr/include/stdio.h" 3 4
static __inline int __sputc(int _c, FILE *_p) {
        if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
                return (*_p->_p++ = _c);
        else
                return (__swbuf(_c, _p));
}
# 31 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2


# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 1
# 199 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stdarg.h" 1 3 4
# 200 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 2
# 334 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
    typedef void *ClientData;
# 360 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Interp {
    char *result;

    void (*freeProc) (char *blockPtr);







    int errorLine;


} Tcl_Interp;

typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
typedef struct Tcl_Channel_ *Tcl_Channel;
typedef struct Tcl_Command_ *Tcl_Command;
typedef struct Tcl_Condition_ *Tcl_Condition;
typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
typedef struct Tcl_Encoding_ *Tcl_Encoding;
typedef struct Tcl_Event Tcl_Event;
typedef struct Tcl_Mutex_ *Tcl_Mutex;
typedef struct Tcl_Pid_ *Tcl_Pid;
typedef struct Tcl_RegExp_ *Tcl_RegExp;
typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
typedef struct Tcl_Trace_ *Tcl_Trace;
typedef struct Tcl_Var_ *Tcl_Var;
typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
# 405 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef void (Tcl_ThreadCreateProc) (ClientData clientData);
# 477 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_RegExpIndices {
    long start;
    long end;

} Tcl_RegExpIndices;

typedef struct Tcl_RegExpInfo {
    int nsubs;

    Tcl_RegExpIndices *matches;

    long extendStart;

    long reserved;
} Tcl_RegExpInfo;






typedef struct stat *Tcl_Stat_;
# 533 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef enum {TCL_INT, TCL_DOUBLE, TCL_EITHER} Tcl_ValueType;
typedef struct Tcl_Value {
    Tcl_ValueType type;

    long intValue;
    double doubleValue;
} Tcl_Value;







struct Tcl_Obj;





typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
typedef int (Tcl_AsyncProc) (ClientData clientData, Tcl_Interp *interp, int code);

typedef void (Tcl_ChannelProc) (ClientData clientData, int mask);
typedef void (Tcl_CloseProc) (ClientData data);
typedef void (Tcl_CmdDeleteProc) (ClientData clientData);
typedef int (Tcl_CmdProc) (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]);

typedef void (Tcl_CmdTraceProc) (ClientData clientData, Tcl_Interp *interp, int level, char *command, Tcl_CmdProc *proc, ClientData cmdClientData, int argc, char *argv[]);


typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr, struct Tcl_Obj *dupPtr);

typedef int (Tcl_EncodingConvertProc)(ClientData clientData, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);



typedef void (Tcl_EncodingFreeProc)(ClientData clientData);
typedef int (Tcl_EventProc) (Tcl_Event *evPtr, int flags);
typedef void (Tcl_EventCheckProc) (ClientData clientData, int flags);

typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, ClientData clientData);

typedef void (Tcl_EventSetupProc) (ClientData clientData, int flags);

typedef void (Tcl_ExitProc) (ClientData clientData);
typedef void (Tcl_FileProc) (ClientData clientData, int mask);
typedef void (Tcl_FileFreeProc) (ClientData clientData);
typedef void (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr);
typedef void (Tcl_FreeProc) (char *blockPtr);
typedef void (Tcl_IdleProc) (ClientData clientData);
typedef void (Tcl_InterpDeleteProc) (ClientData clientData, Tcl_Interp *interp);

typedef int (Tcl_MathProc) (ClientData clientData, Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr);

typedef void (Tcl_NamespaceDeleteProc) (ClientData clientData);
typedef int (Tcl_ObjCmdProc) (ClientData clientData, Tcl_Interp *interp, int objc, struct Tcl_Obj *const objv[]);

typedef int (Tcl_PackageInitProc) (Tcl_Interp *interp);
typedef void (Tcl_PanicProc) (char * format, ...);
typedef void (Tcl_TcpAcceptProc) (ClientData callbackData, Tcl_Channel chan, char *address, int port);

typedef void (Tcl_TimerProc) (ClientData clientData);
typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj *objPtr);

typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr);
typedef char *(Tcl_VarTraceProc) (ClientData clientData, Tcl_Interp *interp, char *part1, char *part2, int flags);

typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData);

typedef void (Tcl_DeleteFileHandlerProc) (int fd);







typedef struct Tcl_ObjType {
    char *name;
    Tcl_FreeInternalRepProc *freeIntRepProc;



    Tcl_DupInternalRepProc *dupIntRepProc;


    Tcl_UpdateStringProc *updateStringProc;


    Tcl_SetFromAnyProc *setFromAnyProc;




} Tcl_ObjType;







typedef struct Tcl_Obj {
    int refCount;
    char *bytes;
# 649 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
    int length;

    Tcl_ObjType *typePtr;



    union {
        long longValue;
        double doubleValue;
        void *otherValuePtr;
        struct {
            void *ptr1;
            void *ptr2;
        } twoPtrValue;
    } internalRep;
} Tcl_Obj;
# 677 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
void Tcl_IncrRefCount (Tcl_Obj *objPtr);
void Tcl_DecrRefCount (Tcl_Obj *objPtr);
int Tcl_IsShared (Tcl_Obj *objPtr);
# 728 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_SavedResult {
    char *result;
    Tcl_FreeProc *freeProc;
    Tcl_Obj *objResultPtr;
    char *appendResult;
    int appendAvl;
    int appendUsed;
    char resultSpace[200 +1];
} Tcl_SavedResult;
# 745 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Namespace {
    char *name;



    char *fullName;

    ClientData clientData;

    Tcl_NamespaceDeleteProc* deleteProc;


    struct Tcl_Namespace* parentPtr;



} Tcl_Namespace;
# 785 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_CallFrame {
    Tcl_Namespace *nsPtr;
    int dummy1;
    int dummy2;
    char *dummy3;
    char *dummy4;
    char *dummy5;
    int dummy6;
    char *dummy7;
    char *dummy8;
    int dummy9;
    char* dummy10;
} Tcl_CallFrame;
# 814 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_CmdInfo {
    int isNativeObjectProc;



    Tcl_ObjCmdProc *objProc;
    ClientData objClientData;
    Tcl_CmdProc *proc;
    ClientData clientData;
    Tcl_CmdDeleteProc *deleteProc;


    ClientData deleteData;

    Tcl_Namespace *namespacePtr;




} Tcl_CmdInfo;
# 842 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_DString {
    char *string;

    int length;

    int spaceAvl;

    char staticSpace[200];


} Tcl_DString;
# 963 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_HashEntry {
    struct Tcl_HashEntry *nextPtr;


    struct Tcl_HashTable *tablePtr;
    struct Tcl_HashEntry **bucketPtr;


    ClientData clientData;

    union {
        char *oneWordValue;
        int words[1];



        char string[4];


    } key;
} Tcl_HashEntry;
# 992 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_HashTable {
    Tcl_HashEntry **buckets;


    Tcl_HashEntry *staticBuckets[4];


    int numBuckets;

    int numEntries;

    int rebuildSize;

    int downShift;


    int mask;

    int keyType;





    Tcl_HashEntry *(*findProc) (struct Tcl_HashTable *tablePtr, const char *key);

    Tcl_HashEntry *(*createProc) (struct Tcl_HashTable *tablePtr, const char *key, int *newPtr);

} Tcl_HashTable;






typedef struct Tcl_HashSearch {
    Tcl_HashTable *tablePtr;
    int nextIndex;

    Tcl_HashEntry *nextEntryPtr;

} Tcl_HashSearch;
# 1084 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
struct Tcl_Event {
    Tcl_EventProc *proc;
    struct Tcl_Event *nextPtr;
};





typedef enum {
    TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
} Tcl_QueuePosition;
# 1112 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Time {
    long sec;
    long usec;
} Tcl_Time;

typedef void (Tcl_SetTimerProc) (Tcl_Time *timePtr);
typedef int (Tcl_WaitForEventProc) (Tcl_Time *timePtr);
# 1166 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef int (Tcl_DriverBlockModeProc) ( ClientData instanceData, int mode);

typedef int (Tcl_DriverCloseProc) (ClientData instanceData, Tcl_Interp *interp);

typedef int (Tcl_DriverClose2Proc) (ClientData instanceData, Tcl_Interp *interp, int flags);

typedef int (Tcl_DriverInputProc) (ClientData instanceData, char *buf, int toRead, int *errorCodePtr);

typedef int (Tcl_DriverOutputProc) (ClientData instanceData, char *buf, int toWrite, int *errorCodePtr);

typedef int (Tcl_DriverSeekProc) (ClientData instanceData, long offset, int mode, int *errorCodePtr);

typedef int (Tcl_DriverSetOptionProc) ( ClientData instanceData, Tcl_Interp *interp, char *optionName, char *value);


typedef int (Tcl_DriverGetOptionProc) ( ClientData instanceData, Tcl_Interp *interp, char *optionName, Tcl_DString *dsPtr);


typedef void (Tcl_DriverWatchProc) ( ClientData instanceData, int mask);

typedef int (Tcl_DriverGetHandleProc) ( ClientData instanceData, int direction, ClientData *handlePtr);


typedef int (Tcl_DriverFlushProc) ( ClientData instanceData);

typedef int (Tcl_DriverHandlerProc) ( ClientData instanceData, int interestMask);
# 1228 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef enum Tcl_EolTranslation {
    TCL_TRANSLATE_AUTO,
    TCL_TRANSLATE_CR,
    TCL_TRANSLATE_LF,
    TCL_TRANSLATE_CRLF
} Tcl_EolTranslation;
# 1246 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_ChannelType {
    char *typeName;


    Tcl_ChannelTypeVersion version;
    Tcl_DriverCloseProc *closeProc;



    Tcl_DriverInputProc *inputProc;

    Tcl_DriverOutputProc *outputProc;

    Tcl_DriverSeekProc *seekProc;

    Tcl_DriverSetOptionProc *setOptionProc;

    Tcl_DriverGetOptionProc *getOptionProc;

    Tcl_DriverWatchProc *watchProc;

    Tcl_DriverGetHandleProc *getHandleProc;


    Tcl_DriverClose2Proc *close2Proc;



    Tcl_DriverBlockModeProc *blockModeProc;





    Tcl_DriverFlushProc *flushProc;

    Tcl_DriverHandlerProc *handlerProc;


} Tcl_ChannelType;
# 1301 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef enum Tcl_PathType {
    TCL_PATH_ABSOLUTE,
    TCL_PATH_RELATIVE,
    TCL_PATH_VOLUME_RELATIVE
} Tcl_PathType;






typedef struct Tcl_NotifierProcs {
    Tcl_SetTimerProc *setTimerProc;
    Tcl_WaitForEventProc *waitForEventProc;
    Tcl_CreateFileHandlerProc *createFileHandlerProc;
    Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
} Tcl_NotifierProcs;






typedef struct Tcl_EncodingType {
    const char *encodingName;


    Tcl_EncodingConvertProc *toUtfProc;


    Tcl_EncodingConvertProc *fromUtfProc;


    Tcl_EncodingFreeProc *freeProc;


    ClientData clientData;

    int nullSize;




} Tcl_EncodingType;
# 1395 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Token {
    int type;

    char *start;
    int size;
    int numComponents;




} Tcl_Token;
# 1514 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef struct Tcl_Parse {
    char *commentStart;


    int commentSize;



    char *commandStart;
    int commandSize;



    int numWords;

    Tcl_Token *tokenPtr;




    int numTokens;
    int tokensAvailable;

    int errorType;
# 1546 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
    char *string;

    char *end;

    Tcl_Interp *interp;

    char *term;





    int incomplete;



    Tcl_Token staticTokens[20];





} Tcl_Parse;
# 1618 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
typedef unsigned short Tcl_UniChar;
# 1661 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
extern char * Tcl_InitStubs (Tcl_Interp *interp, char *version, int exact);
# 1681 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h" 1
# 30 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern int Tcl_PkgProvideEx (Tcl_Interp * interp, char * name, char * version, ClientData clientData);



extern char * Tcl_PkgRequireEx (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);



extern void Tcl_Panic (char * format, ...);

extern char * Tcl_Alloc (unsigned int size);

extern void Tcl_Free (char * ptr);

extern char * Tcl_Realloc (char * ptr, unsigned int size);


extern char * Tcl_DbCkalloc (unsigned int size, char * file, int line);


extern int Tcl_DbCkfree (char * ptr, char * file, int line);


extern char * Tcl_DbCkrealloc (char * ptr, unsigned int size, char * file, int line);



extern void Tcl_CreateFileHandler (int fd, int mask, Tcl_FileProc * proc, ClientData clientData);




extern void Tcl_DeleteFileHandler (int fd);


extern void Tcl_SetTimer (Tcl_Time * timePtr);

extern void Tcl_Sleep (int ms);

extern int Tcl_WaitForEvent (Tcl_Time * timePtr);

extern int Tcl_AppendAllObjTypes ( Tcl_Interp * interp, Tcl_Obj * objPtr);


extern void Tcl_AppendStringsToObj (Tcl_Obj * objPtr, ...);

extern void Tcl_AppendToObj (Tcl_Obj * objPtr, char * bytes, int length);


extern Tcl_Obj * Tcl_ConcatObj (int objc, Tcl_Obj *const objv[]);


extern int Tcl_ConvertToType (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr);


extern void Tcl_DbDecrRefCount (Tcl_Obj * objPtr, char * file, int line);


extern void Tcl_DbIncrRefCount (Tcl_Obj * objPtr, char * file, int line);


extern int Tcl_DbIsShared (Tcl_Obj * objPtr, char * file, int line);


extern Tcl_Obj * Tcl_DbNewBooleanObj (int boolValue, char * file, int line);


extern Tcl_Obj * Tcl_DbNewByteArrayObj ( unsigned char * bytes, int length, char * file, int line);



extern Tcl_Obj * Tcl_DbNewDoubleObj (double doubleValue, char * file, int line);


extern Tcl_Obj * Tcl_DbNewListObj (int objc, Tcl_Obj *const objv[], char * file, int line);


extern Tcl_Obj * Tcl_DbNewLongObj (long longValue, char * file, int line);


extern Tcl_Obj * Tcl_DbNewObj (char * file, int line);

extern Tcl_Obj * Tcl_DbNewStringObj (const char * bytes, int length, char * file, int line);


extern Tcl_Obj * Tcl_DuplicateObj (Tcl_Obj * objPtr);

extern void TclFreeObj (Tcl_Obj * objPtr);

extern int Tcl_GetBoolean (Tcl_Interp * interp, char * str, int * boolPtr);


extern int Tcl_GetBooleanFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr);



extern unsigned char * Tcl_GetByteArrayFromObj ( Tcl_Obj * objPtr, int * lengthPtr);


extern int Tcl_GetDouble (Tcl_Interp * interp, char * str, double * doublePtr);


extern int Tcl_GetDoubleFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr);



extern int Tcl_GetIndexFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, char * msg, int flags, int * indexPtr);



extern int Tcl_GetInt (Tcl_Interp * interp, char * str, int * intPtr);


extern int Tcl_GetIntFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr);


extern int Tcl_GetLongFromObj (Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr);


extern Tcl_ObjType * Tcl_GetObjType (char * typeName);

extern char * Tcl_GetStringFromObj (Tcl_Obj * objPtr, int * lengthPtr);


extern void Tcl_InvalidateStringRep ( Tcl_Obj * objPtr);


extern int Tcl_ListObjAppendList ( Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr);



extern int Tcl_ListObjAppendElement ( Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr);



extern int Tcl_ListObjGetElements ( Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr);



extern int Tcl_ListObjIndex (Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr);



extern int Tcl_ListObjLength (Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr);


extern int Tcl_ListObjReplace (Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *const objv[]);



extern Tcl_Obj * Tcl_NewBooleanObj (int boolValue);

extern Tcl_Obj * Tcl_NewByteArrayObj ( unsigned char * bytes, int length);


extern Tcl_Obj * Tcl_NewDoubleObj (double doubleValue);

extern Tcl_Obj * Tcl_NewIntObj (int intValue);

extern Tcl_Obj * Tcl_NewListObj (int objc, Tcl_Obj *const objv[]);


extern Tcl_Obj * Tcl_NewLongObj (long longValue);

extern Tcl_Obj * Tcl_NewObj (void);

extern Tcl_Obj * Tcl_NewStringObj (const char * bytes, int length);


extern void Tcl_SetBooleanObj (Tcl_Obj * objPtr, int boolValue);


extern unsigned char * Tcl_SetByteArrayLength (Tcl_Obj * objPtr, int length);


extern void Tcl_SetByteArrayObj (Tcl_Obj * objPtr, unsigned char * bytes, int length);


extern void Tcl_SetDoubleObj (Tcl_Obj * objPtr, double doubleValue);


extern void Tcl_SetIntObj (Tcl_Obj * objPtr, int intValue);


extern void Tcl_SetListObj (Tcl_Obj * objPtr, int objc, Tcl_Obj *const objv[]);


extern void Tcl_SetLongObj (Tcl_Obj * objPtr, long longValue);


extern void Tcl_SetObjLength (Tcl_Obj * objPtr, int length);


extern void Tcl_SetStringObj (Tcl_Obj * objPtr, char * bytes, int length);


extern void Tcl_AddErrorInfo (Tcl_Interp * interp, const char * message);


extern void Tcl_AddObjErrorInfo (Tcl_Interp * interp, const char * message, int length);


extern void Tcl_AllowExceptions (Tcl_Interp * interp);

extern void Tcl_AppendElement (Tcl_Interp * interp, const char * string);


extern void Tcl_AppendResult (Tcl_Interp * interp, ...);

extern Tcl_AsyncHandler Tcl_AsyncCreate (Tcl_AsyncProc * proc, ClientData clientData);


extern void Tcl_AsyncDelete (Tcl_AsyncHandler async);

extern int Tcl_AsyncInvoke (Tcl_Interp * interp, int code);


extern void Tcl_AsyncMark (Tcl_AsyncHandler async);

extern int Tcl_AsyncReady (void);

extern void Tcl_BackgroundError (Tcl_Interp * interp);

extern char Tcl_Backslash (const char * src, int * readPtr);


extern int Tcl_BadChannelOption ( Tcl_Interp * interp, char * optionName, char * optionList);



extern void Tcl_CallWhenDeleted (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);



extern void Tcl_CancelIdleCall ( Tcl_IdleProc * idleProc, ClientData clientData);



extern int Tcl_Close (Tcl_Interp * interp, Tcl_Channel chan);


extern int Tcl_CommandComplete (char * cmd);

extern char * Tcl_Concat (int argc, char ** argv);

extern int Tcl_ConvertElement (const char * src, char * dst, int flags);


extern int Tcl_ConvertCountedElement ( const char * src, int length, char * dst, int flags);



extern int Tcl_CreateAlias (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int argc, char ** argv);



extern int Tcl_CreateAliasObj (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int objc, Tcl_Obj *const objv[]);




extern Tcl_Channel Tcl_CreateChannel ( Tcl_ChannelType * typePtr, char * chanName, ClientData instanceData, int mask);



extern void Tcl_CreateChannelHandler ( Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData);




extern void Tcl_CreateCloseHandler (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);


extern Tcl_Command Tcl_CreateCommand (Tcl_Interp * interp, char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);




extern void Tcl_CreateEventSource ( Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);




extern void Tcl_CreateExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern Tcl_Interp * Tcl_CreateInterp (void);

extern void Tcl_CreateMathFunc (Tcl_Interp * interp, char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData);




extern Tcl_Command Tcl_CreateObjCommand ( Tcl_Interp * interp, char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);




extern Tcl_Interp * Tcl_CreateSlave (Tcl_Interp * interp, char * slaveName, int isSafe);


extern Tcl_TimerToken Tcl_CreateTimerHandler (int milliseconds, Tcl_TimerProc * proc, ClientData clientData);


extern Tcl_Trace Tcl_CreateTrace (Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData);



extern void Tcl_DeleteAssocData (Tcl_Interp * interp, char * name);


extern void Tcl_DeleteChannelHandler ( Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData);



extern void Tcl_DeleteCloseHandler (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);


extern int Tcl_DeleteCommand (Tcl_Interp * interp, char * cmdName);


extern int Tcl_DeleteCommandFromToken ( Tcl_Interp * interp, Tcl_Command command);


extern void Tcl_DeleteEvents ( Tcl_EventDeleteProc * proc, ClientData clientData);



extern void Tcl_DeleteEventSource ( Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);




extern void Tcl_DeleteExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern void Tcl_DeleteHashEntry ( Tcl_HashEntry * entryPtr);


extern void Tcl_DeleteHashTable ( Tcl_HashTable * tablePtr);


extern void Tcl_DeleteInterp (Tcl_Interp * interp);


extern void Tcl_DetachPids (int numPids, Tcl_Pid * pidPtr);
# 384 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern void Tcl_DeleteTimerHandler ( Tcl_TimerToken token);


extern void Tcl_DeleteTrace (Tcl_Interp * interp, Tcl_Trace trace);


extern void Tcl_DontCallWhenDeleted ( Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);




extern int Tcl_DoOneEvent (int flags);

extern void Tcl_DoWhenIdle (Tcl_IdleProc * proc, ClientData clientData);


extern char * Tcl_DStringAppend (Tcl_DString * dsPtr, const char * str, int length);


extern char * Tcl_DStringAppendElement ( Tcl_DString * dsPtr, const char * string);


extern void Tcl_DStringEndSublist ( Tcl_DString * dsPtr);


extern void Tcl_DStringFree (Tcl_DString * dsPtr);

extern void Tcl_DStringGetResult ( Tcl_Interp * interp, Tcl_DString * dsPtr);


extern void Tcl_DStringInit (Tcl_DString * dsPtr);

extern void Tcl_DStringResult (Tcl_Interp * interp, Tcl_DString * dsPtr);


extern void Tcl_DStringSetLength ( Tcl_DString * dsPtr, int length);


extern void Tcl_DStringStartSublist ( Tcl_DString * dsPtr);


extern int Tcl_Eof (Tcl_Channel chan);

extern char * Tcl_ErrnoId (void);

extern char * Tcl_ErrnoMsg (int err);

extern int Tcl_Eval (Tcl_Interp * interp, char * string);


extern int Tcl_EvalFile (Tcl_Interp * interp, char * fileName);


extern int Tcl_EvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr);


extern void Tcl_EventuallyFree ( ClientData clientData, Tcl_FreeProc * freeProc);



extern void Tcl_Exit (int status);

extern int Tcl_ExposeCommand (Tcl_Interp * interp, char * hiddenCmdToken, char * cmdName);


extern int Tcl_ExprBoolean (Tcl_Interp * interp, char * str, int * ptr);


extern int Tcl_ExprBooleanObj (Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr);


extern int Tcl_ExprDouble (Tcl_Interp * interp, char * str, double * ptr);


extern int Tcl_ExprDoubleObj (Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr);


extern int Tcl_ExprLong (Tcl_Interp * interp, char * str, long * ptr);


extern int Tcl_ExprLongObj (Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr);


extern int Tcl_ExprObj (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr);


extern int Tcl_ExprString (Tcl_Interp * interp, char * string);


extern void Tcl_Finalize (void);

extern void Tcl_FindExecutable (const char * argv0);

extern Tcl_HashEntry * Tcl_FirstHashEntry ( Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr);



extern int Tcl_Flush (Tcl_Channel chan);

extern void Tcl_FreeResult (Tcl_Interp * interp);

extern int Tcl_GetAlias (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * argcPtr, char *** argvPtr);





extern int Tcl_GetAliasObj (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv);





extern ClientData Tcl_GetAssocData (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc ** procPtr);


extern Tcl_Channel Tcl_GetChannel (Tcl_Interp * interp, char * chanName, int * modePtr);


extern int Tcl_GetChannelBufferSize ( Tcl_Channel chan);


extern int Tcl_GetChannelHandle (Tcl_Channel chan, int direction, ClientData * handlePtr);


extern ClientData Tcl_GetChannelInstanceData ( Tcl_Channel chan);


extern int Tcl_GetChannelMode (Tcl_Channel chan);

extern char * Tcl_GetChannelName (Tcl_Channel chan);

extern int Tcl_GetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan, char * optionName, Tcl_DString * dsPtr);



extern Tcl_ChannelType * Tcl_GetChannelType (Tcl_Channel chan);

extern int Tcl_GetCommandInfo (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);


extern char * Tcl_GetCommandName (Tcl_Interp * interp, Tcl_Command command);


extern int Tcl_GetErrno (void);

extern char * Tcl_GetHostName (void);

extern int Tcl_GetInterpPath ( Tcl_Interp * askInterp, Tcl_Interp * slaveInterp);



extern Tcl_Interp * Tcl_GetMaster (Tcl_Interp * interp);

extern const char * Tcl_GetNameOfExecutable (void);

extern Tcl_Obj * Tcl_GetObjResult (Tcl_Interp * interp);


extern int Tcl_GetOpenFile (Tcl_Interp * interp, char * str, int forWriting, int checkUsage, ClientData * filePtr);




extern Tcl_PathType Tcl_GetPathType (char * path);

extern int Tcl_Gets (Tcl_Channel chan, Tcl_DString * dsPtr);


extern int Tcl_GetsObj (Tcl_Channel chan, Tcl_Obj * objPtr);


extern int Tcl_GetServiceMode (void);

extern Tcl_Interp * Tcl_GetSlave (Tcl_Interp * interp, char * slaveName);


extern Tcl_Channel Tcl_GetStdChannel (int type);

extern char * Tcl_GetStringResult (Tcl_Interp * interp);

extern char * Tcl_GetVar (Tcl_Interp * interp, char * varName, int flags);


extern char * Tcl_GetVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags);


extern int Tcl_GlobalEval (Tcl_Interp * interp, char * command);


extern int Tcl_GlobalEvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr);


extern int Tcl_HideCommand (Tcl_Interp * interp, char * cmdName, char * hiddenCmdToken);


extern int Tcl_Init (Tcl_Interp * interp);

extern void Tcl_InitHashTable ( Tcl_HashTable * tablePtr, int keyType);


extern int Tcl_InputBlocked (Tcl_Channel chan);

extern int Tcl_InputBuffered (Tcl_Channel chan);

extern int Tcl_InterpDeleted (Tcl_Interp * interp);

extern int Tcl_IsSafe (Tcl_Interp * interp);

extern char * Tcl_JoinPath (int argc, char ** argv, Tcl_DString * resultPtr);


extern int Tcl_LinkVar (Tcl_Interp * interp, char * varName, char * addr, int type);



extern Tcl_Channel Tcl_MakeFileChannel (ClientData handle, int mode);


extern int Tcl_MakeSafe (Tcl_Interp * interp);

extern Tcl_Channel Tcl_MakeTcpClientChannel ( ClientData tcpSocket);


extern char * Tcl_Merge (int argc, char ** argv);

extern Tcl_HashEntry * Tcl_NextHashEntry ( Tcl_HashSearch * searchPtr);


extern void Tcl_NotifyChannel (Tcl_Channel channel, int mask);


extern Tcl_Obj * Tcl_ObjGetVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags);



extern Tcl_Obj * Tcl_ObjSetVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags);




extern Tcl_Channel Tcl_OpenCommandChannel ( Tcl_Interp * interp, int argc, char ** argv, int flags);
# 636 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern Tcl_Channel Tcl_OpenFileChannel (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);



extern Tcl_Channel Tcl_OpenTcpClient (Tcl_Interp * interp, int port, char * address, char * myaddr, int myport, int async);



extern Tcl_Channel Tcl_OpenTcpServer (Tcl_Interp * interp, int port, char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData);




extern void Tcl_Preserve (ClientData data);

extern void Tcl_PrintDouble (Tcl_Interp * interp, double value, char * dst);


extern int Tcl_PutEnv (const char * string);

extern char * Tcl_PosixError (Tcl_Interp * interp);

extern void Tcl_QueueEvent (Tcl_Event * evPtr, Tcl_QueuePosition position);


extern int Tcl_Read (Tcl_Channel chan, char * bufPtr, int toRead);



extern void Tcl_ReapDetachedProcs (void);






extern int Tcl_RecordAndEval (Tcl_Interp * interp, char * cmd, int flags);


extern int Tcl_RecordAndEvalObj ( Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags);



extern void Tcl_RegisterChannel (Tcl_Interp * interp, Tcl_Channel chan);


extern void Tcl_RegisterObjType ( Tcl_ObjType * typePtr);


extern Tcl_RegExp Tcl_RegExpCompile (Tcl_Interp * interp, char * string);


extern int Tcl_RegExpExec (Tcl_Interp * interp, Tcl_RegExp regexp, const char * str, const char * start);



extern int Tcl_RegExpMatch (Tcl_Interp * interp, char * str, char * pattern);


extern void Tcl_RegExpRange (Tcl_RegExp regexp, int index, char ** startPtr, char ** endPtr);


extern void Tcl_Release (ClientData clientData);

extern void Tcl_ResetResult (Tcl_Interp * interp);

extern int Tcl_ScanElement (const char * str, int * flagPtr);


extern int Tcl_ScanCountedElement (const char * str, int length, int * flagPtr);


extern int Tcl_Seek (Tcl_Channel chan, int offset, int mode);


extern int Tcl_ServiceAll (void);

extern int Tcl_ServiceEvent (int flags);

extern void Tcl_SetAssocData (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc * proc, ClientData clientData);



extern void Tcl_SetChannelBufferSize ( Tcl_Channel chan, int sz);


extern int Tcl_SetChannelOption ( Tcl_Interp * interp, Tcl_Channel chan, char * optionName, char * newValue);



extern int Tcl_SetCommandInfo (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);


extern void Tcl_SetErrno (int err);

extern void Tcl_SetErrorCode (Tcl_Interp * interp, ...);

extern void Tcl_SetMaxBlockTime (Tcl_Time * timePtr);

extern void Tcl_SetPanicProc ( Tcl_PanicProc * panicProc);


extern int Tcl_SetRecursionLimit ( Tcl_Interp * interp, int depth);


extern void Tcl_SetResult (Tcl_Interp * interp, char * str, Tcl_FreeProc * freeProc);


extern int Tcl_SetServiceMode (int mode);

extern void Tcl_SetObjErrorCode (Tcl_Interp * interp, Tcl_Obj * errorObjPtr);


extern void Tcl_SetObjResult (Tcl_Interp * interp, Tcl_Obj * resultObjPtr);


extern void Tcl_SetStdChannel (Tcl_Channel channel, int type);


extern char * Tcl_SetVar (Tcl_Interp * interp, char * varName, char * newValue, int flags);


extern char * Tcl_SetVar2 (Tcl_Interp * interp, char * part1, char * part2, char * newValue, int flags);



extern char * Tcl_SignalId (int sig);

extern char * Tcl_SignalMsg (int sig);

extern void Tcl_SourceRCFile (Tcl_Interp * interp);

extern int Tcl_SplitList (Tcl_Interp * interp, const char * listStr, int * argcPtr, char *** argvPtr);



extern void Tcl_SplitPath (const char * path, int * argcPtr, char *** argvPtr);


extern void Tcl_StaticPackage (Tcl_Interp * interp, char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc);




extern int Tcl_StringMatch (const char * str, const char * pattern);


extern int Tcl_Tell (Tcl_Channel chan);

extern int Tcl_TraceVar (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern int Tcl_TraceVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern char * Tcl_TranslateFileName ( Tcl_Interp * interp, char * name, Tcl_DString * bufferPtr);



extern int Tcl_Ungets (Tcl_Channel chan, char * str, int len, int atHead);


extern void Tcl_UnlinkVar (Tcl_Interp * interp, char * varName);


extern int Tcl_UnregisterChannel ( Tcl_Interp * interp, Tcl_Channel chan);


extern int Tcl_UnsetVar (Tcl_Interp * interp, char * varName, int flags);


extern int Tcl_UnsetVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags);


extern void Tcl_UntraceVar (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern void Tcl_UntraceVar2 (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);




extern void Tcl_UpdateLinkedVar (Tcl_Interp * interp, char * varName);


extern int Tcl_UpVar (Tcl_Interp * interp, char * frameName, char * varName, char * localName, int flags);



extern int Tcl_UpVar2 (Tcl_Interp * interp, char * frameName, char * part1, char * part2, char * localName, int flags);



extern int Tcl_VarEval (Tcl_Interp * interp, ...);

extern ClientData Tcl_VarTraceInfo (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);




extern ClientData Tcl_VarTraceInfo2 (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);




extern int Tcl_Write (Tcl_Channel chan, char * s, int slen);


extern void Tcl_WrongNumArgs (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], char * message);



extern int Tcl_DumpActiveMemory (char * fileName);

extern void Tcl_ValidateAllMemory (char * file, int line);


extern void Tcl_AppendResultVA (Tcl_Interp * interp, va_list argList);


extern void Tcl_AppendStringsToObjVA ( Tcl_Obj * objPtr, va_list argList);


extern char * Tcl_HashStats (Tcl_HashTable * tablePtr);

extern char * Tcl_ParseVar (Tcl_Interp * interp, char * str, char ** termPtr);


extern char * Tcl_PkgPresent (Tcl_Interp * interp, char * name, char * version, int exact);


extern char * Tcl_PkgPresentEx (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);



extern int Tcl_PkgProvide (Tcl_Interp * interp, char * name, char * version);


extern char * Tcl_PkgRequire (Tcl_Interp * interp, char * name, char * version, int exact);


extern void Tcl_SetErrorCodeVA (Tcl_Interp * interp, va_list argList);


extern int Tcl_VarEvalVA (Tcl_Interp * interp, va_list argList);


extern Tcl_Pid Tcl_WaitPid (Tcl_Pid pid, int * statPtr, int options);



extern void Tcl_PanicVA (char * format, va_list argList);
# 902 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
extern void Tcl_GetVersion (int * major, int * minor, int * patchLevel, int * type);


extern void Tcl_InitMemory (Tcl_Interp * interp);

extern Tcl_Channel Tcl_StackChannel (Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan);




extern int Tcl_UnstackChannel (Tcl_Interp * interp, Tcl_Channel chan);


extern Tcl_Channel Tcl_GetStackedChannel (Tcl_Channel chan);



extern void Tcl_AppendObjToObj (Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr);


extern Tcl_Encoding Tcl_CreateEncoding ( Tcl_EncodingType * typePtr);


extern void Tcl_CreateThreadExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern void Tcl_DeleteThreadExitHandler ( Tcl_ExitProc * proc, ClientData clientData);


extern void Tcl_DiscardResult ( Tcl_SavedResult * statePtr);


extern int Tcl_EvalEx (Tcl_Interp * interp, char * script, int numBytes, int flags);


extern int Tcl_EvalObjv (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);


extern int Tcl_EvalObjEx (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags);


extern void Tcl_ExitThread (int status);

extern int Tcl_ExternalToUtf (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);






extern char * Tcl_ExternalToUtfDString ( Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);



extern void Tcl_FinalizeThread (void);

extern void Tcl_FinalizeNotifier ( ClientData clientData);


extern void Tcl_FreeEncoding (Tcl_Encoding encoding);

extern Tcl_ThreadId Tcl_GetCurrentThread (void);

extern Tcl_Encoding Tcl_GetEncoding (Tcl_Interp * interp, const char * name);


extern char * Tcl_GetEncodingName ( Tcl_Encoding encoding);


extern void Tcl_GetEncodingNames ( Tcl_Interp * interp);


extern int Tcl_GetIndexFromObjStruct ( Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, int offset, char * msg, int flags, int * indexPtr);




extern void * Tcl_GetThreadData ( Tcl_ThreadDataKey * keyPtr, int size);


extern Tcl_Obj * Tcl_GetVar2Ex (Tcl_Interp * interp, char * part1, char * part2, int flags);


extern ClientData Tcl_InitNotifier (void);

extern void Tcl_MutexLock (Tcl_Mutex * mutexPtr);

extern void Tcl_MutexUnlock (Tcl_Mutex * mutexPtr);

extern void Tcl_ConditionNotify ( Tcl_Condition * condPtr);


extern void Tcl_ConditionWait ( Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr);



extern int Tcl_NumUtfChars (const char * src, int len);


extern int Tcl_ReadChars (Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag);



extern void Tcl_RestoreResult (Tcl_Interp * interp, Tcl_SavedResult * statePtr);


extern void Tcl_SaveResult (Tcl_Interp * interp, Tcl_SavedResult * statePtr);


extern int Tcl_SetSystemEncoding ( Tcl_Interp * interp, const char * name);


extern Tcl_Obj * Tcl_SetVar2Ex (Tcl_Interp * interp, char * part1, char * part2, Tcl_Obj * newValuePtr, int flags);



extern void Tcl_ThreadAlert (Tcl_ThreadId threadId);

extern void Tcl_ThreadQueueEvent ( Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position);



extern Tcl_UniChar Tcl_UniCharAtIndex (const char * src, int index);


extern Tcl_UniChar Tcl_UniCharToLower (int ch);

extern Tcl_UniChar Tcl_UniCharToTitle (int ch);

extern Tcl_UniChar Tcl_UniCharToUpper (int ch);

extern int Tcl_UniCharToUtf (int ch, char * buf);

extern char * Tcl_UtfAtIndex (const char * src, int index);


extern int Tcl_UtfCharComplete (const char * src, int len);


extern int Tcl_UtfBackslash (const char * src, int * readPtr, char * dst);


extern char * Tcl_UtfFindFirst (const char * src, int ch);


extern char * Tcl_UtfFindLast (const char * src, int ch);


extern char * Tcl_UtfNext (const char * src);

extern char * Tcl_UtfPrev (const char * src, const char * start);


extern int Tcl_UtfToExternal (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);






extern char * Tcl_UtfToExternalDString ( Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);



extern int Tcl_UtfToLower (char * src);

extern int Tcl_UtfToTitle (char * src);

extern int Tcl_UtfToUniChar (const char * src, Tcl_UniChar * chPtr);


extern int Tcl_UtfToUpper (char * src);

extern int Tcl_WriteChars (Tcl_Channel chan, const char * src, int srcLen);


extern int Tcl_WriteObj (Tcl_Channel chan, Tcl_Obj * objPtr);


extern char * Tcl_GetString (Tcl_Obj * objPtr);

extern char * Tcl_GetDefaultEncodingDir (void);

extern void Tcl_SetDefaultEncodingDir (char * path);

extern void Tcl_AlertNotifier (ClientData clientData);

extern void Tcl_ServiceModeHook (int mode);

extern int Tcl_UniCharIsAlnum (int ch);

extern int Tcl_UniCharIsAlpha (int ch);

extern int Tcl_UniCharIsDigit (int ch);

extern int Tcl_UniCharIsLower (int ch);

extern int Tcl_UniCharIsSpace (int ch);

extern int Tcl_UniCharIsUpper (int ch);

extern int Tcl_UniCharIsWordChar (int ch);

extern int Tcl_UniCharLen (Tcl_UniChar * str);

extern int Tcl_UniCharNcmp (const Tcl_UniChar * cs, const Tcl_UniChar * ct, unsigned long n);


extern char * Tcl_UniCharToUtfDString ( const Tcl_UniChar * string, int numChars, Tcl_DString * dsPtr);



extern Tcl_UniChar * Tcl_UtfToUniCharDString ( const char * string, int length, Tcl_DString * dsPtr);



extern Tcl_RegExp Tcl_GetRegExpFromObj ( Tcl_Interp * interp, Tcl_Obj * patObj, int flags);



extern Tcl_Obj * Tcl_EvalTokens (Tcl_Interp * interp, Tcl_Token * tokenPtr, int count);


extern void Tcl_FreeParse (Tcl_Parse * parsePtr);

extern void Tcl_LogCommandInfo (Tcl_Interp * interp, char * script, char * command, int length);


extern int Tcl_ParseBraces (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);




extern int Tcl_ParseCommand (Tcl_Interp * interp, char * string, int numBytes, int nested, Tcl_Parse * parsePtr);



extern int Tcl_ParseExpr (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr);



extern int Tcl_ParseQuotedString ( Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);




extern int Tcl_ParseVarName (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append);



extern char * Tcl_GetCwd (Tcl_Interp * interp, Tcl_DString * cwdPtr);


extern int Tcl_Chdir (const char * dirName);

extern int Tcl_Access (const char * path, int mode);

extern int Tcl_Stat (const char * path, struct stat * bufPtr);


extern int Tcl_UtfNcmp (const char * s1, const char * s2, unsigned long n);


extern int Tcl_UtfNcasecmp (const char * s1, const char * s2, unsigned long n);


extern int Tcl_StringCaseMatch (const char * str, const char * pattern, int nocase);


extern int Tcl_UniCharIsControl (int ch);

extern int Tcl_UniCharIsGraph (int ch);

extern int Tcl_UniCharIsPrint (int ch);

extern int Tcl_UniCharIsPunct (int ch);

extern int Tcl_RegExpExecObj (Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags);



extern void Tcl_RegExpGetInfo (Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr);


extern Tcl_Obj * Tcl_NewUnicodeObj (Tcl_UniChar * unicode, int numChars);


extern void Tcl_SetUnicodeObj (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int numChars);


extern int Tcl_GetCharLength (Tcl_Obj * objPtr);

extern Tcl_UniChar Tcl_GetUniChar (Tcl_Obj * objPtr, int index);


extern Tcl_UniChar * Tcl_GetUnicode (Tcl_Obj * objPtr);

extern Tcl_Obj * Tcl_GetRange (Tcl_Obj * objPtr, int first, int last);


extern void Tcl_AppendUnicodeToObj (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int length);


extern int Tcl_RegExpMatchObj (Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj);


extern void Tcl_SetNotifier ( Tcl_NotifierProcs * notifierProcPtr);


extern Tcl_Mutex * Tcl_GetAllocMutex (void);

extern int Tcl_GetChannelNames (Tcl_Interp * interp);

extern int Tcl_GetChannelNamesEx ( Tcl_Interp * interp, char * pattern);


extern int Tcl_ProcObjCmd (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);



extern void Tcl_ConditionFinalize ( Tcl_Condition * condPtr);


extern void Tcl_MutexFinalize (Tcl_Mutex * mutex);

extern int Tcl_CreateThread (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags);




extern int Tcl_ReadRaw (Tcl_Channel chan, char * dst, int bytesToRead);


extern int Tcl_WriteRaw (Tcl_Channel chan, char * src, int srcLen);


extern Tcl_Channel Tcl_GetTopChannel (Tcl_Channel chan);

extern int Tcl_ChannelBuffered (Tcl_Channel chan);

extern char * Tcl_ChannelName ( Tcl_ChannelType * chanTypePtr);


extern Tcl_ChannelTypeVersion Tcl_ChannelVersion ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverCloseProc * Tcl_ChannelCloseProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverInputProc * Tcl_ChannelInputProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverOutputProc * Tcl_ChannelOutputProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverSeekProc * Tcl_ChannelSeekProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverWatchProc * Tcl_ChannelWatchProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverFlushProc * Tcl_ChannelFlushProc ( Tcl_ChannelType * chanTypePtr);


extern Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc ( Tcl_ChannelType * chanTypePtr);


typedef struct TclStubHooks {
    struct TclPlatStubs *tclPlatStubs;
    struct TclIntStubs *tclIntStubs;
    struct TclIntPlatStubs *tclIntPlatStubs;
} TclStubHooks;

typedef struct TclStubs {
    int magic;
    struct TclStubHooks *hooks;

    int (*tcl_PkgProvideEx) (Tcl_Interp * interp, char * name, char * version, ClientData clientData);
    char * (*tcl_PkgRequireEx) (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);
    void (*tcl_Panic) (char * format, ...);
    char * (*tcl_Alloc) (unsigned int size);
    void (*tcl_Free) (char * ptr);
    char * (*tcl_Realloc) (char * ptr, unsigned int size);
    char * (*tcl_DbCkalloc) (unsigned int size, char * file, int line);
    int (*tcl_DbCkfree) (char * ptr, char * file, int line);
    char * (*tcl_DbCkrealloc) (char * ptr, unsigned int size, char * file, int line);

    void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc * proc, ClientData clientData);
# 1313 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclDecls.h"
    void (*tcl_DeleteFileHandler) (int fd);







    void (*tcl_SetTimer) (Tcl_Time * timePtr);
    void (*tcl_Sleep) (int ms);
    int (*tcl_WaitForEvent) (Tcl_Time * timePtr);
    int (*tcl_AppendAllObjTypes) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    void (*tcl_AppendStringsToObj) (Tcl_Obj * objPtr, ...);
    void (*tcl_AppendToObj) (Tcl_Obj * objPtr, char * bytes, int length);
    Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]);
    int (*tcl_ConvertToType) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr);
    void (*tcl_DbDecrRefCount) (Tcl_Obj * objPtr, char * file, int line);
    void (*tcl_DbIncrRefCount) (Tcl_Obj * objPtr, char * file, int line);
    int (*tcl_DbIsShared) (Tcl_Obj * objPtr, char * file, int line);
    Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, char * file, int line);
    Tcl_Obj * (*tcl_DbNewByteArrayObj) (unsigned char * bytes, int length, char * file, int line);
    Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, char * file, int line);
    Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const objv[], char * file, int line);
    Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, char * file, int line);
    Tcl_Obj * (*tcl_DbNewObj) (char * file, int line);
    Tcl_Obj * (*tcl_DbNewStringObj) (const char * bytes, int length, char * file, int line);
    Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj * objPtr);
    void (*tclFreeObj) (Tcl_Obj * objPtr);
    int (*tcl_GetBoolean) (Tcl_Interp * interp, char * str, int * boolPtr);
    int (*tcl_GetBooleanFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr);
    unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj * objPtr, int * lengthPtr);
    int (*tcl_GetDouble) (Tcl_Interp * interp, char * str, double * doublePtr);
    int (*tcl_GetDoubleFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr);
    int (*tcl_GetIndexFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, char * msg, int flags, int * indexPtr);
    int (*tcl_GetInt) (Tcl_Interp * interp, char * str, int * intPtr);
    int (*tcl_GetIntFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr);
    int (*tcl_GetLongFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr);
    Tcl_ObjType * (*tcl_GetObjType) (char * typeName);
    char * (*tcl_GetStringFromObj) (Tcl_Obj * objPtr, int * lengthPtr);
    void (*tcl_InvalidateStringRep) (Tcl_Obj * objPtr);
    int (*tcl_ListObjAppendList) (Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr);
    int (*tcl_ListObjAppendElement) (Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr);
    int (*tcl_ListObjGetElements) (Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr);
    int (*tcl_ListObjIndex) (Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr);
    int (*tcl_ListObjLength) (Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr);
    int (*tcl_ListObjReplace) (Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *const objv[]);
    Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue);
    Tcl_Obj * (*tcl_NewByteArrayObj) (unsigned char * bytes, int length);
    Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue);
    Tcl_Obj * (*tcl_NewIntObj) (int intValue);
    Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]);
    Tcl_Obj * (*tcl_NewLongObj) (long longValue);
    Tcl_Obj * (*tcl_NewObj) (void);
    Tcl_Obj * (*tcl_NewStringObj) (const char * bytes, int length);
    void (*tcl_SetBooleanObj) (Tcl_Obj * objPtr, int boolValue);
    unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj * objPtr, int length);
    void (*tcl_SetByteArrayObj) (Tcl_Obj * objPtr, unsigned char * bytes, int length);
    void (*tcl_SetDoubleObj) (Tcl_Obj * objPtr, double doubleValue);
    void (*tcl_SetIntObj) (Tcl_Obj * objPtr, int intValue);
    void (*tcl_SetListObj) (Tcl_Obj * objPtr, int objc, Tcl_Obj *const objv[]);
    void (*tcl_SetLongObj) (Tcl_Obj * objPtr, long longValue);
    void (*tcl_SetObjLength) (Tcl_Obj * objPtr, int length);
    void (*tcl_SetStringObj) (Tcl_Obj * objPtr, char * bytes, int length);
    void (*tcl_AddErrorInfo) (Tcl_Interp * interp, const char * message);
    void (*tcl_AddObjErrorInfo) (Tcl_Interp * interp, const char * message, int length);
    void (*tcl_AllowExceptions) (Tcl_Interp * interp);
    void (*tcl_AppendElement) (Tcl_Interp * interp, const char * string);
    void (*tcl_AppendResult) (Tcl_Interp * interp, ...);
    Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc * proc, ClientData clientData);
    void (*tcl_AsyncDelete) (Tcl_AsyncHandler async);
    int (*tcl_AsyncInvoke) (Tcl_Interp * interp, int code);
    void (*tcl_AsyncMark) (Tcl_AsyncHandler async);
    int (*tcl_AsyncReady) (void);
    void (*tcl_BackgroundError) (Tcl_Interp * interp);
    char (*tcl_Backslash) (const char * src, int * readPtr);
    int (*tcl_BadChannelOption) (Tcl_Interp * interp, char * optionName, char * optionList);
    void (*tcl_CallWhenDeleted) (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);
    void (*tcl_CancelIdleCall) (Tcl_IdleProc * idleProc, ClientData clientData);
    int (*tcl_Close) (Tcl_Interp * interp, Tcl_Channel chan);
    int (*tcl_CommandComplete) (char * cmd);
    char * (*tcl_Concat) (int argc, char ** argv);
    int (*tcl_ConvertElement) (const char * src, char * dst, int flags);
    int (*tcl_ConvertCountedElement) (const char * src, int length, char * dst, int flags);
    int (*tcl_CreateAlias) (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int argc, char ** argv);
    int (*tcl_CreateAliasObj) (Tcl_Interp * slave, char * slaveCmd, Tcl_Interp * target, char * targetCmd, int objc, Tcl_Obj *const objv[]);
    Tcl_Channel (*tcl_CreateChannel) (Tcl_ChannelType * typePtr, char * chanName, ClientData instanceData, int mask);
    void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData);
    void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);
    Tcl_Command (*tcl_CreateCommand) (Tcl_Interp * interp, char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);
    void (*tcl_CreateEventSource) (Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);
    void (*tcl_CreateExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    Tcl_Interp * (*tcl_CreateInterp) (void);
    void (*tcl_CreateMathFunc) (Tcl_Interp * interp, char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData);
    Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp * interp, char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc);
    Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp * interp, char * slaveName, int isSafe);
    Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc * proc, ClientData clientData);
    Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData);
    void (*tcl_DeleteAssocData) (Tcl_Interp * interp, char * name);
    void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData);
    void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData);
    int (*tcl_DeleteCommand) (Tcl_Interp * interp, char * cmdName);
    int (*tcl_DeleteCommandFromToken) (Tcl_Interp * interp, Tcl_Command command);
    void (*tcl_DeleteEvents) (Tcl_EventDeleteProc * proc, ClientData clientData);
    void (*tcl_DeleteEventSource) (Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData);
    void (*tcl_DeleteExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    void (*tcl_DeleteHashEntry) (Tcl_HashEntry * entryPtr);
    void (*tcl_DeleteHashTable) (Tcl_HashTable * tablePtr);
    void (*tcl_DeleteInterp) (Tcl_Interp * interp);

    void (*tcl_DetachPids) (int numPids, Tcl_Pid * pidPtr);







    void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token);
    void (*tcl_DeleteTrace) (Tcl_Interp * interp, Tcl_Trace trace);
    void (*tcl_DontCallWhenDeleted) (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData);
    int (*tcl_DoOneEvent) (int flags);
    void (*tcl_DoWhenIdle) (Tcl_IdleProc * proc, ClientData clientData);
    char * (*tcl_DStringAppend) (Tcl_DString * dsPtr, const char * str, int length);
    char * (*tcl_DStringAppendElement) (Tcl_DString * dsPtr, const char * string);
    void (*tcl_DStringEndSublist) (Tcl_DString * dsPtr);
    void (*tcl_DStringFree) (Tcl_DString * dsPtr);
    void (*tcl_DStringGetResult) (Tcl_Interp * interp, Tcl_DString * dsPtr);
    void (*tcl_DStringInit) (Tcl_DString * dsPtr);
    void (*tcl_DStringResult) (Tcl_Interp * interp, Tcl_DString * dsPtr);
    void (*tcl_DStringSetLength) (Tcl_DString * dsPtr, int length);
    void (*tcl_DStringStartSublist) (Tcl_DString * dsPtr);
    int (*tcl_Eof) (Tcl_Channel chan);
    char * (*tcl_ErrnoId) (void);
    char * (*tcl_ErrnoMsg) (int err);
    int (*tcl_Eval) (Tcl_Interp * interp, char * string);
    int (*tcl_EvalFile) (Tcl_Interp * interp, char * fileName);
    int (*tcl_EvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc * freeProc);
    void (*tcl_Exit) (int status);
    int (*tcl_ExposeCommand) (Tcl_Interp * interp, char * hiddenCmdToken, char * cmdName);
    int (*tcl_ExprBoolean) (Tcl_Interp * interp, char * str, int * ptr);
    int (*tcl_ExprBooleanObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr);
    int (*tcl_ExprDouble) (Tcl_Interp * interp, char * str, double * ptr);
    int (*tcl_ExprDoubleObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr);
    int (*tcl_ExprLong) (Tcl_Interp * interp, char * str, long * ptr);
    int (*tcl_ExprLongObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr);
    int (*tcl_ExprObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr);
    int (*tcl_ExprString) (Tcl_Interp * interp, char * string);
    void (*tcl_Finalize) (void);
    void (*tcl_FindExecutable) (const char * argv0);
    Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr);
    int (*tcl_Flush) (Tcl_Channel chan);
    void (*tcl_FreeResult) (Tcl_Interp * interp);
    int (*tcl_GetAlias) (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * argcPtr, char *** argvPtr);
    int (*tcl_GetAliasObj) (Tcl_Interp * interp, char * slaveCmd, Tcl_Interp ** targetInterpPtr, char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv);
    ClientData (*tcl_GetAssocData) (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc ** procPtr);
    Tcl_Channel (*tcl_GetChannel) (Tcl_Interp * interp, char * chanName, int * modePtr);
    int (*tcl_GetChannelBufferSize) (Tcl_Channel chan);
    int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData * handlePtr);
    ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan);
    int (*tcl_GetChannelMode) (Tcl_Channel chan);
    char * (*tcl_GetChannelName) (Tcl_Channel chan);
    int (*tcl_GetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan, char * optionName, Tcl_DString * dsPtr);
    Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan);
    int (*tcl_GetCommandInfo) (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);
    char * (*tcl_GetCommandName) (Tcl_Interp * interp, Tcl_Command command);
    int (*tcl_GetErrno) (void);
    char * (*tcl_GetHostName) (void);
    int (*tcl_GetInterpPath) (Tcl_Interp * askInterp, Tcl_Interp * slaveInterp);
    Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp * interp);
    const char * (*tcl_GetNameOfExecutable) (void);
    Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp * interp);

    int (*tcl_GetOpenFile) (Tcl_Interp * interp, char * str, int forWriting, int checkUsage, ClientData * filePtr);







    Tcl_PathType (*tcl_GetPathType) (char * path);
    int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString * dsPtr);
    int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj * objPtr);
    int (*tcl_GetServiceMode) (void);
    Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp * interp, char * slaveName);
    Tcl_Channel (*tcl_GetStdChannel) (int type);
    char * (*tcl_GetStringResult) (Tcl_Interp * interp);
    char * (*tcl_GetVar) (Tcl_Interp * interp, char * varName, int flags);
    char * (*tcl_GetVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags);
    int (*tcl_GlobalEval) (Tcl_Interp * interp, char * command);
    int (*tcl_GlobalEvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    int (*tcl_HideCommand) (Tcl_Interp * interp, char * cmdName, char * hiddenCmdToken);
    int (*tcl_Init) (Tcl_Interp * interp);
    void (*tcl_InitHashTable) (Tcl_HashTable * tablePtr, int keyType);
    int (*tcl_InputBlocked) (Tcl_Channel chan);
    int (*tcl_InputBuffered) (Tcl_Channel chan);
    int (*tcl_InterpDeleted) (Tcl_Interp * interp);
    int (*tcl_IsSafe) (Tcl_Interp * interp);
    char * (*tcl_JoinPath) (int argc, char ** argv, Tcl_DString * resultPtr);
    int (*tcl_LinkVar) (Tcl_Interp * interp, char * varName, char * addr, int type);
    void *reserved188;
    Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode);
    int (*tcl_MakeSafe) (Tcl_Interp * interp);
    Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket);
    char * (*tcl_Merge) (int argc, char ** argv);
    Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch * searchPtr);
    void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask);
    Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags);
    Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags);

    Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp * interp, int argc, char ** argv, int flags);







    Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);
    Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp * interp, int port, char * address, char * myaddr, int myport, int async);
    Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp * interp, int port, char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData);
    void (*tcl_Preserve) (ClientData data);
    void (*tcl_PrintDouble) (Tcl_Interp * interp, double value, char * dst);
    int (*tcl_PutEnv) (const char * string);
    char * (*tcl_PosixError) (Tcl_Interp * interp);
    void (*tcl_QueueEvent) (Tcl_Event * evPtr, Tcl_QueuePosition position);
    int (*tcl_Read) (Tcl_Channel chan, char * bufPtr, int toRead);

    void (*tcl_ReapDetachedProcs) (void);







    int (*tcl_RecordAndEval) (Tcl_Interp * interp, char * cmd, int flags);
    int (*tcl_RecordAndEvalObj) (Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags);
    void (*tcl_RegisterChannel) (Tcl_Interp * interp, Tcl_Channel chan);
    void (*tcl_RegisterObjType) (Tcl_ObjType * typePtr);
    Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp * interp, char * string);
    int (*tcl_RegExpExec) (Tcl_Interp * interp, Tcl_RegExp regexp, const char * str, const char * start);
    int (*tcl_RegExpMatch) (Tcl_Interp * interp, char * str, char * pattern);
    void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, char ** startPtr, char ** endPtr);
    void (*tcl_Release) (ClientData clientData);
    void (*tcl_ResetResult) (Tcl_Interp * interp);
    int (*tcl_ScanElement) (const char * str, int * flagPtr);
    int (*tcl_ScanCountedElement) (const char * str, int length, int * flagPtr);
    int (*tcl_Seek) (Tcl_Channel chan, int offset, int mode);
    int (*tcl_ServiceAll) (void);
    int (*tcl_ServiceEvent) (int flags);
    void (*tcl_SetAssocData) (Tcl_Interp * interp, char * name, Tcl_InterpDeleteProc * proc, ClientData clientData);
    void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz);
    int (*tcl_SetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan, char * optionName, char * newValue);
    int (*tcl_SetCommandInfo) (Tcl_Interp * interp, char * cmdName, Tcl_CmdInfo * infoPtr);
    void (*tcl_SetErrno) (int err);
    void (*tcl_SetErrorCode) (Tcl_Interp * interp, ...);
    void (*tcl_SetMaxBlockTime) (Tcl_Time * timePtr);
    void (*tcl_SetPanicProc) (Tcl_PanicProc * panicProc);
    int (*tcl_SetRecursionLimit) (Tcl_Interp * interp, int depth);
    void (*tcl_SetResult) (Tcl_Interp * interp, char * str, Tcl_FreeProc * freeProc);
    int (*tcl_SetServiceMode) (int mode);
    void (*tcl_SetObjErrorCode) (Tcl_Interp * interp, Tcl_Obj * errorObjPtr);
    void (*tcl_SetObjResult) (Tcl_Interp * interp, Tcl_Obj * resultObjPtr);
    void (*tcl_SetStdChannel) (Tcl_Channel channel, int type);
    char * (*tcl_SetVar) (Tcl_Interp * interp, char * varName, char * newValue, int flags);
    char * (*tcl_SetVar2) (Tcl_Interp * interp, char * part1, char * part2, char * newValue, int flags);
    char * (*tcl_SignalId) (int sig);
    char * (*tcl_SignalMsg) (int sig);
    void (*tcl_SourceRCFile) (Tcl_Interp * interp);
    int (*tcl_SplitList) (Tcl_Interp * interp, const char * listStr, int * argcPtr, char *** argvPtr);
    void (*tcl_SplitPath) (const char * path, int * argcPtr, char *** argvPtr);
    void (*tcl_StaticPackage) (Tcl_Interp * interp, char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc);
    int (*tcl_StringMatch) (const char * str, const char * pattern);
    int (*tcl_Tell) (Tcl_Channel chan);
    int (*tcl_TraceVar) (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    int (*tcl_TraceVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    char * (*tcl_TranslateFileName) (Tcl_Interp * interp, char * name, Tcl_DString * bufferPtr);
    int (*tcl_Ungets) (Tcl_Channel chan, char * str, int len, int atHead);
    void (*tcl_UnlinkVar) (Tcl_Interp * interp, char * varName);
    int (*tcl_UnregisterChannel) (Tcl_Interp * interp, Tcl_Channel chan);
    int (*tcl_UnsetVar) (Tcl_Interp * interp, char * varName, int flags);
    int (*tcl_UnsetVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags);
    void (*tcl_UntraceVar) (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    void (*tcl_UntraceVar2) (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData);
    void (*tcl_UpdateLinkedVar) (Tcl_Interp * interp, char * varName);
    int (*tcl_UpVar) (Tcl_Interp * interp, char * frameName, char * varName, char * localName, int flags);
    int (*tcl_UpVar2) (Tcl_Interp * interp, char * frameName, char * part1, char * part2, char * localName, int flags);
    int (*tcl_VarEval) (Tcl_Interp * interp, ...);
    ClientData (*tcl_VarTraceInfo) (Tcl_Interp * interp, char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);
    ClientData (*tcl_VarTraceInfo2) (Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData);
    int (*tcl_Write) (Tcl_Channel chan, char * s, int slen);
    void (*tcl_WrongNumArgs) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], char * message);
    int (*tcl_DumpActiveMemory) (char * fileName);
    void (*tcl_ValidateAllMemory) (char * file, int line);
    void (*tcl_AppendResultVA) (Tcl_Interp * interp, va_list argList);
    void (*tcl_AppendStringsToObjVA) (Tcl_Obj * objPtr, va_list argList);
    char * (*tcl_HashStats) (Tcl_HashTable * tablePtr);
    char * (*tcl_ParseVar) (Tcl_Interp * interp, char * str, char ** termPtr);
    char * (*tcl_PkgPresent) (Tcl_Interp * interp, char * name, char * version, int exact);
    char * (*tcl_PkgPresentEx) (Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr);
    int (*tcl_PkgProvide) (Tcl_Interp * interp, char * name, char * version);
    char * (*tcl_PkgRequire) (Tcl_Interp * interp, char * name, char * version, int exact);
    void (*tcl_SetErrorCodeVA) (Tcl_Interp * interp, va_list argList);
    int (*tcl_VarEvalVA) (Tcl_Interp * interp, va_list argList);
    Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int * statPtr, int options);

    void (*tcl_PanicVA) (char * format, va_list argList);







    void (*tcl_GetVersion) (int * major, int * minor, int * patchLevel, int * type);
    void (*tcl_InitMemory) (Tcl_Interp * interp);
    Tcl_Channel (*tcl_StackChannel) (Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan);
    int (*tcl_UnstackChannel) (Tcl_Interp * interp, Tcl_Channel chan);
    Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan);
    void *reserved284;
    void *reserved285;
    void (*tcl_AppendObjToObj) (Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr);
    Tcl_Encoding (*tcl_CreateEncoding) (Tcl_EncodingType * typePtr);
    void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc * proc, ClientData clientData);
    void (*tcl_DiscardResult) (Tcl_SavedResult * statePtr);
    int (*tcl_EvalEx) (Tcl_Interp * interp, char * script, int numBytes, int flags);
    int (*tcl_EvalObjv) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);
    int (*tcl_EvalObjEx) (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags);
    void (*tcl_ExitThread) (int status);
    int (*tcl_ExternalToUtf) (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);
    char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);
    void (*tcl_FinalizeThread) (void);
    void (*tcl_FinalizeNotifier) (ClientData clientData);
    void (*tcl_FreeEncoding) (Tcl_Encoding encoding);
    Tcl_ThreadId (*tcl_GetCurrentThread) (void);
    Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp * interp, const char * name);
    char * (*tcl_GetEncodingName) (Tcl_Encoding encoding);
    void (*tcl_GetEncodingNames) (Tcl_Interp * interp);
    int (*tcl_GetIndexFromObjStruct) (Tcl_Interp * interp, Tcl_Obj * objPtr, char ** tablePtr, int offset, char * msg, int flags, int * indexPtr);
    void * (*tcl_GetThreadData) (Tcl_ThreadDataKey * keyPtr, int size);
    Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp * interp, char * part1, char * part2, int flags);
    ClientData (*tcl_InitNotifier) (void);
    void (*tcl_MutexLock) (Tcl_Mutex * mutexPtr);
    void (*tcl_MutexUnlock) (Tcl_Mutex * mutexPtr);
    void (*tcl_ConditionNotify) (Tcl_Condition * condPtr);
    void (*tcl_ConditionWait) (Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr);
    int (*tcl_NumUtfChars) (const char * src, int len);
    int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag);
    void (*tcl_RestoreResult) (Tcl_Interp * interp, Tcl_SavedResult * statePtr);
    void (*tcl_SaveResult) (Tcl_Interp * interp, Tcl_SavedResult * statePtr);
    int (*tcl_SetSystemEncoding) (Tcl_Interp * interp, const char * name);
    Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp * interp, char * part1, char * part2, Tcl_Obj * newValuePtr, int flags);
    void (*tcl_ThreadAlert) (Tcl_ThreadId threadId);
    void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position);
    Tcl_UniChar (*tcl_UniCharAtIndex) (const char * src, int index);
    Tcl_UniChar (*tcl_UniCharToLower) (int ch);
    Tcl_UniChar (*tcl_UniCharToTitle) (int ch);
    Tcl_UniChar (*tcl_UniCharToUpper) (int ch);
    int (*tcl_UniCharToUtf) (int ch, char * buf);
    char * (*tcl_UtfAtIndex) (const char * src, int index);
    int (*tcl_UtfCharComplete) (const char * src, int len);
    int (*tcl_UtfBackslash) (const char * src, int * readPtr, char * dst);
    char * (*tcl_UtfFindFirst) (const char * src, int ch);
    char * (*tcl_UtfFindLast) (const char * src, int ch);
    char * (*tcl_UtfNext) (const char * src);
    char * (*tcl_UtfPrev) (const char * src, const char * start);
    int (*tcl_UtfToExternal) (Tcl_Interp * interp, Tcl_Encoding encoding, const char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr);
    char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char * src, int srcLen, Tcl_DString * dsPtr);
    int (*tcl_UtfToLower) (char * src);
    int (*tcl_UtfToTitle) (char * src);
    int (*tcl_UtfToUniChar) (const char * src, Tcl_UniChar * chPtr);
    int (*tcl_UtfToUpper) (char * src);
    int (*tcl_WriteChars) (Tcl_Channel chan, const char * src, int srcLen);
    int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj * objPtr);
    char * (*tcl_GetString) (Tcl_Obj * objPtr);
    char * (*tcl_GetDefaultEncodingDir) (void);
    void (*tcl_SetDefaultEncodingDir) (char * path);
    void (*tcl_AlertNotifier) (ClientData clientData);
    void (*tcl_ServiceModeHook) (int mode);
    int (*tcl_UniCharIsAlnum) (int ch);
    int (*tcl_UniCharIsAlpha) (int ch);
    int (*tcl_UniCharIsDigit) (int ch);
    int (*tcl_UniCharIsLower) (int ch);
    int (*tcl_UniCharIsSpace) (int ch);
    int (*tcl_UniCharIsUpper) (int ch);
    int (*tcl_UniCharIsWordChar) (int ch);
    int (*tcl_UniCharLen) (Tcl_UniChar * str);
    int (*tcl_UniCharNcmp) (const Tcl_UniChar * cs, const Tcl_UniChar * ct, unsigned long n);
    char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar * string, int numChars, Tcl_DString * dsPtr);
    Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char * string, int length, Tcl_DString * dsPtr);
    Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp * interp, Tcl_Obj * patObj, int flags);
    Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp * interp, Tcl_Token * tokenPtr, int count);
    void (*tcl_FreeParse) (Tcl_Parse * parsePtr);
    void (*tcl_LogCommandInfo) (Tcl_Interp * interp, char * script, char * command, int length);
    int (*tcl_ParseBraces) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
    int (*tcl_ParseCommand) (Tcl_Interp * interp, char * string, int numBytes, int nested, Tcl_Parse * parsePtr);
    int (*tcl_ParseExpr) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr);
    int (*tcl_ParseQuotedString) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append, char ** termPtr);
    int (*tcl_ParseVarName) (Tcl_Interp * interp, char * string, int numBytes, Tcl_Parse * parsePtr, int append);
    char * (*tcl_GetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr);
    int (*tcl_Chdir) (const char * dirName);
    int (*tcl_Access) (const char * path, int mode);
    int (*tcl_Stat) (const char * path, struct stat * bufPtr);
    int (*tcl_UtfNcmp) (const char * s1, const char * s2, unsigned long n);
    int (*tcl_UtfNcasecmp) (const char * s1, const char * s2, unsigned long n);
    int (*tcl_StringCaseMatch) (const char * str, const char * pattern, int nocase);
    int (*tcl_UniCharIsControl) (int ch);
    int (*tcl_UniCharIsGraph) (int ch);
    int (*tcl_UniCharIsPrint) (int ch);
    int (*tcl_UniCharIsPunct) (int ch);
    int (*tcl_RegExpExecObj) (Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags);
    void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr);
    Tcl_Obj * (*tcl_NewUnicodeObj) (Tcl_UniChar * unicode, int numChars);
    void (*tcl_SetUnicodeObj) (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int numChars);
    int (*tcl_GetCharLength) (Tcl_Obj * objPtr);
    Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj * objPtr, int index);
    Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj * objPtr);
    Tcl_Obj * (*tcl_GetRange) (Tcl_Obj * objPtr, int first, int last);
    void (*tcl_AppendUnicodeToObj) (Tcl_Obj * objPtr, Tcl_UniChar * unicode, int length);
    int (*tcl_RegExpMatchObj) (Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj);
    void (*tcl_SetNotifier) (Tcl_NotifierProcs * notifierProcPtr);
    Tcl_Mutex * (*tcl_GetAllocMutex) (void);
    int (*tcl_GetChannelNames) (Tcl_Interp * interp);
    int (*tcl_GetChannelNamesEx) (Tcl_Interp * interp, char * pattern);
    int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    void (*tcl_ConditionFinalize) (Tcl_Condition * condPtr);
    void (*tcl_MutexFinalize) (Tcl_Mutex * mutex);
    int (*tcl_CreateThread) (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags);
    int (*tcl_ReadRaw) (Tcl_Channel chan, char * dst, int bytesToRead);
    int (*tcl_WriteRaw) (Tcl_Channel chan, char * src, int srcLen);
    Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan);
    int (*tcl_ChannelBuffered) (Tcl_Channel chan);
    char * (*tcl_ChannelName) (Tcl_ChannelType * chanTypePtr);
    Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverInputProc * (*tcl_ChannelInputProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (Tcl_ChannelType * chanTypePtr);
    Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (Tcl_ChannelType * chanTypePtr);
} TclStubs;




extern TclStubs *tclStubsPtr;
# 1682 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h" 2





extern void Tcl_Main (int argc, char **argv, Tcl_AppInitProc *appInitProc);
# 1699 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tcl.h"
extern int Tcl_AppInit (Tcl_Interp *interp);
# 34 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2


# 1 "/usr/include/ctype.h" 1 3 4
# 37 "/usr/include/ctype.h" 3 4
extern int __attribute__((__cdecl__)) isalnum(int);
extern int __attribute__((__cdecl__)) isalpha(int);
extern int __attribute__((__cdecl__)) iscntrl(int);
extern int __attribute__((__cdecl__)) isdigit(int);
extern int __attribute__((__cdecl__)) isgraph(int);
extern int __attribute__((__cdecl__)) islower(int);
extern int __attribute__((__cdecl__)) isprint(int);
extern int __attribute__((__cdecl__)) ispunct(int);
extern int __attribute__((__cdecl__)) isspace(int);
extern int __attribute__((__cdecl__)) isupper(int);
extern int __attribute__((__cdecl__)) isxdigit(int);
extern int __attribute__((__cdecl__)) toupper(int);
extern int __attribute__((__cdecl__)) tolower(int);



extern int __attribute__((__cdecl__)) _tolower(int);
extern int __attribute__((__cdecl__)) _toupper(int);
extern int __attribute__((__cdecl__)) isascii(int);
extern int __attribute__((__cdecl__)) toascii(int);




extern int __attribute__((__cdecl__)) isblank(int c);






extern int __attribute__((__cdecl__)) _isctype(int, int);
extern unsigned short *_pctype;
# 95 "/usr/include/ctype.h" 3 4
extern int __mb_cur_max;
# 37 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2



# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 11 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/syslimits.h" 1 3 4






# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 220 "/usr/include/limits.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 1 3 4
# 122 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 123 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 123 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 221 "/usr/include/limits.h" 2 3 4
# 123 "/opt/gcc.3.3/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 123 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 8 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/syslimits.h" 2 3 4
# 12 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/limits.h" 2 3 4
# 41 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2




# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stddef.h" 1 3 4
# 151 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 325 "//C/home/donn.intel/gnu2.intel/lib/gcc-lib/i386-pc-interix3/3.3/include/stddef.h" 3 4
typedef short unsigned int wchar_t;
# 34 "/usr/include/stdlib.h" 2 3 4
# 49 "/usr/include/stdlib.h" 3 4
typedef struct {
        int quot;
        int rem;
} div_t;

typedef struct {
        long quot;
        long rem;
} ldiv_t;
# 67 "/usr/include/stdlib.h" 3 4
extern int __mb_cur_max;




extern void __attribute__((__cdecl__)) abort(void);
extern int __attribute__((__cdecl__)) abs(int);
extern int __attribute__((__cdecl__)) atexit(void (__attribute__((__cdecl__)) *)(void));
extern double __attribute__((__cdecl__)) atof(const char *);
extern int __attribute__((__cdecl__)) atoi(const char *);
extern long __attribute__((__cdecl__)) atol(const char *);
extern void * __attribute__((__cdecl__)) bsearch (const void *, const void *, size_t, size_t,
                                int (__attribute__((__cdecl__))*)(const void *, const void *));
extern void * __attribute__((__cdecl__)) calloc(size_t, size_t);
extern div_t __attribute__((__cdecl__)) div(int, int);
extern void __attribute__((__cdecl__)) exit(int);
extern void __attribute__((__cdecl__)) free(void *);
extern char * __attribute__((__cdecl__)) getenv(const char *);
extern long __attribute__((__cdecl__)) labs(long);
extern ldiv_t __attribute__((__cdecl__)) ldiv(long, long);
extern void * __attribute__((__cdecl__)) malloc(size_t);
extern int __attribute__((__cdecl__)) mblen(const char *, size_t);
extern size_t __attribute__((__cdecl__)) mbstowcs(wchar_t *, const char *, size_t);
extern int __attribute__((__cdecl__)) mbtowc(wchar_t *, const char *, size_t);
extern void __attribute__((__cdecl__)) qsort(void *, size_t, size_t,
                            int (__attribute__((__cdecl__)) *)(const void *, const void *));
extern int __attribute__((__cdecl__)) rand(void);
extern void * __attribute__((__cdecl__)) realloc(void *, size_t);
extern void __attribute__((__cdecl__)) srand(unsigned int);
extern double __attribute__((__cdecl__)) strtod(const char *, char **);
extern long __attribute__((__cdecl__)) strtol(const char *, char **, int);
extern unsigned long __attribute__((__cdecl__)) strtoul(const char *, char **, int);
extern int __attribute__((__cdecl__)) system(const char *);
extern size_t __attribute__((__cdecl__)) wcstombs(char *, const wchar_t *, size_t);
extern int __attribute__((__cdecl__)) wctomb(char *, wchar_t);





# 1 "/usr/include/sys/wait.h" 1 3 4
# 95 "/usr/include/sys/wait.h" 3 4
extern pid_t __attribute__((__cdecl__)) wait(int *stat_loc);
extern pid_t __attribute__((__cdecl__)) waitpid(pid_t pid, int *stat_loc, int options);
# 108 "/usr/include/stdlib.h" 2 3 4




extern char * __attribute__((__cdecl__)) mktemp(char *);
extern int __attribute__((__cdecl__)) mkstemp(char *);
extern int __attribute__((__cdecl__)) putenv(const char *);
extern char * __attribute__((__cdecl__)) ptsname(int fildes);
extern int __attribute__((__cdecl__)) grantpt(int fildes);
extern int __attribute__((__cdecl__)) unlockpt(int fildes);
extern int __attribute__((__cdecl__)) ttyslot(void);

extern void setkey(const char *);




extern char * __attribute__((__cdecl__)) initstate(unsigned int seed, char *state, size_t size);
extern char * __attribute__((__cdecl__)) setstate(const char *state);
extern long __attribute__((__cdecl__)) random(void);
extern void __attribute__((__cdecl__)) srandom(unsigned int seed);

extern double __attribute__((__cdecl__)) drand48(void);
extern double __attribute__((__cdecl__)) erand48(unsigned short []);
extern long __attribute__((__cdecl__)) jrand48(unsigned short []);
extern void __attribute__((__cdecl__)) lcong48(unsigned short []);
extern long __attribute__((__cdecl__)) lrand48(void);
extern long __attribute__((__cdecl__)) mrand48(void);
extern long __attribute__((__cdecl__)) nrand48(unsigned short []);
extern unsigned short * __attribute__((__cdecl__)) seed48(unsigned short []);
extern void __attribute__((__cdecl__)) srand48(long seedval);
# 148 "/usr/include/stdlib.h" 3 4
extern long __attribute__((__cdecl__)) a64l(const char *);
extern char * __attribute__((__cdecl__)) l64a(long);
extern char * __attribute__((__cdecl__)) ecvt(double, int, int*, int*);
extern char * __attribute__((__cdecl__)) fcvt(double, int, int*, int*);
extern char * __attribute__((__cdecl__)) gcvt(double, int, char *);
extern char * __attribute__((__cdecl__)) realpath(const char *, char *);
extern int __attribute__((__cdecl__)) getsubopt(char **, char * const *, char **);


extern char *suboptarg;
# 169 "/usr/include/stdlib.h" 3 4
extern int __attribute__((__cdecl__)) setenv(const char *, const char *, int);
# 46 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2




# 1 "/usr/include/string.h" 1 3 4
# 53 "/usr/include/string.h" 3 4
extern void * __attribute__((__cdecl__)) memchr(const void *, int, size_t);
extern int __attribute__((__cdecl__)) memcmp(const void *, const void *, size_t);
extern void * __attribute__((__cdecl__)) memcpy(void *, const void *, size_t);
extern void * __attribute__((__cdecl__)) memmove(void *, const void *, size_t);
extern void * __attribute__((__cdecl__)) memset(void *, int, size_t);
extern char * __attribute__((__cdecl__)) strcat(char *, const char *);
extern char * __attribute__((__cdecl__)) strchr(const char *, int);
extern int __attribute__((__cdecl__)) strcmp(const char *, const char *);
extern int __attribute__((__cdecl__)) strcoll(const char *, const char *);
extern char * __attribute__((__cdecl__)) strcpy(char *, const char *);
extern size_t __attribute__((__cdecl__)) strcspn(const char *, const char *);
extern char * __attribute__((__cdecl__)) strerror(int);
extern size_t __attribute__((__cdecl__)) strlen(const char *);
extern char * __attribute__((__cdecl__)) strncat(char *, const char *, size_t);
extern int __attribute__((__cdecl__)) strncmp(const char *, const char *, size_t);
extern char * __attribute__((__cdecl__)) strncpy(char *, const char *, size_t);
extern char * __attribute__((__cdecl__)) strpbrk(const char *, const char *);
extern char * __attribute__((__cdecl__)) strrchr(const char *, int);
extern size_t __attribute__((__cdecl__)) strspn(const char *, const char *);
extern char * __attribute__((__cdecl__)) strstr(const char *, const char *);
extern char * __attribute__((__cdecl__)) strtok(char *, const char *);
extern size_t __attribute__((__cdecl__)) strxfrm (char *, const char *, size_t);



extern void* __attribute__((__cdecl__)) memccpy(void *, const void *, int, unsigned int);






extern char* __attribute__((__cdecl__)) strdup(const char *);







# 1 "/usr/include/strings.h" 1 3 4
# 61 "/usr/include/strings.h" 3 4
extern int __attribute__((__cdecl__)) bcmp (const void *, const void *, size_t);
extern void __attribute__((__cdecl__)) bcopy (const void *, void *, size_t);
extern void __attribute__((__cdecl__)) bzero (void *, size_t);
extern int __attribute__((__cdecl__)) ffs (int);
extern char * __attribute__((__cdecl__)) index (const char *, int);
extern char * __attribute__((__cdecl__)) rindex (const char *, int);
extern char * __attribute__((__cdecl__)) strdup (const char *);
extern int __attribute__((__cdecl__)) strcasecmp (const char *, const char *);
extern int __attribute__((__cdecl__)) strncasecmp (const char *, const char *, size_t);


extern char * __attribute__((__cdecl__)) strsep (char **, const char *);
extern char * __attribute__((__cdecl__)) strcasestr (const char *, const char *);
# 94 "/usr/include/string.h" 2 3 4

extern char *strsignal(int);
extern char *strsigname(int);


extern size_t strlcpy(char *, const char *, size_t );
extern size_t strlcat(char *, const char *, size_t );
# 51 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2
# 70 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
struct Tcl_ResolvedVarInfo;

typedef Tcl_Var (Tcl_ResolveRuntimeVarProc) ( Tcl_Interp* interp, struct Tcl_ResolvedVarInfo *vinfoPtr);


typedef void (Tcl_ResolveVarDeleteProc) ( struct Tcl_ResolvedVarInfo *vinfoPtr);
# 85 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Tcl_ResolvedVarInfo {
    Tcl_ResolveRuntimeVarProc *fetchProc;
    Tcl_ResolveVarDeleteProc *deleteProc;
} Tcl_ResolvedVarInfo;



typedef int (Tcl_ResolveCompiledVarProc) ( Tcl_Interp* interp, char* name, int length, Tcl_Namespace *context, Tcl_ResolvedVarInfo **rPtr);



typedef int (Tcl_ResolveVarProc) ( Tcl_Interp* interp, char* name, Tcl_Namespace *context, int flags, Tcl_Var *rPtr);



typedef int (Tcl_ResolveCmdProc) (Tcl_Interp* interp, char* name, Tcl_Namespace *context, int flags, Tcl_Command *rPtr);



typedef struct Tcl_ResolverInfo {
    Tcl_ResolveCmdProc *cmdResProc;

    Tcl_ResolveVarProc *varResProc;


    Tcl_ResolveCompiledVarProc *compiledVarResProc;


} Tcl_ResolverInfo;
# 128 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Namespace {
    char *name;



    char *fullName;

    ClientData clientData;

    Tcl_NamespaceDeleteProc *deleteProc;


    struct Namespace *parentPtr;


    Tcl_HashTable childTable;


    long nsId;
    Tcl_Interp *interp;

    int flags;


    int activationCount;




    int refCount;


    Tcl_HashTable cmdTable;







    Tcl_HashTable varTable;


    char **exportArrayPtr;






    int numExportPatterns;

    int maxExportPatterns;

    int cmdRefEpoch;




    int resolverEpoch;




    Tcl_ResolveCmdProc *cmdResProc;





    Tcl_ResolveVarProc *varResProc;






    Tcl_ResolveCompiledVarProc *compiledVarResProc;






} Namespace;
# 260 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct VarTrace {
    Tcl_VarTraceProc *traceProc;

    ClientData clientData;
    int flags;



    struct VarTrace *nextPtr;

} VarTrace;
# 280 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ActiveVarTrace {
    struct Var *varPtr;
    struct ActiveVarTrace *nextPtr;



    VarTrace *nextTracePtr;



} ActiveVarTrace;







typedef struct ArraySearch {
    int id;


    struct Var *varPtr;

    Tcl_HashSearch search;

    Tcl_HashEntry *nextEntry;





    struct ArraySearch *nextPtr;


} ArraySearch;
# 326 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Var {
    union {
        Tcl_Obj *objPtr;

        Tcl_HashTable *tablePtr;



        struct Var *linkPtr;



    } value;
    char *name;






    Namespace *nsPtr;


    Tcl_HashEntry *hPtr;
# 359 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    int refCount;







    VarTrace *tracePtr;

    ArraySearch *searchPtr;

    int flags;

} Var;
# 528 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
struct Command;
# 543 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct CompiledLocal {
    struct CompiledLocal *nextPtr;



    int nameLength;


    int frameIndex;

    int flags;




    Tcl_Obj *defValuePtr;


    Tcl_ResolvedVarInfo *resolveInfo;






    char name[4];




} CompiledLocal;







typedef struct Proc {
    struct Interp *iPtr;

    int refCount;




    struct Command *cmdPtr;



    Tcl_Obj *bodyPtr;

    int numArgs;
    int numCompiledLocals;


    CompiledLocal *firstLocalPtr;




    CompiledLocal *lastLocalPtr;


} Proc;






typedef struct Trace {
    int level;

    Tcl_CmdTraceProc *proc;
    ClientData clientData;
    struct Trace *nextPtr;
} Trace;
# 629 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct AssocData {
    Tcl_InterpDeleteProc *proc;
    ClientData clientData;
} AssocData;
# 648 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct CallFrame {
    Namespace *nsPtr;

    int isProcCallFrame;






    int objc;

    Tcl_Obj *const *objv;
    struct CallFrame *callerPtr;



    struct CallFrame *callerVarPtr;






    int level;



    Proc *procPtr;





    Tcl_HashTable *varTablePtr;



    int numCompiledLocals;

    Var* compiledLocals;



} CallFrame;
# 702 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef void **TclHandle;

extern TclHandle TclHandleCreate (void *ptr);
extern void TclHandleFree (TclHandle handle);
extern TclHandle TclHandlePreserve (TclHandle handle);
extern void TclHandleRelease (TclHandle handle);
# 721 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct {
    char *command;

    int bytesAvl;

} HistoryEvent;
# 735 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct HistoryRev {
    int firstIndex;

    int lastIndex;

    int newSize;
    char *newBytes;

    struct HistoryRev *nextPtr;

} HistoryRev;
# 760 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct MathFunc {
    int builtinFuncIndex;






    int numArgs;
    Tcl_ValueType argTypes[5];

    Tcl_MathProc *proc;

    ClientData clientData;


} MathFunc;







extern void *TclThreadDataKeyGet (Tcl_ThreadDataKey *keyPtr);
extern void TclThreadDataKeySet (Tcl_ThreadDataKey *keyPtr, void *data);
# 807 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
struct CompileEnv;
# 828 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef int (CompileProc) (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *compEnvPtr);







typedef int (CompileHookProc) (Tcl_Interp *interp, struct CompileEnv *compEnvPtr, ClientData clientData);
# 849 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ExecEnv {
    Tcl_Obj **stackPtr;

    int stackTop;

    int stackEnd;
} ExecEnv;
# 873 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct LiteralEntry {
    struct LiteralEntry *nextPtr;


    Tcl_Obj *objPtr;


    int refCount;






} LiteralEntry;

typedef struct LiteralTable {
    LiteralEntry **buckets;


    LiteralEntry *staticBuckets[4];



    int numBuckets;

    int numEntries;

    int rebuildSize;

    int mask;

} LiteralTable;
# 958 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ImportRef {
    struct Command *importedCmdPtr;




    struct ImportRef *nextPtr;




} ImportRef;







typedef struct ImportedCmdData {
    struct Command *realCmdPtr;

    struct Command *selfPtr;



} ImportedCmdData;






typedef struct Command {
    Tcl_HashEntry *hPtr;
# 1002 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    Namespace *nsPtr;

    int refCount;





    int cmdEpoch;


    CompileProc *compileProc;

    Tcl_ObjCmdProc *objProc;
    ClientData objClientData;
    Tcl_CmdProc *proc;
    ClientData clientData;
    Tcl_CmdDeleteProc *deleteProc;


    ClientData deleteData;
    int deleted;



    ImportRef *importRefPtr;






} Command;
# 1051 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ResolverScheme {
    char *name;
    Tcl_ResolveCmdProc *cmdResProc;


    Tcl_ResolveVarProc *varResProc;



    Tcl_ResolveCompiledVarProc *compiledVarResProc;



    struct ResolverScheme *nextPtr;

} ResolverScheme;
# 1078 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct Interp {
# 1096 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    char *result;


    Tcl_FreeProc *freeProc;






    int errorLine;


    struct TclStubs *stubTable;







    TclHandle handle;


    Namespace *globalNsPtr;
    Tcl_HashTable *hiddenCmdTablePtr;



    ClientData interpInfo;


    Tcl_HashTable mathFuncTable;
# 1140 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    int numLevels;




    int maxNestingDepth;


    CallFrame *framePtr;


    CallFrame *varFramePtr;




    ActiveVarTrace *activeTracePtr;


    int returnCode;

    char *errorInfo;

    char *errorCode;







    char *appendResult;


    int appendAvl;

    int appendUsed;






    Tcl_HashTable packageTable;



    char *packageUnknown;
# 1196 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
    int cmdCount;

    int evalFlags;



    int termOffset;

    LiteralTable literalTable;





    int compileEpoch;




    Proc *compiledProcPtr;




    ResolverScheme *resolverPtr;





    char *scriptFile;




    int flags;
    long randSeed;
    Trace *tracePtr;
    Tcl_HashTable *assocData;


    struct ExecEnv *execEnvPtr;


    Tcl_Obj *emptyObjPtr;



    char resultSpace[200 +1];

    Tcl_Obj *objResultPtr;


    Tcl_ThreadId threadId;
# 1260 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
} Interp;
# 1337 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct ParseValue {
    char *buffer;

    char *next;

    char *end;

    void (*expandProc) (struct ParseValue *pvPtr, int needed);


    ClientData clientData;

} ParseValue;
# 1386 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef enum {
    TCL_PLATFORM_UNIX,
    TCL_PLATFORM_MAC,
    TCL_PLATFORM_WINDOWS
} TclPlatformType;
# 1421 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct List {
    int maxElemCount;
    int elemCount;
    Tcl_Obj **elements;
} List;
# 1436 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef int (TclGetFileAttrProc) (Tcl_Interp *interp, int objIndex, const char *fileName, Tcl_Obj **attrObjPtrPtr);

typedef int (TclSetFileAttrProc) (Tcl_Interp *interp, int objIndex, const char *fileName, Tcl_Obj *attrObjPtr);


typedef struct TclFileAttrProcs {
    TclGetFileAttrProc *getProc;
    TclSetFileAttrProc *setProc;
} TclFileAttrProcs;






typedef struct TclFile_ *TclFile;
# 1460 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef int (TclStatProc_) (const char *path, struct stat *buf);
typedef int (TclAccessProc_) (const char *path, int mode);
typedef Tcl_Channel (TclOpenFileChannelProc_) (Tcl_Interp *interp, char *fileName, char *modeString, int permissions);



typedef int (*TclCmdProcType) (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]);

typedef int (*TclObjCmdProcType) (ClientData clientData, Tcl_Interp *interp, int objc, struct Tcl_Obj * const objv[]);






typedef struct TclpTime_t_ *TclpTime_t;
# 1484 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
typedef struct GlobTypeData {

    int type;

    int perm;

    Tcl_Obj* macType;

    Tcl_Obj* macCreator;
} GlobTypeData;
# 1518 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern Tcl_Time tclBlockTime;
extern int tclBlockTimeSet;
extern char * tclExecutableName;
extern char * tclNativeExecutableName;
extern char * tclDefaultEncodingDir;
extern Tcl_ChannelType tclFileChannelType;
extern char * tclMemDumpFileName;
extern TclPlatformType tclPlatform;
extern char * tclpFileAttrStrings[];
extern const TclFileAttrProcs tclpFileAttrProcs[];





extern Tcl_ObjType tclBooleanType;
extern Tcl_ObjType tclByteArrayType;
extern Tcl_ObjType tclByteCodeType;
extern Tcl_ObjType tclDoubleType;
extern Tcl_ObjType tclIntType;
extern Tcl_ObjType tclListType;
extern Tcl_ObjType tclProcBodyType;
extern Tcl_ObjType tclStringType;






extern Tcl_Obj * tclFreeObjList;
# 1560 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern char * tclEmptyStringRep;
# 1569 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern int TclAccess (const char *path, int mode);

extern int TclAccessDeleteProc (TclAccessProc_ *proc);
extern int TclAccessInsertProc (TclAccessProc_ *proc);
extern void TclAllocateFreeObjects (void);
extern int TclArraySet (Tcl_Interp *interp, Tcl_Obj *arrayNameObj, Tcl_Obj *arrayElemObj);

extern int TclCheckBadOctal (Tcl_Interp *interp, char *value);

extern int TclCleanupChildren (Tcl_Interp *interp, int numPids, Tcl_Pid *pidPtr, Tcl_Channel errorChan);


extern void TclCleanupCommand (Command *cmdPtr);
extern int TclCopyChannel (Tcl_Interp *interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj *cmdPtr);





extern int TclCreatePipeline (Tcl_Interp *interp, int argc, char **argv, Tcl_Pid **pidArrayPtr, TclFile *inPipePtr, TclFile *outPipePtr, TclFile *errFilePtr);



extern int TclCreateProc (Tcl_Interp *interp, Namespace *nsPtr, char *procName, Tcl_Obj *argsPtr, Tcl_Obj *bodyPtr, Proc **procPtrPtr);



extern void TclDeleteCompiledLocalVars ( Interp *iPtr, CallFrame *framePtr);

extern void TclDeleteVars (Interp *iPtr, Tcl_HashTable *tablePtr);

extern int TclDoGlob (Tcl_Interp *interp, char *separators, Tcl_DString *headPtr, char *tail, GlobTypeData *types);


extern void TclDumpMemoryInfo (FILE *outFile);
extern void TclExpandTokenArray ( Tcl_Parse *parsePtr);

extern void TclExprFloatError (Tcl_Interp *interp, double value);

extern int TclFileAttrsCmd (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int TclFileCopyCmd (Tcl_Interp *interp, int argc, char **argv) ;

extern int TclFileDeleteCmd (Tcl_Interp *interp, int argc, char **argv);

extern int TclFileMakeDirsCmd (Tcl_Interp *interp, int argc, char **argv) ;

extern int TclFileRenameCmd (Tcl_Interp *interp, int argc, char **argv) ;

extern void TclFinalizeAllocSubsystem (void);
extern void TclFinalizeCompExecEnv (void);
extern void TclFinalizeCompilation (void);
extern void TclFinalizeEncodingSubsystem (void);
extern void TclFinalizeEnvironment (void);
extern void TclFinalizeExecution (void);
extern void TclFinalizeIOSubsystem (void);
extern void TclFinalizeLoad (void);
extern void TclFinalizeMemorySubsystem (void);
extern void TclFinalizeNotifier (void);
extern void TclFinalizeSynchronization (void);
extern void TclFinalizeThreadData (void);
extern void TclFindEncodings (const char *argv0);
extern Proc * TclFindProc (Interp *iPtr, char *procName);

extern int TclFormatInt (char *buffer, long n);
extern void TclFreePackageInfo (Interp *iPtr);
extern int TclGetDate (char *p, unsigned long now, long zone, unsigned long *timePtr);


extern Tcl_Obj * TclGetElementOfIndexedArray ( Tcl_Interp *interp, int localIndex, Tcl_Obj *elemPtr, int leaveErrorMsg);


extern char * TclGetExtension (char *name);
extern int TclGetFrame (Tcl_Interp *interp, char *string, CallFrame **framePtrPtr);

extern TclCmdProcType TclGetInterpProc (void);
extern int TclGetIntForIndex (Tcl_Interp *interp, Tcl_Obj *objPtr, int endValue, int *indexPtr);

extern Tcl_Obj * TclGetIndexedScalar (Tcl_Interp *interp, int localIndex, int leaveErrorMsg);

extern int TclGetLong (Tcl_Interp *interp, char *string, long *longPtr);

extern int TclGetLoadedPackages ( Tcl_Interp *interp, char *targetName);

extern int TclGetNamespaceForQualName ( Tcl_Interp *interp, char *qualName, Namespace *cxtNsPtr, int flags, Namespace **nsPtrPtr, Namespace **altNsPtrPtr, Namespace **actualCxtPtrPtr, char **simpleNamePtr);





extern TclObjCmdProcType TclGetObjInterpProc (void);
extern int TclGetOpenMode (Tcl_Interp *interp, char *string, int *seekFlagPtr);

extern Tcl_Command TclGetOriginalCommand ( Tcl_Command command);

extern int TclGlob (Tcl_Interp *interp, char *pattern, char *unquotedPrefix, int globFlags, GlobTypeData* types);


extern int TclGlobalInvoke (Tcl_Interp *interp, int argc, char **argv, int flags);

extern int TclGuessPackageName (char *fileName, Tcl_DString *bufPtr);

extern int TclHideUnsafeCommands ( Tcl_Interp *interp);

extern int TclInExit (void);
extern Tcl_Obj * TclIncrElementOfIndexedArray ( Tcl_Interp *interp, int localIndex, Tcl_Obj *elemPtr, long incrAmount);


extern Tcl_Obj * TclIncrIndexedScalar ( Tcl_Interp *interp, int localIndex, long incrAmount);


extern Tcl_Obj * TclIncrVar2 (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, long incrAmount, int flags);


extern void TclInitAlloc (void);
extern void TclInitCompiledLocals ( Tcl_Interp *interp, CallFrame *framePtr, Namespace *nsPtr);


extern void TclInitDbCkalloc (void);
extern void TclInitEncodingSubsystem (void);
extern void TclInitIOSubsystem (void);
extern void TclInitNamespaceSubsystem (void);
extern void TclInitNotifier (void);
extern void TclInitObjSubsystem (void);
extern void TclInitSubsystems (const char *argv0);
extern int TclInvoke (Tcl_Interp *interp, int argc, char **argv, int flags);

extern int TclInvokeObjectCommand ( ClientData clientData, Tcl_Interp *interp, int argc, char **argv);


extern int TclInvokeStringCommand ( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);


extern int TclIsLocalScalar (const char *src, int len);

extern Proc * TclIsProc (Command *cmdPtr);
extern Var * TclLookupVar (Tcl_Interp *interp, char *part1, char *part2, int flags, char *msg, int createPart1, int createPart2, Var **arrayPtrPtr);



extern int TclMathInProgress (void);
extern int TclNeedSpace (char *start, char *end);
extern Tcl_Obj * TclNewProcBodyObj (Proc *procPtr);
extern int TclObjCommandComplete (Tcl_Obj *cmdPtr);
extern int TclObjInterpProc (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);


extern int TclObjInvoke (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags);

extern int TclObjInvokeGlobal (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags);

extern int TclOpenFileChannelDeleteProc ( TclOpenFileChannelProc_ *proc);

extern int TclOpenFileChannelInsertProc ( TclOpenFileChannelProc_ *proc);

extern int TclpAccess (const char *filename, int mode);

extern char * TclpAlloc (unsigned int size);
extern int TclpCheckStackSpace (void);
extern int TclpCopyFile (const char *source, const char *dest);

extern int TclpCopyDirectory (const char *source, const char *dest, Tcl_DString *errorPtr);

extern int TclpCreateDirectory (const char *path);
extern int TclpDeleteFile (const char *path);
extern void TclpExit (int status);
extern void TclpFinalizeCondition ( Tcl_Condition *condPtr);

extern void TclpFinalizeMutex (Tcl_Mutex *mutexPtr);
extern void TclpFinalizeThreadData ( Tcl_ThreadDataKey *keyPtr);

extern void TclpFinalizeThreadDataKey ( Tcl_ThreadDataKey *keyPtr);

extern char * TclpFindExecutable ( const char *argv0);

extern int TclpFindVariable (const char *name, int *lengthPtr);

extern void TclpFree (char *ptr);
extern unsigned long TclpGetClicks (void);
extern Tcl_Channel TclpGetDefaultStdChannel (int type);
extern unsigned long TclpGetSeconds (void);
extern void TclpGetTime (Tcl_Time *time);
extern int TclpGetTimeZone (unsigned long time);
extern char * TclpGetUserHome (const char *name, Tcl_DString *bufferPtr);

extern int TclpHasSockets (Tcl_Interp *interp);
extern void TclpInitLibraryPath (const char *argv0);
extern void TclpInitLock (void);
extern void TclpInitPlatform (void);
extern void TclpInitUnlock (void);
extern int TclpListVolumes (Tcl_Interp *interp);
extern void TclpMasterLock (void);
extern void TclpMasterUnlock (void);
extern int TclpMatchFiles (Tcl_Interp *interp, char *separators, Tcl_DString *dirPtr, char *pattern, char *tail);


extern Tcl_Channel TclpOpenFileChannel (Tcl_Interp *interp, char *fileName, char *modeString, int permissions);


extern char * TclpReadlink (const char *fileName, Tcl_DString *linkPtr);

extern char * TclpRealloc (char *ptr, unsigned int size);

extern void TclpReleaseFile (TclFile file);
extern int TclpRemoveDirectory (const char *path, int recursive, Tcl_DString *errorPtr);

extern int TclpRenameFile (const char *source, const char *dest);

extern void TclpSetInitialEncodings (void);
extern void TclpSetVariables (Tcl_Interp *interp);
extern void * TclpSysAlloc (long size, int isBin);
extern void TclpSysFree (void *ptr);
extern void * TclpSysRealloc (void *cp, unsigned int size);

extern void TclpUnloadFile (ClientData clientData);
extern char * TclPrecTraceProc (ClientData clientData, Tcl_Interp *interp, char *name1, char *name2, int flags);


extern int TclPreventAliasLoop (Tcl_Interp *interp, Tcl_Interp *cmdInterp, Tcl_Command cmd);

extern void TclProcCleanupProc (Proc *procPtr);
extern int TclProcCompileProc (Tcl_Interp *interp, Proc *procPtr, Tcl_Obj *bodyPtr, Namespace *nsPtr, const char *description, const char *procName);


extern void TclProcDeleteProc (ClientData clientData);
extern int TclProcInterpProc (ClientData clientData, Tcl_Interp *interp, int argc, char **argv);

extern void * TclpThreadDataKeyGet ( Tcl_ThreadDataKey *keyPtr);

extern void TclpThreadDataKeyInit ( Tcl_ThreadDataKey *keyPtr);

extern void TclpThreadDataKeySet ( Tcl_ThreadDataKey *keyPtr, void *data);

extern void TclpThreadExit (int status);
extern void TclRememberCondition (Tcl_Condition *mutex);
extern void TclRememberDataKey (Tcl_ThreadDataKey *mutex);
extern void TclRememberMutex (Tcl_Mutex *mutex);
extern int TclRenameCommand (Tcl_Interp *interp, char *oldName, char *newName) ;

extern void TclResetShadowedCmdRefs ( Tcl_Interp *interp, Command *newCmdPtr);

extern int TclServiceIdle (void);
extern Tcl_Obj * TclSetElementOfIndexedArray ( Tcl_Interp *interp, int localIndex, Tcl_Obj *elemPtr, Tcl_Obj *objPtr, int leaveErrorMsg);



extern Tcl_Obj * TclSetIndexedScalar (Tcl_Interp *interp, int localIndex, Tcl_Obj *objPtr, int leaveErrorMsg);


extern char * TclSetPreInitScript (char *string);
extern void TclSetupEnv (Tcl_Interp *interp);
extern int TclSockGetPort (Tcl_Interp *interp, char *string, char *proto, int *portPtr);

extern int TclSockMinimumBuffers (int sock, int size);

extern int TclStat (const char *path, struct stat *buf);

extern int TclStatDeleteProc (TclStatProc_ *proc);
extern int TclStatInsertProc (TclStatProc_ *proc);
extern void TclTeardownNamespace (Namespace *nsPtr);
extern void TclTransferResult (Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp);

extern int TclUpdateReturnInfo (Interp *iPtr);







extern int Tcl_AfterObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_AppendObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ArrayObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_BinaryObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_BreakObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CaseObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CatchObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CdObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ClockObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_CloseObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ConcatObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ContinueObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_EncodingObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_EofObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ErrorObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_EvalObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ExecObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ExitObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ExprObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FblockedObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FconfigureObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FcopyObjCmd (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FileObjCmd (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FileEventObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FlushObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ForObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ForeachObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_FormatObjCmd (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_GetsObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_GlobalObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_GlobObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_IfObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_IncrObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_InfoObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_InterpObjCmd (ClientData clientData, Tcl_Interp *interp, int argc, Tcl_Obj *const objv[]);

extern int Tcl_JoinObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LappendObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LindexObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LinsertObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LlengthObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ListObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LoadObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LrangeObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LreplaceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LsearchObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_LsortObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_NamespaceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_OpenObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PackageObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PidObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PutsObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_PwdObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ReadObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_RegexpObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_RegsubObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_RenameObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ReturnObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_ScanObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SeekObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SetObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SplitObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SocketObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SourceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_StringObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SubstObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_SwitchObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_TellObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_TimeObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_TraceObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UnsetObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UpdateObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UplevelObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_UpvarObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_VariableObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_VwaitObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);

extern int Tcl_WhileObjCmd (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
# 2017 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
extern int TclCompileBreakCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileCatchCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileContinueCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileExprCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileForCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileForeachCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileIfCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileIncrCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileSetCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);

extern int TclCompileWhileCmd (Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr);
# 2182 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h" 1
# 33 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern int TclAccess (const char * path, int mode);

extern int TclAccessDeleteProc ( TclAccessProc_ * proc);


extern int TclAccessInsertProc ( TclAccessProc_ * proc);


extern void TclAllocateFreeObjects (void);



extern int TclCleanupChildren (Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan);
# 56 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern void TclCleanupCommand (Command * cmdPtr);

extern int TclCopyAndCollapse (int count, const char * src, char * dst);


extern int TclCopyChannel (Tcl_Interp * interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr);




extern int TclCreatePipeline (Tcl_Interp * interp, int argc, char ** argv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr, TclFile * errFilePtr);
# 79 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern int TclCreateProc (Tcl_Interp * interp, Namespace * nsPtr, char * procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr);




extern void TclDeleteCompiledLocalVars ( Interp * iPtr, CallFrame * framePtr);


extern void TclDeleteVars (Interp * iPtr, Tcl_HashTable * tablePtr);


extern int TclDoGlob (Tcl_Interp * interp, char * separators, Tcl_DString * headPtr, char * tail, GlobTypeData * types);



extern void TclDumpMemoryInfo (FILE * outFile);


extern void TclExprFloatError (Tcl_Interp * interp, double value);


extern int TclFileAttrsCmd (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);


extern int TclFileCopyCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFileDeleteCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFileMakeDirsCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFileRenameCmd (Tcl_Interp * interp, int argc, char ** argv);


extern int TclFindElement (Tcl_Interp * interp, const char * listStr, int listLength, const char ** elementPtr, const char ** nextPtr, int * sizePtr, int * bracePtr);





extern Proc * TclFindProc (Interp * iPtr, char * procName);


extern int TclFormatInt (char * buffer, long n);

extern void TclFreePackageInfo (Interp * iPtr);


extern int TclGetDate (char * p, unsigned long now, long zone, unsigned long * timePtr);


extern Tcl_Channel TclpGetDefaultStdChannel (int type);

extern Tcl_Obj * TclGetElementOfIndexedArray ( Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg);




extern char * TclGetExtension (char * name);

extern int TclGetFrame (Tcl_Interp * interp, char * str, CallFrame ** framePtrPtr);


extern TclCmdProcType TclGetInterpProc (void);

extern int TclGetIntForIndex (Tcl_Interp * interp, Tcl_Obj * objPtr, int endValue, int * indexPtr);



extern Tcl_Obj * TclGetIndexedScalar (Tcl_Interp * interp, int localIndex, int leaveErrorMsg);


extern int TclGetLong (Tcl_Interp * interp, char * str, long * longPtr);


extern int TclGetLoadedPackages ( Tcl_Interp * interp, char * targetName);


extern int TclGetNamespaceForQualName ( Tcl_Interp * interp, char * qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr, Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, char ** simpleNamePtr);







extern TclObjCmdProcType TclGetObjInterpProc (void);

extern int TclGetOpenMode (Tcl_Interp * interp, char * str, int * seekFlagPtr);


extern Tcl_Command TclGetOriginalCommand ( Tcl_Command command);


extern char * TclpGetUserHome (const char * name, Tcl_DString * bufferPtr);


extern int TclGlobalInvoke (Tcl_Interp * interp, int argc, char ** argv, int flags);


extern int TclGuessPackageName (char * fileName, Tcl_DString * bufPtr);


extern int TclHideUnsafeCommands ( Tcl_Interp * interp);


extern int TclInExit (void);

extern Tcl_Obj * TclIncrElementOfIndexedArray ( Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, long incrAmount);



extern Tcl_Obj * TclIncrIndexedScalar ( Tcl_Interp * interp, int localIndex, long incrAmount);



extern Tcl_Obj * TclIncrVar2 (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed);



extern void TclInitCompiledLocals ( Tcl_Interp * interp, CallFrame * framePtr, Namespace * nsPtr);



extern int TclInterpInit (Tcl_Interp * interp);

extern int TclInvoke (Tcl_Interp * interp, int argc, char ** argv, int flags);


extern int TclInvokeObjectCommand ( ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);



extern int TclInvokeStringCommand ( ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);



extern Proc * TclIsProc (Command * cmdPtr);



extern Var * TclLookupVar (Tcl_Interp * interp, char * part1, char * part2, int flags, char * msg, int createPart1, int createPart2, Var ** arrayPtrPtr);




extern int TclpMatchFiles (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail);



extern int TclNeedSpace (char * start, char * end);

extern Tcl_Obj * TclNewProcBodyObj (Proc * procPtr);

extern int TclObjCommandComplete (Tcl_Obj * cmdPtr);

extern int TclObjInterpProc (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);



extern int TclObjInvoke (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);


extern int TclObjInvokeGlobal (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);


extern int TclOpenFileChannelDeleteProc ( TclOpenFileChannelProc_ * proc);


extern int TclOpenFileChannelInsertProc ( TclOpenFileChannelProc_ * proc);


extern int TclpAccess (const char * path, int mode);

extern char * TclpAlloc (unsigned int size);

extern int TclpCopyFile (const char * source, const char * dest);


extern int TclpCopyDirectory (const char * source, const char * dest, Tcl_DString * errorPtr);


extern int TclpCreateDirectory (const char * path);

extern int TclpDeleteFile (const char * path);

extern void TclpFree (char * ptr);

extern unsigned long TclpGetClicks (void);

extern unsigned long TclpGetSeconds (void);

extern void TclpGetTime (Tcl_Time * time);

extern int TclpGetTimeZone (unsigned long time);

extern int TclpListVolumes (Tcl_Interp * interp);

extern Tcl_Channel TclpOpenFileChannel (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);



extern char * TclpRealloc (char * ptr, unsigned int size);


extern int TclpRemoveDirectory (const char * path, int recursive, Tcl_DString * errorPtr);


extern int TclpRenameFile (const char * source, const char * dest);






extern char * TclPrecTraceProc (ClientData clientData, Tcl_Interp * interp, char * name1, char * name2, int flags);



extern int TclPreventAliasLoop (Tcl_Interp * interp, Tcl_Interp * cmdInterp, Tcl_Command cmd);



extern void TclProcCleanupProc (Proc * procPtr);

extern int TclProcCompileProc (Tcl_Interp * interp, Proc * procPtr, Tcl_Obj * bodyPtr, Namespace * nsPtr, const char * description, const char * procName);




extern void TclProcDeleteProc (ClientData clientData);

extern int TclProcInterpProc (ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);


extern int TclpStat (const char * path, struct stat * buf);


extern int TclRenameCommand (Tcl_Interp * interp, char * oldName, char * newName);


extern void TclResetShadowedCmdRefs ( Tcl_Interp * interp, Command * newCmdPtr);


extern int TclServiceIdle (void);

extern Tcl_Obj * TclSetElementOfIndexedArray ( Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg);




extern Tcl_Obj * TclSetIndexedScalar (Tcl_Interp * interp, int localIndex, Tcl_Obj * objPtr, int leaveErrorMsg);




extern char * TclSetPreInitScript (char * string);






extern void TclSetupEnv (Tcl_Interp * interp);

extern int TclSockGetPort (Tcl_Interp * interp, char * str, char * proto, int * portPtr);



extern int TclSockMinimumBuffers (int sock, int size);
# 359 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclIntDecls.h"
extern int TclStat (const char * path, struct stat * buf);


extern int TclStatDeleteProc (TclStatProc_ * proc);

extern int TclStatInsertProc (TclStatProc_ * proc);

extern void TclTeardownNamespace (Namespace * nsPtr);

extern int TclUpdateReturnInfo (Interp * iPtr);


extern void Tcl_AddInterpResolvers ( Tcl_Interp * interp, char * name, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);





extern int Tcl_AppendExportList ( Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr);



extern Tcl_Namespace * Tcl_CreateNamespace (Tcl_Interp * interp, char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc);



extern void Tcl_DeleteNamespace ( Tcl_Namespace * nsPtr);


extern int Tcl_Export (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int resetListFirst);



extern Tcl_Command Tcl_FindCommand (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);



extern Tcl_Namespace * Tcl_FindNamespace (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);



extern int Tcl_GetInterpResolvers ( Tcl_Interp * interp, char * name, Tcl_ResolverInfo * resInfo);



extern int Tcl_GetNamespaceResolvers ( Tcl_Namespace * namespacePtr, Tcl_ResolverInfo * resInfo);



extern Tcl_Var Tcl_FindNamespaceVar ( Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);



extern int Tcl_ForgetImport (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern);


extern Tcl_Command Tcl_GetCommandFromObj ( Tcl_Interp * interp, Tcl_Obj * objPtr);


extern void Tcl_GetCommandFullName ( Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr);



extern Tcl_Namespace * Tcl_GetCurrentNamespace ( Tcl_Interp * interp);


extern Tcl_Namespace * Tcl_GetGlobalNamespace ( Tcl_Interp * interp);


extern void Tcl_GetVariableFullName ( Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr);



extern int Tcl_Import (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int allowOverwrite);



extern void Tcl_PopCallFrame (Tcl_Interp* interp);

extern int Tcl_PushCallFrame (Tcl_Interp* interp, Tcl_CallFrame * framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame);



extern int Tcl_RemoveInterpResolvers ( Tcl_Interp * interp, char * name);


extern void Tcl_SetNamespaceResolvers ( Tcl_Namespace * namespacePtr, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);





extern int TclpHasSockets (Tcl_Interp * interp);

extern struct tm * TclpGetDate (TclpTime_t time, int useGMT);

extern size_t TclpStrftime (char * s, size_t maxsize, const char * format, const struct tm * t);


extern int TclpCheckStackSpace (void);


extern int TclpChdir (const char * dirName);

extern char * TclGetEnv (const char * name, Tcl_DString * valuePtr);


extern int TclpLoadFile (Tcl_Interp * interp, char * fileName, char * sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, ClientData * clientDataPtr);





extern int TclLooksLikeInt (char * bytes, int length);


extern char * TclpGetCwd (Tcl_Interp * interp, Tcl_DString * cwdPtr);


extern int TclSetByteCodeFromAny ( Tcl_Interp * interp, Tcl_Obj * objPtr, CompileHookProc * hookProc, ClientData clientData);




extern int TclAddLiteralObj ( struct CompileEnv * envPtr, Tcl_Obj * objPtr, LiteralEntry ** litPtrPtr);



extern void TclHideLiteral (Tcl_Interp * interp, struct CompileEnv * envPtr, int index);


extern struct AuxDataType * TclGetAuxDataType (char * typeName);

extern TclHandle TclHandleCreate (void * ptr);

extern void TclHandleFree (TclHandle handle);

extern TclHandle TclHandlePreserve (TclHandle handle);

extern void TclHandleRelease (TclHandle handle);

extern int TclRegAbout (Tcl_Interp * interp, Tcl_RegExp re);


extern void TclRegExpRangeUniChar (Tcl_RegExp re, int index, int * startPtr, int * endPtr);


extern void TclSetLibraryPath (Tcl_Obj * pathPtr);

extern Tcl_Obj * TclGetLibraryPath (void);



extern void TclRegError (Tcl_Interp * interp, char * msg, int status);


extern Var * TclVarTraceExists (Tcl_Interp * interp, char * varName);


extern void TclSetStartupScriptFileName ( char * filename);


extern char * TclGetStartupScriptFileName (void);

extern int TclpMatchFilesTypes (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail, GlobTypeData * types);




extern int TclChannelTransform (Tcl_Interp * interp, Tcl_Channel chan, Tcl_Obj * cmdObjPtr);


extern void TclChannelEventScriptInvoker ( ClientData clientData, int flags);


typedef struct TclIntStubs {
    int magic;
    struct TclIntStubHooks *hooks;

    int (*tclAccess) (const char * path, int mode);
    int (*tclAccessDeleteProc) (TclAccessProc_ * proc);
    int (*tclAccessInsertProc) (TclAccessProc_ * proc);
    void (*tclAllocateFreeObjects) (void);
    void *reserved4;

    int (*tclCleanupChildren) (Tcl_Interp * interp, int numPids, Tcl_Pid * pidPtr, Tcl_Channel errorChan);







    void (*tclCleanupCommand) (Command * cmdPtr);
    int (*tclCopyAndCollapse) (int count, const char * src, char * dst);
    int (*tclCopyChannel) (Tcl_Interp * interp, Tcl_Channel inChan, Tcl_Channel outChan, int toRead, Tcl_Obj * cmdPtr);

    int (*tclCreatePipeline) (Tcl_Interp * interp, int argc, char ** argv, Tcl_Pid ** pidArrayPtr, TclFile * inPipePtr, TclFile * outPipePtr, TclFile * errFilePtr);







    int (*tclCreateProc) (Tcl_Interp * interp, Namespace * nsPtr, char * procName, Tcl_Obj * argsPtr, Tcl_Obj * bodyPtr, Proc ** procPtrPtr);
    void (*tclDeleteCompiledLocalVars) (Interp * iPtr, CallFrame * framePtr);
    void (*tclDeleteVars) (Interp * iPtr, Tcl_HashTable * tablePtr);
    int (*tclDoGlob) (Tcl_Interp * interp, char * separators, Tcl_DString * headPtr, char * tail, GlobTypeData * types);
    void (*tclDumpMemoryInfo) (FILE * outFile);
    void *reserved15;
    void (*tclExprFloatError) (Tcl_Interp * interp, double value);
    int (*tclFileAttrsCmd) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    int (*tclFileCopyCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFileDeleteCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFileMakeDirsCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFileRenameCmd) (Tcl_Interp * interp, int argc, char ** argv);
    int (*tclFindElement) (Tcl_Interp * interp, const char * listStr, int listLength, const char ** elementPtr, const char ** nextPtr, int * sizePtr, int * bracePtr);
    Proc * (*tclFindProc) (Interp * iPtr, char * procName);
    int (*tclFormatInt) (char * buffer, long n);
    void (*tclFreePackageInfo) (Interp * iPtr);
    void *reserved26;
    int (*tclGetDate) (char * p, unsigned long now, long zone, unsigned long * timePtr);
    Tcl_Channel (*tclpGetDefaultStdChannel) (int type);
    Tcl_Obj * (*tclGetElementOfIndexedArray) (Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, int leaveErrorMsg);
    void *reserved30;
    char * (*tclGetExtension) (char * name);
    int (*tclGetFrame) (Tcl_Interp * interp, char * str, CallFrame ** framePtrPtr);
    TclCmdProcType (*tclGetInterpProc) (void);
    int (*tclGetIntForIndex) (Tcl_Interp * interp, Tcl_Obj * objPtr, int endValue, int * indexPtr);
    Tcl_Obj * (*tclGetIndexedScalar) (Tcl_Interp * interp, int localIndex, int leaveErrorMsg);
    int (*tclGetLong) (Tcl_Interp * interp, char * str, long * longPtr);
    int (*tclGetLoadedPackages) (Tcl_Interp * interp, char * targetName);
    int (*tclGetNamespaceForQualName) (Tcl_Interp * interp, char * qualName, Namespace * cxtNsPtr, int flags, Namespace ** nsPtrPtr, Namespace ** altNsPtrPtr, Namespace ** actualCxtPtrPtr, char ** simpleNamePtr);
    TclObjCmdProcType (*tclGetObjInterpProc) (void);
    int (*tclGetOpenMode) (Tcl_Interp * interp, char * str, int * seekFlagPtr);
    Tcl_Command (*tclGetOriginalCommand) (Tcl_Command command);
    char * (*tclpGetUserHome) (const char * name, Tcl_DString * bufferPtr);
    int (*tclGlobalInvoke) (Tcl_Interp * interp, int argc, char ** argv, int flags);
    int (*tclGuessPackageName) (char * fileName, Tcl_DString * bufPtr);
    int (*tclHideUnsafeCommands) (Tcl_Interp * interp);
    int (*tclInExit) (void);
    Tcl_Obj * (*tclIncrElementOfIndexedArray) (Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, long incrAmount);
    Tcl_Obj * (*tclIncrIndexedScalar) (Tcl_Interp * interp, int localIndex, long incrAmount);
    Tcl_Obj * (*tclIncrVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, long incrAmount, int part1NotParsed);
    void (*tclInitCompiledLocals) (Tcl_Interp * interp, CallFrame * framePtr, Namespace * nsPtr);
    int (*tclInterpInit) (Tcl_Interp * interp);
    int (*tclInvoke) (Tcl_Interp * interp, int argc, char ** argv, int flags);
    int (*tclInvokeObjectCommand) (ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);
    int (*tclInvokeStringCommand) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    Proc * (*tclIsProc) (Command * cmdPtr);
    void *reserved56;
    void *reserved57;
    Var * (*tclLookupVar) (Tcl_Interp * interp, char * part1, char * part2, int flags, char * msg, int createPart1, int createPart2, Var ** arrayPtrPtr);
    int (*tclpMatchFiles) (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail);
    int (*tclNeedSpace) (char * start, char * end);
    Tcl_Obj * (*tclNewProcBodyObj) (Proc * procPtr);
    int (*tclObjCommandComplete) (Tcl_Obj * cmdPtr);
    int (*tclObjInterpProc) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *const objv[]);
    int (*tclObjInvoke) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);
    int (*tclObjInvokeGlobal) (Tcl_Interp * interp, int objc, Tcl_Obj *const objv[], int flags);
    int (*tclOpenFileChannelDeleteProc) (TclOpenFileChannelProc_ * proc);
    int (*tclOpenFileChannelInsertProc) (TclOpenFileChannelProc_ * proc);
    int (*tclpAccess) (const char * path, int mode);

    char * (*tclpAlloc) (unsigned int size);

    int (*tclpCopyFile) (const char * source, const char * dest);
    int (*tclpCopyDirectory) (const char * source, const char * dest, Tcl_DString * errorPtr);
    int (*tclpCreateDirectory) (const char * path);
    int (*tclpDeleteFile) (const char * path);

    void (*tclpFree) (char * ptr);

    unsigned long (*tclpGetClicks) (void);
    unsigned long (*tclpGetSeconds) (void);
    void (*tclpGetTime) (Tcl_Time * time);
    int (*tclpGetTimeZone) (unsigned long time);
    int (*tclpListVolumes) (Tcl_Interp * interp);
    Tcl_Channel (*tclpOpenFileChannel) (Tcl_Interp * interp, char * fileName, char * modeString, int permissions);

    char * (*tclpRealloc) (char * ptr, unsigned int size);

    int (*tclpRemoveDirectory) (const char * path, int recursive, Tcl_DString * errorPtr);
    int (*tclpRenameFile) (const char * source, const char * dest);
    void *reserved84;
    void *reserved85;
    void *reserved86;
    void *reserved87;
    char * (*tclPrecTraceProc) (ClientData clientData, Tcl_Interp * interp, char * name1, char * name2, int flags);
    int (*tclPreventAliasLoop) (Tcl_Interp * interp, Tcl_Interp * cmdInterp, Tcl_Command cmd);
    void *reserved90;
    void (*tclProcCleanupProc) (Proc * procPtr);
    int (*tclProcCompileProc) (Tcl_Interp * interp, Proc * procPtr, Tcl_Obj * bodyPtr, Namespace * nsPtr, const char * description, const char * procName);
    void (*tclProcDeleteProc) (ClientData clientData);
    int (*tclProcInterpProc) (ClientData clientData, Tcl_Interp * interp, int argc, char ** argv);
    int (*tclpStat) (const char * path, struct stat * buf);
    int (*tclRenameCommand) (Tcl_Interp * interp, char * oldName, char * newName);
    void (*tclResetShadowedCmdRefs) (Tcl_Interp * interp, Command * newCmdPtr);
    int (*tclServiceIdle) (void);
    Tcl_Obj * (*tclSetElementOfIndexedArray) (Tcl_Interp * interp, int localIndex, Tcl_Obj * elemPtr, Tcl_Obj * objPtr, int leaveErrorMsg);
    Tcl_Obj * (*tclSetIndexedScalar) (Tcl_Interp * interp, int localIndex, Tcl_Obj * objPtr, int leaveErrorMsg);

    char * (*tclSetPreInitScript) (char * string);







    void (*tclSetupEnv) (Tcl_Interp * interp);
    int (*tclSockGetPort) (Tcl_Interp * interp, char * str, char * proto, int * portPtr);

    int (*tclSockMinimumBuffers) (int sock, int size);







    int (*tclStat) (const char * path, struct stat * buf);
    int (*tclStatDeleteProc) (TclStatProc_ * proc);
    int (*tclStatInsertProc) (TclStatProc_ * proc);
    void (*tclTeardownNamespace) (Namespace * nsPtr);
    int (*tclUpdateReturnInfo) (Interp * iPtr);
    void *reserved110;
    void (*tcl_AddInterpResolvers) (Tcl_Interp * interp, char * name, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);
    int (*tcl_AppendExportList) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr);
    Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp * interp, char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc);
    void (*tcl_DeleteNamespace) (Tcl_Namespace * nsPtr);
    int (*tcl_Export) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int resetListFirst);
    Tcl_Command (*tcl_FindCommand) (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);
    Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);
    int (*tcl_GetInterpResolvers) (Tcl_Interp * interp, char * name, Tcl_ResolverInfo * resInfo);
    int (*tcl_GetNamespaceResolvers) (Tcl_Namespace * namespacePtr, Tcl_ResolverInfo * resInfo);
    Tcl_Var (*tcl_FindNamespaceVar) (Tcl_Interp * interp, char * name, Tcl_Namespace * contextNsPtr, int flags);
    int (*tcl_ForgetImport) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern);
    Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr);
    void (*tcl_GetCommandFullName) (Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr);
    Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp * interp);
    Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp * interp);
    void (*tcl_GetVariableFullName) (Tcl_Interp * interp, Tcl_Var variable, Tcl_Obj * objPtr);
    int (*tcl_Import) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int allowOverwrite);
    void (*tcl_PopCallFrame) (Tcl_Interp* interp);
    int (*tcl_PushCallFrame) (Tcl_Interp* interp, Tcl_CallFrame * framePtr, Tcl_Namespace * nsPtr, int isProcCallFrame);
    int (*tcl_RemoveInterpResolvers) (Tcl_Interp * interp, char * name);
    void (*tcl_SetNamespaceResolvers) (Tcl_Namespace * namespacePtr, Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc, Tcl_ResolveCompiledVarProc * compiledVarProc);
    int (*tclpHasSockets) (Tcl_Interp * interp);
    struct tm * (*tclpGetDate) (TclpTime_t time, int useGMT);
    size_t (*tclpStrftime) (char * s, size_t maxsize, const char * format, const struct tm * t);
    int (*tclpCheckStackSpace) (void);
    void *reserved136;
    int (*tclpChdir) (const char * dirName);
    char * (*tclGetEnv) (const char * name, Tcl_DString * valuePtr);
    int (*tclpLoadFile) (Tcl_Interp * interp, char * fileName, char * sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, ClientData * clientDataPtr);
    int (*tclLooksLikeInt) (char * bytes, int length);
    char * (*tclpGetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr);
    int (*tclSetByteCodeFromAny) (Tcl_Interp * interp, Tcl_Obj * objPtr, CompileHookProc * hookProc, ClientData clientData);
    int (*tclAddLiteralObj) (struct CompileEnv * envPtr, Tcl_Obj * objPtr, LiteralEntry ** litPtrPtr);
    void (*tclHideLiteral) (Tcl_Interp * interp, struct CompileEnv * envPtr, int index);
    struct AuxDataType * (*tclGetAuxDataType) (char * typeName);
    TclHandle (*tclHandleCreate) (void * ptr);
    void (*tclHandleFree) (TclHandle handle);
    TclHandle (*tclHandlePreserve) (TclHandle handle);
    void (*tclHandleRelease) (TclHandle handle);
    int (*tclRegAbout) (Tcl_Interp * interp, Tcl_RegExp re);
    void (*tclRegExpRangeUniChar) (Tcl_RegExp re, int index, int * startPtr, int * endPtr);
    void (*tclSetLibraryPath) (Tcl_Obj * pathPtr);
    Tcl_Obj * (*tclGetLibraryPath) (void);
    void *reserved154;
    void *reserved155;
    void (*tclRegError) (Tcl_Interp * interp, char * msg, int status);
    Var * (*tclVarTraceExists) (Tcl_Interp * interp, char * varName);
    void (*tclSetStartupScriptFileName) (char * filename);
    char * (*tclGetStartupScriptFileName) (void);
    int (*tclpMatchFilesTypes) (Tcl_Interp * interp, char * separators, Tcl_DString * dirPtr, char * pattern, char * tail, GlobTypeData * types);
    int (*tclChannelTransform) (Tcl_Interp * interp, Tcl_Channel chan, Tcl_Obj * cmdObjPtr);
    void (*tclChannelEventScriptInvoker) (ClientData clientData, int flags);
} TclIntStubs;




extern TclIntStubs *tclIntStubsPtr;
# 2183 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/tclInt.h" 2
# 31 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h" 2
# 87 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h"
typedef Tcl_UniChar chr;
typedef int pchr;
typedef unsigned uchr;
typedef int celt;
# 114 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h"
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h" 1
# 135 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
typedef long regoff_t;
# 145 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
typedef void re_void;
# 165 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
typedef struct {
        int re_magic;
        size_t re_nsub;
        long re_info;
# 183 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
        int re_csize;
        char *re_endp;

        char *re_guts;
        char *re_fns;
} regex_t;


typedef struct {
        regoff_t rm_so;
        regoff_t rm_eo;
} regmatch_t;


typedef struct {
        regmatch_t rm_extend;
} rm_detail_t;
# 314 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
int TclReComp (regex_t *, const Tcl_UniChar *, size_t, int);
# 323 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regex.h"
int TclReExec (regex_t *, const Tcl_UniChar *, size_t, rm_detail_t *, size_t, regmatch_t [], int);

re_void TclReFree (regex_t *);
extern size_t TclReError (int, const regex_t *, char *, size_t);
# 115 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcustom.h" 2
# 39 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h" 2
# 60 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
# 1 "/usr/include/assert.h" 1 3 4
# 47 "/usr/include/assert.h" 3 4
void _assert (const void*, const void*, unsigned int);
# 61 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h" 2
# 173 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
typedef short color;
typedef int pcolor;
# 191 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct colors {
        color ccolor[(1<<8)];
};
struct ptrs {
        union tree *pptr[(1<<8)];
};
union tree {
        struct colors colors;
        struct ptrs ptrs;
};




struct colordesc {
        uchr nchrs;
        color sub;

        struct arc *arcs;
        int flags;



        union tree *block;
};


struct colormap {
        int magic;

        struct vars *v;
        size_t ncds;
        size_t max;
        color free;
        struct colordesc *cd;


        struct colordesc cdspace[((size_t)10)];
        union tree tree[((16 +8 -1)/8)];
};
# 254 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct cvec {
        int nchrs;
        int chrspace;
        chr *chrs;
        int nranges;
        int rangespace;
        chr *ranges;
        int nmcces;
        int mccespace;
        int nmccechrs;
        chr *mcces[1];

};
# 279 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct state;

struct arc {
        int type;

        color co;
        struct state *from;
        struct state *to;
        struct arc *outchain;

        struct arc *inchain;
        struct arc *colorchain;
};

struct arcbatch {
        struct arcbatch *next;

        struct arc a[10];
};

struct state {
        int no;

        char flag;
        int nins;
        struct arc *ins;
        int nouts;
        struct arc *outs;
        struct arc *free;
        struct state *tmp;
        struct state *next;
        struct state *prev;
        struct arcbatch oas;
        int noas;
};

struct nfa {
        struct state *pre;
        struct state *init;
        struct state *final;
        struct state *post;
        int nstates;
        struct state *states;
        struct state *slast;
        struct state *free;
        struct colormap *cm;
        color bos[2];
        color eos[2];
        struct vars *v;
        struct nfa *parent;
};






struct carc {
        color co;
        int to;
};

struct cnfa {
        int nstates;
        int ncolors;
        int flags;

        int pre;
        int post;
        color bos[2];
        color eos[2];
        struct carc **states;
        struct carc *arcs;
};
# 361 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
struct subre {
        char op;
        char flags;
# 378 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regguts.h"
        short retry;
        int subno;
        short min;
        short max;
        struct subre *left;
        struct subre *right;
        struct state *begin;
        struct state *end;
        struct cnfa cnfa;
        struct subre *chain;
};







struct fns {
        void (*free) (regex_t *);
};






struct guts {
        int magic;

        int cflags;
        long info;
        size_t nsub;
        struct subre *tree;
        struct cnfa search;
        int ntree;
        struct colormap cmap;
        int (*compare) (const chr *, const chr *, size_t);
        struct subre *lacons;
        int nlacons;
};
# 34 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2







int TclReComp (regex_t *, const chr *, size_t, int);
static void moresubs (struct vars *, int);
static int freev (struct vars *, int);
static void makesearch (struct vars *, struct nfa *);
static struct subre *parse (struct vars *, int, int, struct state *, struct state *);
static struct subre *parsebranch (struct vars *, int, int, struct state *, struct state *, int);
static void parseqatom (struct vars *, int, int, struct state *, struct state *, struct subre *);
static void nonword (struct vars *, int, struct state *, struct state *);
static void word (struct vars *, int, struct state *, struct state *);
static int scannum (struct vars *);
static void repeat (struct vars *, struct state *, struct state *, int, int);
static void bracket (struct vars *, struct state *, struct state *);
static void cbracket (struct vars *, struct state *, struct state *);
static void brackpart (struct vars *, struct state *, struct state *);
static chr *scanplain (struct vars *);
static void leaders (struct vars *, struct cvec *);
static void onechr (struct vars *, pchr, struct state *, struct state *);
static void dovec (struct vars *, struct cvec *, struct state *, struct state *);
static celt nextleader (struct vars *, pchr, pchr);
static void wordchrs (struct vars *);
static struct subre *subre (struct vars *, int, int, struct state *, struct state *);
static void freesubre (struct vars *, struct subre *);
static void freesrnode (struct vars *, struct subre *);
static void optst (struct vars *, struct subre *);
static int numst (struct subre *, int);
static void markst (struct subre *);
static void cleanst (struct vars *);
static long nfatree (struct vars *, struct subre *, FILE *);
static long nfanode (struct vars *, struct subre *, FILE *);
static int newlacon (struct vars *, struct state *, struct state *, int);
static void freelacons (struct subre *, int);
static void rfree (regex_t *);
static void dump (regex_t *, FILE *);
static void dumpst (struct subre *, FILE *, int);
static void stdump (struct subre *, FILE *, int);
static char *stid (struct subre *, char *, size_t);

static void lexstart (struct vars *);
static void prefixes (struct vars *);
static void lexnest (struct vars *, chr *, chr *);
static void lexword (struct vars *);
static int next (struct vars *);
static int lexescape (struct vars *);
static chr lexdigits (struct vars *, int, int, int);
static int brenext (struct vars *, pchr);
static void skip (struct vars *);
static chr newline (void);



static chr chrnamed (struct vars *, chr *, chr *, pchr);

static void initcm (struct vars *, struct colormap *);
static void freecm (struct colormap *);
static void cmtreefree (struct colormap *, union tree *, int);
static color setcolor (struct colormap *, pchr, pcolor);
static color maxcolor (struct colormap *);
static color newcolor (struct colormap *);
static void freecolor (struct colormap *, pcolor);
static color pseudocolor (struct colormap *);
static color subcolor (struct colormap *, pchr c);
static color newsub (struct colormap *, pcolor);
static void subrange (struct vars *, pchr, pchr, struct state *, struct state *);
static void subblock (struct vars *, pchr, struct state *, struct state *);
static void okcolors (struct nfa *, struct colormap *);
static void colorchain (struct colormap *, struct arc *);
static void uncolorchain (struct colormap *, struct arc *);
static int singleton (struct colormap *, pchr c);
static void rainbow (struct nfa *, struct colormap *, int, pcolor, struct state *, struct state *);
static void colorcomplement (struct nfa *, struct colormap *, int, struct state *, struct state *, struct state *);






static struct nfa *newnfa (struct vars *, struct colormap *, struct nfa *);
static void freenfa (struct nfa *);
static struct state *newstate (struct nfa *);
static struct state *newfstate (struct nfa *, int flag);
static void dropstate (struct nfa *, struct state *);
static void freestate (struct nfa *, struct state *);
static void destroystate (struct nfa *, struct state *);
static void newarc (struct nfa *, int, pcolor, struct state *, struct state *);
static struct arc *allocarc (struct nfa *, struct state *);
static void freearc (struct nfa *, struct arc *);
static struct arc *findarc (struct state *, int, pcolor);
static void cparc (struct nfa *, struct arc *, struct state *, struct state *);
static void moveins (struct nfa *, struct state *, struct state *);
static void copyins (struct nfa *, struct state *, struct state *);
static void moveouts (struct nfa *, struct state *, struct state *);
static void copyouts (struct nfa *, struct state *, struct state *);
static void cloneouts (struct nfa *, struct state *, struct state *, struct state *, int);
static void delsub (struct nfa *, struct state *, struct state *);
static void deltraverse (struct nfa *, struct state *, struct state *);
static void dupnfa (struct nfa *, struct state *, struct state *, struct state *, struct state *);
static void duptraverse (struct nfa *, struct state *, struct state *);
static void cleartraverse (struct nfa *, struct state *);
static void specialcolors (struct nfa *);
static long optimize (struct nfa *, FILE *);
static void pullback (struct nfa *, FILE *);
static int pull (struct nfa *, struct arc *);
static void pushfwd (struct nfa *, FILE *);
static int push (struct nfa *, struct arc *);



static int combine (struct arc *, struct arc *);
static void fixempties (struct nfa *, FILE *);
static int unempty (struct nfa *, struct arc *);
static void cleanup (struct nfa *);
static void markreachable (struct nfa *, struct state *, struct state *, struct state *);
static void markcanreach (struct nfa *, struct state *, struct state *, struct state *);
static long analyze (struct nfa *);
static void compact (struct nfa *, struct cnfa *);
static void carcsort (struct carc *, struct carc *);
static void freecnfa (struct cnfa *);
static void dumpnfa (struct nfa *, FILE *);






static void dumpcnfa (struct cnfa *, FILE *);




static struct cvec *newcvec (int, int, int);
static struct cvec *clearcvec (struct cvec *);
static void addchr (struct cvec *, pchr);
static void addrange (struct cvec *, pchr, pchr);
static void addmcce (struct cvec *, chr *, chr *);
static int haschr (struct cvec *, pchr);
static struct cvec *getcvec (struct vars *, int, int, int);
static void freecvec (struct cvec *);

static int nmcces (struct vars *);
static int nleaders (struct vars *);
static struct cvec *allmcces (struct vars *, struct cvec *);
static celt element (struct vars *, chr *, chr *);
static struct cvec *range (struct vars *, celt, celt, int);
static int before (celt, celt);
static struct cvec *eclass (struct vars *, celt, int);
static struct cvec *cclass (struct vars *, chr *, chr *, int);
static struct cvec *allcases (struct vars *, pchr);
static int cmp (const chr *, const chr *, size_t);
static int casecmp (const chr *, const chr *, size_t);






struct vars {
        regex_t *re;
        chr *now;
        chr *stop;
        chr *savenow;
        chr *savestop;
        int err;
        int cflags;
        int lasttype;
        int nexttype;
        chr nextvalue;
        int lexcon;
        int nsubexp;
        struct subre **subs;
        size_t nsubs;
        struct subre *sub10[10];
        struct nfa *nfa;
        struct colormap *cm;
        color nlcolor;
        struct state *wordchrs;
        struct subre *tree;
        struct subre *treechain;
        struct subre *treefree;
        int ntree;
        struct cvec *cv;
        struct cvec *cv2;
        struct cvec *mcces;

        struct state *mccepbegin;
        struct state *mccepend;
        struct subre *lacons;
        int nlacons;
};
# 273 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static struct fns functions = {
        rfree,
};







int
TclReComp(re, string, len, flags)
regex_t *re;
const chr *string;
size_t len;
int flags;
{
        struct vars var;
        struct vars *v = &var;
        struct guts *g;
        int i;
        size_t j;
        FILE *debug = (flags&020000) ? (&__sF[1]) : (FILE *)((void *)0);




        if (re == ((void *)0) || string == ((void *)0))
                return 16;
        if ((flags&000004) &&
                        (flags&(000003|000040|000300)))
                return 16;
        if (!(flags&000001) && (flags&000002))
                return 16;


        v->re = re;
        v->now = (chr *)string;
        v->stop = v->now + len;
        v->savenow = v->savestop = ((void *)0);
        v->err = 0;
        v->cflags = flags;
        v->nsubexp = 0;
        v->subs = v->sub10;
        v->nsubs = 10;
        for (j = 0; j < v->nsubs; j++)
                v->subs[j] = ((void *)0);
        v->nfa = ((void *)0);
        v->cm = ((void *)0);
        v->nlcolor = (-1);
        v->wordchrs = ((void *)0);
        v->tree = ((void *)0);
        v->treechain = ((void *)0);
        v->treefree = ((void *)0);
        v->cv = ((void *)0);
        v->cv2 = ((void *)0);
        v->mcces = ((void *)0);
        v->lacons = ((void *)0);
        v->nlacons = 0;
        re->re_magic = 0xfed7;
        re->re_info = 0;
        re->re_csize = sizeof(chr);
        re->re_guts = ((void *)0);
        re->re_fns = ((void *)(&functions));


        re->re_guts = ((void *)(Tcl_Alloc(sizeof(struct guts))));
        if (re->re_guts == ((void *)0))
                return freev(v, 12);
        g = (struct guts *)re->re_guts;
        g->tree = ((void *)0);
        initcm(v, &g->cmap);
        v->cm = &g->cmap;
        g->lacons = ((void *)0);
        g->nlacons = 0;
        ((g->search).nstates = 0);
        v->nfa = newnfa(v, v->cm, (struct nfa *)((void *)0));
        { if (((v)->err != 0)) return freev(v, v->err); };
        v->cv = newcvec(100, 20, 10);
        if (v->cv == ((void *)0))
                return freev(v, 12);
        i = nmcces(v);
        if (i > 0) {
                v->mcces = newcvec(nleaders(v), 0, i);
                { if (((v)->err != 0)) return freev(v, v->err); };
                v->mcces = allmcces(v, v->mcces);
                leaders(v, v->mcces);
                addmcce(v->mcces, (chr *)((void *)0), (chr *)((void *)0));
        }
        { if (((v)->err != 0)) return freev(v, v->err); };


        lexstart(v);
        if ((v->cflags&000100) || (v->cflags&000200)) {

                v->nlcolor = subcolor(v->cm, newline());
                okcolors(v->nfa, v->cm);
        }
        { if (((v)->err != 0)) return freev(v, v->err); };
        v->tree = parse(v, 'e', 'p', v->nfa->init, v->nfa->final);
        ((void)0);
        { if (((v)->err != 0)) return freev(v, v->err); };
        ((void)0);


        specialcolors(v->nfa);
        { if (((v)->err != 0)) return freev(v, v->err); };
        if (debug != ((void *)0)) {
                fprintf(debug, "\n\n\n========= RAW ==========\n");
                dumpnfa(v->nfa, debug);
                dumpst(v->tree, debug, 1);
        }
        optst(v, v->tree);
        v->ntree = numst(v->tree, 1);
        markst(v->tree);
        cleanst(v);
        if (debug != ((void *)0)) {
                fprintf(debug, "\n\n\n========= TREE FIXED ==========\n");
                dumpst(v->tree, debug, 1);
        }


        re->re_info |= nfatree(v, v->tree, debug);
        { if (((v)->err != 0)) return freev(v, v->err); };
        ((void)0);
        for (i = 1; i < v->nlacons; i++) {
                if (debug != ((void *)0))
                        fprintf(debug, "\n\n\n========= LA%d ==========\n", i);
                nfanode(v, &v->lacons[i], debug);
        }
        { if (((v)->err != 0)) return freev(v, v->err); };
        if (v->tree->flags&02)
                (v->re->re_info |= (020000));


        if (debug != ((void *)0))
                fprintf(debug, "\n\n\n========= SEARCH ==========\n");

        (void)optimize(v->nfa, debug);
        { if (((v)->err != 0)) return freev(v, v->err); };
        makesearch(v, v->nfa);
        { if (((v)->err != 0)) return freev(v, v->err); };
        compact(v->nfa, &g->search);
        { if (((v)->err != 0)) return freev(v, v->err); };


        re->re_nsub = v->nsubexp;
        v->re = ((void *)0);
        g->magic = 0xfed9;
        g->cflags = v->cflags;
        g->info = re->re_info;
        g->nsub = re->re_nsub;
        g->tree = v->tree;
        v->tree = ((void *)0);
        g->ntree = v->ntree;
        g->compare = (v->cflags&000010) ? casecmp : cmp;
        g->lacons = v->lacons;
        v->lacons = ((void *)0);
        g->nlacons = v->nlacons;

        if (flags&004000)
                dump(re, (&__sF[1]));

        ((void)0);
        return freev(v, 0);
}





static void
moresubs(v, wanted)
struct vars *v;
int wanted;
{
        struct subre **p;
        size_t n;

        ((void)0);
        n = (size_t)wanted * 3 / 2 + 1;
        if (v->subs == v->sub10) {
                p = (struct subre **)Tcl_Alloc(n * sizeof(struct subre *));
                if (p != ((void *)0))
                        memcpy(((void *)(p)), ((void *)(v->subs)),
                                        v->nsubs * sizeof(struct subre *));
        } else
                p = (struct subre **)Tcl_Realloc(((void *)(v->subs)),n*sizeof(struct subre *));
        if (p == ((void *)0)) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
                return;
        }
        v->subs = p;
        for (p = &v->subs[v->nsubs]; v->nsubs < n; p++, v->nsubs++)
                *p = ((void *)0);
        ((void)0);
        ((void)0);
}







static int
freev(v, err)
struct vars *v;
int err;
{
        if (v->re != ((void *)0))
                rfree(v->re);
        if (v->subs != v->sub10)
                Tcl_Free(((void *)(v->subs)));
        if (v->nfa != ((void *)0))
                freenfa(v->nfa);
        if (v->tree != ((void *)0))
                freesubre(v, v->tree);
        if (v->treechain != ((void *)0))
                cleanst(v);
        if (v->cv != ((void *)0))
                freecvec(v->cv);
        if (v->cv2 != ((void *)0))
                freecvec(v->cv2);
        if (v->mcces != ((void *)0))
                freecvec(v->mcces);
        if (v->lacons != ((void *)0))
                freelacons(v->lacons, v->nlacons);
        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (err)));

        return v->err;
}






static void
makesearch(v, nfa)
struct vars *v;
struct nfa *nfa;
{
        struct arc *a;
        struct arc *b;
        struct state *pre = nfa->pre;
        struct state *s;
        struct state *s2;
        struct state *slist;


        for (a = pre->outs; a != ((void *)0); a = a->outchain) {
                ((void)0);
                if (a->co != nfa->bos[0] && a->co != nfa->bos[1])
                        break;
        }
        if (a != ((void *)0)) {

                rainbow(nfa, v->cm, 'p', (-1), pre, pre);


                newarc(nfa, 'p', nfa->bos[0], pre, pre);
                newarc(nfa, 'p', nfa->bos[1], pre, pre);
        }
# 549 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
        slist = ((void *)0);
        for (a = pre->outs; a != ((void *)0); a = a->outchain) {
                s = a->to;
                for (b = s->ins; b != ((void *)0); b = b->inchain)
                        if (b->from != pre)
                                break;
                if (b != ((void *)0)) {
                        s->tmp = slist;
                        slist = s;
                }
        }


        for (s = slist; s != ((void *)0); s = s2) {
                s2 = newstate(nfa);
                copyouts(nfa, s, s2);
                for (a = s->ins; a != ((void *)0); a = b) {
                        b = a->inchain;
                        if (a->from != pre) {
                                cparc(nfa, a, a->from, s2);
                                freearc(nfa, a);
                        }
                }
                s2 = s->tmp;
                s->tmp = ((void *)0);
        }
}
# 585 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static struct subre *
parse(v, stopper, type, init, final)
struct vars *v;
int stopper;
int type;
struct state *init;
struct state *final;
{
        struct state *left;
        struct state *right;
        struct subre *branches;
        struct subre *branch;
        struct subre *t;
        int firstbranch;

        ((void)0);

        branches = subre(v, '|', 01, init, final);
        {if (((v)->err != 0)) return ((void *)0);};
        branch = branches;
        firstbranch = 1;
        do {
                if (!firstbranch) {

                        branch->right = subre(v, '|', 01, init, final);
                        {if (((v)->err != 0)) return ((void *)0);};
                        branch = branch->right;
                }
                firstbranch = 0;
                left = newstate(v->nfa);
                right = newstate(v->nfa);
                {if (((v)->err != 0)) return ((void *)0);};
                newarc(v->nfa, 'n', 0, init, left);
                newarc(v->nfa, 'n', 0, right, final);
                {if (((v)->err != 0)) return ((void *)0);};
                branch->left = parsebranch(v, stopper, type, left, right, 0);
                {if (((v)->err != 0)) return ((void *)0);};
                branch->flags |= (((branch->flags | branch->left->flags)&~03) | (((branch->flags | branch->left->flags)<<2) & ((branch->flags | branch->left->flags)<<1) & 04));
                if ((branch->flags &~ branches->flags) != 0)
                        for (t = branches; t != branch; t = t->right)
                                t->flags |= branch->flags;
        } while (((v->nexttype == ('|')) && next(v)));
        ((void)0);

        if (!(v->nexttype == (stopper))) {
                ((void)0);
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (8)));
        }


        if (branch == branches) {
                ((void)0);
                t = branch->left;
                branch->left = ((void *)0);
                freesubre(v, branches);
                branches = t;
        } else if (!((branches->flags)&(04|010|020))) {
                freesubre(v, branches->left);
                branches->left = ((void *)0);
                freesubre(v, branches->right);
                branches->right = ((void *)0);
                branches->op = '=';
        }

        return branches;
}
# 660 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static struct subre *
parsebranch(v, stopper, type, left, right, partial)
struct vars *v;
int stopper;
int type;
struct state *left;
struct state *right;
int partial;
{
        struct state *lp;
        int seencontent;
        struct subre *t;

        lp = left;
        seencontent = 0;
        t = subre(v, '=', 0, left, right);
        {if (((v)->err != 0)) return ((void *)0);};
        while (!(v->nexttype == ('|')) && !(v->nexttype == (stopper)) && !(v->nexttype == ('e'))) {
                if (seencontent) {
                        lp = newstate(v->nfa);
                        {if (((v)->err != 0)) return ((void *)0);};
                        moveins(v->nfa, right, lp);
                }
                seencontent = 1;


                parseqatom(v, stopper, type, lp, right, t);
        }

        if (!seencontent) {
                if (!partial)
                        (v->re->re_info |= (000400));
                ((void)0);
                newarc(v->nfa, 'n', 0, left, right);
        }

        return t;
}
# 707 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
parseqatom(v, stopper, type, lp, rp, top)
struct vars *v;
int stopper;
int type;
struct state *lp;
struct state *rp;
struct subre *top;
{
        struct state *s;
        struct state *s2;

        int m, n;
        struct subre *atom;
        struct subre *t;
        int cap;
        int pos;
        int subno;
        int atomtype;
        int qprefer;
        int f;
        struct subre **atomp;


        atom = ((void *)0);
        ((void)0);
        ((void)0);
        subno = 0;


        atomtype = v->nexttype;
        switch (atomtype) {

        case '^':
                newarc(v->nfa, '^', 1, lp, rp);
                if (v->cflags&000200)
                        newarc(v->nfa, 'r', v->nlcolor, lp, rp);
                (next(v));
                return;
                break;
        case '$':
                newarc(v->nfa, '$', 1, lp, rp);
                if (v->cflags&000200)
                        newarc(v->nfa, 'a', v->nlcolor, lp, rp);
                (next(v));
                return;
                break;
        case 'A':
                newarc(v->nfa, '^', 1, lp, rp);
                newarc(v->nfa, '^', 0, lp, rp);
                (next(v));
                return;
                break;
        case 'Z':
                newarc(v->nfa, '$', 1, lp, rp);
                newarc(v->nfa, '$', 0, lp, rp);
                (next(v));
                return;
                break;
        case '<':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                nonword(v, 'r', lp, s);
                word(v, 'a', s, rp);
                return;
                break;
        case '>':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                word(v, 'r', lp, s);
                nonword(v, 'a', s, rp);
                return;
                break;
        case 'w':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                nonword(v, 'r', lp, s);
                word(v, 'a', s, rp);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                word(v, 'r', lp, s);
                nonword(v, 'a', s, rp);
                return;
                break;
        case 'W':
                wordchrs(v);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                word(v, 'r', lp, s);
                word(v, 'a', s, rp);
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                nonword(v, 'r', lp, s);
                nonword(v, 'a', s, rp);
                return;
                break;
        case 'L':
                pos = v->nextvalue;
                (next(v));
                s = newstate(v->nfa);
                s2 = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                t = parse(v, ')', 'L', s, s2);
                freesubre(v, t);
                ((void)0);
                (next(v));
                n = newlacon(v, s, s2, pos);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'L', n, lp, rp);
                return;
                break;

        case '*':
        case '+':
        case '?':
        case '{':
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (13)));
                return;
                break;
        default:
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                return;
                break;

        case ')':
                if ((v->cflags&000003) != 000001) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (8)));
                        return;
                }

                (v->re->re_info |= (000040));

        case 'p':
                onechr(v, v->nextvalue, lp, rp);
                okcolors(v->nfa, v->cm);
                {if (((v)->err != 0)) return;};
                (next(v));
                break;
        case '[':
                if (v->nextvalue == 1)
                        bracket(v, lp, rp);
                else
                        cbracket(v, lp, rp);
                ((void)0);
                (next(v));
                break;
        case '.':
                rainbow(v->nfa, v->cm, 'p',
                                (v->cflags&000100) ? v->nlcolor : (-1),
                                lp, rp);
                (next(v));
                break;

        case '(':
                cap = (type == 'L') ? 0 : v->nextvalue;
                if (cap) {
                        v->nsubexp++;
                        subno = v->nsubexp;
                        if ((size_t)subno >= v->nsubs)
                                moresubs(v, subno);
                        ((void)0);
                } else
                        atomtype = 'p';
                (next(v));

                s = newstate(v->nfa);
                s2 = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'n', 0, lp, s);
                newarc(v->nfa, 'n', 0, s2, rp);
                {if (((v)->err != 0)) return;};
                atom = parse(v, ')', 'p', s, s2);
                ((void)0);
                (next(v));
                {if (((v)->err != 0)) return;};
                if (cap) {
                        v->subs[subno] = atom;
                        t = subre(v, '(', atom->flags|010, lp, rp);
                        {if (((v)->err != 0)) return;};
                        t->subno = subno;
                        t->left = atom;
                        atom = t;
                }

                break;
        case 'b':
                ((type != 'L') ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (6))));
                ((v->nextvalue < v->nsubs) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (6))));
                ((v->subs[v->nextvalue] != ((void *)0)) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (6))));
                {if (((v)->err != 0)) return;};
                ((void)0);
                atom = subre(v, 'b', 020, lp, rp);
                subno = v->nextvalue;
                atom->subno = subno;
                newarc(v->nfa, 'n', 0, lp, rp);
                (next(v));
                break;
        }


        switch (v->nexttype) {
        case '*':
                m = 0;
                n = (255 +1);
                qprefer = (v->nextvalue) ? 01 : 02;
                (next(v));
                break;
        case '+':
                m = 1;
                n = (255 +1);
                qprefer = (v->nextvalue) ? 01 : 02;
                (next(v));
                break;
        case '?':
                m = 0;
                n = 1;
                qprefer = (v->nextvalue) ? 01 : 02;
                (next(v));
                break;
        case '{':
                (next(v));
                m = scannum(v);
                if (((v->nexttype == (',')) && next(v))) {
                        if ((v->nexttype == ('d')))
                                n = scannum(v);
                        else
                                n = (255 +1);
                        if (m > n) {
                                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10)));
                                return;
                        }

                        qprefer = (v->nextvalue) ? 01 : 02;
                } else {
                        n = m;

                        qprefer = 0;
                }
                if (!(v->nexttype == ('}'))) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10)));
                        return;
                }
                (next(v));
                break;
        default:
                m = n = 1;
                qprefer = 0;
                break;
        }


        if (m == 0 && n == 0) {
                if (atom != ((void *)0))
                        freesubre(v, atom);
                if (atomtype == '(')
                        v->subs[subno] = ((void *)0);
                delsub(v->nfa, lp, rp);
                newarc(v->nfa, 'n', 0, lp, rp);
                return;
        }


        ((void)0);
        f = top->flags | qprefer | ((atom != ((void *)0)) ? atom->flags : 0);
        if (atomtype != '(' && atomtype != 'b' && !(((((f)&~03) | (((f)<<2) & ((f)<<1) & 04)))&(04|010|020))) {
                if (!(m == 1 && n == 1))
                        repeat(v, lp, rp, m, n);
                if (atom != ((void *)0))
                        freesubre(v, atom);
                top->flags = f;
                return;
        }
# 990 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
        if (atom == ((void *)0)) {
                atom = subre(v, '=', 0, lp, rp);
                {if (((v)->err != 0)) return;};
        }
# 1004 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
        s = newstate(v->nfa);
        s2 = newstate(v->nfa);
        {if (((v)->err != 0)) return;};
        moveouts(v->nfa, lp, s);
        moveins(v->nfa, rp, s2);
        {if (((v)->err != 0)) return;};
        atom->begin = s;
        atom->end = s2;
        s = newstate(v->nfa);
        s2 = newstate(v->nfa);
        {if (((v)->err != 0)) return;};
        newarc(v->nfa, 'n', 0, lp, s);
        newarc(v->nfa, 'n', 0, lp, s2);
        {if (((v)->err != 0)) return;};


        t = subre(v, '.', (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03))), lp, rp);
        t->left = atom;
        atomp = &t->left;



        ((void)0);
        top->left = subre(v, '=', top->flags, top->begin, lp);
        top->op = '.';
        top->right = t;


        if (atomtype == 'b') {
                ((void)0);
                delsub(v->nfa, atom->begin, atom->end);
                ((void)0);



                dupnfa(v->nfa, v->subs[subno]->begin, v->subs[subno]->end,
                                                atom->begin, atom->end);
                {if (((v)->err != 0)) return;};
        }


        if (m == 0) {
                newarc(v->nfa, 'n', 0, s2, atom->end);
                ((void)0);
                f = (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03)));
                t = subre(v, '|', f, lp, atom->end);
                {if (((v)->err != 0)) return;};
                t->left = atom;
                t->right = subre(v, '|', ((f)&03), s2, atom->end);
                {if (((v)->err != 0)) return;};
                t->right->left = subre(v, '=', 0, s2, atom->end);
                {if (((v)->err != 0)) return;};
                *atomp = t;
                atomp = &t->left;
                m = 1;
        }


        if (atomtype == 'b') {

                newarc(v->nfa, 'n', 0, s, atom->begin);

                repeat(v, atom->begin, atom->end, m, n);
                atom->min = (short)m;
                atom->max = (short)n;
                atom->flags |= (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03)));
        } else if (m == 1 && n == 1) {

                newarc(v->nfa, 'n', 0, s, atom->begin);
        } else {


                dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin);
                ((void)0);
                repeat(v, s, atom->begin, m-1, (n == (255 +1)) ? n : n-1);
                f = (((((qprefer)|(atom->flags))&~03) | ((((qprefer)|(atom->flags))<<2) & (((qprefer)|(atom->flags))<<1) & 04)) | ((((qprefer)&03) != 0) ? ((qprefer)&03) : ((atom->flags)&03)));
                t = subre(v, '.', f, s, atom->end);
                {if (((v)->err != 0)) return;};
                t->left = subre(v, '=', ((f)&03), s, atom->begin);
                {if (((v)->err != 0)) return;};
                t->right = atom;
                *atomp = t;
        }


        t = top->right;
        if (!((v->nexttype == ('|')) || (v->nexttype == (stopper)) || (v->nexttype == ('e'))))
                t->right = parsebranch(v, stopper, type, atom->end, rp, 1);
        else {
                newarc(v->nfa, 'n', 0, atom->end, rp);
                t->right = subre(v, '=', 0, atom->end, rp);
        }
        ((void)0);
        t->flags |= (((((t->flags)|(t->right->flags))&~03) | ((((t->flags)|(t->right->flags))<<2) & (((t->flags)|(t->right->flags))<<1) & 04)) | ((((t->flags)&03) != 0) ? ((t->flags)&03) : ((t->right->flags)&03)));
        top->flags |= (((((top->flags)|(t->flags))&~03) | ((((top->flags)|(t->flags))<<2) & (((top->flags)|(t->flags))<<1) & 04)) | ((((top->flags)&03) != 0) ? ((top->flags)&03) : ((t->flags)&03)));
}





static void
nonword(v, dir, lp, rp)
struct vars *v;
int dir;
struct state *lp;
struct state *rp;
{
        int anchor = (dir == 'a') ? '$' : '^';

        ((void)0);
        newarc(v->nfa, anchor, 1, lp, rp);
        newarc(v->nfa, anchor, 0, lp, rp);
        colorcomplement(v->nfa, v->cm, dir, v->wordchrs, lp, rp);

}





static void
word(v, dir, lp, rp)
struct vars *v;
int dir;
struct state *lp;
struct state *rp;
{
        ((void)0);
        cloneouts(v->nfa, v->wordchrs, lp, rp, dir);

}





static int
scannum(v)
struct vars *v;
{
        int n = 0;

        while ((v->nexttype == ('d')) && n < 255) {
                n = n*10 + v->nextvalue;
                (next(v));
        }
        if ((v->nexttype == ('d')) || n > 255) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10)));
                return 0;
        }
        return n;
}
# 1168 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
repeat(v, lp, rp, m, n)
struct vars *v;
struct state *lp;
struct state *rp;
int m;
int n;
{




        const int rm = ( ((m) == (255 +1)) ? 3 : (((m) > 1) ? 2 : (m)) );
        const int rn = ( ((n) == (255 +1)) ? 3 : (((n) > 1) ? 2 : (n)) );
        struct state *s;
        struct state *s2;

        switch (((rm)*4 + (rn))) {
        case ((0)*4 + (0)):
                delsub(v->nfa, lp, rp);
                newarc(v->nfa, 'n', 0, lp, rp);
                break;
        case ((0)*4 + (1)):
                newarc(v->nfa, 'n', 0, lp, rp);
                break;
        case ((0)*4 + (2)):
                repeat(v, lp, rp, 1, n);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'n', 0, lp, rp);
                break;
        case ((0)*4 + (3)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                moveins(v->nfa, rp, s);
                newarc(v->nfa, 'n', 0, lp, s);
                newarc(v->nfa, 'n', 0, s, rp);
                break;
        case ((1)*4 + (1)):
                break;
        case ((1)*4 + (2)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                dupnfa(v->nfa, s, rp, lp, s);
                {if (((v)->err != 0)) return;};
                repeat(v, lp, s, 1, n-1);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'n', 0, lp, s);
                break;
        case ((1)*4 + (3)):
                s = newstate(v->nfa);
                s2 = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                moveins(v->nfa, rp, s2);
                newarc(v->nfa, 'n', 0, lp, s);
                newarc(v->nfa, 'n', 0, s2, rp);
                newarc(v->nfa, 'n', 0, s2, s);
                break;
        case ((2)*4 + (2)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                dupnfa(v->nfa, s, rp, lp, s);
                {if (((v)->err != 0)) return;};
                repeat(v, lp, s, m-1, n-1);
                break;
        case ((2)*4 + (3)):
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                moveouts(v->nfa, lp, s);
                dupnfa(v->nfa, s, rp, lp, s);
                {if (((v)->err != 0)) return;};
                repeat(v, lp, s, m-1, n);
                break;
        default:
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                break;
        }
}






static void
bracket(v, lp, rp)
struct vars *v;
struct state *lp;
struct state *rp;
{
        ((void)0);
        (next(v));
        while (!(v->nexttype == (']')) && !(v->nexttype == ('e')))
                brackpart(v, lp, rp);
        ((void)0);
        okcolors(v->nfa, v->cm);
}
# 1276 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
cbracket(v, lp, rp)
struct vars *v;
struct state *lp;
struct state *rp;
{
        struct state *left = newstate(v->nfa);
        struct state *right = newstate(v->nfa);
        struct state *s;
        struct arc *a;
        struct arc *ba;
        struct arc *pa;
        color co;
        chr *p;
        int i;

        {if (((v)->err != 0)) return;};
        bracket(v, left, right);
        if (v->cflags&000100)
                newarc(v->nfa, 'p', v->nlcolor, left, right);
        {if (((v)->err != 0)) return;};

        ((void)0);


        colorcomplement(v->nfa, v->cm, 'p', left, lp, rp);
        {if (((v)->err != 0)) return;};
        if (v->mcces == ((void *)0)) {
                dropstate(v->nfa, left);
                ((void)0);
                freestate(v->nfa, right);
                return;
        }


        (v->re->re_info |= (002000));
        for (p = v->mcces->chrs, i = v->mcces->nchrs; i > 0; p++, i--) {
                co = ((v->cm)->tree->ptrs.pptr[(((*p)>>8) & ((1<<8)-1))]->colors.ccolor[((*p) & ((1<<8)-1))]);
                a = findarc(lp, 'p', co);
                ba = findarc(left, 'p', co);
                if (ba == ((void *)0)) {
                        ((void)0);
                        freearc(v->nfa, a);
                } else {
                        ((void)0);
                }
                s = newstate(v->nfa);
                {if (((v)->err != 0)) return;};
                newarc(v->nfa, 'p', co, lp, s);
                {if (((v)->err != 0)) return;};
                pa = findarc(v->mccepbegin, 'p', co);
                ((void)0);
                if (ba == ((void *)0)) {
                        cloneouts(v->nfa, pa->to, s, rp, 'p');
                        newarc(v->nfa, '$', 1, s, rp);
                        newarc(v->nfa, '$', 0, s, rp);
                        colorcomplement(v->nfa, v->cm, 'a', pa->to, s, rp);
                } else {
                        if (findarc(ba->to, '$', 1) == ((void *)0)) {
                                newarc(v->nfa, '$', 1, s, rp);
                                newarc(v->nfa, '$', 0, s, rp);
                                colorcomplement(v->nfa, v->cm, 'a', pa->to,
                                                                         s, rp);
                        }
                        for (pa = pa->to->outs; pa != ((void *)0); pa = pa->outchain)
                                if (findarc(ba->to, 'p', pa->co) == ((void *)0))
                                        newarc(v->nfa, 'p', pa->co, s, rp);
                        if (s->nouts == 0)
                                dropstate(v->nfa, s);
                }
                {if (((v)->err != 0)) return;};
        }

        delsub(v->nfa, left, right);
        ((void)0);
        freestate(v->nfa, left);
        ((void)0);
        freestate(v->nfa, right);
}





static void
brackpart(v, lp, rp)
struct vars *v;
struct state *lp;
struct state *rp;
{
        celt startc;
        celt endc;
        struct cvec *cv;
        chr *startp;
        chr *endp;
        chr c[1];


        switch (v->nexttype) {
        case 'R':
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (11)));
                return;
                break;
        case 'p':
                c[0] = v->nextvalue;
                (next(v));

                if (!(v->nexttype == ('R')) && !(v->mcces != ((void *)0) && haschr(v->mcces, (c[0])))) {
                        onechr(v, c[0], lp, rp);
                        return;
                }
                startc = element(v, c, c+1);
                {if (((v)->err != 0)) return;};
                break;
        case 'I':
                startp = v->now;
                endp = scanplain(v);
                ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3))));
                {if (((v)->err != 0)) return;};
                startc = element(v, startp, endp);
                {if (((v)->err != 0)) return;};
                break;
        case 'E':
                startp = v->now;
                endp = scanplain(v);
                ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3))));
                {if (((v)->err != 0)) return;};
                startc = element(v, startp, endp);
                {if (((v)->err != 0)) return;};
                cv = eclass(v, startc, (v->cflags&000010));
                {if (((v)->err != 0)) return;};
                dovec(v, cv, lp, rp);
                return;
                break;
        case 'C':
                startp = v->now;
                endp = scanplain(v);
                ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (4))));
                {if (((v)->err != 0)) return;};
                cv = cclass(v, startp, endp, (v->cflags&000010));
                {if (((v)->err != 0)) return;};
                dovec(v, cv, lp, rp);
                return;
                break;
        default:
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                return;
                break;
        }

        if ((v->nexttype == ('R'))) {
                (next(v));
                switch (v->nexttype) {
                case 'p':
                case 'R':
                        c[0] = v->nextvalue;
                        (next(v));
                        endc = element(v, c, c+1);
                        {if (((v)->err != 0)) return;};
                        break;
                case 'I':
                        startp = v->now;
                        endp = scanplain(v);
                        ((startp < endp) ? 0 : ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3))));
                        {if (((v)->err != 0)) return;};
                        endc = element(v, startp, endp);
                        {if (((v)->err != 0)) return;};
                        break;
                default:
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (11)));
                        return;
                        break;
                }
        } else
                endc = startc;






        if (startc != endc)
                (v->re->re_info |= (001000));
        cv = range(v, startc, endc, (v->cflags&000010));
        {if (((v)->err != 0)) return;};
        dovec(v, cv, lp, rp);
}







static chr *
scanplain(v)
struct vars *v;
{
        chr *endp;

        ((void)0);
        (next(v));

        endp = v->now;
        while ((v->nexttype == ('p'))) {
                endp = v->now;
                (next(v));
        }

        ((void)0);
        (next(v));

        return endp;
}







static void
leaders(v, cv)
struct vars *v;
struct cvec *cv;
{
        int mcce;
        chr *p;
        chr leader;
        struct state *s;
        struct arc *a;

        v->mccepbegin = newstate(v->nfa);
        v->mccepend = newstate(v->nfa);
        {if (((v)->err != 0)) return;};

        for (mcce = 0; mcce < cv->nmcces; mcce++) {
                p = cv->mcces[mcce];
                leader = *p;
                if (!haschr(cv, leader)) {
                        addchr(cv, leader);
                        s = newstate(v->nfa);
                        newarc(v->nfa, 'p', subcolor(v->cm, leader),
                                                        v->mccepbegin, s);
                        okcolors(v->nfa, v->cm);
                } else {
                        a = findarc(v->mccepbegin, 'p',
                                                ((v->cm)->tree->ptrs.pptr[(((leader)>>8) & ((1<<8)-1))]->colors.ccolor[((leader) & ((1<<8)-1))]));
                        ((void)0);
                        s = a->to;
                        ((void)0);
                }
                p++;
                ((void)0);
                newarc(v->nfa, 'p', subcolor(v->cm, *p), s, v->mccepend);
                okcolors(v->nfa, v->cm);
        }
}






static void
onechr(v, c, lp, rp)
struct vars *v;
pchr c;
struct state *lp;
struct state *rp;
{
        if (!(v->cflags&000010)) {
                newarc(v->nfa, 'p', subcolor(v->cm, c), lp, rp);
                return;
        }


        dovec(v, allcases(v, c), lp, rp);
}







static void
dovec(v, cv, lp, rp)
struct vars *v;
struct cvec *cv;
struct state *lp;
struct state *rp;
{
        chr ch, from, to;
        celt ce;
        chr *p;
        int i;
        color co;
        struct cvec *leads;
        struct arc *a;
        struct arc *pa;
        struct state *s;
        struct state *ps;


        if (nmcces(v) > 0) {
                ((void)0);
                if (v->cv2 == ((void *)0) || v->cv2->nchrs < v->mcces->nchrs) {
                        if (v->cv2 != ((void *)0))
                                free(v->cv2);
                        v->cv2 = newcvec(v->mcces->nchrs, 0, v->mcces->nmcces);
                        {if (((v)->err != 0)) return;};
                        leads = v->cv2;
                } else
                        leads = clearcvec(v->cv2);
        } else
                leads = ((void *)0);


        for (p = cv->chrs, i = cv->nchrs; i > 0; p++, i--) {
                ch = *p;
                if (!(v->mcces != ((void *)0) && haschr(v->mcces, (ch))))
                        newarc(v->nfa, 'p', subcolor(v->cm, ch), lp, rp);
                else {
                        ((void)0);
                        ((void)0);
                        if (!haschr(leads, ch))
                                addchr(leads, ch);
                }
        }


        for (p = cv->ranges, i = cv->nranges; i > 0; p += 2, i--) {
                from = *p;
                to = *(p+1);
                while (from <= to && (ce = nextleader(v, from, to)) != (-1)) {
                        if (from < ce)
                                subrange(v, from, ce - 1, lp, rp);
                        ((void)0);
                        ((void)0);
                        if (!haschr(leads, ce))
                                addchr(leads, ce);
                        from = ce + 1;
                }
                if (from <= to)
                        subrange(v, from, to, lp, rp);
        }

        if ((leads == ((void *)0) || leads->nchrs == 0) && cv->nmcces == 0)
                return;


        (v->re->re_info |= (002000));
        for (p = leads->chrs, i = leads->nchrs; i > 0; p++, i--) {
                co = ((v->cm)->tree->ptrs.pptr[(((*p)>>8) & ((1<<8)-1))]->colors.ccolor[((*p) & ((1<<8)-1))]);
                a = findarc(lp, 'p', co);
                if (a != ((void *)0))
                        s = a->to;
                else {
                        s = newstate(v->nfa);
                        {if (((v)->err != 0)) return;};
                        newarc(v->nfa, 'p', co, lp, s);
                        {if (((v)->err != 0)) return;};
                }
                pa = findarc(v->mccepbegin, 'p', co);
                ((void)0);
                ps = pa->to;
                newarc(v->nfa, '$', 1, s, rp);
                newarc(v->nfa, '$', 0, s, rp);
                colorcomplement(v->nfa, v->cm, 'a', ps, s, rp);
                {if (((v)->err != 0)) return;};
        }


        for (i = 0; i < cv->nmcces; i++) {
                p = cv->mcces[i];
                ((void)0);
                if (!singleton(v->cm, *p)) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15)));
                        return;
                }
                ch = *p++;
                co = ((v->cm)->tree->ptrs.pptr[(((ch)>>8) & ((1<<8)-1))]->colors.ccolor[((ch) & ((1<<8)-1))]);
                a = findarc(lp, 'p', co);
                if (a != ((void *)0))
                        s = a->to;
                else {
                        s = newstate(v->nfa);
                        {if (((v)->err != 0)) return;};
                        newarc(v->nfa, 'p', co, lp, s);
                        {if (((v)->err != 0)) return;};
                }
                ((void)0);
                ((void)0);
                ch = *p++;
                co = ((v->cm)->tree->ptrs.pptr[(((ch)>>8) & ((1<<8)-1))]->colors.ccolor[((ch) & ((1<<8)-1))]);
                ((void)0);
                newarc(v->nfa, 'p', co, s, rp);
                {if (((v)->err != 0)) return;};
        }
}





static celt
nextleader(v, from, to)
struct vars *v;
pchr from;
pchr to;
{
        int i;
        chr *p;
        chr ch;
        celt it = (-1);

        if (v->mcces == ((void *)0))
                return it;

        for (i = v->mcces->nchrs, p = v->mcces->chrs; i > 0; i--, p++) {
                ch = *p;
                if (from <= ch && ch <= to)
                        if (it == (-1) || ch < it)
                                it = ch;
        }
        return it;
}
# 1714 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
static void
wordchrs(v)
struct vars *v;
{
        struct state *left;
        struct state *right;

        if (v->wordchrs != ((void *)0)) {
                (next(v));
                return;
        }

        left = newstate(v->nfa);
        right = newstate(v->nfa);
        {if (((v)->err != 0)) return;};

        lexword(v);
        (next(v));
        ((void)0);
        bracket(v, left, right);
        ((void)0);
        (next(v));
        {if (((v)->err != 0)) return;};
        v->wordchrs = left;
}






static struct subre *
subre(v, op, flags, begin, end)
struct vars *v;
int op;
int flags;
struct state *begin;
struct state *end;
{
        struct subre *ret;

        ret = v->treefree;
        if (ret != ((void *)0))
                v->treefree = ret->left;
        else {
                ret = (struct subre *)Tcl_Alloc(sizeof(struct subre));
                if (ret == ((void *)0)) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
                        return ((void *)0);
                }
                ret->chain = v->treechain;
                v->treechain = ret;
        }

        ((void)0);

        ret->op = op;
        ret->flags = flags;
        ret->retry = 0;
        ret->subno = 0;
        ret->min = ret->max = 1;
        ret->left = ((void *)0);
        ret->right = ((void *)0);
        ret->begin = begin;
        ret->end = end;
        ((ret->cnfa).nstates = 0);

        return ret;
}





static void
freesubre(v, sr)
struct vars *v;
struct subre *sr;
{
        if (sr == ((void *)0))
                return;

        if (sr->left != ((void *)0))
                freesubre(v, sr->left);
        if (sr->right != ((void *)0))
                freesubre(v, sr->right);

        freesrnode(v, sr);
}





static void
freesrnode(v, sr)
struct vars *v;
struct subre *sr;
{
        if (sr == ((void *)0))
                return;

        if (!((sr->cnfa).nstates == 0))
                freecnfa(&sr->cnfa);
        sr->flags = 0;

        if (v != ((void *)0)) {
                sr->left = v->treefree;
                v->treefree = sr;
        } else
                Tcl_Free(((void *)(sr)));
}





static void
optst(v, t)
struct vars *v;
struct subre *t;
{
        if (t == ((void *)0))
                return;


        if (t->left != ((void *)0))
                optst(v, t->left);
        if (t->right != ((void *)0))
                optst(v, t->right);
}





static int
numst(t, start)
struct subre *t;
int start;
{
        int i;

        ((void)0);

        i = start;
        t->retry = (short)i++;
        if (t->left != ((void *)0))
                i = numst(t->left, i);
        if (t->right != ((void *)0))
                i = numst(t->right, i);
        return i;
}





static void
markst(t)
struct subre *t;
{
        ((void)0);

        t->flags |= 0100;
        if (t->left != ((void *)0))
                markst(t->left);
        if (t->right != ((void *)0))
                markst(t->right);
}





static void
cleanst(v)
struct vars *v;
{
        struct subre *t;
        struct subre *next;

        for (t = v->treechain; t != ((void *)0); t = next) {
                next = t->chain;
                if (!(t->flags&0100))
                        Tcl_Free(((void *)(t)));
        }
        v->treechain = ((void *)0);
        v->treefree = ((void *)0);
}





static long
nfatree(v, t, f)
struct vars *v;
struct subre *t;
FILE *f;
{
        ((void)0);

        if (t->left != ((void *)0))
                (void)nfatree(v, t->left, f);
        if (t->right != ((void *)0))
                (void)nfatree(v, t->right, f);

        return nfanode(v, t, f);
}





static long
nfanode(v, t, f)
struct vars *v;
struct subre *t;
FILE *f;
{
        struct nfa *nfa;
        long ret = 0;
        char idbuf[50];

        ((void)0);

        if (f != ((void *)0))
                fprintf(f, "\n\n\n========= TREE NODE %s ==========\n",
                                                stid(t, idbuf, sizeof(idbuf)));
        nfa = newnfa(v, v->cm, v->nfa);
        {if (((v)->err != 0)) return 0;};
        dupnfa(nfa, t->begin, t->end, nfa->init, nfa->final);
        if (!((v)->err != 0)) {
                specialcolors(nfa);
                ret = optimize(nfa, f);
        }
        if (!((v)->err != 0))
                compact(nfa, &t->cnfa);

        freenfa(nfa);
        return ret;
}





static int
newlacon(v, begin, end, pos)
struct vars *v;
struct state *begin;
struct state *end;
int pos;
{
        int n;
        struct subre *sub;

        if (v->nlacons == 0) {
                v->lacons = (struct subre *)Tcl_Alloc(2 * sizeof(struct subre));
                n = 1;
                v->nlacons = 2;
        } else {
                v->lacons = (struct subre *)Tcl_Realloc(((void *)(v->lacons)),(v->nlacons+1)*sizeof(struct subre));

                n = v->nlacons++;
        }
        if (v->lacons == ((void *)0)) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
                return 0;
        }
        sub = &v->lacons[n];
        sub->begin = begin;
        sub->end = end;
        sub->subno = pos;
        ((sub->cnfa).nstates = 0);
        return n;
}





static void
freelacons(subs, n)
struct subre *subs;
int n;
{
        struct subre *sub;
        int i;

        ((void)0);
        for (sub = subs + 1, i = n - 1; i > 0; sub++, i--)
                if (!((sub->cnfa).nstates == 0))
                        freecnfa(&sub->cnfa);
        Tcl_Free(((void *)(subs)));
}





static void
rfree(re)
regex_t *re;
{
        struct guts *g;

        if (re == ((void *)0) || re->re_magic != 0xfed7)
                return;

        re->re_magic = 0;
        g = (struct guts *)re->re_guts;
        re->re_guts = ((void *)0);
        re->re_fns = ((void *)0);
        g->magic = 0;
        freecm(&g->cmap);
        if (g->tree != ((void *)0))
                freesubre((struct vars *)((void *)0), g->tree);
        if (g->lacons != ((void *)0))
                freelacons(g->lacons, g->nlacons);
        if (!((g->search).nstates == 0))
                freecnfa(&g->search);
        Tcl_Free(((void *)(g)));
}





static void
dump(re, f)
regex_t *re;
FILE *f;
{
# 2082 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c"
}





static void
dumpst(t, f, nfapresent)
struct subre *t;
FILE *f;
int nfapresent;
{
        if (t == ((void *)0))
                fprintf(f, "null tree\n");
        else
                stdump(t, f, nfapresent);
        fflush(f);
}





static void
stdump(t, f, nfapresent)
struct subre *t;
FILE *f;
int nfapresent;
{
        char idbuf[50];

        fprintf(f, "%s. `%c'", stid(t, idbuf, sizeof(idbuf)), t->op);
        if (t->flags&01)
                fprintf(f, " longest");
        if (t->flags&02)
                fprintf(f, " shortest");
        if (t->flags&04)
                fprintf(f, " hasmixed");
        if (t->flags&010)
                fprintf(f, " hascapture");
        if (t->flags&020)
                fprintf(f, " hasbackref");
        if (!(t->flags&0100))
                fprintf(f, " UNUSED");
        if (t->subno != 0)
                fprintf(f, " (#%d)", t->subno);
        if (t->min != 1 || t->max != 1) {
                fprintf(f, " {%d,", t->min);
                if (t->max != (255 +1))
                        fprintf(f, "%d", t->max);
                fprintf(f, "}");
        }
        if (nfapresent)
                fprintf(f, " %ld-%ld", (long)t->begin->no, (long)t->end->no);
        if (t->left != ((void *)0))
                fprintf(f, " L:%s", stid(t->left, idbuf, sizeof(idbuf)));
        if (t->right != ((void *)0))
                fprintf(f, " R:%s", stid(t->right, idbuf, sizeof(idbuf)));
        if (!((t->cnfa).nstates == 0)) {
                fprintf(f, "\n");
                dumpcnfa(&t->cnfa, f);
                fprintf(f, "\n");
        }
        if (t->left != ((void *)0))
                stdump(t->left, f, nfapresent);
        if (t->right != ((void *)0))
                stdump(t->right, f, nfapresent);
}





static char *
stid(t, buf, bufsize)
struct subre *t;
char *buf;
size_t bufsize;
{

        if (bufsize < sizeof(int)*2 + 3 || bufsize < sizeof(t->retry)*3 + 1)
                return "unable";
        if (t->retry != 0)
                sprintf(buf, "%d", t->retry);
        else
                sprintf(buf, "0x%x", (int)t);
        return buf;
}

# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c" 1
# 68 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c"
static void
lexstart(v)
struct vars *v;
{
        prefixes(v);
        {if (((v)->err != 0)) return;};

        if (v->cflags&000004) {
                ((void)0);
                (v->lexcon = (3));
        } else if (v->cflags&000001) {
                ((void)0);
                (v->lexcon = (1));
        } else {
                ((void)0);
                (v->lexcon = (2));
        }

        v->nexttype = 'n';
        next(v);
}





static void
prefixes(v)
struct vars *v;
{

        if (v->cflags&000004)
                return;


        if ((v->stop - v->now >= (4)) && ((v->stop - v->now >= (3)) && *v->now == (((unsigned char) ('*'))) && *(v->now+1) == (((unsigned char) ('*'))) && *(v->now+2) == (((unsigned char) ('*')))))
                switch (*(v->now + 3)) {
                case (((unsigned char) ('?'))):
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (2)));
                        return;
                        break;
                case (((unsigned char) ('='))):
                        (v->re->re_info |= (000200));
                        v->cflags |= 000004;
                        v->cflags &= ~(000003|000040|000300);
                        v->now += 4;
                        return;
                        break;
                case (((unsigned char) (':'))):
                        (v->re->re_info |= (000200));
                        v->cflags |= 000003;
                        v->now += 4;
                        break;
                default:
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (13)));
                        return;
                        break;
                }


        if ((v->cflags&000003) != 000003)
                return;


        if ((v->stop - v->now >= (3)) && ((v->stop - v->now >= (2)) && *v->now == (((unsigned char) ('('))) && *(v->now+1) == (((unsigned char) ('?')))) && Tcl_UniCharIsAlpha(*(v->now + 2))) {
                (v->re->re_info |= (000200));
                v->now += 2;
                for (; !(v->now >= v->stop) && Tcl_UniCharIsAlpha(*v->now); v->now++)
                        switch (*v->now) {
                        case (((unsigned char) ('b'))):
                                v->cflags &= ~(000003|000004);
                                break;
                        case (((unsigned char) ('c'))):
                                v->cflags &= ~000010;
                                break;
                        case (((unsigned char) ('e'))):
                                v->cflags |= 000001;
                                v->cflags &= ~(000002|000004);
                                break;
                        case (((unsigned char) ('i'))):
                                v->cflags |= 000010;
                                break;
                        case (((unsigned char) ('m'))):
                        case (((unsigned char) ('n'))):
                                v->cflags |= 000300;
                                break;
                        case (((unsigned char) ('p'))):
                                v->cflags |= 000100;
                                v->cflags &= ~000200;
                                break;
                        case (((unsigned char) ('q'))):
                                v->cflags |= 000004;
                                v->cflags &= ~000003;
                                break;
                        case (((unsigned char) ('s'))):
                                v->cflags &= ~000300;
                                break;
                        case (((unsigned char) ('t'))):
                                v->cflags &= ~000040;
                                break;
                        case (((unsigned char) ('w'))):
                                v->cflags &= ~000100;
                                v->cflags |= 000200;
                                break;
                        case (((unsigned char) ('x'))):
                                v->cflags |= 000040;
                                break;
                        default:
                                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (18)));
                                return;
                        }
                if (!(!(v->now >= v->stop) && *v->now == (((unsigned char) (')'))))) {
                        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (18)));
                        return;
                }
                v->now++;
                if (v->cflags&000004)
                        v->cflags &= ~(000040|000300);
        }
}







static void
lexnest(v, beginp, endp)
struct vars *v;
chr *beginp;
chr *endp;
{
        ((void)0);
        v->savenow = v->now;
        v->savestop = v->stop;
        v->now = beginp;
        v->stop = endp;
}




static chr backd[] = {
        (((unsigned char) ('['))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('d'))), (((unsigned char) ('i'))), (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char) ('t'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr backD[] = {
        (((unsigned char) ('['))), (((unsigned char) ('^'))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('d'))), (((unsigned char) ('i'))), (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char) ('t'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr brbackd[] = {
        (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('d'))), (((unsigned char) ('i'))), (((unsigned char) ('g'))), (((unsigned char) ('i'))), (((unsigned char) ('t'))),
        (((unsigned char) (':'))), (((unsigned char) (']')))
};
static chr backs[] = {
        (((unsigned char) ('['))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('s'))), (((unsigned char) ('p'))), (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char) ('e'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr backS[] = {
        (((unsigned char) ('['))), (((unsigned char) ('^'))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('s'))), (((unsigned char) ('p'))), (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char) ('e'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) (']')))
};
static chr brbacks[] = {
        (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('s'))), (((unsigned char) ('p'))), (((unsigned char) ('a'))), (((unsigned char) ('c'))), (((unsigned char) ('e'))),
        (((unsigned char) (':'))), (((unsigned char) (']')))
};
static chr backw[] = {
        (((unsigned char) ('['))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char) ('m'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) ('_'))), (((unsigned char) (']')))
};
static chr backW[] = {
        (((unsigned char) ('['))), (((unsigned char) ('^'))), (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char) ('m'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) ('_'))), (((unsigned char) (']')))
};
static chr brbackw[] = {
        (((unsigned char) ('['))), (((unsigned char) (':'))),
        (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('n'))), (((unsigned char) ('u'))), (((unsigned char) ('m'))),
        (((unsigned char) (':'))), (((unsigned char) (']'))), (((unsigned char) ('_')))
};






static void
lexword(v)
struct vars *v;
{
        lexnest(v, backw, ((backw) + sizeof(backw)/sizeof(chr)));
}





static int
next(v)
struct vars *v;
{
        chr c;


        if (((v)->err != 0))
                return 0;


        v->lasttype = v->nexttype;


        if (v->nexttype == 'n' && (v->cflags&002000)) {

                return ((v->nexttype = ('A'), v->nextvalue = (0)), 1);
        }


        if (v->savenow != ((void *)0) && (v->now >= v->stop)) {
                v->now = v->savenow;
                v->stop = v->savestop;
                v->savenow = v->savestop = ((void *)0);
        }


        if (v->cflags&000040)
                switch (v->lexcon) {
                case 1:
                case 2:
                case 4:
                case 5:
                        skip(v);
                        break;
                }


        if ((v->now >= v->stop)) {
                switch (v->lexcon) {
                case 1:
                case 2:
                case 3:
                        return ((v->nexttype = ('e')), 1);
                        break;
                case 4:
                case 5:
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (9))), 0);
                        break;
                case 6:
                case 7:
                case 8:
                case 9:
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (7))), 0);
                        break;
                }
                ((void)0);
        }


        c = *v->now++;


        switch (v->lexcon) {
        case 2:
                return brenext(v, c);
                break;
        case 1:
                break;
        case 3:
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case 5:
        case 4:
                switch (c) {
                case (((unsigned char) ('0'))): case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))):
                case (((unsigned char) ('4'))): case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))):
                case (((unsigned char) ('8'))): case (((unsigned char) ('9'))):
                        return ((v->nexttype = ('d'), v->nextvalue = ((chr)((c)-'0'))), 1);
                        break;
                case (((unsigned char) (','))):
                        return ((v->nexttype = (',')), 1);
                        break;
                case (((unsigned char) ('}'))):
                        if ((v->lexcon == (4))) {
                                (v->lexcon = (1));
                                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                                        v->now++;
                                        (v->re->re_info |= (000200));
                                        return ((v->nexttype = ('}'), v->nextvalue = (0)), 1);
                                }
                                return ((v->nexttype = ('}'), v->nextvalue = (1)), 1);
                        } else
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10))), 0);
                        break;
                case (((unsigned char) ('\\'))):
                        if ((v->lexcon == (5)) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('}'))))) {
                                v->now++;
                                (v->lexcon = (2));
                                return ((v->nexttype = ('}')), 1);
                        } else
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10))), 0);
                        break;
                default:
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (10))), 0);
                        break;
                }
                ((void)0);
                break;
        case 6:
                switch (c) {
                case (((unsigned char) (']'))):
                        if ((v->lasttype == ('[')))
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        else {
                                (v->lexcon = ((v->cflags&000001) ? 1 : 2));

                                return ((v->nexttype = (']')), 1);
                        }
                        break;
                case (((unsigned char) ('\\'))):
                        (v->re->re_info |= (000100));
                        if (!(v->cflags&000002))
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        (v->re->re_info |= (000200));
                        if ((v->now >= v->stop))
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                        (void)lexescape(v);
                        switch (v->nexttype) {
                        case 'p':
                                return 1;
                                break;
                        case 'C':
                                switch (v->nextvalue) {
                                case 'd':
                                        lexnest(v, brbackd, ((brbackd) + sizeof(brbackd)/sizeof(chr)));
                                        break;
                                case 's':
                                        lexnest(v, brbacks, ((brbacks) + sizeof(brbacks)/sizeof(chr)));
                                        break;
                                case 'w':
                                        lexnest(v, brbackw, ((brbackw) + sizeof(brbackw)/sizeof(chr)));
                                        break;
                                default:
                                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                                        break;
                                }

                                v->nexttype = v->lasttype;
                                return next(v);
                                break;
                        }

                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                        break;
                case (((unsigned char) ('-'))):
                        if ((v->lasttype == ('[')) || (!(v->now >= v->stop) && *v->now == (((unsigned char) (']')))))
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        else
                                return ((v->nexttype = ('R'), v->nextvalue = (c)), 1);
                        break;
                case (((unsigned char) ('['))):
                        if ((v->now >= v->stop))
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (7))), 0);
                        switch (*v->now++) {
                        case (((unsigned char) ('.'))):
                                (v->lexcon = (7));

                                return ((v->nexttype = ('I')), 1);
                                break;
                        case (((unsigned char) ('='))):
                                (v->lexcon = (8));
                                (v->re->re_info |= (002000));
                                return ((v->nexttype = ('E')), 1);
                                break;
                        case (((unsigned char) (':'))):
                                (v->lexcon = (9));
                                (v->re->re_info |= (002000));
                                return ((v->nexttype = ('C')), 1);
                                break;
                        default:
                                v->now--;
                                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                                break;
                        }
                        ((void)0);
                        break;
                default:
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                        break;
                }
                ((void)0);
                break;
        case 7:
                if (c == (((unsigned char) ('.'))) && (!(v->now >= v->stop) && *v->now == (((unsigned char) (']'))))) {
                        v->now++;
                        (v->lexcon = (6));
                        return ((v->nexttype = ('X'), v->nextvalue = ('.')), 1);
                } else
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case 8:
                if (c == (((unsigned char) ('='))) && (!(v->now >= v->stop) && *v->now == (((unsigned char) (']'))))) {
                        v->now++;
                        (v->lexcon = (6));
                        return ((v->nexttype = ('X'), v->nextvalue = ('=')), 1);
                } else
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case 9:
                if (c == (((unsigned char) (':'))) && (!(v->now >= v->stop) && *v->now == (((unsigned char) (']'))))) {
                        v->now++;
                        (v->lexcon = (6));
                        return ((v->nexttype = ('X'), v->nextvalue = (':')), 1);
                } else
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        default:
                ((void)0);
                break;
        }


        ((void)0);


        switch (c) {
        case (((unsigned char) ('|'))):
                return ((v->nexttype = ('|')), 1);
                break;
        case (((unsigned char) ('*'))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        v->now++;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ('*'), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('*'), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('+'))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        v->now++;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ('+'), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('+'), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('?'))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        v->now++;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ('?'), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('?'), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('{'))):
                if (v->cflags&000040)
                        skip(v);
                if ((v->now >= v->stop) || !Tcl_UniCharIsDigit(*v->now)) {
                        (v->re->re_info |= (000010));
                        (v->re->re_info |= (000400));
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                } else {
                        (v->re->re_info |= (000004));
                        (v->lexcon = (4));
                        return ((v->nexttype = ('{')), 1);
                }
                ((void)0);
                break;
        case (((unsigned char) ('('))):
                if ((v->cflags&000002) && (!(v->now >= v->stop) && *v->now == (((unsigned char) ('?'))))) {
                        (v->re->re_info |= (000200));
                        v->now++;
                        switch (*v->now++) {
                        case (((unsigned char) (':'))):
                                return ((v->nexttype = ('('), v->nextvalue = (0)), 1);
                                break;
                        case (((unsigned char) ('#'))):
                                while (!(v->now >= v->stop) && *v->now != (((unsigned char) (')'))))
                                        v->now++;
                                if (!(v->now >= v->stop))
                                        v->now++;
                                ((void)0);
                                return next(v);
                                break;
                        case (((unsigned char) ('='))):
                                (v->re->re_info |= (000002));
                                return ((v->nexttype = ('L'), v->nextvalue = (1)), 1);
                                break;
                        case (((unsigned char) ('!'))):
                                (v->re->re_info |= (000002));
                                return ((v->nexttype = ('L'), v->nextvalue = (0)), 1);
                                break;
                        default:
                                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (13))), 0);
                                break;
                        }
                        ((void)0);
                }
                if (v->cflags&000020)
                        return ((v->nexttype = ('('), v->nextvalue = (0)), 1);
                else
                        return ((v->nexttype = ('('), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) (')'))):
                if ((v->lasttype == ('('))) {
                        (v->re->re_info |= (000400));
                }
                return ((v->nexttype = (')'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('['))):
                if ((v->stop - v->now >= (6)) && *(v->now+0) == (((unsigned char) ('['))) &&
                                *(v->now+1) == (((unsigned char) (':'))) &&
                                (*(v->now+2) == (((unsigned char) ('<'))) ||
                                                *(v->now+2) == (((unsigned char) ('>')))) &&
                                *(v->now+3) == (((unsigned char) (':'))) &&
                                *(v->now+4) == (((unsigned char) (']'))) &&
                                *(v->now+5) == (((unsigned char) (']')))) {
                        c = *(v->now+2);
                        v->now += 6;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ((c == (((unsigned char) ('<')))) ? '<' : '>')), 1);
                }
                (v->lexcon = (6));
                if ((!(v->now >= v->stop) && *v->now == (((unsigned char) ('^'))))) {
                        v->now++;
                        return ((v->nexttype = ('['), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('['), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('.'))):
                return ((v->nexttype = ('.')), 1);
                break;
        case (((unsigned char) ('^'))):
                return ((v->nexttype = ('^')), 1);
                break;
        case (((unsigned char) ('$'))):
                return ((v->nexttype = ('$')), 1);
                break;
        case (((unsigned char) ('\\'))):
                if ((v->now >= v->stop))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                break;
        default:
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        }


        ((void)0);
        if (!(v->cflags&000002)) {
                if (Tcl_UniCharIsAlnum(*v->now)) {
                        (v->re->re_info |= (000020));
                        (v->re->re_info |= (000400));
                }
                return ((v->nexttype = ('p'), v->nextvalue = (*v->now++)), 1);
        }
        (void)lexescape(v);
        if (((v)->err != 0))
                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
        if (v->nexttype == 'C') {
                switch (v->nextvalue) {
                case 'd': lexnest(v, backd, ((backd) + sizeof(backd)/sizeof(chr))); break;
                case 'D': lexnest(v, backD, ((backD) + sizeof(backD)/sizeof(chr))); break;
                case 's': lexnest(v, backs, ((backs) + sizeof(backs)/sizeof(chr))); break;
                case 'S': lexnest(v, backS, ((backS) + sizeof(backS)/sizeof(chr))); break;
                case 'w': lexnest(v, backw, ((backw) + sizeof(backw)/sizeof(chr))); break;
                case 'W': lexnest(v, backW, ((backW) + sizeof(backW)/sizeof(chr))); break;
                default:
                        ((void)0);
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (15))), 0);
                        break;
                }

                v->nexttype = v->lasttype;
                return next(v);
        }

        return !((v)->err != 0);
}






static int
lexescape(v)
struct vars *v;
{
        chr c;
        static chr alert[] = {
                (((unsigned char) ('a'))), (((unsigned char) ('l'))), (((unsigned char) ('e'))), (((unsigned char) ('r'))), (((unsigned char) ('t')))
        };
        static chr esc[] = {
                (((unsigned char) ('E'))), (((unsigned char) ('S'))), (((unsigned char) ('C')))
        };
        chr *save;

        ((void)0);

        ((void)0);
        c = *v->now++;
        if (!Tcl_UniCharIsAlnum(c))
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);

        (v->re->re_info |= (000200));
        switch (c) {
        case (((unsigned char) ('a'))):
                return ((v->nexttype = ('p'), v->nextvalue = (chrnamed(v, alert, ((alert) + sizeof(alert)/sizeof(chr)), (((unsigned char) ('\007')))))), 1);
                break;
        case (((unsigned char) ('A'))):
                return ((v->nexttype = ('A'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('b'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\b'))))), 1);
                break;
        case (((unsigned char) ('B'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\\'))))), 1);
                break;
        case (((unsigned char) ('c'))):
                (v->re->re_info |= (001000));
                if ((v->now >= v->stop))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = ((chr)(*v->now++ & 037))), 1);
                break;
        case (((unsigned char) ('d'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('d')), 1);
                break;
        case (((unsigned char) ('D'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('D')), 1);
                break;
        case (((unsigned char) ('e'))):
                (v->re->re_info |= (001000));
                return ((v->nexttype = ('p'), v->nextvalue = (chrnamed(v, esc, ((esc) + sizeof(esc)/sizeof(chr)), (((unsigned char) ('\033')))))), 1);
                break;
        case (((unsigned char) ('f'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\f'))))), 1);
                break;
        case (((unsigned char) ('m'))):
                return ((v->nexttype = ('<')), 1);
                break;
        case (((unsigned char) ('M'))):
                return ((v->nexttype = ('>')), 1);
                break;
        case (((unsigned char) ('n'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\n'))))), 1);
                break;
        case (((unsigned char) ('r'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\r'))))), 1);
                break;
        case (((unsigned char) ('s'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('s')), 1);
                break;
        case (((unsigned char) ('S'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('S')), 1);
                break;
        case (((unsigned char) ('t'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\t'))))), 1);
                break;
        case (((unsigned char) ('u'))):
                c = lexdigits(v, 16, 4, 4);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('U'))):
                c = lexdigits(v, 16, 8, 8);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('v'))):
                return ((v->nexttype = ('p'), v->nextvalue = ((((unsigned char) ('\v'))))), 1);
                break;
        case (((unsigned char) ('w'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('w')), 1);
                break;
        case (((unsigned char) ('W'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('C'), v->nextvalue = ('W')), 1);
                break;
        case (((unsigned char) ('x'))):
                (v->re->re_info |= (001000));
                c = lexdigits(v, 16, 1, 255);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('y'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('w'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('Y'))):
                (v->re->re_info |= (002000));
                return ((v->nexttype = ('W'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('Z'))):
                return ((v->nexttype = ('Z'), v->nextvalue = (0)), 1);
                break;
        case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))): case (((unsigned char) ('4'))):
        case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))): case (((unsigned char) ('8'))):
        case (((unsigned char) ('9'))):
                save = v->now;
                v->now--;
                c = lexdigits(v, 10, 1, 255);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);

                if (v->now - save == 0 || (int)c <= v->nsubexp) {
                        (v->re->re_info |= (000001));
                        return ((v->nexttype = ('b'), v->nextvalue = ((chr)c)), 1);
                }

                v->now = save;

        case (((unsigned char) ('0'))):
                (v->re->re_info |= (001000));
                v->now--;
                c = lexdigits(v, 8, 1, 3);
                if (((v)->err != 0))
                        return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        default:
                ((void)0);
                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);
                break;
        }
        ((void)0);
}





static chr
lexdigits(v, base, minlen, maxlen)
struct vars *v;
int base;
int minlen;
int maxlen;
{
        uchr n;
        int len;
        chr c;
        int d;
        const uchr ub = (uchr) base;

        n = 0;
        for (len = 0; len < maxlen && !(v->now >= v->stop); len++) {
                c = *v->now++;
                switch (c) {
                case (((unsigned char) ('0'))): case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))):
                case (((unsigned char) ('4'))): case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))):
                case (((unsigned char) ('8'))): case (((unsigned char) ('9'))):
                        d = ((c)-'0');
                        break;
                case (((unsigned char) ('a'))): case (((unsigned char) ('A'))): d = 10; break;
                case (((unsigned char) ('b'))): case (((unsigned char) ('B'))): d = 11; break;
                case (((unsigned char) ('c'))): case (((unsigned char) ('C'))): d = 12; break;
                case (((unsigned char) ('d'))): case (((unsigned char) ('D'))): d = 13; break;
                case (((unsigned char) ('e'))): case (((unsigned char) ('E'))): d = 14; break;
                case (((unsigned char) ('f'))): case (((unsigned char) ('F'))): d = 15; break;
                default:
                        v->now--;
                        d = -1;
                        break;
                }

                if (d >= base) {
                        v->now--;
                        d = -1;
                }
                if (d < 0)
                        break;
                n = n*ub + (uchr)d;
        }
        if (len < minlen)
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5)));

        return (chr)n;
}







static int
brenext(v, pc)
struct vars *v;
pchr pc;
{
        chr c = (chr)pc;

        switch (c) {
        case (((unsigned char) ('*'))):
                if ((v->lasttype == ('n')) || (v->lasttype == ('(')) || (v->lasttype == ('^')))
                        return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                return ((v->nexttype = ('*')), 1);
                break;
        case (((unsigned char) ('['))):
                if ((v->stop - v->now >= (6)) && *(v->now+0) == (((unsigned char) ('['))) &&
                                *(v->now+1) == (((unsigned char) (':'))) &&
                                (*(v->now+2) == (((unsigned char) ('<'))) ||
                                                *(v->now+2) == (((unsigned char) ('>')))) &&
                                *(v->now+3) == (((unsigned char) (':'))) &&
                                *(v->now+4) == (((unsigned char) (']'))) &&
                                *(v->now+5) == (((unsigned char) (']')))) {
                        c = *(v->now+2);
                        v->now += 6;
                        (v->re->re_info |= (000200));
                        return ((v->nexttype = ((c == (((unsigned char) ('<')))) ? '<' : '>')), 1);
                }
                (v->lexcon = (6));
                if ((!(v->now >= v->stop) && *v->now == (((unsigned char) ('^'))))) {
                        v->now++;
                        return ((v->nexttype = ('['), v->nextvalue = (0)), 1);
                }
                return ((v->nexttype = ('['), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) ('.'))):
                return ((v->nexttype = ('.')), 1);
                break;
        case (((unsigned char) ('^'))):
                if ((v->lasttype == ('n')))
                        return ((v->nexttype = ('^')), 1);
                if ((v->lasttype == ('('))) {
                        (v->re->re_info |= (000400));
                        return ((v->nexttype = ('^')), 1);
                }
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('$'))):
                if (v->cflags&000040)
                        skip(v);
                if ((v->now >= v->stop))
                        return ((v->nexttype = ('$')), 1);
                if (((v->stop - v->now >= (2)) && *v->now == (((unsigned char) ('\\'))) && *(v->now+1) == (((unsigned char) (')'))))) {
                        (v->re->re_info |= (000400));
                        return ((v->nexttype = ('$')), 1);
                }
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('\\'))):
                break;
        default:
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        }

        ((void)0);

        if ((v->now >= v->stop))
                return (((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (5))), 0);

        c = *v->now++;
        switch (c) {
        case (((unsigned char) ('{'))):
                (v->lexcon = (5));
                (v->re->re_info |= (000004));
                return ((v->nexttype = ('{')), 1);
                break;
        case (((unsigned char) ('('))):
                return ((v->nexttype = ('('), v->nextvalue = (1)), 1);
                break;
        case (((unsigned char) (')'))):
                return ((v->nexttype = (')'), v->nextvalue = (c)), 1);
                break;
        case (((unsigned char) ('<'))):
                (v->re->re_info |= (000200));
                return ((v->nexttype = ('<')), 1);
                break;
        case (((unsigned char) ('>'))):
                (v->re->re_info |= (000200));
                return ((v->nexttype = ('>')), 1);
                break;
        case (((unsigned char) ('1'))): case (((unsigned char) ('2'))): case (((unsigned char) ('3'))): case (((unsigned char) ('4'))):
        case (((unsigned char) ('5'))): case (((unsigned char) ('6'))): case (((unsigned char) ('7'))): case (((unsigned char) ('8'))):
        case (((unsigned char) ('9'))):
                (v->re->re_info |= (000001));
                return ((v->nexttype = ('b'), v->nextvalue = ((chr)((c)-'0'))), 1);
                break;
        default:
                if (Tcl_UniCharIsAlnum(c)) {
                        (v->re->re_info |= (000020));
                        (v->re->re_info |= (000400));
                }
                return ((v->nexttype = ('p'), v->nextvalue = (c)), 1);
                break;
        }

        ((void)0);
}





static void
skip(v)
struct vars *v;
{
        chr *start = v->now;

        ((void)0);

        for (;;) {
                while (!(v->now >= v->stop) && Tcl_UniCharIsSpace(*v->now))
                        v->now++;
                if ((v->now >= v->stop) || *v->now != (((unsigned char) ('#'))))
                        break;
                ((void)0);
                while (!(v->now >= v->stop) && *v->now != (((unsigned char) ('\n'))))
                        v->now++;

        }

        if (v->now != start)
                (v->re->re_info |= (000200));
}






static chr
newline()
{
        return (((unsigned char) ('\n')));
}
# 1036 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_lex.c"
static chr
chrnamed(v, startp, endp, lastresort)
struct vars *v;
chr *startp;
chr *endp;
pchr lastresort;
{
        celt c;
        int errsave;
        int e;
        struct cvec *cv;

        errsave = v->err;
        v->err = 0;
        c = element(v, startp, endp);
        e = v->err;
        v->err = errsave;

        if (e != 0)
                return (chr)lastresort;

        cv = range(v, c, c, 0);
        if (cv->nchrs == 0)
                return (chr)lastresort;
        return cv->chrs[0];
}
# 2172 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_color.c" 1
# 48 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_color.c"
static void
initcm(v, cm)
struct vars *v;
struct colormap *cm;
{
        int i;
        int j;
        union tree *t;
        union tree *nextt;
        struct colordesc *cd;

        cm->magic = 0x876;
        cm->v = v;

        cm->ncds = ((size_t)10);
        cm->cd = cm->cdspace;
        cm->max = 0;
        cm->free = 0;

        cd = cm->cd;
        cd->sub = (-1);
        cd->arcs = ((void *)0);
        cd->flags = 0;
        cd->nchrs = 0xffff - 0x0000 + 1;


        for (t = &cm->tree[0], j = ((16 +8 -1)/8)-1; j > 0; t = nextt, j--) {
                nextt = t + 1;
                for (i = (1<<8)-1; i >= 0; i--)
                        t->ptrs.pptr[i] = nextt;
        }

        t = &cm->tree[((16 +8 -1)/8)-1];
        for (i = (1<<8)-1; i >= 0; i--)
                t->colors.ccolor[i] = 0;
        cd->block = t;
}





static void
freecm(cm)
struct colormap *cm;
{
        size_t i;
        union tree *cb;

        cm->magic = 0;
        if (((16 +8 -1)/8) > 1)
                cmtreefree(cm, cm->tree, 0);
        for (i = 1; i <= cm->max; i++)
                if (!((&cm->cd[i])->flags&01)) {
                        cb = cm->cd[i].block;
                        if (cb != ((void *)0))
                                Tcl_Free(((void *)(cb)));
                }
        if (cm->cd != cm->cdspace)
                Tcl_Free(((void *)(cm->cd)));
}





static void
cmtreefree(cm, tree, level)
struct colormap *cm;
union tree *tree;
int level;
{
        int i;
        union tree *t;
        union tree *fillt = &cm->tree[level+1];
        union tree *cb;

        ((void)0);
        for (i = (1<<8)-1; i >= 0; i--) {
                t = tree->ptrs.pptr[i];
                ((void)0);
                if (t != fillt) {
                        if (level < ((16 +8 -1)/8)-2) {
                                cmtreefree(cm, t, level+1);
                                Tcl_Free(((void *)(t)));
                        } else {
                                cb = cm->cd[t->colors.ccolor[0]].block;
                                if (t != cb)
                                        Tcl_Free(((void *)(t)));
                        }
                }
        }
}





static color
setcolor(cm, c, co)
struct colormap *cm;
pchr c;
pcolor co;
{
        uchr uc = c;
        int shift;
        int level;
        int b;
        int bottom;
        union tree *t;
        union tree *newt;
        union tree *fillt;
        union tree *lastt;
        union tree *cb;
        color prev;

        ((void)0);
        if (((cm->v)->err != 0) || co == (-1))
                return (-1);

        t = cm->tree;
        for (level = 0, shift = 8 * (((16 +8 -1)/8) - 1); shift > 0;
                                                level++, shift -= 8) {
                b = (uc >> shift) & ((1<<8)-1);
                lastt = t;
                t = lastt->ptrs.pptr[b];
                ((void)0);
                fillt = &cm->tree[level+1];
                bottom = (shift <= 8) ? 1 : 0;
                cb = (bottom) ? cm->cd[t->colors.ccolor[0]].block : fillt;
                if (t == fillt || t == cb) {
                        newt = (union tree *)Tcl_Alloc((bottom) ? sizeof(struct colors) : sizeof(struct ptrs));

                        if (newt == ((void *)0)) {
                                ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                                return (-1);
                        }
                        if (bottom)
                                memcpy(((void *)(newt->colors.ccolor)), ((void *)(t->colors.ccolor)),
                                                        (1<<8)*sizeof(color));
                        else
                                memcpy(((void *)(newt->ptrs.pptr)), ((void *)(t->ptrs.pptr)),
                                                (1<<8)*sizeof(union tree *));
                        t = newt;
                        lastt->ptrs.pptr[b] = t;
                }
        }

        b = uc & ((1<<8)-1);
        prev = t->colors.ccolor[b];
        t->colors.ccolor[b] = (color)co;
        return prev;
}





static color
maxcolor(cm)
struct colormap *cm;
{
        if (((cm->v)->err != 0))
                return (-1);

        return (color)cm->max;
}






static color
newcolor(cm)
struct colormap *cm;
{
        struct colordesc *cd;
        struct colordesc *new;
        size_t n;

        if (((cm->v)->err != 0))
                return (-1);

        if (cm->free != 0) {
                ((void)0);
                ((void)0);
                cd = &cm->cd[cm->free];
                ((void)0);
                ((void)0);
                cm->free = cd->sub;
        } else if (cm->max < cm->ncds - 1) {
                cm->max++;
                cd = &cm->cd[cm->max];
        } else {

                n = cm->ncds * 2;
                if (cm->cd == cm->cdspace) {
                        new = (struct colordesc *)Tcl_Alloc(n * sizeof(struct colordesc));

                        if (new != ((void *)0))
                                memcpy(((void *)(new)), ((void *)(cm->cdspace)), cm->ncds *
                                                sizeof(struct colordesc));
                } else
                        new = (struct colordesc *)Tcl_Realloc(((void *)(cm->cd)),n * sizeof(struct colordesc));

                if (new == ((void *)0)) {
                        ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                        return (-1);
                }
                cm->cd = new;
                cm->ncds = n;
                ((void)0);
                cm->max++;
                cd = &cm->cd[cm->max];
        }

        cd->nchrs = 0;
        cd->sub = (-1);
        cd->arcs = ((void *)0);
        cd->flags = 0;
        cd->block = ((void *)0);

        return (color)(cd - cm->cd);
}





static void
freecolor(cm, co)
struct colormap *cm;
pcolor co;
{
        struct colordesc *cd = &cm->cd[co];
        color pco, nco;

        ((void)0);
        if (co == 0)
                return;

        ((void)0);
        ((void)0);
        ((void)0);
        cd->flags = 01;
        if (cd->block != ((void *)0)) {
                Tcl_Free(((void *)(cd->block)));
                cd->block = ((void *)0);
        }

        if ((size_t)co == cm->max) {
                while (cm->max > 0 && ((&cm->cd[cm->max])->flags&01))
                        cm->max--;
                ((void)0);
                while ((size_t)cm->free > cm->max)
                        cm->free = cm->cd[cm->free].sub;
                if (cm->free > 0) {
                        ((void)0);
                        pco = cm->free;
                        nco = cm->cd[pco].sub;
                        while (nco > 0)
                                if ((size_t)nco > cm->max) {

                                        nco = cm->cd[nco].sub;
                                        cm->cd[pco].sub = nco;
                                } else {
                                        ((void)0);
                                        pco = nco;
                                        nco = cm->cd[pco].sub;
                                }
                }
        } else {
                cd->sub = cm->free;
                cm->free = (color)(cd - cm->cd);
        }
}





static color
pseudocolor(cm)
struct colormap *cm;
{
        color co;

        co = newcolor(cm);
        if (((cm->v)->err != 0))
                return (-1);
        cm->cd[co].nchrs = 1;
        cm->cd[co].flags = 02;
        return co;
}





static color
subcolor(cm, c)
struct colormap *cm;
pchr c;
{
        color co;
        color sco;

        co = ((cm)->tree->ptrs.pptr[(((c)>>8) & ((1<<8)-1))]->colors.ccolor[((c) & ((1<<8)-1))]);
        sco = newsub(cm, co);
        if (((cm->v)->err != 0))
                return (-1);
        ((void)0);

        if (co == sco)
                return co;
        cm->cd[co].nchrs--;
        cm->cd[sco].nchrs++;
        setcolor(cm, c, sco);
        return sco;
}





static color
newsub(cm, co)
struct colormap *cm;
pcolor co;
{
        color sco;

        sco = cm->cd[co].sub;
        if (sco == (-1)) {
                if (cm->cd[co].nchrs == 1)
                        return co;
                sco = newcolor(cm);
                if (sco == (-1)) {
                        ((void)0);
                        return (-1);
                }
                cm->cd[co].sub = sco;
                cm->cd[sco].sub = sco;
        }
        ((void)0);

        return sco;
}






static void
subrange(v, from, to, lp, rp)
struct vars *v;
pchr from;
pchr to;
struct state *lp;
struct state *rp;
{
        uchr uf;
        int i;

        ((void)0);


        uf = (uchr)from;
        i = (int)( ((uf + (1<<8)-1) & (uchr)~((1<<8)-1)) - uf );
        for (; from <= to && i > 0; i--, from++)
                newarc(v->nfa, 'p', subcolor(v->cm, from), lp, rp);
        if (from > to)
                return;


        for (; to - from >= (1<<8); from += (1<<8))
                subblock(v, from, lp, rp);


        for (; from <= to; from++)
                newarc(v->nfa, 'p', subcolor(v->cm, from), lp, rp);
}





static void
subblock(v, start, lp, rp)
struct vars *v;
pchr start;
struct state *lp;
struct state *rp;
{
        uchr uc = start;
        struct colormap *cm = v->cm;
        int shift;
        int level;
        int i;
        int b;
        union tree *t;
        union tree *cb;
        union tree *fillt;
        union tree *lastt;
        int previ;
        int ndone;
        color co;
        color sco;

        ((void)0);


        t = cm->tree;
        fillt = ((void *)0);
        for (level = 0, shift = 8 * (((16 +8 -1)/8) - 1); shift > 0;
                                                level++, shift -= 8) {
                b = (uc >> shift) & ((1<<8)-1);
                lastt = t;
                t = lastt->ptrs.pptr[b];
                ((void)0);
                fillt = &cm->tree[level+1];
                if (t == fillt && shift > 8) {
                        t = (union tree *)Tcl_Alloc(sizeof(struct ptrs));
                        if (t == ((void *)0)) {
                                ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                                return;
                        }
                        memcpy(((void *)(t->ptrs.pptr)), ((void *)(fillt->ptrs.pptr)),
                                                (1<<8)*sizeof(union tree *));
                        lastt->ptrs.pptr[b] = t;
                }
        }


        co = t->colors.ccolor[0];
        cb = cm->cd[co].block;
        if (t == fillt || t == cb) {

                sco = newsub(cm, co);
                t = cm->cd[sco].block;
                if (t == ((void *)0)) {
                        t = (union tree *)Tcl_Alloc(sizeof(struct colors));
                        if (t == ((void *)0)) {
                                ((cm->v)->nexttype = 'e', ((cm->v)->err) ? (cm->v)->err : ((cm->v)->err = ((12))));
                                return;
                        }
                        for (i = 0; i < (1<<8); i++)
                                t->colors.ccolor[i] = sco;
                        cm->cd[sco].block = t;
                }

                lastt->ptrs.pptr[b] = t;
                newarc(v->nfa, 'p', sco, lp, rp);
                cm->cd[co].nchrs -= (1<<8);
                cm->cd[sco].nchrs += (1<<8);
                return;
        }


        i = 0;
        while (i < (1<<8)) {
                co = t->colors.ccolor[i];
                sco = newsub(cm, co);
                newarc(v->nfa, 'p', sco, lp, rp);
                previ = i;
                do {
                        t->colors.ccolor[i++] = sco;
                } while (i < (1<<8) && t->colors.ccolor[i] == co);
                ndone = i - previ;
                cm->cd[co].nchrs -= ndone;
                cm->cd[sco].nchrs += ndone;
        }
}





static void
okcolors(nfa, cm)
struct nfa *nfa;
struct colormap *cm;
{
        struct colordesc *cd;
        struct colordesc *end = (&(cm)->cd[(cm)->max + 1]);
        struct colordesc *scd;
        struct arc *a;
        color co;
        color sco;

        for (cd = cm->cd, co = 0; cd < end; cd++, co++) {
                sco = cd->sub;
                if (((cd)->flags&01) || sco == (-1)) {

                } else if (sco == co) {

                } else if (cd->nchrs == 0) {

                        cd->sub = (-1);
                        scd = &cm->cd[sco];
                        ((void)0);
                        ((void)0);
                        scd->sub = (-1);
                        while ((a = cd->arcs) != ((void *)0)) {
                                ((void)0);

                                cd->arcs = a->colorchain;
                                a->co = sco;

                                a->colorchain = scd->arcs;
                                scd->arcs = a;
                        }
                        freecolor(cm, co);
                } else {

                        cd->sub = (-1);
                        scd = &cm->cd[sco];
                        ((void)0);
                        ((void)0);
                        scd->sub = (-1);
                        for (a = cd->arcs; a != ((void *)0); a = a->colorchain) {
                                ((void)0);
                                newarc(nfa, a->type, sco, a->from, a->to);
                        }
                }
        }
}





static void
colorchain(cm, a)
struct colormap *cm;
struct arc *a;
{
        struct colordesc *cd = &cm->cd[a->co];

        a->colorchain = cd->arcs;
        cd->arcs = a;
}





static void
uncolorchain(cm, a)
struct colormap *cm;
struct arc *a;
{
        struct colordesc *cd = &cm->cd[a->co];
        struct arc *aa;

        aa = cd->arcs;
        if (aa == a)
                cd->arcs = a->colorchain;
        else {
                for (; aa != ((void *)0) && aa->colorchain != a; aa = aa->colorchain)
                        continue;
                ((void)0);
                aa->colorchain = a->colorchain;
        }
        a->colorchain = ((void *)0);
}





static int
singleton(cm, c)
struct colormap *cm;
pchr c;
{
        color co;

        co = ((cm)->tree->ptrs.pptr[(((c)>>8) & ((1<<8)-1))]->colors.ccolor[((c) & ((1<<8)-1))]);
        if (cm->cd[co].nchrs == 1 && cm->cd[co].sub == (-1))
                return 1;
        return 0;
}






static void
rainbow(nfa, cm, type, but, from, to)
struct nfa *nfa;
struct colormap *cm;
int type;
pcolor but;
struct state *from;
struct state *to;
{
        struct colordesc *cd;
        struct colordesc *end = (&(cm)->cd[(cm)->max + 1]);
        color co;

        for (cd = cm->cd, co = 0; cd < end && !((cm->v)->err != 0); cd++, co++)
                if (!((cd)->flags&01) && cd->sub != co && co != but &&
                                                        !(cd->flags&02))
                        newarc(nfa, type, co, from, to);
}







static void
colorcomplement(nfa, cm, type, of, from, to)
struct nfa *nfa;
struct colormap *cm;
int type;
struct state *of;
struct state *from;
struct state *to;
{
        struct colordesc *cd;
        struct colordesc *end = (&(cm)->cd[(cm)->max + 1]);
        color co;

        ((void)0);
        for (cd = cm->cd, co = 0; cd < end && !((cm->v)->err != 0); cd++, co++)
                if (!((cd)->flags&01) && !(cd->flags&02))
                        if (findarc(of, 'p', co) == ((void *)0))
                                newarc(nfa, type, co, from, to);
}
# 2173 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c" 1
# 46 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static struct nfa *
newnfa(v, cm, parent)
struct vars *v;
struct colormap *cm;
struct nfa *parent;
{
        struct nfa *nfa;

        nfa = (struct nfa *)Tcl_Alloc(sizeof(struct nfa));
        if (nfa == ((void *)0))
                return ((void *)0);

        nfa->states = ((void *)0);
        nfa->slast = ((void *)0);
        nfa->free = ((void *)0);
        nfa->nstates = 0;
        nfa->cm = cm;
        nfa->v = v;
        nfa->bos[0] = nfa->bos[1] = (-1);
        nfa->eos[0] = nfa->eos[1] = (-1);
        nfa->post = newfstate(nfa, '@');
        nfa->pre = newfstate(nfa, '>');
        nfa->parent = parent;

        nfa->init = newstate(nfa);
        nfa->final = newstate(nfa);
        if (((v)->err != 0)) {
                freenfa(nfa);
                return ((void *)0);
        }
        rainbow(nfa, nfa->cm, 'p', (-1), nfa->pre, nfa->init);
        newarc(nfa, '^', 1, nfa->pre, nfa->init);
        newarc(nfa, '^', 0, nfa->pre, nfa->init);
        rainbow(nfa, nfa->cm, 'p', (-1), nfa->final, nfa->post);
        newarc(nfa, '$', 1, nfa->final, nfa->post);
        newarc(nfa, '$', 0, nfa->final, nfa->post);

        if (((v)->err != 0)) {
                freenfa(nfa);
                return ((void *)0);
        }
        return nfa;
}





static void
freenfa(nfa)
struct nfa *nfa;
{
        struct state *s;

        while ((s = nfa->states) != ((void *)0)) {
                s->nins = s->nouts = 0;
                freestate(nfa, s);
        }
        while ((s = nfa->free) != ((void *)0)) {
                nfa->free = s->next;
                destroystate(nfa, s);
        }

        nfa->slast = ((void *)0);
        nfa->nstates = -1;
        nfa->pre = ((void *)0);
        nfa->post = ((void *)0);
        Tcl_Free(((void *)(nfa)));
}





static struct state *
newstate(nfa)
struct nfa *nfa;
{
        struct state *s;

        if (nfa->free != ((void *)0)) {
                s = nfa->free;
                nfa->free = s->next;
        } else {
                s = (struct state *)Tcl_Alloc(sizeof(struct state));
                if (s == ((void *)0)) {
                        ((nfa->v)->nexttype = 'e', ((nfa->v)->err) ? (nfa->v)->err : ((nfa->v)->err = ((12))));
                        return ((void *)0);
                }
                s->oas.next = ((void *)0);
                s->free = ((void *)0);
                s->noas = 0;
        }

        ((void)0);
        s->no = nfa->nstates++;
        s->flag = 0;
        if (nfa->states == ((void *)0))
                nfa->states = s;
        s->nins = 0;
        s->ins = ((void *)0);
        s->nouts = 0;
        s->outs = ((void *)0);
        s->tmp = ((void *)0);
        s->next = ((void *)0);
        if (nfa->slast != ((void *)0)) {
                ((void)0);
                nfa->slast->next = s;
        }
        s->prev = nfa->slast;
        nfa->slast = s;
        return s;
}





static struct state *
newfstate(nfa, flag)
struct nfa *nfa;
int flag;
{
        struct state *s;

        s = newstate(nfa);
        if (s != ((void *)0))
                s->flag = (char)flag;
        return s;
}





static void
dropstate(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arc *a;

        while ((a = s->ins) != ((void *)0))
                freearc(nfa, a);
        while ((a = s->outs) != ((void *)0))
                freearc(nfa, a);
        freestate(nfa, s);
}





static void
freestate(nfa, s)
struct nfa *nfa;
struct state *s;
{
        ((void)0);
        ((void)0);

        s->no = (-1);
        s->flag = 0;
        if (s->next != ((void *)0))
                s->next->prev = s->prev;
        else {
                ((void)0);
                nfa->slast = s->prev;
        }
        if (s->prev != ((void *)0))
                s->prev->next = s->next;
        else {
                ((void)0);
                nfa->states = s->next;
        }
        s->prev = ((void *)0);
        s->next = nfa->free;
        nfa->free = s;
}





static void
destroystate(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arcbatch *ab;
        struct arcbatch *abnext;

        ((void)0);
        for (ab = s->oas.next; ab != ((void *)0); ab = abnext) {
                abnext = ab->next;
                Tcl_Free(((void *)(ab)));
        }
        s->ins = ((void *)0);
        s->outs = ((void *)0);
        s->next = ((void *)0);
        Tcl_Free(((void *)(s)));
}






static void
newarc(nfa, t, co, from, to)
struct nfa *nfa;
int t;
pcolor co;
struct state *from;
struct state *to;
{
        struct arc *a;

        ((void)0);


        for (a = from->outs; a != ((void *)0); a = a->outchain)
                if (a->to == to && a->co == co && a->type == t)
                        return;

        a = allocarc(nfa, from);
        if (((nfa->v)->err != 0))
                return;
        ((void)0);

        a->type = t;
        a->co = (color)co;
        a->to = to;
        a->from = from;







        a->inchain = to->ins;
        to->ins = a;
        a->outchain = from->outs;
        from->outs = a;

        from->nouts++;
        to->nins++;

        if (((a)->type == 'p' || (a)->type == 'a' || (a)->type == 'r') && nfa->parent == ((void *)0))
                colorchain(nfa->cm, a);

        return;
}





static struct arc *
allocarc(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arc *a;
        struct arcbatch *new;
        int i;


        if (s->free == ((void *)0) && s->noas < 10) {
                a = &s->oas.a[s->noas];
                s->noas++;
                return a;
        }


        if (s->free == ((void *)0)) {
                new = (struct arcbatch *)Tcl_Alloc(sizeof(struct arcbatch));
                if (new == ((void *)0)) {
                        ((nfa->v)->nexttype = 'e', ((nfa->v)->err) ? (nfa->v)->err : ((nfa->v)->err = ((12))));
                        return ((void *)0);
                }
                new->next = s->oas.next;
                s->oas.next = new;

                for (i = 0; i < 10; i++) {
                        new->a[i].type = 0;
                        new->a[i].outchain = &new->a[i+1];
                }
                new->a[10 -1].outchain = ((void *)0);
                s->free = &new->a[0];
        }
        ((void)0);

        a = s->free;
        s->free = a->outchain;
        return a;
}





static void
freearc(nfa, victim)
struct nfa *nfa;
struct arc *victim;
{
        struct state *from = victim->from;
        struct state *to = victim->to;
        struct arc *a;

        ((void)0);


        if (((victim)->type == 'p' || (victim)->type == 'a' || (victim)->type == 'r') && nfa->parent == ((void *)0))
                uncolorchain(nfa->cm, victim);


        ((void)0);
        ((void)0);
        a = from->outs;
        if (a == victim)
                from->outs = victim->outchain;
        else {
                for (; a != ((void *)0) && a->outchain != victim; a = a->outchain)
                        continue;
                ((void)0);
                a->outchain = victim->outchain;
        }
        from->nouts--;


        ((void)0);
        ((void)0);
        a = to->ins;
        if (a == victim)
                to->ins = victim->inchain;
        else {
                for (; a != ((void *)0) && a->inchain != victim; a = a->inchain)
                        continue;
                ((void)0);
                a->inchain = victim->inchain;
        }
        to->nins--;


        victim->type = 0;
        victim->from = ((void *)0);
        victim->to = ((void *)0);
        victim->inchain = ((void *)0);
        victim->outchain = ((void *)0);
        victim->outchain = from->free;
        from->free = victim;
}






static struct arc *
findarc(s, type, co)
struct state *s;
int type;
pcolor co;
{
        struct arc *a;

        for (a = s->outs; a != ((void *)0); a = a->outchain)
                if (a->type == type && a->co == co)
                        return a;
        return ((void *)0);
}






static void
cparc(nfa, oa, from, to)
struct nfa *nfa;
struct arc *oa;
struct state *from;
struct state *to;
{
        newarc(nfa, oa->type, oa->co, from, to);
}
# 444 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static void
moveins(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        while ((a = old->ins) != ((void *)0)) {
                cparc(nfa, a, a->from, new);
                freearc(nfa, a);
        }
        ((void)0);
        ((void)0);
}





static void
copyins(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        for (a = old->ins; a != ((void *)0); a = a->inchain)
                cparc(nfa, a, a->from, new);
}





static void
moveouts(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        while ((a = old->outs) != ((void *)0)) {
                cparc(nfa, a, new, a->to);
                freearc(nfa, a);
        }
}





static void
copyouts(nfa, old, new)
struct nfa *nfa;
struct state *old;
struct state *new;
{
        struct arc *a;

        ((void)0);

        for (a = old->outs; a != ((void *)0); a = a->outchain)
                cparc(nfa, a, new, a->to);
}






static void
cloneouts(nfa, old, from, to, type)
struct nfa *nfa;
struct state *old;
struct state *from;
struct state *to;
int type;
{
        struct arc *a;

        ((void)0);

        for (a = old->outs; a != ((void *)0); a = a->outchain)
                newarc(nfa, type, a->co, from, to);
}







static void
delsub(nfa, lp, rp)
struct nfa *nfa;
struct state *lp;
struct state *rp;
{
        ((void)0);

        rp->tmp = rp;

        deltraverse(nfa, lp, lp);
        ((void)0);
        ((void)0);

        rp->tmp = ((void *)0);
        lp->tmp = ((void *)0);
}






static void
deltraverse(nfa, leftend, s)
struct nfa *nfa;
struct state *leftend;
struct state *s;
{
        struct arc *a;
        struct state *to;

        if (s->nouts == 0)
                return;
        if (s->tmp != ((void *)0))
                return;

        s->tmp = s;

        while ((a = s->outs) != ((void *)0)) {
                to = a->to;
                deltraverse(nfa, leftend, to);
                ((void)0);
                freearc(nfa, a);
                if (to->nins == 0 && to->tmp == ((void *)0)) {
                        ((void)0);
                        freestate(nfa, to);
                }
        }

        ((void)0);
        ((void)0);
        ((void)0);

        s->tmp = ((void *)0);
}
# 610 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static void
dupnfa(nfa, start, stop, from, to)
struct nfa *nfa;
struct state *start;
struct state *stop;
struct state *from;
struct state *to;
{
        if (start == stop) {
                newarc(nfa, 'n', 0, from, to);
                return;
        }

        stop->tmp = to;
        duptraverse(nfa, start, from);


        stop->tmp = ((void *)0);
        cleartraverse(nfa, start);
}





static void
duptraverse(nfa, s, stmp)
struct nfa *nfa;
struct state *s;
struct state *stmp;
{
        struct arc *a;

        if (s->tmp != ((void *)0))
                return;

        s->tmp = (stmp == ((void *)0)) ? newstate(nfa) : stmp;
        if (s->tmp == ((void *)0)) {
                ((void)0);
                return;
        }

        for (a = s->outs; a != ((void *)0) && !((nfa->v)->err != 0); a = a->outchain) {
                duptraverse(nfa, a->to, (struct state *)((void *)0));
                ((void)0);
                cparc(nfa, a, s->tmp, a->to->tmp);
        }
}





static void
cleartraverse(nfa, s)
struct nfa *nfa;
struct state *s;
{
        struct arc *a;

        if (s->tmp == ((void *)0))
                return;
        s->tmp = ((void *)0);

        for (a = s->outs; a != ((void *)0); a = a->outchain)
                cleartraverse(nfa, a->to);
}





static void
specialcolors(nfa)
struct nfa *nfa;
{

        if (nfa->parent == ((void *)0)) {
                nfa->bos[0] = pseudocolor(nfa->cm);
                nfa->bos[1] = pseudocolor(nfa->cm);
                nfa->eos[0] = pseudocolor(nfa->cm);
                nfa->eos[1] = pseudocolor(nfa->cm);
        } else {
                ((void)0);
                nfa->bos[0] = nfa->parent->bos[0];
                ((void)0);
                nfa->bos[1] = nfa->parent->bos[1];
                ((void)0);
                nfa->eos[0] = nfa->parent->eos[0];
                ((void)0);
                nfa->eos[1] = nfa->parent->eos[1];
        }
}





static long
optimize(nfa, f)
struct nfa *nfa;
FILE *f;
{
        int verbose = (f != ((void *)0)) ? 1 : 0;

        if (verbose)
                fprintf(f, "\ninitial cleanup:\n");
        cleanup(nfa);
        if (verbose)
                dumpnfa(nfa, f);
        if (verbose)
                fprintf(f, "\nempties:\n");
        fixempties(nfa, f);
        if (verbose)
                fprintf(f, "\nconstraints:\n");
        pullback(nfa, f);
        pushfwd(nfa, f);
        if (verbose)
                fprintf(f, "\nfinal cleanup:\n");
        cleanup(nfa);
        return analyze(nfa);
}





static void
pullback(nfa, f)
struct nfa *nfa;
FILE *f;
{
        struct state *s;
        struct state *nexts;
        struct arc *a;
        struct arc *nexta;
        int progress;


        do {
                progress = 0;
                for (s = nfa->states; s != ((void *)0) && !((nfa->v)->err != 0); s = nexts) {
                        nexts = s->next;
                        for (a = s->outs; a != ((void *)0) && !((nfa->v)->err != 0); a = nexta) {
                                nexta = a->outchain;
                                if (a->type == '^' || a->type == 'r')
                                        if (pull(nfa, a))
                                                progress = 1;
                                ((void)0);
                        }
                }
                if (progress && f != ((void *)0))
                        dumpnfa(nfa, f);
        } while (progress && !((nfa->v)->err != 0));
        if (((nfa->v)->err != 0))
                return;

        for (a = nfa->pre->outs; a != ((void *)0); a = nexta) {
                nexta = a->outchain;
                if (a->type == '^') {
                        ((void)0);
                        newarc(nfa, 'p', nfa->bos[a->co], a->from, a->to);
                        freearc(nfa, a);
                }
        }
}
# 784 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static int
pull(nfa, con)
struct nfa *nfa;
struct arc *con;
{
        struct state *from = con->from;
        struct state *to = con->to;
        struct arc *a;
        struct arc *nexta;
        struct state *s;

        if (from == to) {
                freearc(nfa, con);
                return 1;
        }
        if (from->flag)
                return 0;
        if (from->nins == 0) {
                freearc(nfa, con);
                return 1;
        }


        if (from->nouts > 1) {
                s = newstate(nfa);
                if (((nfa->v)->err != 0))
                        return 0;
                ((void)0);
                copyins(nfa, from, s);
                cparc(nfa, con, s, to);
                freearc(nfa, con);
                from = s;
                con = from->outs;
        }
        ((void)0);


        for (a = from->ins; a != ((void *)0); a = nexta) {
                nexta = a->inchain;
                switch (combine(con, a)) {
                case 1:
                        freearc(nfa, a);
                        break;
                case 2:
                        break;
                case 3:
                        s = newstate(nfa);
                        if (((nfa->v)->err != 0))
                                return 0;
                        cparc(nfa, a, s, to);
                        cparc(nfa, con, a->from, s);
                        if (((nfa->v)->err != 0))
                                return 0;
                        freearc(nfa, a);
                        break;
                default:
                        ((void)0);
                        break;
                }
        }


        moveins(nfa, from, to);
        dropstate(nfa, from);
        return 1;
}





static void
pushfwd(nfa, f)
struct nfa *nfa;
FILE *f;
{
        struct state *s;
        struct state *nexts;
        struct arc *a;
        struct arc *nexta;
        int progress;


        do {
                progress = 0;
                for (s = nfa->states; s != ((void *)0) && !((nfa->v)->err != 0); s = nexts) {
                        nexts = s->next;
                        for (a = s->ins; a != ((void *)0) && !((nfa->v)->err != 0); a = nexta) {
                                nexta = a->inchain;
                                if (a->type == '$' || a->type == 'a')
                                        if (push(nfa, a))
                                                progress = 1;
                                ((void)0);
                        }
                }
                if (progress && f != ((void *)0))
                        dumpnfa(nfa, f);
        } while (progress && !((nfa->v)->err != 0));
        if (((nfa->v)->err != 0))
                return;

        for (a = nfa->post->ins; a != ((void *)0); a = nexta) {
                nexta = a->inchain;
                if (a->type == '$') {
                        ((void)0);
                        newarc(nfa, 'p', nfa->eos[a->co], a->from, a->to);
                        freearc(nfa, a);
                }
        }
}
# 902 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static int
push(nfa, con)
struct nfa *nfa;
struct arc *con;
{
        struct state *from = con->from;
        struct state *to = con->to;
        struct arc *a;
        struct arc *nexta;
        struct state *s;

        if (to == from) {
                freearc(nfa, con);
                return 1;
        }
        if (to->flag)
                return 0;
        if (to->nouts == 0) {
                freearc(nfa, con);
                return 1;
        }


        if (to->nins > 1) {
                s = newstate(nfa);
                if (((nfa->v)->err != 0))
                        return 0;
                copyouts(nfa, to, s);
                cparc(nfa, con, from, s);
                freearc(nfa, con);
                to = s;
                con = to->ins;
        }
        ((void)0);


        for (a = to->outs; a != ((void *)0); a = nexta) {
                nexta = a->outchain;
                switch (combine(con, a)) {
                case 1:
                        freearc(nfa, a);
                        break;
                case 2:
                        break;
                case 3:
                        s = newstate(nfa);
                        if (((nfa->v)->err != 0))
                                return 0;
                        cparc(nfa, con, s, a->to);
                        cparc(nfa, a, from, s);
                        if (((nfa->v)->err != 0))
                                return 0;
                        freearc(nfa, a);
                        break;
                default:
                        ((void)0);
                        break;
                }
        }


        moveouts(nfa, to, from);
        dropstate(nfa, to);
        return 1;
}
# 975 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static int
combine(con, a)
struct arc *con;
struct arc *a;
{


        switch ((((con->type)<<8) | (a->type))) {
        case ((('^')<<8) | ('p')):
        case ((('$')<<8) | ('p')):
                return 1;
                break;
        case ((('a')<<8) | ('p')):
        case ((('r')<<8) | ('p')):
                if (con->co == a->co)
                        return 2;
                return 1;
                break;
        case ((('^')<<8) | ('^')):
        case ((('$')<<8) | ('$')):
        case ((('a')<<8) | ('a')):
        case ((('r')<<8) | ('r')):
                if (con->co == a->co)
                        return 2;
                return 1;
                break;
        case ((('^')<<8) | ('r')):
        case ((('r')<<8) | ('^')):
        case ((('$')<<8) | ('a')):
        case ((('a')<<8) | ('$')):
                return 1;
                break;
        case ((('^')<<8) | ('$')):
        case ((('^')<<8) | ('a')):
        case ((('r')<<8) | ('$')):
        case ((('r')<<8) | ('a')):
        case ((('$')<<8) | ('^')):
        case ((('$')<<8) | ('r')):
        case ((('a')<<8) | ('^')):
        case ((('a')<<8) | ('r')):
        case ((('^')<<8) | ('L')):
        case ((('r')<<8) | ('L')):
        case ((('$')<<8) | ('L')):
        case ((('a')<<8) | ('L')):
                return 3;
                break;
        }
        ((void)0);
        return 1;
}





static void
fixempties(nfa, f)
struct nfa *nfa;
FILE *f;
{
        struct state *s;
        struct state *nexts;
        struct arc *a;
        struct arc *nexta;
        int progress;


        do {
                progress = 0;
                for (s = nfa->states; s != ((void *)0) && !((nfa->v)->err != 0); s = nexts) {
                        nexts = s->next;
                        for (a = s->outs; a != ((void *)0) && !((nfa->v)->err != 0); a = nexta) {
                                nexta = a->outchain;
                                if (a->type == 'n' && unempty(nfa, a))
                                        progress = 1;
                                ((void)0);
                        }
                }
                if (progress && f != ((void *)0))
                        dumpnfa(nfa, f);
        } while (progress && !((nfa->v)->err != 0));
}







static int
unempty(nfa, a)
struct nfa *nfa;
struct arc *a;
{
        struct state *from = a->from;
        struct state *to = a->to;
        int usefrom;

        ((void)0);
        ((void)0);

        if (from == to) {
                freearc(nfa, a);
                return 1;
        }


        usefrom = 1;
        if (from->nouts > to->nins)
                usefrom = 0;
        else if (from->nouts == to->nins) {

                if (from->nins > to->nouts)
                        usefrom = 0;
        }

        freearc(nfa, a);
        if (usefrom) {
                if (from->nouts == 0) {

                        moveins(nfa, from, to);
                        freestate(nfa, from);
                } else
                        copyins(nfa, from, to);
        } else {
                if (to->nins == 0) {

                        moveouts(nfa, to, from);
                        freestate(nfa, to);
                } else
                        copyouts(nfa, to, from);
        }

        return 1;
}





static void
cleanup(nfa)
struct nfa *nfa;
{
        struct state *s;
        struct state *nexts;
        int n;



        markreachable(nfa, nfa->pre, (struct state *)((void *)0), nfa->pre);
        markcanreach(nfa, nfa->post, nfa->pre, nfa->post);
        for (s = nfa->states; s != ((void *)0); s = nexts) {
                nexts = s->next;
                if (s->tmp != nfa->post && !s->flag)
                        dropstate(nfa, s);
        }
        ((void)0);
        cleartraverse(nfa, nfa->pre);
        ((void)0);



        n = 0;
        for (s = nfa->states; s != ((void *)0); s = s->next)
                s->no = n++;
        nfa->nstates = n;
}






static void
markreachable(nfa, s, okay, mark)
struct nfa *nfa;
struct state *s;
struct state *okay;
struct state *mark;
{
        struct arc *a;

        if (s->tmp != okay)
                return;
        s->tmp = mark;

        for (a = s->outs; a != ((void *)0); a = a->outchain)
                markreachable(nfa, a->to, okay, mark);
}






static void
markcanreach(nfa, s, okay, mark)
struct nfa *nfa;
struct state *s;
struct state *okay;
struct state *mark;
{
        struct arc *a;

        if (s->tmp != okay)
                return;
        s->tmp = mark;

        for (a = s->ins; a != ((void *)0); a = a->inchain)
                markcanreach(nfa, a->from, okay, mark);
}





static long
analyze(nfa)
struct nfa *nfa;
{
        struct arc *a;
        struct arc *aa;

        if (nfa->pre->outs == ((void *)0))
                return 010000;
        for (a = nfa->pre->outs; a != ((void *)0); a = a->outchain)
                for (aa = a->to->outs; aa != ((void *)0); aa = aa->outchain)
                        if (aa->to == nfa->post)
                                return 004000;
        return 0;
}





static void
compact(nfa, cnfa)
struct nfa *nfa;
struct cnfa *cnfa;
{
        struct state *s;
        struct arc *a;
        size_t nstates;
        size_t narcs;
        struct carc *ca;
        struct carc *first;

        ((void)0);

        nstates = 0;
        narcs = 0;
        for (s = nfa->states; s != ((void *)0); s = s->next) {
                nstates++;
                narcs += 1 + s->nouts + 1;

        }

        cnfa->states = (struct carc **)Tcl_Alloc(nstates * sizeof(struct carc *));
        cnfa->arcs = (struct carc *)Tcl_Alloc(narcs * sizeof(struct carc));
        if (cnfa->states == ((void *)0) || cnfa->arcs == ((void *)0)) {
                if (cnfa->states != ((void *)0))
                        Tcl_Free(((void *)(cnfa->states)));
                if (cnfa->arcs != ((void *)0))
                        Tcl_Free(((void *)(cnfa->arcs)));
                ((nfa->v)->nexttype = 'e', ((nfa->v)->err) ? (nfa->v)->err : ((nfa->v)->err = ((12))));
                return;
        }
        cnfa->nstates = nstates;
        cnfa->pre = nfa->pre->no;
        cnfa->post = nfa->post->no;
        cnfa->bos[0] = nfa->bos[0];
        cnfa->bos[1] = nfa->bos[1];
        cnfa->eos[0] = nfa->eos[0];
        cnfa->eos[1] = nfa->eos[1];
        cnfa->ncolors = maxcolor(nfa->cm) + 1;
        cnfa->flags = 0;

        ca = cnfa->arcs;
        for (s = nfa->states; s != ((void *)0); s = s->next) {
                ((void)0);
                cnfa->states[s->no] = ca;
                ca->co = 0;
                ca++;
                first = ca;
                for (a = s->outs; a != ((void *)0); a = a->outchain)
                        switch (a->type) {
                        case 'p':
                                ca->co = a->co;
                                ca->to = a->to->no;
                                ca++;
                                break;
                        case 'L':
                                ((void)0);
                                ca->co = (color)(cnfa->ncolors + a->co);
                                ca->to = a->to->no;
                                ca++;
                                cnfa->flags |= 01;
                                break;
                        default:
                                ((void)0);
                                break;
                        }
                carcsort(first, ca-1);
                ca->co = (-1);
                ca->to = 0;
                ca++;
        }
        ((void)0);
        ((void)0);


        for (a = nfa->pre->outs; a != ((void *)0); a = a->outchain)
                cnfa->states[a->to->no]->co = 1;
        cnfa->states[nfa->pre->no]->co = 1;
}







static void
carcsort(first, last)
struct carc *first;
struct carc *last;
{
        struct carc *p;
        struct carc *q;
        struct carc tmp;

        if (last - first <= 1)
                return;

        for (p = first; p <= last; p++)
                for (q = p; q <= last; q++)
                        if (p->co > q->co ||
                                        (p->co == q->co && p->to > q->to)) {
                                ((void)0);
                                tmp = *p;
                                *p = *q;
                                *q = tmp;
                        }
}





static void
freecnfa(cnfa)
struct cnfa *cnfa;
{
        ((void)0);
        cnfa->nstates = 0;
        Tcl_Free(((void *)(cnfa->states)));
        Tcl_Free(((void *)(cnfa->arcs)));
}





static void
dumpnfa(nfa, f)
struct nfa *nfa;
FILE *f;
{
# 1364 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
}
# 1508 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
static void
dumpcnfa(cnfa, f)
struct cnfa *cnfa;
FILE *f;
{
# 1532 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_nfa.c"
}
# 2174 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_cvec.c" 1
# 37 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_cvec.c"
static struct cvec *
newcvec(nchrs, nranges, nmcces)
int nchrs;
int nranges;
int nmcces;
{
        size_t n;
        size_t nc;
        struct cvec *cv;

        nc = (size_t)nchrs + (size_t)nmcces*(2 +1) + (size_t)nranges*2;
        n = sizeof(struct cvec) + (size_t)(nmcces-1)*sizeof(chr *) +
                                                                nc*sizeof(chr);
        cv = (struct cvec *)Tcl_Alloc(n);
        if (cv == ((void *)0))
                return ((void *)0);
        cv->chrspace = nc;
        cv->chrs = (chr *)&cv->mcces[nmcces];
        cv->mccespace = nmcces;
        cv->ranges = cv->chrs + nchrs + nmcces*(2 +1);
        cv->rangespace = nranges;
        return clearcvec(cv);
}






static struct cvec *
clearcvec(cv)
struct cvec *cv;
{
        int i;

        ((void)0);
        cv->nchrs = 0;
        ((void)0);
        cv->nmcces = 0;
        cv->nmccechrs = 0;
        cv->nranges = 0;
        for (i = 0; i < cv->mccespace; i++)
                cv->mcces[i] = ((void *)0);

        return cv;
}





static void
addchr(cv, c)
struct cvec *cv;
pchr c;
{
        ((void)0);
        cv->chrs[cv->nchrs++] = (chr)c;
}





static void
addrange(cv, from, to)
struct cvec *cv;
pchr from;
pchr to;
{
        ((void)0);
        cv->ranges[cv->nranges*2] = (chr)from;
        cv->ranges[cv->nranges*2 + 1] = (chr)to;
        cv->nranges++;
}





static void
addmcce(cv, startp, endp)
struct cvec *cv;
chr *startp;
chr *endp;
{
        int len;
        int i;
        chr *s;
        chr *d;

        if (startp == ((void *)0) && endp == ((void *)0))
                return;
        len = endp - startp;
        ((void)0);
        ((void)0);
        ((void)0);
        d = &cv->chrs[cv->chrspace - cv->nmccechrs - len - 1];
        cv->mcces[cv->nmcces++] = d;
        for (s = startp, i = len; i > 0; s++, i--)
                *d++ = *s;
        *d++ = 0;
        ((void)0);
        cv->nmccechrs += len + 1;
}





static int
haschr(cv, c)
struct cvec *cv;
pchr c;
{
        int i;
        chr *p;

        for (p = cv->chrs, i = cv->nchrs; i > 0; p++, i--)
                if (*p == c)
                        return 1;
        for (p = cv->ranges, i = cv->nranges; i > 0; p += 2, i--)
                if (*p <= c && c <= *(p+1))
                        return 1;
        return 0;
}





static struct cvec *
getcvec(v, nchrs, nranges, nmcces)
struct vars *v;
int nchrs;
int nranges;
int nmcces;
{
        if (v->cv != ((void *)0) && nchrs <= v->cv->chrspace &&
                                        nranges <= v->cv->rangespace &&
                                        nmcces <= v->cv->mccespace)
                return clearcvec(v->cv);

        if (v->cv != ((void *)0))
                freecvec(v->cv);
        v->cv = newcvec(nchrs, nranges, nmcces);
        if (v->cv == ((void *)0))
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));

        return v->cv;
}





static void
freecvec(cv)
struct cvec *cv;
{
        Tcl_Free(((void *)(cv)));
}
# 2175 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2
# 1 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c" 1
# 17 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static struct cname {
        char *name;
        char code;
} cnames[] = {
        {"NUL", '\0'},
        {"SOH", '\001'},
        {"STX", '\002'},
        {"ETX", '\003'},
        {"EOT", '\004'},
        {"ENQ", '\005'},
        {"ACK", '\006'},
        {"BEL", '\007'},
        {"alert", '\007'},
        {"BS", '\010'},
        {"backspace", '\b'},
        {"HT", '\011'},
        {"tab", '\t'},
        {"LF", '\012'},
        {"newline", '\n'},
        {"VT", '\013'},
        {"vertical-tab", '\v'},
        {"FF", '\014'},
        {"form-feed", '\f'},
        {"CR", '\015'},
        {"carriage-return", '\r'},
        {"SO", '\016'},
        {"SI", '\017'},
        {"DLE", '\020'},
        {"DC1", '\021'},
        {"DC2", '\022'},
        {"DC3", '\023'},
        {"DC4", '\024'},
        {"NAK", '\025'},
        {"SYN", '\026'},
        {"ETB", '\027'},
        {"CAN", '\030'},
        {"EM", '\031'},
        {"SUB", '\032'},
        {"ESC", '\033'},
        {"IS4", '\034'},
        {"FS", '\034'},
        {"IS3", '\035'},
        {"GS", '\035'},
        {"IS2", '\036'},
        {"RS", '\036'},
        {"IS1", '\037'},
        {"US", '\037'},
        {"space", ' '},
        {"exclamation-mark", '!'},
        {"quotation-mark", '"'},
        {"number-sign", '#'},
        {"dollar-sign", '$'},
        {"percent-sign", '%'},
        {"ampersand", '&'},
        {"apostrophe", '\''},
        {"left-parenthesis", '('},
        {"right-parenthesis", ')'},
        {"asterisk", '*'},
        {"plus-sign", '+'},
        {"comma", ','},
        {"hyphen", '-'},
        {"hyphen-minus", '-'},
        {"period", '.'},
        {"full-stop", '.'},
        {"slash", '/'},
        {"solidus", '/'},
        {"zero", '0'},
        {"one", '1'},
        {"two", '2'},
        {"three", '3'},
        {"four", '4'},
        {"five", '5'},
        {"six", '6'},
        {"seven", '7'},
        {"eight", '8'},
        {"nine", '9'},
        {"colon", ':'},
        {"semicolon", ';'},
        {"less-than-sign", '<'},
        {"equals-sign", '='},
        {"greater-than-sign", '>'},
        {"question-mark", '?'},
        {"commercial-at", '@'},
        {"left-square-bracket", '['},
        {"backslash", '\\'},
        {"reverse-solidus", '\\'},
        {"right-square-bracket", ']'},
        {"circumflex", '^'},
        {"circumflex-accent", '^'},
        {"underscore", '_'},
        {"low-line", '_'},
        {"grave-accent", '`'},
        {"left-brace", '{'},
        {"left-curly-bracket", '{'},
        {"vertical-line", '|'},
        {"right-brace", '}'},
        {"right-curly-bracket", '}'},
        {"tilde", '~'},
        {"DEL", '\177'},
        {((void *)0), 0}
};



typedef struct crange {
    chr start;
    chr end;
} crange;



static crange alphaRangeTable[] = {
    {0x0041, 0x005a}, {0x0061, 0x007a}, {0x00c0, 0x00d6}, {0x00d8, 0x00f6},
    {0x00f8, 0x01f5}, {0x01fa, 0x0217}, {0x0250, 0x02a8}, {0x02b0, 0x02b8},
    {0x02bb, 0x02c1}, {0x02e0, 0x02e4}, {0x0388, 0x038a}, {0x038e, 0x03a1},
    {0x03a3, 0x03ce}, {0x03d0, 0x03d6}, {0x03e2, 0x03f3}, {0x0401, 0x040c},
    {0x040e, 0x044f}, {0x0451, 0x045c}, {0x045e, 0x0481}, {0x0490, 0x04c4},
    {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x0531, 0x0556}, {0x0561, 0x0587},
    {0x05d0, 0x05ea}, {0x05f0, 0x05f2}, {0x0621, 0x063a}, {0x0640, 0x064a},
    {0x0671, 0x06b7}, {0x06ba, 0x06be}, {0x06c0, 0x06ce}, {0x06d0, 0x06d3},
    {0x0905, 0x0939}, {0x0958, 0x0961}, {0x0985, 0x098c}, {0x0993, 0x09a8},
    {0x09aa, 0x09b0}, {0x09b6, 0x09b9}, {0x09df, 0x09e1}, {0x0a05, 0x0a0a},
    {0x0a13, 0x0a28}, {0x0a2a, 0x0a30}, {0x0a59, 0x0a5c}, {0x0a72, 0x0a74},
    {0x0a85, 0x0a8b}, {0x0a8f, 0x0a91}, {0x0a93, 0x0aa8}, {0x0aaa, 0x0ab0},
    {0x0ab5, 0x0ab9}, {0x0b05, 0x0b0c}, {0x0b13, 0x0b28}, {0x0b2a, 0x0b30},
    {0x0b36, 0x0b39}, {0x0b5f, 0x0b61}, {0x0b85, 0x0b8a}, {0x0b8e, 0x0b90},
    {0x0b92, 0x0b95}, {0x0ba8, 0x0baa}, {0x0bae, 0x0bb5}, {0x0bb7, 0x0bb9},
    {0x0c05, 0x0c0c}, {0x0c0e, 0x0c10}, {0x0c12, 0x0c28}, {0x0c2a, 0x0c33},
    {0x0c35, 0x0c39}, {0x0c85, 0x0c8c}, {0x0c8e, 0x0c90}, {0x0c92, 0x0ca8},
    {0x0caa, 0x0cb3}, {0x0cb5, 0x0cb9}, {0x0d05, 0x0d0c}, {0x0d0e, 0x0d10},
    {0x0d12, 0x0d28}, {0x0d2a, 0x0d39}, {0x0e01, 0x0e30}, {0x0e40, 0x0e46},
    {0x0e94, 0x0e97}, {0x0e99, 0x0e9f}, {0x0ea1, 0x0ea3}, {0x0ead, 0x0eb0},
    {0x0ec0, 0x0ec4}, {0x0f40, 0x0f47}, {0x0f49, 0x0f69}, {0x0f88, 0x0f8b},
    {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1159}, {0x115f, 0x11a2},
    {0x11a8, 0x11f9}, {0x1e00, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15},
    {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
    {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fc2, 0x1fc4},
    {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec},
    {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x210a, 0x2113}, {0x2118, 0x211d},
    {0x212a, 0x2131}, {0x2133, 0x2138}, {0x3031, 0x3035}, {0x3041, 0x3094},
    {0x30a1, 0x30fa}, {0x30fc, 0x30fe}, {0x3105, 0x312c}, {0x3131, 0x318e},
    {0x4e00, 0x9fa5}, {0xac00, 0xd7a3}, {0xf900, 0xfa2d}, {0xfb00, 0xfb06},
    {0xfb13, 0xfb17}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c},
    {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7},
    {0xfdf0, 0xfdfb}, {0xfe70, 0xfe72}, {0xfe76, 0xfefc}, {0xff21, 0xff3a},
    {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf},
    {0xffd2, 0xffd7}, {0xffda, 0xffdc}
};



static chr alphaCharTable[] = {
    0x00aa, 0x00b5, 0x00ba, 0x02d0, 0x02d1, 0x037a, 0x0386, 0x038c, 0x03da,
    0x03dc, 0x03de, 0x03e0, 0x04c7, 0x04c8, 0x04cb, 0x04cc, 0x04f8, 0x04f9,
    0x0559, 0x06d5, 0x06e5, 0x06e6, 0x093d, 0x0950, 0x098f, 0x0990, 0x09b2,
    0x09dc, 0x09dd, 0x09f0, 0x09f1, 0x0a0f, 0x0a10, 0x0a32, 0x0a33, 0x0a35,
    0x0a36, 0x0a38, 0x0a39, 0x0a5e, 0x0a8d, 0x0ab2, 0x0ab3, 0x0abd, 0x0ad0,
    0x0ae0, 0x0b0f, 0x0b10, 0x0b32, 0x0b33, 0x0b3d, 0x0b5c, 0x0b5d, 0x0b99,
    0x0b9a, 0x0b9c, 0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0c60, 0x0c61, 0x0cde,
    0x0ce0, 0x0ce1, 0x0d60, 0x0d61, 0x0e32, 0x0e33, 0x0e81, 0x0e82, 0x0e84,
    0x0e87, 0x0e88, 0x0e8a, 0x0e8d, 0x0ea5, 0x0ea7, 0x0eaa, 0x0eab, 0x0eb2,
    0x0eb3, 0x0ebd, 0x0ec6, 0x0edc, 0x0edd, 0x0f00, 0x1f59, 0x1f5b, 0x1f5d,
    0x1fbe, 0x207f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x3005,
    0x3006, 0x309d, 0x309e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfe74
};





static crange digitRangeTable[] = {
    {0x0030, 0x0039}, {0x0660, 0x0669}, {0x06f0, 0x06f9}, {0x0966, 0x096f},
    {0x09e6, 0x09ef}, {0x0a66, 0x0a6f}, {0x0ae6, 0x0aef}, {0x0b66, 0x0b6f},
    {0x0be7, 0x0bef}, {0x0c66, 0x0c6f}, {0x0ce6, 0x0cef}, {0x0d66, 0x0d6f},
    {0x0e50, 0x0e59}, {0x0ed0, 0x0ed9}, {0x0f20, 0x0f29}, {0xff10, 0xff19}
};





static crange punctRangeTable[] = {
    {0x0021, 0x0023}, {0x0025, 0x002a}, {0x002c, 0x002f}, {0x005b, 0x005d},
    {0x055a, 0x055f}, {0x066a, 0x066d}, {0x0f04, 0x0f12}, {0x0f3a, 0x0f3d},
    {0x2010, 0x2027}, {0x2030, 0x2043}, {0x3001, 0x3003}, {0x3008, 0x3011},
    {0x3014, 0x301f}, {0xfe30, 0xfe44}, {0xfe49, 0xfe52}, {0xfe54, 0xfe61},
    {0xff01, 0xff03}, {0xff05, 0xff0a}, {0xff0c, 0xff0f}, {0xff3b, 0xff3d},
    {0xff61, 0xff65}
};



static chr punctCharTable[] = {
    0x003a, 0x003b, 0x003f, 0x0040, 0x005f, 0x007b, 0x007d, 0x00a1, 0x00ab,
    0x00ad, 0x00b7, 0x00bb, 0x00bf, 0x037e, 0x0387, 0x0589, 0x05be, 0x05c0,
    0x05c3, 0x05f3, 0x05f4, 0x060c, 0x061b, 0x061f, 0x06d4, 0x0964, 0x0965,
    0x0970, 0x0e5a, 0x0e5b, 0x0f85, 0x10fb, 0x2045, 0x2046, 0x207d, 0x207e,
    0x208d, 0x208e, 0x2329, 0x232a, 0x3030, 0x30fb, 0xfd3e, 0xfd3f, 0xfe63,
    0xfe68, 0xfe6a, 0xfe6b, 0xff1a, 0xff1b, 0xff1f, 0xff20, 0xff3f, 0xff5b,
    0xff5d
};





static crange spaceRangeTable[] = {
    {0x0009, 0x000d}, {0x2000, 0x200b},
};



static chr spaceCharTable[] = {
    0x0020, 0x00a0, 0x2028, 0x2029, 0x3000
};





static crange lowerRangeTable[] = {
    {0x0061, 0x007a}, {0x00df, 0x00f6}, {0x00f8, 0x00ff}, {0x017e, 0x0180},
    {0x0199, 0x019b}, {0x0250, 0x02a8}, {0x03ac, 0x03ce}, {0x03ef, 0x03f2},
    {0x0430, 0x044f}, {0x0451, 0x045c}, {0x0561, 0x0587}, {0x10d0, 0x10f6},
    {0x1e95, 0x1e9b}, {0x1f00, 0x1f07}, {0x1f10, 0x1f15}, {0x1f20, 0x1f27},
    {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, {0x1f50, 0x1f57}, {0x1f60, 0x1f67},
    {0x1f70, 0x1f7d}, {0x1f80, 0x1f87}, {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7},
    {0x1fb0, 0x1fb4}, {0x1fc2, 0x1fc4}, {0x1fd0, 0x1fd3}, {0x1fe0, 0x1fe7},
    {0x1ff2, 0x1ff4}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41, 0xff5a}
};



static chr lowerCharTable[] = {
    0x00aa, 0x00b5, 0x00ba, 0x0101, 0x0103, 0x0105, 0x0107, 0x0109, 0x010b,
    0x010d, 0x010f, 0x0111, 0x0113, 0x0115, 0x0117, 0x0119, 0x011b, 0x011d,
    0x011f, 0x0121, 0x0123, 0x0125, 0x0127, 0x0129, 0x012b, 0x012d, 0x012f,
    0x0131, 0x0133, 0x0135, 0x0137, 0x0138, 0x013a, 0x013c, 0x013e, 0x0140,
    0x0142, 0x0144, 0x0146, 0x0148, 0x0149, 0x014b, 0x014d, 0x014f, 0x0151,
    0x0153, 0x0155, 0x0157, 0x0159, 0x015b, 0x015d, 0x015f, 0x0161, 0x0163,
    0x0165, 0x0167, 0x0169, 0x016b, 0x016d, 0x016f, 0x0171, 0x0173, 0x0175,
    0x0177, 0x017a, 0x017c, 0x0183, 0x0185, 0x0188, 0x018c, 0x018d, 0x0192,
    0x0195, 0x019e, 0x01a1, 0x01a3, 0x01a5, 0x01a8, 0x01ab, 0x01ad, 0x01b0,
    0x01b4, 0x01b6, 0x01b9, 0x01ba, 0x01bd, 0x01c6, 0x01c9, 0x01cc, 0x01ce,
    0x01d0, 0x01d2, 0x01d4, 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x01dd, 0x01df,
    0x01e1, 0x01e3, 0x01e5, 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f0,
    0x01f3, 0x01f5, 0x01fb, 0x01fd, 0x01ff, 0x0201, 0x0203, 0x0205, 0x0207,
    0x0209, 0x020b, 0x020d, 0x020f, 0x0211, 0x0213, 0x0215, 0x0217, 0x0390,
    0x03d0, 0x03d1, 0x03d5, 0x03d6, 0x03e3, 0x03e5, 0x03e7, 0x03e9, 0x03eb,
    0x03ed, 0x045e, 0x045f, 0x0461, 0x0463, 0x0465, 0x0467, 0x0469, 0x046b,
    0x046d, 0x046f, 0x0471, 0x0473, 0x0475, 0x0477, 0x0479, 0x047b, 0x047d,
    0x047f, 0x0481, 0x0491, 0x0493, 0x0495, 0x0497, 0x0499, 0x049b, 0x049d,
    0x049f, 0x04a1, 0x04a3, 0x04a5, 0x04a7, 0x04a9, 0x04ab, 0x04ad, 0x04af,
    0x04b1, 0x04b3, 0x04b5, 0x04b7, 0x04b9, 0x04bb, 0x04bd, 0x04bf, 0x04c2,
    0x04c4, 0x04c8, 0x04cc, 0x04d1, 0x04d3, 0x04d5, 0x04d7, 0x04d9, 0x04db,
    0x04dd, 0x04df, 0x04e1, 0x04e3, 0x04e5, 0x04e7, 0x04e9, 0x04eb, 0x04ef,
    0x04f1, 0x04f3, 0x04f5, 0x04f9, 0x1e01, 0x1e03, 0x1e05, 0x1e07, 0x1e09,
    0x1e0b, 0x1e0d, 0x1e0f, 0x1e11, 0x1e13, 0x1e15, 0x1e17, 0x1e19, 0x1e1b,
    0x1e1d, 0x1e1f, 0x1e21, 0x1e23, 0x1e25, 0x1e27, 0x1e29, 0x1e2b, 0x1e2d,
    0x1e2f, 0x1e31, 0x1e33, 0x1e35, 0x1e37, 0x1e39, 0x1e3b, 0x1e3d, 0x1e3f,
    0x1e41, 0x1e43, 0x1e45, 0x1e47, 0x1e49, 0x1e4b, 0x1e4d, 0x1e4f, 0x1e51,
    0x1e53, 0x1e55, 0x1e57, 0x1e59, 0x1e5b, 0x1e5d, 0x1e5f, 0x1e61, 0x1e63,
    0x1e65, 0x1e67, 0x1e69, 0x1e6b, 0x1e6d, 0x1e6f, 0x1e71, 0x1e73, 0x1e75,
    0x1e77, 0x1e79, 0x1e7b, 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85, 0x1e87,
    0x1e89, 0x1e8b, 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1ea1, 0x1ea3, 0x1ea5,
    0x1ea7, 0x1ea9, 0x1eab, 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7,
    0x1eb9, 0x1ebb, 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ec9,
    0x1ecb, 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9, 0x1edb,
    0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9, 0x1eeb, 0x1eed,
    0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1fb6, 0x1fb7, 0x1fbe,
    0x1fc6, 0x1fc7, 0x1fd6, 0x1fd7, 0x1ff6, 0x1ff7, 0x207f, 0x210a, 0x210e,
    0x210f, 0x2113, 0x2118, 0x212e, 0x212f, 0x2134
};





static crange upperRangeTable[] = {
    {0x0041, 0x005a}, {0x00c0, 0x00d6}, {0x00d8, 0x00de}, {0x0189, 0x018b},
    {0x018e, 0x0191}, {0x0196, 0x0198}, {0x01b1, 0x01b3}, {0x0388, 0x038a},
    {0x0391, 0x03a1}, {0x03a3, 0x03ab}, {0x03d2, 0x03d4}, {0x0401, 0x040c},
    {0x040e, 0x042f}, {0x0531, 0x0556}, {0x10a0, 0x10c5}, {0x1f08, 0x1f0f},
    {0x1f18, 0x1f1d}, {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d},
    {0x1f68, 0x1f6f}, {0x1f88, 0x1f8f}, {0x1f98, 0x1f9f}, {0x1fa8, 0x1faf},
    {0x1fb8, 0x1fbc}, {0x1fc8, 0x1fcc}, {0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec},
    {0x1ff8, 0x1ffc}, {0x210b, 0x210d}, {0x2110, 0x2112}, {0x2119, 0x211d},
    {0x212a, 0x212d}, {0xff21, 0xff3a}
};



static chr upperCharTable[] = {
    0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c, 0x010e, 0x0110,
    0x0112, 0x0114, 0x0116, 0x0118, 0x011a, 0x011c, 0x011e, 0x0120, 0x0122,
    0x0124, 0x0126, 0x0128, 0x012a, 0x012c, 0x012e, 0x0130, 0x0132, 0x0134,
    0x0136, 0x0139, 0x013b, 0x013d, 0x013f, 0x0141, 0x0143, 0x0145, 0x0147,
    0x014a, 0x014c, 0x014e, 0x0150, 0x0152, 0x0154, 0x0156, 0x0158, 0x015a,
    0x015c, 0x015e, 0x0160, 0x0162, 0x0164, 0x0166, 0x0168, 0x016a, 0x016c,
    0x016e, 0x0170, 0x0172, 0x0174, 0x0176, 0x0178, 0x0179, 0x017b, 0x017d,
    0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0193, 0x0194, 0x019c, 0x019d,
    0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a7, 0x01a9, 0x01ac, 0x01ae,
    0x01af, 0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01c4, 0x01c7, 0x01ca, 0x01cd,
    0x01cf, 0x01d1, 0x01d3, 0x01d5, 0x01d7, 0x01d9, 0x01db, 0x01de, 0x01e0,
    0x01e2, 0x01e4, 0x01e6, 0x01e8, 0x01ea, 0x01ec, 0x01ee, 0x01f1, 0x01f4,
    0x01fa, 0x01fc, 0x01fe, 0x0200, 0x0202, 0x0204, 0x0206, 0x0208, 0x020a,
    0x020c, 0x020e, 0x0210, 0x0212, 0x0214, 0x0216, 0x0386, 0x038c, 0x038e,
    0x038f, 0x03da, 0x03dc, 0x03de, 0x03e0, 0x03e2, 0x03e4, 0x03e6, 0x03e8,
    0x03ea, 0x03ec, 0x03ee, 0x0460, 0x0462, 0x0464, 0x0466, 0x0468, 0x046a,
    0x046c, 0x046e, 0x0470, 0x0472, 0x0474, 0x0476, 0x0478, 0x047a, 0x047c,
    0x047e, 0x0480, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498, 0x049a, 0x049c,
    0x049e, 0x04a0, 0x04a2, 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac, 0x04ae,
    0x04b0, 0x04b2, 0x04b4, 0x04b6, 0x04b8, 0x04ba, 0x04bc, 0x04be, 0x04c1,
    0x04c3, 0x04c7, 0x04cb, 0x04d0, 0x04d2, 0x04d4, 0x04d6, 0x04d8, 0x04da,
    0x04dc, 0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6, 0x04e8, 0x04ea, 0x04ee,
    0x04f0, 0x04f2, 0x04f4, 0x04f8, 0x1e00, 0x1e02, 0x1e04, 0x1e06, 0x1e08,
    0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16, 0x1e18, 0x1e1a,
    0x1e1c, 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26, 0x1e28, 0x1e2a, 0x1e2c,
    0x1e2e, 0x1e30, 0x1e32, 0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e,
    0x1e40, 0x1e42, 0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50,
    0x1e52, 0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62,
    0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72, 0x1e74,
    0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84, 0x1e86,
    0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92, 0x1e94, 0x1ea0, 0x1ea2,
    0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4,
    0x1eb6, 0x1eb8, 0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6,
    0x1ec8, 0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
    0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8, 0x1eea,
    0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1f59, 0x1f5b,
    0x1f5d, 0x1f5f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2130,
    0x2131, 0x2133
};
# 357 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static crange graphRangeTable[] = {
    {0x0021, 0x007e}, {0x00a0, 0x011f}, {0x0121, 0x01f5}, {0x01fa, 0x0217},
    {0x0250, 0x02a8}, {0x02b0, 0x02de}, {0x02e0, 0x02e9}, {0x0300, 0x031f},
    {0x0321, 0x0345}, {0x0384, 0x038a}, {0x038e, 0x03a1}, {0x03a3, 0x03ce},
    {0x03d0, 0x03d6}, {0x03e2, 0x03f3}, {0x0401, 0x040c}, {0x040e, 0x041f},
    {0x0421, 0x044f}, {0x0451, 0x045c}, {0x045e, 0x0486}, {0x0490, 0x04c4},
    {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x0531, 0x0556}, {0x0559, 0x055f},
    {0x0561, 0x0587}, {0x0591, 0x05a1}, {0x05a3, 0x05b9}, {0x05bb, 0x05c4},
    {0x05d0, 0x05ea}, {0x05f0, 0x05f4}, {0x0621, 0x063a}, {0x0640, 0x0652},
    {0x0660, 0x066d}, {0x0670, 0x06b7}, {0x06ba, 0x06be}, {0x06c0, 0x06ce},
    {0x06d0, 0x06ed}, {0x06f0, 0x06f9}, {0x0901, 0x0903}, {0x0905, 0x091f},
    {0x0921, 0x0939}, {0x093c, 0x094d}, {0x0950, 0x0954}, {0x0958, 0x0970},
    {0x0981, 0x0983}, {0x0985, 0x098c}, {0x0993, 0x09a8}, {0x09aa, 0x09b0},
    {0x09b6, 0x09b9}, {0x09be, 0x09c4}, {0x09cb, 0x09cd}, {0x09df, 0x09e3},
    {0x09e6, 0x09fa}, {0x0a05, 0x0a0a}, {0x0a13, 0x0a1f}, {0x0a21, 0x0a28},
    {0x0a2a, 0x0a30}, {0x0a3e, 0x0a42}, {0x0a4b, 0x0a4d}, {0x0a59, 0x0a5c},
    {0x0a66, 0x0a74}, {0x0a81, 0x0a83}, {0x0a85, 0x0a8b}, {0x0a8f, 0x0a91},
    {0x0a93, 0x0aa8}, {0x0aaa, 0x0ab0}, {0x0ab5, 0x0ab9}, {0x0abc, 0x0ac5},
    {0x0ac7, 0x0ac9}, {0x0acb, 0x0acd}, {0x0ae6, 0x0aef}, {0x0b01, 0x0b03},
    {0x0b05, 0x0b0c}, {0x0b13, 0x0b1f}, {0x0b21, 0x0b28}, {0x0b2a, 0x0b30},
    {0x0b36, 0x0b39}, {0x0b3c, 0x0b43}, {0x0b4b, 0x0b4d}, {0x0b5f, 0x0b61},
    {0x0b66, 0x0b70}, {0x0b85, 0x0b8a}, {0x0b8e, 0x0b90}, {0x0b92, 0x0b95},
    {0x0ba8, 0x0baa}, {0x0bae, 0x0bb5}, {0x0bb7, 0x0bb9}, {0x0bbe, 0x0bc2},
    {0x0bc6, 0x0bc8}, {0x0bca, 0x0bcd}, {0x0be7, 0x0bf2}, {0x0c01, 0x0c03},
    {0x0c05, 0x0c0c}, {0x0c0e, 0x0c10}, {0x0c12, 0x0c1f}, {0x0c21, 0x0c28},
    {0x0c2a, 0x0c33}, {0x0c35, 0x0c39}, {0x0c3e, 0x0c44}, {0x0c46, 0x0c48},
    {0x0c4a, 0x0c4d}, {0x0c66, 0x0c6f}, {0x0c85, 0x0c8c}, {0x0c8e, 0x0c90},
    {0x0c92, 0x0ca8}, {0x0caa, 0x0cb3}, {0x0cb5, 0x0cb9}, {0x0cbe, 0x0cc4},
    {0x0cc6, 0x0cc8}, {0x0cca, 0x0ccd}, {0x0ce6, 0x0cef}, {0x0d05, 0x0d0c},
    {0x0d0e, 0x0d10}, {0x0d12, 0x0d1f}, {0x0d21, 0x0d28}, {0x0d2a, 0x0d39},
    {0x0d3e, 0x0d43}, {0x0d46, 0x0d48}, {0x0d4a, 0x0d4d}, {0x0d66, 0x0d6f},
    {0x0e01, 0x0e1f}, {0x0e21, 0x0e3a}, {0x0e3f, 0x0e5b}, {0x0e94, 0x0e97},
    {0x0e99, 0x0e9f}, {0x0ea1, 0x0ea3}, {0x0ead, 0x0eb9}, {0x0ebb, 0x0ebd},
    {0x0ec0, 0x0ec4}, {0x0ec8, 0x0ecd}, {0x0ed0, 0x0ed9}, {0x0f00, 0x0f1f},
    {0x0f21, 0x0f47}, {0x0f49, 0x0f69}, {0x0f71, 0x0f8b}, {0x0f90, 0x0f95},
    {0x0f99, 0x0fad}, {0x0fb1, 0x0fb7}, {0x10a0, 0x10c5}, {0x10d0, 0x10f6},
    {0x1100, 0x111f}, {0x1121, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9},
    {0x1e00, 0x1e1f}, {0x1e21, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15},
    {0x1f18, 0x1f1d}, {0x1f21, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
    {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fc4}, {0x1fc6, 0x1fd3},
    {0x1fd6, 0x1fdb}, {0x1fdd, 0x1fef}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffe},
    {0x2000, 0x200b}, {0x2010, 0x201f}, {0x2021, 0x2029}, {0x2030, 0x2046},
    {0x2074, 0x208e}, {0x20a0, 0x20ac}, {0x20d0, 0x20e1}, {0x2100, 0x211f},
    {0x2121, 0x2138}, {0x2153, 0x2182}, {0x2190, 0x21ea}, {0x2200, 0x221f},
    {0x2221, 0x22f1}, {0x2302, 0x231f}, {0x2321, 0x237a}, {0x2400, 0x241f},
    {0x2421, 0x2424}, {0x2440, 0x244a}, {0x2460, 0x24ea}, {0x2500, 0x251f},
    {0x2521, 0x2595}, {0x25a0, 0x25ef}, {0x2600, 0x2613}, {0x261a, 0x261f},
    {0x2621, 0x266f}, {0x2701, 0x2704}, {0x2706, 0x2709}, {0x270c, 0x271f},
    {0x2721, 0x2727}, {0x2729, 0x274b}, {0x274f, 0x2752}, {0x2758, 0x275e},
    {0x2761, 0x2767}, {0x2776, 0x2794}, {0x2798, 0x27af}, {0x27b1, 0x27be},
    {0x3000, 0x301f}, {0x3021, 0x3037}, {0x3041, 0x3094}, {0x3099, 0x309e},
    {0x30a1, 0x30fe}, {0x3105, 0x311f}, {0x3121, 0x312c}, {0x3131, 0x318e},
    {0x3190, 0x319f}, {0x3200, 0x321c}, {0x3221, 0x3243}, {0x3260, 0x327b},
    {0x327f, 0x32b0}, {0x32c0, 0x32cb}, {0x32d0, 0x32fe}, {0x3300, 0x331f},
    {0x3321, 0x3376}, {0x337b, 0x33dd}, {0x33e0, 0x33fe}, {0x4e00, 0x4e1f},
    {0x4e21, 0x4f1f}, {0x4f21, 0x501f}, {0x5021, 0x511f}, {0x5121, 0x521f},
    {0x5221, 0x531f}, {0x5321, 0x541f}, {0x5421, 0x551f}, {0x5521, 0x561f},
    {0x5621, 0x571f}, {0x5721, 0x581f}, {0x5821, 0x591f}, {0x5921, 0x5a1f},
    {0x5a21, 0x5b1f}, {0x5b21, 0x5c1f}, {0x5c21, 0x5d1f}, {0x5d21, 0x5e1f},
    {0x5e21, 0x5f1f}, {0x5f21, 0x601f}, {0x6021, 0x611f}, {0x6121, 0x621f},
    {0x6221, 0x631f}, {0x6321, 0x641f}, {0x6421, 0x651f}, {0x6521, 0x661f},
    {0x6621, 0x671f}, {0x6721, 0x681f}, {0x6821, 0x691f}, {0x6921, 0x6a1f},
    {0x6a21, 0x6b1f}, {0x6b21, 0x6c1f}, {0x6c21, 0x6d1f}, {0x6d21, 0x6e1f},
    {0x6e21, 0x6f1f}, {0x6f21, 0x701f}, {0x7021, 0x711f}, {0x7121, 0x721f},
    {0x7221, 0x731f}, {0x7321, 0x741f}, {0x7421, 0x751f}, {0x7521, 0x761f},
    {0x7621, 0x771f}, {0x7721, 0x781f}, {0x7821, 0x791f}, {0x7921, 0x7a1f},
    {0x7a21, 0x7b1f}, {0x7b21, 0x7c1f}, {0x7c21, 0x7d1f}, {0x7d21, 0x7e1f},
    {0x7e21, 0x7f1f}, {0x7f21, 0x801f}, {0x8021, 0x811f}, {0x8121, 0x821f},
    {0x8221, 0x831f}, {0x8321, 0x841f}, {0x8421, 0x851f}, {0x8521, 0x861f},
    {0x8621, 0x871f}, {0x8721, 0x881f}, {0x8821, 0x891f}, {0x8921, 0x8a1f},
    {0x8a21, 0x8b1f}, {0x8b21, 0x8c1f}, {0x8c21, 0x8d1f}, {0x8d21, 0x8e1f},
    {0x8e21, 0x8f1f}, {0x8f21, 0x901f}, {0x9021, 0x911f}, {0x9121, 0x921f},
    {0x9221, 0x931f}, {0x9321, 0x941f}, {0x9421, 0x951f}, {0x9521, 0x961f},
    {0x9621, 0x971f}, {0x9721, 0x981f}, {0x9821, 0x991f}, {0x9921, 0x9a1f},
    {0x9a21, 0x9b1f}, {0x9b21, 0x9c1f}, {0x9c21, 0x9d1f}, {0x9d21, 0x9e1f},
    {0x9e21, 0x9f1f}, {0x9f21, 0x9fa5}, {0xac00, 0xac1f}, {0xac21, 0xad1f},
    {0xad21, 0xae1f}, {0xae21, 0xaf1f}, {0xaf21, 0xb01f}, {0xb021, 0xb11f},
    {0xb121, 0xb21f}, {0xb221, 0xb31f}, {0xb321, 0xb41f}, {0xb421, 0xb51f},
    {0xb521, 0xb61f}, {0xb621, 0xb71f}, {0xb721, 0xb81f}, {0xb821, 0xb91f},
    {0xb921, 0xba1f}, {0xba21, 0xbb1f}, {0xbb21, 0xbc1f}, {0xbc21, 0xbd1f},
    {0xbd21, 0xbe1f}, {0xbe21, 0xbf1f}, {0xbf21, 0xc01f}, {0xc021, 0xc11f},
    {0xc121, 0xc21f}, {0xc221, 0xc31f}, {0xc321, 0xc41f}, {0xc421, 0xc51f},
    {0xc521, 0xc61f}, {0xc621, 0xc71f}, {0xc721, 0xc81f}, {0xc821, 0xc91f},
    {0xc921, 0xca1f}, {0xca21, 0xcb1f}, {0xcb21, 0xcc1f}, {0xcc21, 0xcd1f},
    {0xcd21, 0xce1f}, {0xce21, 0xcf1f}, {0xcf21, 0xd01f}, {0xd021, 0xd11f},
    {0xd121, 0xd21f}, {0xd221, 0xd31f}, {0xd321, 0xd41f}, {0xd421, 0xd51f},
    {0xd521, 0xd61f}, {0xd621, 0xd71f}, {0xd721, 0xd7a3}, {0xf900, 0xf91f},
    {0xf921, 0xfa1f}, {0xfa21, 0xfa2d}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17},
    {0xfb21, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc1f},
    {0xfc21, 0xfd1f}, {0xfd21, 0xfd3f}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7},
    {0xfdf0, 0xfdfb}, {0xfe21, 0xfe23}, {0xfe30, 0xfe44}, {0xfe49, 0xfe52},
    {0xfe54, 0xfe66}, {0xfe68, 0xfe6b}, {0xfe70, 0xfe72}, {0xfe76, 0xfefc},
    {0xff01, 0xff1f}, {0xff21, 0xff5e}, {0xff61, 0xffbe}, {0xffc2, 0xffc7},
    {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0xffe0, 0xffe6},
    {0xffe8, 0xffee}
};



static chr graphCharTable[] = {
    0x0360, 0x0361, 0x0374, 0x0375, 0x037a, 0x037e, 0x038c, 0x03da, 0x03dc,
    0x03de, 0x03e0, 0x04c7, 0x04c8, 0x04cb, 0x04cc, 0x04f8, 0x04f9, 0x0589,
    0x060c, 0x061b, 0x061f, 0x098f, 0x0990, 0x09b2, 0x09bc, 0x09c7, 0x09c8,
    0x09d7, 0x09dc, 0x09dd, 0x0a02, 0x0a0f, 0x0a10, 0x0a32, 0x0a33, 0x0a35,
    0x0a36, 0x0a38, 0x0a39, 0x0a3c, 0x0a47, 0x0a48, 0x0a5e, 0x0a8d, 0x0ab2,
    0x0ab3, 0x0ad0, 0x0ae0, 0x0b0f, 0x0b10, 0x0b32, 0x0b33, 0x0b47, 0x0b48,
    0x0b56, 0x0b57, 0x0b5c, 0x0b5d, 0x0b82, 0x0b83, 0x0b99, 0x0b9a, 0x0b9c,
    0x0b9e, 0x0b9f, 0x0ba3, 0x0ba4, 0x0bd7, 0x0c55, 0x0c56, 0x0c60, 0x0c61,
    0x0c82, 0x0c83, 0x0cd5, 0x0cd6, 0x0cde, 0x0ce0, 0x0ce1, 0x0d02, 0x0d03,
    0x0d57, 0x0d60, 0x0d61, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0e8a,
    0x0e8d, 0x0ea5, 0x0ea7, 0x0eaa, 0x0eab, 0x0ec6, 0x0edc, 0x0edd, 0x0f97,
    0x0fb9, 0x10fb, 0x1f59, 0x1f5b, 0x1f5d, 0x2070, 0x2300, 0x274d, 0x2756,
    0x303f, 0xfb1e, 0xfb1f, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfe74,
    0xfffc, 0xfffd
};
# 482 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static int
nmcces(v)
struct vars *v;
{
        return 0;
}





static int
nleaders(v)
struct vars *v;
{
        return 0;
}





static struct cvec *
allmcces(v, cv)
struct vars *v;
struct cvec *cv;
{
        return clearcvec(cv);
}





static celt
element(v, startp, endp)
struct vars *v;
chr *startp;
chr *endp;
{
        struct cname *cn;
        size_t len;
        Tcl_DString ds;
        char *np;


        ((void)0);
        len = endp - startp;
        if (len == 1)
                return *startp;

        (v->re->re_info |= (002000));


        Tcl_DStringInit(&ds);
        np = Tcl_UniCharToUtfDString(startp, (int)len, &ds);
        for (cn = cnames; cn->name != ((void *)0); cn++)
                if (strlen(cn->name) == len && strncmp(cn->name, np, len) == 0)
                        break;
        Tcl_DStringFree(&ds);
        if (cn->name != ((void *)0))
                return (((unsigned char) (cn->code)));


        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (3)));
        return 0;
}





static struct cvec *
range(v, a, b, cases)
struct vars *v;
celt a;
celt b;
int cases;
{
        int nchrs;
        struct cvec *cv;
        celt c, lc, uc, tc;

        if (a != b && !before(a, b)) {
                ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (11)));
                return ((void *)0);
        }

        if (!cases) {
                cv = getcvec(v, 0, 1, 0);
                {if (((v)->err != 0)) return ((void *)0);};
                addrange(cv, a, b);
                return cv;
        }
# 584 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
        nchrs = (b - a + 1)*2 + 4;

        cv = getcvec(v, nchrs, 0, 0);
        {if (((v)->err != 0)) return ((void *)0);};

        for (c = a; c <= b; c++) {
                addchr(cv, c);
                lc = Tcl_UniCharToLower((chr)c);
                uc = Tcl_UniCharToUpper((chr)c);
                tc = Tcl_UniCharToTitle((chr)c);
                if (c != lc) {
                        addchr(cv, lc);
                }
                if (c != uc) {
                        addchr(cv, uc);
                }
                if (c != tc && tc != uc) {
                        addchr(cv, tc);
                }
        }

        return cv;
}





static int
before(x, y)
celt x;
celt y;
{

        if (x < y)
                return 1;
        return 0;
}






static struct cvec *
eclass(v, c, cases)
struct vars *v;
celt c;
int cases;
{
        struct cvec *cv;


        if ((v->cflags&010000) && c == 'x') {
                cv = getcvec(v, 4, 0, 0);
                addchr(cv, (chr)'x');
                addchr(cv, (chr)'y');
                if (cases) {
                        addchr(cv, (chr)'X');
                        addchr(cv, (chr)'Y');
                }
                return cv;
        }


        if (cases)
                return allcases(v, c);
        cv = getcvec(v, 1, 0, 0);
        ((void)0);
        addchr(cv, (chr)c);
        return cv;
}






static struct cvec *
cclass(v, startp, endp, cases)
struct vars *v;
chr *startp;
chr *endp;
int cases;
{
    size_t len;
    struct cvec *cv = ((void *)0);
    Tcl_DString ds;
    char *np, **namePtr;
    int i, index;





    static char *classNames[] = {
        "alnum", "alpha", "ascii", "blank", "cntrl", "digit", "graph",
        "lower", "print", "punct", "space", "upper", "xdigit", ((void *)0)
    };

    enum classes {
        CC_ALNUM, CC_ALPHA, CC_ASCII, CC_BLANK, CC_CNTRL, CC_DIGIT, CC_GRAPH,
        CC_LOWER, CC_PRINT, CC_PUNCT, CC_SPACE, CC_UPPER, CC_XDIGIT
    };






    len = endp - startp;
    Tcl_DStringInit(&ds);
    np = Tcl_UniCharToUtfDString(startp, (int)len, &ds);





    if (cases && len == 5 && (strncmp("lower", np, 5) == 0
            || strncmp("upper", np, 5) == 0)) {
        np = "alpha";
    }





    index = -1;
    for (namePtr = classNames, i = 0; *namePtr != ((void *)0); namePtr++, i++) {
        if ((strlen(*namePtr) == len) && (strncmp(*namePtr, np, len) == 0)) {
            index = i;
            break;
        }
    }
    Tcl_DStringInit(&ds);
    if (index == -1) {
        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (4)));
        return ((void *)0);
    }





    switch((enum classes) index) {
        case CC_PRINT:
        case CC_ALNUM:
            cv = getcvec(v, (sizeof(alphaCharTable)/sizeof(chr)),
                    (sizeof(digitRangeTable)/sizeof(crange)) + (sizeof(alphaRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(alphaCharTable)/sizeof(chr)); i++) {
                    addchr(cv, alphaCharTable[i]);
                }
                for (i = 0; i < (sizeof(alphaRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, alphaRangeTable[i].start,
                             alphaRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(digitRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, digitRangeTable[i].start,
                            digitRangeTable[i].end);
                }
            }
            break;
        case CC_ALPHA:
            cv = getcvec(v, (sizeof(alphaCharTable)/sizeof(chr)), (sizeof(alphaRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(alphaRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, alphaRangeTable[i].start,
                             alphaRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(alphaCharTable)/sizeof(chr)); i++) {
                    addchr(cv, alphaCharTable[i]);
                }
            }
            break;
        case CC_ASCII:
            cv = getcvec(v, 0, 1, 0);
            if (cv) {
                addrange(cv, 0, 0x7f);
            }
            break;
        case CC_BLANK:
            cv = getcvec(v, 2, 0, 0);
            addchr(cv, '\t');
            addchr(cv, ' ');
            break;
        case CC_CNTRL:
            cv = getcvec(v, 0, 2, 0);
            addrange(cv, 0x0, 0x1f);
            addrange(cv, 0x7f, 0x9f);
            break;
        case CC_DIGIT:
            cv = getcvec(v, 0, (sizeof(digitRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(digitRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, digitRangeTable[i].start,
                            digitRangeTable[i].end);
                }
            }
            break;
        case CC_PUNCT:
            cv = getcvec(v, (sizeof(punctCharTable)/sizeof(chr)), (sizeof(punctRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(punctRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, punctRangeTable[i].start,
                             punctRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(punctCharTable)/sizeof(chr)); i++) {
                    addchr(cv, punctCharTable[i]);
                }
            }
            break;
        case CC_XDIGIT:
            cv = getcvec(v, 0, (sizeof(digitRangeTable)/sizeof(crange))+2, 0);
            if (cv) {
                addrange(cv, '0', '9');
                addrange(cv, 'a', 'f');
                addrange(cv, 'A', 'F');
            }
            break;
        case CC_SPACE:
            cv = getcvec(v, (sizeof(spaceCharTable)/sizeof(chr)), (sizeof(spaceRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(spaceRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, spaceRangeTable[i].start,
                             spaceRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(spaceCharTable)/sizeof(chr)); i++) {
                    addchr(cv, spaceCharTable[i]);
                }
            }
            break;
        case CC_LOWER:
            cv = getcvec(v, (sizeof(lowerCharTable)/sizeof(chr)), (sizeof(lowerRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(lowerRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, lowerRangeTable[i].start,
                             lowerRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(lowerCharTable)/sizeof(chr)); i++) {
                    addchr(cv, lowerCharTable[i]);
                }
            }
            break;
        case CC_UPPER:
            cv = getcvec(v, (sizeof(upperCharTable)/sizeof(chr)), (sizeof(upperRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(upperRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, upperRangeTable[i].start,
                             upperRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(upperCharTable)/sizeof(chr)); i++) {
                    addchr(cv, upperCharTable[i]);
                }
            }
            break;
        case CC_GRAPH:
            cv = getcvec(v, (sizeof(graphCharTable)/sizeof(chr)), (sizeof(graphRangeTable)/sizeof(crange)), 0);
            if (cv) {
                for (i = 0; i < (sizeof(graphRangeTable)/sizeof(crange)); i++) {
                    addrange(cv, graphRangeTable[i].start,
                             graphRangeTable[i].end);
                }
                for (i = 0; i < (sizeof(graphCharTable)/sizeof(chr)); i++) {
                    addchr(cv, graphCharTable[i]);
                }
            }
            break;
    }
    if (cv == ((void *)0)) {
        ((v)->nexttype = 'e', ((v)->err) ? (v)->err : ((v)->err = (12)));
    }
    return cv;
}







static struct cvec *
allcases(v, pc)
struct vars *v;
pchr pc;
{
        struct cvec *cv;
        chr c = (chr)pc;
        chr lc, uc, tc;

        lc = Tcl_UniCharToLower((chr)c);
        uc = Tcl_UniCharToUpper((chr)c);
        tc = Tcl_UniCharToTitle((chr)c);

        if (tc != uc) {
            cv = getcvec(v, 3, 0, 0);
            addchr(cv, tc);
        } else {
            cv = getcvec(v, 2, 0, 0);
        }
        addchr(cv, lc);
        if (lc != uc) {
            addchr(cv, uc);
        }
        return cv;
}
# 899 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static int
cmp(x, y, len)
const chr *x;
const chr *y;
size_t len;
{
        return memcmp(((void *)(x)), ((void *)(y)), len*sizeof(chr));
}
# 916 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regc_locale.c"
static int
casecmp(x, y, len)
const chr *x;
const chr *y;
size_t len;
{
        size_t i;
        const chr *xp;
        const chr *yp;

        for (xp = x, yp = y, i = len; i > 0; i--)
                if (Tcl_UniCharToLower(*xp++) != Tcl_UniCharToLower(*yp++))
                        return 1;
        return 0;
}
# 2176 "/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/tcl/generic/regcomp.c" 2


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]