Attachment "bosonly.patch" to
ticket [1178541fff]
added by
tgl
2015-11-06 22:10:40.
0000: 64 69 66 66 20 2d 70 63 64 72 20 73 72 63 2f 67 diff -pcdr src/g
0010: 65 6e 65 72 69 63 2f 72 65 67 63 5f 6c 65 78 2e eneric/regc_lex.
0020: 63 20 62 6f 73 6f 6e 6c 79 66 69 78 2f 67 65 6e c bosonlyfix/gen
0030: 65 72 69 63 2f 72 65 67 63 5f 6c 65 78 2e 63 0a eric/regc_lex.c.
0040: 2a 2a 2a 20 73 72 63 2f 67 65 6e 65 72 69 63 2f *** src/generic/
0050: 72 65 67 63 5f 6c 65 78 2e 63 09 4d 6f 6e 20 53 regc_lex.c.Mon S
0060: 65 70 20 32 31 20 31 38 3a 31 32 3a 32 34 20 32 ep 21 18:12:24 2
0070: 30 31 35 0a 2d 2d 2d 20 62 6f 73 6f 6e 6c 79 66 015.--- bosonlyf
0080: 69 78 2f 67 65 6e 65 72 69 63 2f 72 65 67 63 5f ix/generic/regc_
0090: 6c 65 78 2e 63 09 46 72 69 20 4e 6f 76 20 20 36 lex.c.Fri Nov 6
00a0: 20 31 36 3a 35 39 3a 33 39 20 32 30 31 35 0a 2a 16:59:39 2015.*
00b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 6e ************** n
00c0: 65 78 74 28 0a 2a 2a 2a 20 33 30 39 2c 33 32 33 ext(.*** 309,323
00d0: 20 2a 2a 2a 2a 0a 20 20 20 20 20 20 76 2d 3e 6c ****. v->l
00e0: 61 73 74 74 79 70 65 20 3d 20 76 2d 3e 6e 65 78 asttype = v->nex
00f0: 74 74 79 70 65 3b 0a 20 20 0a 20 20 20 20 20 20 ttype;. .
0100: 2f 2a 0a 2d 20 20 20 20 20 20 2a 20 52 45 47 5f /*.- * REG_
0110: 42 4f 53 4f 4e 4c 59 0a 2d 20 20 20 20 20 20 2a BOSONLY.- *
0120: 2f 0a 2d 20 0a 2d 20 20 20 20 20 69 66 20 28 76 /.- .- if (v
0130: 2d 3e 6e 65 78 74 74 79 70 65 20 3d 3d 20 45 4d ->nexttype == EM
0140: 50 54 59 20 26 26 20 28 76 2d 3e 63 66 6c 61 67 PTY && (v->cflag
0150: 73 26 52 45 47 5f 42 4f 53 4f 4e 4c 59 29 29 20 s®_BOSONLY))
0160: 7b 0a 2d 20 09 2f 2a 20 61 74 20 73 74 61 72 74 {.- ./* at start
0170: 20 6f 66 20 61 20 52 45 47 5f 42 4f 53 4f 4e 4c of a REG_BOSONL
0180: 59 20 52 45 20 2a 2f 0a 2d 20 09 52 45 54 56 28 Y RE */.- .RETV(
0190: 53 42 45 47 49 4e 2c 20 30 29 3b 09 2f 2a 20 73 SBEGIN, 0);./* s
01a0: 61 6d 65 20 61 73 20 5c 41 20 2a 2f 0a 2d 20 20 ame as \A */.-
01b0: 20 20 20 7d 0a 2d 20 0a 2d 20 20 20 20 20 2f 2a }.- .- /*
01c0: 0a 20 20 20 20 20 20 20 2a 20 49 66 20 77 65 27 . * If we'
01d0: 72 65 20 6e 65 73 74 65 64 20 61 6e 64 20 77 65 re nested and we
01e0: 27 76 65 20 68 69 74 20 65 6e 64 2c 20 72 65 74 've hit end, ret
01f0: 75 72 6e 20 74 6f 20 6f 75 74 65 72 20 6c 65 76 urn to outer lev
0200: 65 6c 2e 0a 20 20 20 20 20 20 20 2a 2f 0a 20 20 el.. */.
0210: 0a 2d 2d 2d 20 33 30 39 2c 33 31 34 20 2d 2d 2d .--- 309,314 ---
0220: 2d 0a 64 69 66 66 20 2d 70 63 64 72 20 73 72 63 -.diff -pcdr src
0230: 2f 67 65 6e 65 72 69 63 2f 72 65 67 63 5f 6e 66 /generic/regc_nf
0240: 61 2e 63 20 62 6f 73 6f 6e 6c 79 66 69 78 2f 67 a.c bosonlyfix/g
0250: 65 6e 65 72 69 63 2f 72 65 67 63 5f 6e 66 61 2e eneric/regc_nfa.
0260: 63 0a 2a 2a 2a 20 73 72 63 2f 67 65 6e 65 72 69 c.*** src/generi
0270: 63 2f 72 65 67 63 5f 6e 66 61 2e 63 09 54 75 65 c/regc_nfa.c.Tue
0280: 20 4f 63 74 20 32 37 20 31 34 3a 33 39 3a 31 37 Oct 27 14:39:17
0290: 20 32 30 31 35 0a 2d 2d 2d 20 62 6f 73 6f 6e 6c 2015.--- bosonl
02a0: 79 66 69 78 2f 67 65 6e 65 72 69 63 2f 72 65 67 yfix/generic/reg
02b0: 63 5f 6e 66 61 2e 63 09 46 72 69 20 4e 6f 76 20 c_nfa.c.Fri Nov
02c0: 20 36 20 31 36 3a 35 38 3a 34 37 20 32 30 31 35 6 16:58:47 2015
02d0: 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a .***************
02e0: 20 6e 65 77 6e 66 61 28 0a 2a 2a 2a 20 37 34 2c newnfa(.*** 74,
02f0: 38 32 20 2a 2a 2a 2a 0a 20 20 09 66 72 65 65 6e 82 ****. .freen
0300: 66 61 28 6e 66 61 29 3b 0a 20 20 09 72 65 74 75 fa(nfa);. .retu
0310: 72 6e 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 20 7d rn NULL;. }
0320: 0a 21 20 20 20 20 20 72 61 69 6e 62 6f 77 28 6e .! rainbow(n
0330: 66 61 2c 20 6e 66 61 2d 3e 63 6d 2c 20 50 4c 41 fa, nfa->cm, PLA
0340: 49 4e 2c 20 43 4f 4c 4f 52 4c 45 53 53 2c 20 6e IN, COLORLESS, n
0350: 66 61 2d 3e 70 72 65 2c 20 6e 66 61 2d 3e 69 6e fa->pre, nfa->in
0360: 69 74 29 3b 0a 20 20 20 20 20 20 6e 65 77 61 72 it);. newar
0370: 63 28 6e 66 61 2c 20 27 5e 27 2c 20 31 2c 20 6e c(nfa, '^', 1, n
0380: 66 61 2d 3e 70 72 65 2c 20 6e 66 61 2d 3e 69 6e fa->pre, nfa->in
0390: 69 74 29 3b 0a 20 20 20 20 20 20 6e 65 77 61 72 it);. newar
03a0: 63 28 6e 66 61 2c 20 27 5e 27 2c 20 30 2c 20 6e c(nfa, '^', 0, n
03b0: 66 61 2d 3e 70 72 65 2c 20 6e 66 61 2d 3e 69 6e fa->pre, nfa->in
03c0: 69 74 29 3b 0a 20 20 20 20 20 20 72 61 69 6e 62 it);. rainb
03d0: 6f 77 28 6e 66 61 2c 20 6e 66 61 2d 3e 63 6d 2c ow(nfa, nfa->cm,
03e0: 20 50 4c 41 49 4e 2c 20 43 4f 4c 4f 52 4c 45 53 PLAIN, COLORLES
03f0: 53 2c 20 6e 66 61 2d 3e 66 69 6e 61 6c 2c 20 6e S, nfa->final, n
0400: 66 61 2d 3e 70 6f 73 74 29 3b 0a 20 20 20 20 20 fa->post);.
0410: 20 6e 65 77 61 72 63 28 6e 66 61 2c 20 27 24 27 newarc(nfa, '$'
0420: 2c 20 31 2c 20 6e 66 61 2d 3e 66 69 6e 61 6c 2c , 1, nfa->final,
0430: 20 6e 66 61 2d 3e 70 6f 73 74 29 3b 0a 20 20 20 nfa->post);.
0440: 20 20 20 6e 65 77 61 72 63 28 6e 66 61 2c 20 27 newarc(nfa, '
0450: 24 27 2c 20 30 2c 20 6e 66 61 2d 3e 66 69 6e 61 $', 0, nfa->fina
0460: 6c 2c 20 6e 66 61 2d 3e 70 6f 73 74 29 3b 0a 2d l, nfa->post);.-
0470: 2d 2d 20 37 34 2c 39 39 20 2d 2d 2d 2d 0a 20 20 -- 74,99 ----.
0480: 09 66 72 65 65 6e 66 61 28 6e 66 61 29 3b 0a 20 .freenfa(nfa);.
0490: 20 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 20 .return NULL;.
04a0: 20 20 20 20 20 7d 0a 21 20 0a 21 20 20 20 20 20 }.! .!
04b0: 2f 2a 0a 21 20 20 20 20 20 20 2a 20 70 72 65 20 /*.! * pre
04c0: 74 6f 20 69 6e 69 74 20 61 72 63 73 20 6d 61 74 to init arcs mat
04d0: 63 68 20 74 68 65 20 63 68 61 72 61 63 74 65 72 ch the character
04e0: 20 62 65 66 6f 72 65 20 74 68 65 20 6d 61 74 63 before the matc
04f0: 68 20 70 72 6f 70 65 72 2e 0a 21 20 20 20 20 20 h proper..!
0500: 20 2a 20 4f 72 64 69 6e 61 72 69 6c 79 20 74 68 * Ordinarily th
0510: 61 74 20 63 61 6e 20 62 65 20 61 6e 79 74 68 69 at can be anythi
0520: 6e 67 20 69 6e 63 6c 75 64 69 6e 67 20 42 4f 53 ng including BOS
0530: 2f 42 4f 4c 2e 20 20 28 49 66 20 74 68 65 20 72 /BOL. (If the r
0540: 65 67 65 78 70 0a 21 20 20 20 20 20 20 2a 20 63 egexp.! * c
0550: 6f 6e 73 74 72 61 69 6e 73 20 74 68 65 20 70 72 onstrains the pr
0560: 65 63 65 64 69 6e 67 20 63 68 61 72 61 63 74 65 eceding characte
0570: 72 2c 20 77 65 27 6c 6c 20 64 69 73 63 6f 76 65 r, we'll discove
0580: 72 20 74 68 61 74 20 61 6e 64 20 72 65 6d 6f 76 r that and remov
0590: 65 20 61 72 63 73 0a 21 20 20 20 20 20 20 2a 20 e arcs.! *
05a0: 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 20 64 as appropriate d
05b0: 75 72 69 6e 67 20 4e 46 41 20 6f 70 74 69 6d 69 uring NFA optimi
05c0: 7a 61 74 69 6f 6e 2e 29 20 20 48 6f 77 65 76 65 zation.) Howeve
05d0: 72 2c 20 52 45 47 5f 42 4f 53 4f 4e 4c 59 20 74 r, REG_BOSONLY t
05e0: 65 6c 6c 73 20 75 73 0a 21 20 20 20 20 20 20 2a ells us.! *
05f0: 20 74 6f 20 6f 6e 6c 79 20 61 6c 6c 6f 77 20 42 to only allow B
0600: 4f 53 2f 42 4f 4c 2c 20 69 66 20 74 68 69 73 20 OS/BOL, if this
0610: 69 73 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c is the top level
0620: 20 4e 46 41 2e 0a 21 20 20 20 20 20 20 2a 2f 0a NFA..! */.
0630: 21 20 20 20 20 20 69 66 20 28 70 61 72 65 6e 74 ! if (parent
0640: 20 3d 3d 20 4e 55 4c 4c 20 26 26 20 28 76 2d 3e == NULL && (v->
0650: 63 66 6c 61 67 73 20 26 20 52 45 47 5f 42 4f 53 cflags & REG_BOS
0660: 4f 4e 4c 59 29 29 20 7b 0a 21 20 09 2f 2a 20 42 ONLY)) {.! ./* B
0670: 4f 53 4f 4e 4c 59 2c 20 64 6f 20 6e 6f 74 20 69 OSONLY, do not i
0680: 6e 73 65 72 74 20 72 61 69 6e 62 6f 77 20 2a 2f nsert rainbow */
0690: 0a 21 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a .! } else {.
06a0: 21 20 09 72 61 69 6e 62 6f 77 28 6e 66 61 2c 20 ! .rainbow(nfa,
06b0: 6e 66 61 2d 3e 63 6d 2c 20 50 4c 41 49 4e 2c 20 nfa->cm, PLAIN,
06c0: 43 4f 4c 4f 52 4c 45 53 53 2c 20 6e 66 61 2d 3e COLORLESS, nfa->
06d0: 70 72 65 2c 20 6e 66 61 2d 3e 69 6e 69 74 29 3b pre, nfa->init);
06e0: 0a 21 20 20 20 20 20 7d 0a 20 20 20 20 20 20 6e .! }. n
06f0: 65 77 61 72 63 28 6e 66 61 2c 20 27 5e 27 2c 20 ewarc(nfa, '^',
0700: 31 2c 20 6e 66 61 2d 3e 70 72 65 2c 20 6e 66 61 1, nfa->pre, nfa
0710: 2d 3e 69 6e 69 74 29 3b 0a 20 20 20 20 20 20 6e ->init);. n
0720: 65 77 61 72 63 28 6e 66 61 2c 20 27 5e 27 2c 20 ewarc(nfa, '^',
0730: 30 2c 20 6e 66 61 2d 3e 70 72 65 2c 20 6e 66 61 0, nfa->pre, nfa
0740: 2d 3e 69 6e 69 74 29 3b 0a 2b 20 0a 2b 20 20 20 ->init);.+ .+
0750: 20 20 2f 2a 0a 2b 20 20 20 20 20 20 2a 20 53 69 /*.+ * Si
0760: 6d 69 6c 61 72 6c 79 2c 20 66 69 6e 61 6c 20 74 milarly, final t
0770: 6f 20 70 6f 73 74 20 61 72 63 73 20 6d 61 74 63 o post arcs matc
0780: 68 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 h the character
0790: 61 66 74 65 72 20 74 68 65 20 6d 61 74 63 68 0a after the match.
07a0: 2b 20 20 20 20 20 20 2a 20 70 72 6f 70 65 72 2c + * proper,
07b0: 20 61 6e 64 20 69 6e 69 74 69 61 6c 6c 79 20 74 and initially t
07c0: 68 61 74 20 63 61 6e 20 62 65 20 61 6e 79 20 63 hat can be any c
07d0: 68 61 72 61 63 74 65 72 20 6f 72 20 45 4f 53 2f haracter or EOS/
07e0: 45 4f 4c 2e 0a 2b 20 20 20 20 20 20 2a 2f 0a 20 EOL..+ */.
07f0: 20 20 20 20 20 72 61 69 6e 62 6f 77 28 6e 66 61 rainbow(nfa
0800: 2c 20 6e 66 61 2d 3e 63 6d 2c 20 50 4c 41 49 4e , nfa->cm, PLAIN
0810: 2c 20 43 4f 4c 4f 52 4c 45 53 53 2c 20 6e 66 61 , COLORLESS, nfa
0820: 2d 3e 66 69 6e 61 6c 2c 20 6e 66 61 2d 3e 70 6f ->final, nfa->po
0830: 73 74 29 3b 0a 20 20 20 20 20 20 6e 65 77 61 72 st);. newar
0840: 63 28 6e 66 61 2c 20 27 24 27 2c 20 31 2c 20 6e c(nfa, '$', 1, n
0850: 66 61 2d 3e 66 69 6e 61 6c 2c 20 6e 66 61 2d 3e fa->final, nfa->
0860: 70 6f 73 74 29 3b 0a 20 20 20 20 20 20 6e 65 77 post);. new
0870: 61 72 63 28 6e 66 61 2c 20 27 24 27 2c 20 30 2c arc(nfa, '$', 0,
0880: 20 6e 66 61 2d 3e 66 69 6e 61 6c 2c 20 6e 66 61 nfa->final, nfa
0890: 2d 3e 70 6f 73 74 29 3b 0a 64 69 66 66 20 2d 70 ->post);.diff -p
08a0: 63 64 72 20 73 72 63 2f 67 65 6e 65 72 69 63 2f cdr src/generic/
08b0: 72 65 67 65 78 2e 68 20 62 6f 73 6f 6e 6c 79 66 regex.h bosonlyf
08c0: 69 78 2f 67 65 6e 65 72 69 63 2f 72 65 67 65 78 ix/generic/regex
08d0: 2e 68 0a 2a 2a 2a 20 73 72 63 2f 67 65 6e 65 72 .h.*** src/gener
08e0: 69 63 2f 72 65 67 65 78 2e 68 09 54 75 65 20 4f ic/regex.h.Tue O
08f0: 63 74 20 32 37 20 31 34 3a 33 39 3a 31 37 20 32 ct 27 14:39:17 2
0900: 30 31 35 0a 2d 2d 2d 20 62 6f 73 6f 6e 6c 79 66 015.--- bosonlyf
0910: 69 78 2f 67 65 6e 65 72 69 63 2f 72 65 67 65 78 ix/generic/regex
0920: 2e 68 09 46 72 69 20 4e 6f 76 20 20 36 20 31 36 .h.Fri Nov 6 16
0930: 3a 34 34 3a 35 37 20 32 30 31 35 0a 2a 2a 2a 2a :44:57 2015.****
0940: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 74 79 70 65 *********** type
0950: 64 65 66 20 73 74 72 75 63 74 20 7b 0a 2a 2a 2a def struct {.***
0960: 20 32 32 30 2c 32 32 36 20 2a 2a 2a 2a 0a 20 20 220,226 ****.
0970: 23 64 65 66 69 6e 65 09 52 45 47 5f 4e 45 57 4c #define.REG_NEWL
0980: 49 4e 45 09 30 30 30 33 30 30 09 2f 2a 20 6e 65 INE.000300./* ne
0990: 77 6c 69 6e 65 73 20 61 72 65 20 6c 69 6e 65 20 wlines are line
09a0: 74 65 72 6d 69 6e 61 74 6f 72 73 20 2a 2f 0a 20 terminators */.
09b0: 20 23 64 65 66 69 6e 65 09 52 45 47 5f 50 45 4e #define.REG_PEN
09c0: 44 09 30 30 30 34 30 30 09 2f 2a 20 75 67 68 20 D.000400./* ugh
09d0: 2d 2d 20 62 61 63 6b 77 61 72 64 2d 63 6f 6d 70 -- backward-comp
09e0: 61 74 69 62 69 6c 69 74 79 20 68 61 63 6b 20 2a atibility hack *
09f0: 2f 0a 20 20 23 64 65 66 69 6e 65 09 52 45 47 5f /. #define.REG_
0a00: 45 58 50 45 43 54 09 30 30 31 30 30 30 09 2f 2a EXPECT.001000./*
0a10: 20 72 65 70 6f 72 74 20 64 65 74 61 69 6c 73 20 report details
0a20: 6f 6e 20 70 61 72 74 69 61 6c 2f 6c 69 6d 69 74 on partial/limit
0a30: 65 64 20 6d 61 74 63 68 65 73 20 2a 2f 0a 21 20 ed matches */.!
0a40: 23 64 65 66 69 6e 65 09 52 45 47 5f 42 4f 53 4f #define.REG_BOSO
0a50: 4e 4c 59 09 30 30 32 30 30 30 09 2f 2a 20 74 65 NLY.002000./* te
0a60: 6d 70 6f 72 61 72 79 20 6b 6c 75 64 67 65 20 66 mporary kludge f
0a70: 6f 72 20 42 4f 53 2d 6f 6e 6c 79 20 6d 61 74 63 or BOS-only matc
0a80: 68 65 73 20 2a 2f 0a 20 20 23 64 65 66 69 6e 65 hes */. #define
0a90: 09 52 45 47 5f 44 55 4d 50 09 30 30 34 30 30 30 .REG_DUMP.004000
0aa0: 09 2f 2a 20 6e 6f 6e 65 20 6f 66 20 79 6f 75 72 ./* none of your
0ab0: 20 62 75 73 69 6e 65 73 73 20 3a 2d 29 20 2a 2f business :-) */
0ac0: 0a 20 20 23 64 65 66 69 6e 65 09 52 45 47 5f 46 . #define.REG_F
0ad0: 41 4b 45 09 30 31 30 30 30 30 09 2f 2a 20 6e 6f AKE.010000./* no
0ae0: 6e 65 20 6f 66 20 79 6f 75 72 20 62 75 73 69 6e ne of your busin
0af0: 65 73 73 20 3a 2d 29 20 2a 2f 0a 20 20 23 64 65 ess :-) */. #de
0b00: 66 69 6e 65 09 52 45 47 5f 50 52 4f 47 52 45 53 fine.REG_PROGRES
0b10: 53 09 30 32 30 30 30 30 09 2f 2a 20 6e 6f 6e 65 S.020000./* none
0b20: 20 6f 66 20 79 6f 75 72 20 62 75 73 69 6e 65 73 of your busines
0b30: 73 20 3a 2d 29 20 2a 2f 0a 2d 2d 2d 20 32 32 30 s :-) */.--- 220
0b40: 2c 32 32 36 20 2d 2d 2d 2d 0a 20 20 23 64 65 66 ,226 ----. #def
0b50: 69 6e 65 09 52 45 47 5f 4e 45 57 4c 49 4e 45 09 ine.REG_NEWLINE.
0b60: 30 30 30 33 30 30 09 2f 2a 20 6e 65 77 6c 69 6e 000300./* newlin
0b70: 65 73 20 61 72 65 20 6c 69 6e 65 20 74 65 72 6d es are line term
0b80: 69 6e 61 74 6f 72 73 20 2a 2f 0a 20 20 23 64 65 inators */. #de
0b90: 66 69 6e 65 09 52 45 47 5f 50 45 4e 44 09 30 30 fine.REG_PEND.00
0ba0: 30 34 30 30 09 2f 2a 20 75 67 68 20 2d 2d 20 62 0400./* ugh -- b
0bb0: 61 63 6b 77 61 72 64 2d 63 6f 6d 70 61 74 69 62 ackward-compatib
0bc0: 69 6c 69 74 79 20 68 61 63 6b 20 2a 2f 0a 20 20 ility hack */.
0bd0: 23 64 65 66 69 6e 65 09 52 45 47 5f 45 58 50 45 #define.REG_EXPE
0be0: 43 54 09 30 30 31 30 30 30 09 2f 2a 20 72 65 70 CT.001000./* rep
0bf0: 6f 72 74 20 64 65 74 61 69 6c 73 20 6f 6e 20 70 ort details on p
0c00: 61 72 74 69 61 6c 2f 6c 69 6d 69 74 65 64 20 6d artial/limited m
0c10: 61 74 63 68 65 73 20 2a 2f 0a 21 20 23 64 65 66 atches */.! #def
0c20: 69 6e 65 09 52 45 47 5f 42 4f 53 4f 4e 4c 59 09 ine.REG_BOSONLY.
0c30: 30 30 32 30 30 30 09 2f 2a 20 6d 61 74 63 68 20 002000./* match
0c40: 6f 6e 6c 79 20 61 74 20 73 74 72 69 6e 67 20 73 only at string s
0c50: 74 61 72 74 20 28 6c 69 6b 65 20 5c 41 29 20 2a tart (like \A) *
0c60: 2f 0a 20 20 23 64 65 66 69 6e 65 09 52 45 47 5f /. #define.REG_
0c70: 44 55 4d 50 09 30 30 34 30 30 30 09 2f 2a 20 6e DUMP.004000./* n
0c80: 6f 6e 65 20 6f 66 20 79 6f 75 72 20 62 75 73 69 one of your busi
0c90: 6e 65 73 73 20 3a 2d 29 20 2a 2f 0a 20 20 23 64 ness :-) */. #d
0ca0: 65 66 69 6e 65 09 52 45 47 5f 46 41 4b 45 09 30 efine.REG_FAKE.0
0cb0: 31 30 30 30 30 09 2f 2a 20 6e 6f 6e 65 20 6f 66 10000./* none of
0cc0: 20 79 6f 75 72 20 62 75 73 69 6e 65 73 73 20 3a your business :
0cd0: 2d 29 20 2a 2f 0a 20 20 23 64 65 66 69 6e 65 09 -) */. #define.
0ce0: 52 45 47 5f 50 52 4f 47 52 45 53 53 09 30 32 30 REG_PROGRESS.020
0cf0: 30 30 30 09 2f 2a 20 6e 6f 6e 65 20 6f 66 20 79 000./* none of y
0d00: 6f 75 72 20 62 75 73 69 6e 65 73 73 20 3a 2d 29 our business :-)
0d10: 20 2a 2f 0a 64 69 66 66 20 2d 70 63 64 72 20 73 */.diff -pcdr s
0d20: 72 63 2f 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e rc/generic/tclIn
0d30: 74 2e 68 20 62 6f 73 6f 6e 6c 79 66 69 78 2f 67 t.h bosonlyfix/g
0d40: 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e 68 0a eneric/tclInt.h.
0d50: 2a 2a 2a 20 73 72 63 2f 67 65 6e 65 72 69 63 2f *** src/generic/
0d60: 74 63 6c 49 6e 74 2e 68 09 46 72 69 20 4e 6f 76 tclInt.h.Fri Nov
0d70: 20 20 36 20 31 32 3a 32 34 3a 33 34 20 32 30 31 6 12:24:34 201
0d80: 35 0a 2d 2d 2d 20 62 6f 73 6f 6e 6c 79 66 69 78 5.--- bosonlyfix
0d90: 2f 67 65 6e 65 72 69 63 2f 74 63 6c 49 6e 74 2e /generic/tclInt.
0da0: 68 09 46 72 69 20 4e 6f 76 20 20 36 20 31 36 3a h.Fri Nov 6 16:
0db0: 34 33 3a 35 30 20 32 30 31 35 0a 2a 2a 2a 2a 2a 43:50 2015.*****
0dc0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 74 79 70 65 64 ********** typed
0dd0: 65 66 20 76 6f 69 64 20 2a 2a 54 63 6c 48 61 6e ef void **TclHan
0de0: 64 6c 65 3b 0a 2a 2a 2a 20 31 33 33 31 2c 31 33 dle;.*** 1331,13
0df0: 33 38 20 2a 2a 2a 2a 0a 20 20 20 2a 2d 2d 2d 2d 38 ****. *----
0e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0e10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0e20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0e30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 20 ------------.
0e40: 2a 2f 0a 20 20 0a 21 20 23 64 65 66 69 6e 65 20 */. .! #define
0e50: 54 43 4c 5f 52 45 47 5f 42 4f 53 4f 4e 4c 59 20 TCL_REG_BOSONLY
0e60: 30 30 32 30 30 30 09 2f 2a 20 50 72 65 70 65 6e 002000./* Prepen
0e70: 64 20 5c 41 20 74 6f 20 70 61 74 74 65 72 6e 20 d \A to pattern
0e80: 73 6f 20 69 74 20 6f 6e 6c 79 20 6d 61 74 63 68 so it only match
0e90: 65 73 20 61 74 0a 21 20 09 09 09 09 20 2a 20 74 es at.! .... * t
0ea0: 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 he beginning of
0eb0: 74 68 65 20 73 74 72 69 6e 67 2e 20 2a 2f 0a 20 the string. */.
0ec0: 20 0a 20 20 2f 2a 0a 20 20 20 2a 20 54 68 65 73 . /*. * Thes
0ed0: 65 20 61 72 65 20 61 20 74 68 69 6e 20 6c 61 79 e are a thin lay
0ee0: 65 72 20 6f 76 65 72 20 54 63 6c 70 54 68 72 65 er over TclpThre
0ef0: 61 64 4b 65 79 44 61 74 61 47 65 74 20 61 6e 64 adKeyDataGet and
0f00: 20 54 63 6c 70 54 68 72 65 61 64 4b 65 79 44 61 TclpThreadKeyDa
0f10: 74 61 53 65 74 0a 2d 2d 2d 20 31 33 33 31 2c 31 taSet.--- 1331,1
0f20: 33 33 38 20 2d 2d 2d 2d 0a 20 20 20 2a 2d 2d 2d 338 ----. *---
0f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 -------------.
0f70: 20 2a 2f 0a 20 20 0a 21 20 23 64 65 66 69 6e 65 */. .! #define
0f80: 20 54 43 4c 5f 52 45 47 5f 42 4f 53 4f 4e 4c 59 TCL_REG_BOSONLY
0f90: 20 30 30 32 30 30 30 09 2f 2a 20 41 6c 6c 6f 77 002000./* Allow
0fa0: 20 70 61 74 74 65 72 6e 20 74 6f 20 6d 61 74 63 pattern to matc
0fb0: 68 20 6f 6e 6c 79 20 61 74 20 74 68 65 0a 21 20 h only at the.!
0fc0: 09 09 09 09 20 2a 20 62 65 67 69 6e 6e 69 6e 67 .... * beginning
0fd0: 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 20 28 of the string (
0fe0: 69 6d 70 6c 69 63 69 74 20 5c 41 29 2e 20 2a 2f implicit \A). */
0ff0: 0a 20 20 0a 20 20 2f 2a 0a 20 20 20 2a 20 54 68 . . /*. * Th
1000: 65 73 65 20 61 72 65 20 61 20 74 68 69 6e 20 6c ese are a thin l
1010: 61 79 65 72 20 6f 76 65 72 20 54 63 6c 70 54 68 ayer over TclpTh
1020: 72 65 61 64 4b 65 79 44 61 74 61 47 65 74 20 61 readKeyDataGet a
1030: 6e 64 20 54 63 6c 70 54 68 72 65 61 64 4b 65 79 nd TclpThreadKey
1040: 44 61 74 61 53 65 74 0a 64 69 66 66 20 2d 70 63 DataSet.diff -pc
1050: 64 72 20 73 72 63 2f 74 65 73 74 73 2f 72 65 67 dr src/tests/reg
1060: 2e 74 65 73 74 20 62 6f 73 6f 6e 6c 79 66 69 78 .test bosonlyfix
1070: 2f 74 65 73 74 73 2f 72 65 67 2e 74 65 73 74 0a /tests/reg.test.
1080: 2a 2a 2a 20 73 72 63 2f 74 65 73 74 73 2f 72 65 *** src/tests/re
1090: 67 2e 74 65 73 74 09 54 75 65 20 4f 63 74 20 32 g.test.Tue Oct 2
10a0: 37 20 31 34 3a 33 39 3a 31 37 20 32 30 31 35 0a 7 14:39:17 2015.
10b0: 2d 2d 2d 20 62 6f 73 6f 6e 6c 79 66 69 78 2f 74 --- bosonlyfix/t
10c0: 65 73 74 73 2f 72 65 67 2e 74 65 73 74 09 46 72 ests/reg.test.Fr
10d0: 69 20 4e 6f 76 20 20 36 20 31 36 3a 34 37 3a 31 i Nov 6 16:47:1
10e0: 32 20 32 30 31 35 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2 2015.*********
10f0: 2a 2a 2a 2a 2a 2a 20 65 78 70 65 63 74 4d 61 74 ****** expectMat
1100: 63 68 09 33 30 2e 34 20 26 09 09 61 2a 62 09 61 ch.30.4 &..a*b.a
1110: 61 62 09 61 61 62 0a 2a 2a 2a 20 39 34 30 2c 39 ab.aab.*** 940,9
1120: 35 30 20 2a 2a 2a 2a 0a 20 20 65 78 70 65 63 74 50 ****. expect
1130: 4d 61 74 63 68 09 33 30 2e 35 20 26 09 09 5e 61 Match.30.5 &..^a
1140: 2a 62 09 61 61 61 61 62 09 61 61 61 61 62 0a 20 *b.aaaab.aaaab.
1150: 20 65 78 70 65 63 74 4d 61 74 63 68 09 33 30 2e expectMatch.30.
1160: 36 20 26 4d 09 09 7b 5b 30 2d 36 5d 5b 31 2d 32 6 &M..{[0-6][1-2
1170: 5d 5b 30 2d 33 5d 5b 30 2d 36 5d 5b 31 2d 36 5d ][0-3][0-6][1-6]
1180: 5b 30 2d 36 5d 7d 20 5c 0a 20 20 09 22 30 31 30 [0-6]} \. ."010
1190: 30 31 30 22 20 30 31 30 30 31 30 0a 21 20 23 20 010" 010010.! #
11a0: 74 65 6d 70 6f 72 61 72 79 20 52 45 47 5f 42 4f temporary REG_BO
11b0: 53 4f 4e 4c 59 20 6b 6c 75 64 67 65 0a 20 20 65 SONLY kludge. e
11c0: 78 70 65 63 74 4d 61 74 63 68 09 33 30 2e 37 20 xpectMatch.30.7
11d0: 73 09 09 61 62 63 09 61 62 63 64 09 61 62 63 0a s..abc.abcd.abc.
11e0: 20 20 65 78 70 65 63 74 4e 6f 6d 61 74 63 68 09 expectNomatch.
11f0: 33 30 2e 38 20 73 09 09 61 62 63 09 78 61 62 63 30.8 s..abc.xabc
1200: 64 0a 20 20 23 20 62 61 63 6b 20 74 6f 20 6e 6f d. # back to no
1210: 72 6d 61 6c 20 73 74 75 66 66 0a 21 20 65 78 70 rmal stuff.! exp
1220: 65 63 74 4d 61 74 63 68 09 33 30 2e 39 20 48 4c ectMatch.30.9 HL
1230: 50 09 7b 28 3f 6e 29 5e 28 3f 21 5b 74 23 5d 29 P.{(?n)^(?![t#])
1240: 5c 53 2b 7d 20 5c 0a 20 20 09 22 74 6b 5c 6e 5c \S+} \. ."tk\n\
1250: 6e 23 5c 6e 23 5c 6e 69 74 30 22 09 69 74 30 0a n#\n#\nit0".it0.
1260: 20 20 0a 20 20 0a 2d 2d 2d 20 39 34 30 2c 39 35 . .--- 940,95
1270: 31 20 2d 2d 2d 2d 0a 20 20 65 78 70 65 63 74 4d 1 ----. expectM
1280: 61 74 63 68 09 33 30 2e 35 20 26 09 09 5e 61 2a atch.30.5 &..^a*
1290: 62 09 61 61 61 61 62 09 61 61 61 61 62 0a 20 20 b.aaaab.aaaab.
12a0: 65 78 70 65 63 74 4d 61 74 63 68 09 33 30 2e 36 expectMatch.30.6
12b0: 20 26 4d 09 09 7b 5b 30 2d 36 5d 5b 31 2d 32 5d &M..{[0-6][1-2]
12c0: 5b 30 2d 33 5d 5b 30 2d 36 5d 5b 31 2d 36 5d 5b [0-3][0-6][1-6][
12d0: 30 2d 36 5d 7d 20 5c 0a 20 20 09 22 30 31 30 30 0-6]} \. ."0100
12e0: 31 30 22 20 30 31 30 30 31 30 0a 21 20 23 20 52 10" 010010.! # R
12f0: 45 47 5f 42 4f 53 4f 4e 4c 59 20 28 6b 6c 75 64 EG_BOSONLY (klud
1300: 67 65 20 66 6f 72 20 45 78 70 65 63 74 2c 20 6e ge for Expect, n
1310: 6f 74 20 72 65 61 6c 6c 79 20 70 75 62 6c 69 63 ot really public
1320: 20 6f 74 68 65 72 77 69 73 65 29 0a 20 20 65 78 otherwise). ex
1330: 70 65 63 74 4d 61 74 63 68 09 33 30 2e 37 20 73 pectMatch.30.7 s
1340: 09 09 61 62 63 09 61 62 63 64 09 61 62 63 0a 20 ..abc.abcd.abc.
1350: 20 65 78 70 65 63 74 4e 6f 6d 61 74 63 68 09 33 expectNomatch.3
1360: 30 2e 38 20 73 09 09 61 62 63 09 78 61 62 63 64 0.8 s..abc.xabcd
1370: 0a 2b 20 65 78 70 65 63 74 4e 6f 6d 61 74 63 68 .+ expectNomatch
1380: 09 33 30 2e 39 20 73 09 09 61 62 63 7c 64 65 66 .30.9 s..abc|def
1390: 09 78 64 65 66 0a 20 20 23 20 62 61 63 6b 20 74 .xdef. # back t
13a0: 6f 20 6e 6f 72 6d 61 6c 20 73 74 75 66 66 0a 21 o normal stuff.!
13b0: 20 65 78 70 65 63 74 4d 61 74 63 68 09 33 30 2e expectMatch.30.
13c0: 31 30 20 48 4c 50 09 7b 28 3f 6e 29 5e 28 3f 21 10 HLP.{(?n)^(?!
13d0: 5b 74 23 5d 29 5c 53 2b 7d 20 5c 0a 20 20 09 22 [t#])\S+} \. ."
13e0: 74 6b 5c 6e 5c 6e 23 5c 6e 23 5c 6e 69 74 30 22 tk\n\n#\n#\nit0"
13f0: 09 69 74 30 0a 20 20 0a 20 20 0a .it0. . .