Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Testing speedup of TclScanElement(). |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dgp-scan-element |
Files: | files | file ages | folders |
SHA1: |
c649888cfe6c24013ce842fdcb9d1826 |
User & Date: | dgp 2012-02-09 18:38:55 |
Context
2012-02-10
| ||
08:25 | Define dependencies in Makefile. check-in: 1c577fcea4 user: dkf tags: dgp-scan-element | |
2012-02-09
| ||
18:38 | Testing speedup of TclScanElement(). check-in: c649888cfe user: dgp tags: dgp-scan-element | |
15:00 | 3484402 Correct Off-By-One error appending unicode. Thanks to Poor Yorick. Also corrected test for w... check-in: f43b43900f user: dgp tags: core-8-5-branch | |
Changes
Changes to generic/tclParse.c.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | * Contributions from Don Porter, NIST, 2002. (not subject to US copyright) * * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" /* * The following table provides parsing information about each possible 8-bit * character. The table is designed to be referenced with either signed or * unsigned characters, so it has 384 entries. The first 128 entries * correspond to negative character values, the next 256 correspond to * positive character values. The last 128 entries are identical to the first | > | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | * Contributions from Don Porter, NIST, 2002. (not subject to US copyright) * * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #include "tclParse.h" /* * The following table provides parsing information about each possible 8-bit * character. The table is designed to be referenced with either signed or * unsigned characters, so it has 384 entries. The first 128 entries * correspond to negative character values, the next 256 correspond to * positive character values. The last 128 entries are identical to the first |
︙ | ︙ | |||
37 38 39 40 41 42 43 | * open bracket. * TYPE_QUOTE - Character is a double quote. * TYPE_CLOSE_PAREN - Character is a right parenthesis. * TYPE_CLOSE_BRACK - Character is a right square bracket. * TYPE_BRACE - Character is a curly brace (either left or right). */ | < < < < < < < < < < < | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | * open bracket. * TYPE_QUOTE - Character is a double quote. * TYPE_CLOSE_PAREN - Character is a right parenthesis. * TYPE_CLOSE_BRACK - Character is a right square bracket. * TYPE_BRACE - Character is a curly brace (either left or right). */ const char charTypeTable[] = { /* * Negative character values, from -128 to -1: */ TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, TYPE_NORMAL, |
︙ | ︙ |
Added generic/tclParse.h.
> > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* * Minimal set of shared macro definitions and declarations so that multiple * source files can make use of the parsing table in tclParse.c */ #define TYPE_NORMAL 0 #define TYPE_SPACE 0x1 #define TYPE_COMMAND_END 0x2 #define TYPE_SUBS 0x4 #define TYPE_QUOTE 0x8 #define TYPE_CLOSE_PAREN 0x10 #define TYPE_CLOSE_BRACK 0x20 #define TYPE_BRACE 0x40 #define CHAR_TYPE(c) (charTypeTable+128)[(int)(c)] MODULE_SCOPE const char charTypeTable[]; |
Changes to generic/tclUtil.c.
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 | * Copyright (c) 2001 by Kevin B. Kenny. All rights reserved. * * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #include <float.h> #include <math.h> /* * The absolute pathname of the executable in which this Tcl library is * running. */ | > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | * Copyright (c) 2001 by Kevin B. Kenny. All rights reserved. * * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #include "tclParse.h" #include <float.h> #include <math.h> /* * The absolute pathname of the executable in which this Tcl library is * running. */ |
︙ | ︙ | |||
960 961 962 963 964 965 966 967 968 969 970 971 972 973 | forbidNone = 1; #if COMPAT preferBrace = 1; #endif } while (length) { switch (*p) { case '{': #if COMPAT braceCount++; #endif extra++; /* Escape '{' => '\{' */ nestingLevel++; | > | 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 | forbidNone = 1; #if COMPAT preferBrace = 1; #endif } while (length) { if (CHAR_TYPE(*p) != TYPE_NORMAL) { switch (*p) { case '{': #if COMPAT braceCount++; #endif extra++; /* Escape '{' => '\{' */ nestingLevel++; |
︙ | ︙ | |||
1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 | case '\0': if (length == -1) { goto endOfString; } /* TODO: Panic on improper encoding? */ break; } length -= (length > 0); p++; } endOfString: if (nestingLevel != 0) { /* Unbalanced braces! Cannot format with brace quoting. */ | > | 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 | case '\0': if (length == -1) { goto endOfString; } /* TODO: Panic on improper encoding? */ break; } } length -= (length > 0); p++; } endOfString: if (nestingLevel != 0) { /* Unbalanced braces! Cannot format with brace quoting. */ |
︙ | ︙ |