Fossil SCM

Replace the TH1 interpreter with Jim Tcl.

steveb 2011-11-04 21:57 UTC trunk
Commit 863e789e83b45edd95cb7049db2f81d82254879b
+1 -4
--- a/auto.def
+++ b/auto.def
@@ -28,7 +28,4 @@
2828
if {$tclpath ne "1"} {
2929
I$tclpath/include
3030
tclpath/lib
31
- } foreach tlib {tcl8.6 tcl8.5 tcl notfound} {
32
- if {$tlib=="notfound"$tlib$tlib
33
-}
34
-
31
+ }
--- a/auto.def
+++ b/auto.def
@@ -28,7 +28,4 @@
28 if {$tclpath ne "1"} {
29 I$tclpath/include
30 tclpath/lib
31 } foreach tlib {tcl8.6 tcl8.5 tcl notfound} {
32 if {$tlib=="notfound"$tlib$tlib
33 }
34
--- a/auto.def
+++ b/auto.def
@@ -28,7 +28,4 @@
28 if {$tclpath ne "1"} {
29 I$tclpath/include
30 tclpath/lib
31 }
 
 
 
--- a/autosetup/README.autosetup
+++ b/autosetup/README.autosetup
@@ -1 +1 @@
1
-This is autosetup v0.6.2. S
1
+This is autosetup v0.6.3. S
--- a/autosetup/README.autosetup
+++ b/autosetup/README.autosetup
@@ -1 +1 @@
1 This is autosetup v0.6.2. S
--- a/autosetup/README.autosetup
+++ b/autosetup/README.autosetup
@@ -1 +1 @@
1 This is autosetup v0.6.3. S
--- a/autosetup/autosetup
+++ b/autosetup/autosetup
@@ -5,11 +5,62 @@
55
return $alias
66
}[error-location $msg]use cc cc-shareduplevel #0#!/bin/sh
77
${m}.tcl
8
-uplevel #0 [list source $source]put2put3 "Looking for $source"![string m 2>/dev/null} {
9
- set create_configure 1Use --initset cre#!/bin/sh
10
-4 => "creat # Jim uses system() for exec under mingw, so
11
- # we need to fetch the output ourselves
12
- set tmpfile auto[format %04x [rand 10000]].tmp
13
- set rc [catch [list exec {*}$readfile $tmpfile]
14
- file delete $tmpfile
15
- return -code $rc $result
8
+uplevel #0 [list source $source]put3 "Looking for $source"![string m 2>/dev/null} {
9
+ set create_configure 1Use --initset create_configure 0if {$create_configureinstalled)} {
10
+ user-notice "Warning: Initialising from the development version of autosetup"
11
+
12
+ "#!/bin/sh\nWRAPPER=\"\$0\h
13
+autosetup \"\$@\"\n"
14
+ } else {
15
+ }
16
+ }#!/bin/sh
17
+.def {# Initial auto.def created by 'autosetup --init'
18
+
19
+use cc
20
+
21
+# Add any user options here
22
+options {
23
+}
24
+
25
+make-config-header config.h
26
+make-template Makefile.in
27
+}
28
+ }#!/bin/sh
29
+ I don't see Makefile.in. You will probably need to create one."
30
+ }
31
+
32
+ exitN@6Yl,7:installM@A70,4O@800,2:{}LM@84u,8: catch {T@6rS,K@83h,P:--init >@stdout 2>@stderrG@1GW,mo@8bK,6:} elseH@9Jk,8:win)} {
33
+x@9Po,b@9Ql,S@9Ki,d@9Rp,B:}
34
+} else {
35
+Q@9Sf,G:alias getenv envJQ@9Vb,1P:Similar to error-location, but called when user code generates an error
36
+# In this case weI@9cU,1H:stack trace in user code, but not in autosetup code
37
+# (unless --debug is enabled)o@9tT,1J:istcl)} {
38
+ if {[regexp {file "([^ ]*)" line ([0-9]*)} $::errorInfo dummy file lineW@9lr,3U:file]:$line $msg\n$::errorInfo"
39
+ }
40
+ return $::errorInfo
41
+ } else {
42
+ # Prepend a live stacktrace to the error stacktrace, omitting the current level
43
+ set stacktrace [concat [info stacktrace] [lrange [stacktrace] 3 end]]
44
+L@7w0,1r:debug)} {
45
+ # Omit any levels from autosetup or with no file
46
+ set newstacktrace {}
47
+ foreach {p f l} $stacktrace {P@8BT,X:autosetup" $f] || $f eq ""} {
48
+ J@9n0,8:p $f:$l"P@8Cl,5S:lappend newstacktrace $p $f $l
49
+ }
50
+ set stacktrace $newstacktrace
51
+ }
52
+
53
+ # Convert filenames to relative paths
54
+ set newstacktrace {}
55
+ foreach {p f l} $stacktrace {
56
+ lappend newstacktrace $p [relative-path $f] $l
57
+ }
58
+ lassign $newstacktrace p f l
59
+ if {$f ne ""} {
60
+ set prefix "$f:$l: "
61
+ } else {
62
+ set prefix ""
63
+ }
64
+
65
+ return "${prefix}P@A5j,H:newstacktrace]"
66
+ M@7c0,5:text-W@5nD,4:text2G@8jU,M@5Xi,qk@AA0,1Lhwf4;
--- a/autosetup/autosetup
+++ b/autosetup/autosetup
@@ -5,11 +5,62 @@
5 return $alias
6 }[error-location $msg]use cc cc-shareduplevel #0#!/bin/sh
7 ${m}.tcl
8 uplevel #0 [list source $source]put2put3 "Looking for $source"![string m 2>/dev/null} {
9 set create_configure 1Use --initset cre#!/bin/sh
10 4 => "creat # Jim uses system() for exec under mingw, so
11 # we need to fetch the output ourselves
12 set tmpfile auto[format %04x [rand 10000]].tmp
13 set rc [catch [list exec {*}$readfile $tmpfile]
14 file delete $tmpfile
15 return -code $rc $result
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/autosetup/autosetup
+++ b/autosetup/autosetup
@@ -5,11 +5,62 @@
5 return $alias
6 }[error-location $msg]use cc cc-shareduplevel #0#!/bin/sh
7 ${m}.tcl
8 uplevel #0 [list source $source]put3 "Looking for $source"![string m 2>/dev/null} {
9 set create_configure 1Use --initset create_configure 0if {$create_configureinstalled)} {
10 user-notice "Warning: Initialising from the development version of autosetup"
11
12 "#!/bin/sh\nWRAPPER=\"\$0\h
13 autosetup \"\$@\"\n"
14 } else {
15 }
16 }#!/bin/sh
17 .def {# Initial auto.def created by 'autosetup --init'
18
19 use cc
20
21 # Add any user options here
22 options {
23 }
24
25 make-config-header config.h
26 make-template Makefile.in
27 }
28 }#!/bin/sh
29 I don't see Makefile.in. You will probably need to create one."
30 }
31
32 exitN@6Yl,7:installM@A70,4O@800,2:{}LM@84u,8: catch {T@6rS,K@83h,P:--init >@stdout 2>@stderrG@1GW,mo@8bK,6:} elseH@9Jk,8:win)} {
33 x@9Po,b@9Ql,S@9Ki,d@9Rp,B:}
34 } else {
35 Q@9Sf,G:alias getenv envJQ@9Vb,1P:Similar to error-location, but called when user code generates an error
36 # In this case weI@9cU,1H:stack trace in user code, but not in autosetup code
37 # (unless --debug is enabled)o@9tT,1J:istcl)} {
38 if {[regexp {file "([^ ]*)" line ([0-9]*)} $::errorInfo dummy file lineW@9lr,3U:file]:$line $msg\n$::errorInfo"
39 }
40 return $::errorInfo
41 } else {
42 # Prepend a live stacktrace to the error stacktrace, omitting the current level
43 set stacktrace [concat [info stacktrace] [lrange [stacktrace] 3 end]]
44 L@7w0,1r:debug)} {
45 # Omit any levels from autosetup or with no file
46 set newstacktrace {}
47 foreach {p f l} $stacktrace {P@8BT,X:autosetup" $f] || $f eq ""} {
48 J@9n0,8:p $f:$l"P@8Cl,5S:lappend newstacktrace $p $f $l
49 }
50 set stacktrace $newstacktrace
51 }
52
53 # Convert filenames to relative paths
54 set newstacktrace {}
55 foreach {p f l} $stacktrace {
56 lappend newstacktrace $p [relative-path $f] $l
57 }
58 lassign $newstacktrace p f l
59 if {$f ne ""} {
60 set prefix "$f:$l: "
61 } else {
62 set prefix ""
63 }
64
65 return "${prefix}P@A5j,H:newstacktrace]"
66 M@7c0,5:text-W@5nD,4:text2G@8jU,M@5Xi,qk@AA0,1Lhwf4;
--- a/autosetup/cc-shared.tcl
+++ b/autosetup/cc-shared.tcl
@@ -30,6 +30,4 @@
3030
# Generic Unix settingsstems http://www.workwa# Copyrigference for identifying the toolchain
3131
# http://sourceforge.net/apps/mediawiki/predef/ define SHOBJ_LDFLAGS_R -bobject
3232
## SHOBJ_LDFLAGS Flags to us-fpshared Flags to us-fpicf/ define SHOBJ_LDFLAGS_R -bobject
33
-## SHOBJ_LDFLAGS Flags to us"-shared -nostartfiles"
34
- }
35
-}
33
+## SHOBJ_LDFLAGS Flags to us
--- a/autosetup/cc-shared.tcl
+++ b/autosetup/cc-shared.tcl
@@ -30,6 +30,4 @@
30 # Generic Unix settingsstems http://www.workwa# Copyrigference for identifying the toolchain
31 # http://sourceforge.net/apps/mediawiki/predef/ define SHOBJ_LDFLAGS_R -bobject
32 ## SHOBJ_LDFLAGS Flags to us-fpshared Flags to us-fpicf/ define SHOBJ_LDFLAGS_R -bobject
33 ## SHOBJ_LDFLAGS Flags to us"-shared -nostartfiles"
34 }
35 }
--- a/autosetup/cc-shared.tcl
+++ b/autosetup/cc-shared.tcl
@@ -30,6 +30,4 @@
30 # Generic Unix settingsstems http://www.workwa# Copyrigference for identifying the toolchain
31 # http://sourceforge.net/apps/mediawiki/predef/ define SHOBJ_LDFLAGS_R -bobject
32 ## SHOBJ_LDFLAGS Flags to us-fpshared Flags to us-fpicf/ define SHOBJ_LDFLAGS_R -bobject
33 ## SHOBJ_LDFLAGS Flags to us
 
 

No diff available

--- a/autosetup/find-tclsh
+++ b/autosetup/find-tclsh
@@ -1,9 +1,10 @@
11
#!/bin/sh
22
# Looks for a suitable tclsh or jimsh in the PATH
33
# If not foundstrap jimsh d=`dirname "$0"`
4
-{ "$d/jimshd/${1-ac"; } 2>&imsh0"
4
+{ "$d/jimshd/${1-ac"; } 2>&1done
5
+echo 1>&2 bootstrap jimsh0"
56
for cc in tclsh8.7; do
6
- jimsh0-tclsh}"; } 2>/devexit 0
7
+ { $tclsh " >/dev "$d/${1-autosetup--tclsh}"; } 2>/devexit 0
78
done
89
echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0"
910
for cc in ${CC_FOR_BUILD:-PATH="$PATH:$d2>/dev/null
--- a/autosetup/find-tclsh
+++ b/autosetup/find-tclsh
@@ -1,9 +1,10 @@
1 #!/bin/sh
2 # Looks for a suitable tclsh or jimsh in the PATH
3 # If not foundstrap jimsh d=`dirname "$0"`
4 { "$d/jimshd/${1-ac"; } 2>&imsh0"
 
5 for cc in tclsh8.7; do
6 jimsh0-tclsh}"; } 2>/devexit 0
7 done
8 echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0"
9 for cc in ${CC_FOR_BUILD:-PATH="$PATH:$d2>/dev/null
--- a/autosetup/find-tclsh
+++ b/autosetup/find-tclsh
@@ -1,9 +1,10 @@
1 #!/bin/sh
2 # Looks for a suitable tclsh or jimsh in the PATH
3 # If not foundstrap jimsh d=`dirname "$0"`
4 { "$d/jimshd/${1-ac"; } 2>&1done
5 echo 1>&2 bootstrap jimsh0"
6 for cc in tclsh8.7; do
7 { $tclsh " >/dev "$d/${1-autosetup--tclsh}"; } 2>/devexit 0
8 done
9 echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0"
10 for cc in ${CC_FOR_BUILD:-PATH="$PATH:$d2>/dev/null
+122 -107
--- a/autosetup/jimsh0.c
+++ b/autosetup/jimsh0.c
@@ -18,127 +18,142 @@
1818
#define HAVE_UMASK
1919
#include elseSEPARATOR ":"
2020
#ifdef _ATFORM_PLATFORM "unix"
21
-#define TCL_PLATFORM_PATH_SEPARMKSTEMP
21
+#define TCL_PLATFORM_PATH_SEPARATOR ":#elseVE_MKSTEMP
22
+#define HAVY
23
+#define HAVE_MKSTEMP
2224
#define HAVE_LINK
2325
#define HAVE_SYS_TIME_H
2426
#define HAVE_DITFORM "unix"
2527
#define TCL_PLATFndif
2628
#define JIM_VERS3cl. See http://jim.berlios.de/ */
27
-#define _GNU_SOURCEREFERENCES single source file,/* /**
28
- * UTF-8 utility functions
29
- *
30
- * (c) 2010 Steve Bennett <[email protected]>
31
- *
32
- * See LICENCE for licence details.
33
- */
34
-
35
-/**
36
- * Converts the given unicode codepoint (0 - 0xffff) to utf-8
37
- * and stores the result at 'p'.
38
- *
39
- * Returns the number of utf-8 characters (1-3).
40
- */
41
-intJim Tcl. See http://jim.tcl.tk/ */
29
+#define _GNU_SOURCEREFERENCES single source file,/* This is single source file, bootstrap version of Jim Tcl. See http://jim.tcl.tk/ */
4230
#define JIM_TCL_COMPAT_H
43
-#define/* No utf-8 support. 1 byte = 1 char */
44
-#define utf8_strlen(S, B) TCL_LIBRARY "."
45
-#define j
46
-#defineS, CP) (*(CP) = #define jim_eexecxec
31
+#define TCL_LIBRARY "."
32
+#define jim_ext_stdlib
33
+#define jimregexpxec
34
+#define jim_efilexec
35
+#define jim_eexecxec
4736
#define jim_eclockxec
4837
#define jim_ee TCL_PLATFORM_OS "windows"
4938
#define TCL_PLATFORM_PLATFORM "windows"
50
-#define TCL_PLAT/**
51
- * Returns the length of the utf-8 sequence starting with 'c'.
52
- *
53
- * Returns 1-4, or -1 if this is not a valid start byte.
54
- *
55
- * Note that charlen=4 is not supported by the rest of the API.
56
- */
57
-int utf8_charlen(int c);
39
+#define TCL_PLATFORM_PATH_SEPARATOR ";"
40
+#define HAVE_MKDIR_ONE_ARG
41
+#define HAVE_SYSTEM
42
+#elif defined(__MINGW32__)
43
+#define TCL_PLATFORM_OS "mingw"
44
+#define TCL_PLATFORM_PLATFORM "windows"
45
+#define TCL_PLATFORM_PATH_SEPARATOR ";"
46
+#define HAVE_MKDIR_ONE_ARG
47
+#define HAVE_SYSTEM
48
+#define HAVE_SYS_TIME_H
49
+#define HAVE_DIRENT_H
50
+#define HAVE_UNISTD_H
51
+#define HAVE_UMASK
52
+#include elseSEPARATOR ":"
53
+#ifdef _ATFORM_PLATFORM "unix"
54
+#define TCL_PLATFORM_PATH_SEPARATOR ":"
55
+#ifdef _MINIX
56
+#define vfork VE_WAITPID
57
+#Vndif
58
+#define HAVE_WAITPID
59
+#define HAVE_ISATE_WAITPID
60
+#define HAVE_ISATTY
61
+#define HAVE_MKSTEMP
62
+#define HAVE_LINK
63
+#define HAVE_SYS_TIME_H
64
+#define HAVE_DITFORM "unix"
65
+#define TCL_PLATFndif
66
+#define JIM_VERSION 75if
5867
59
-/**
60
- * Returns the number of characters in the utf-8
61
- * string of the given byte length.
62
- *
63
- * Any bytes which are not part of an valid utf-8
64
- * sequence are treated as individual characters.
65
- *
66
- * The string *must* be null terminated.
67
- *
68
- * Does not support unicode code points > \uffff
69
- */
70
-int utf8_strlen(bytelen);
7168
72
-/**
73
- * Returns the byte index of the given character in the utf-8 string.
74
- *
75
- * The string *must* be null terminated.
76
- *
77
- * This will return the byte length of a utf-8 string
78
- * if given the char charindex);
69
+#5if
7970
80
-/**
81
- * Returns the unicode codepoint corresponding to the
82
- * utf-8 sequence 'str'.
83
- *
84
- * Stores the result in *uc and returns the number of bytes
85
- * consumed.
86
- *
87
- * If 'str' is null terminated, then an invalid utf-8 sequence
88
- * at the end of the string will be returned as individual bytes.
89
- *
90
- * If it is not null terminated, the length *must* be checked first.
91
- *
92
- * Does not support unicode c*uc);
9371
94
-/**
95
- * Returns the number of bytes before 'str' that the previous
96
- * utf-8 character sequence starts (which may be the middle of a sequence).
97
- *
98
- * Looks back at most 'len' bytes backwards, which must be > 0.
99
- * If no start char is found, returns -len
100
- */
101
-int utf8_prev_len(
102
-/**
103
- * Returns the upper-case variant of the given unicode codepoint.
104
- *
105
- * Does not support unicode code points > \uffff
106
- */
107
-int utf8_upper(int uc);
72
+#if defined(_WIN32) || defined(WIN32)
10873
109
-/**
110
- * Returns the lower-case variant of the given unicode codepoint.
111
- *
112
- * NOTE: Use utf8_upper() in preference for case-insensitive matching.
113
- *
114
- * Does not support unicode code points > \uffff
115
- */
116
-int utf8_lower(int uc);
74
+#define HAVE_DLOPEN
75
+void *dlopen(const rror(void);
11776
77
+
78
+#if defined(__MINGW3l lmap part [split $braced ,] {\n"
79
+" set pat $before$part$after\n"
80
+" proc glob.glob if {$dir eq $pattern} {\n"
81
+\n"
82
+" set dir foreach dir $dirlismatch \"*/\" $dir]}ep \"\"\n"
83
+" } elseif {$dir eq \".\"} {\n"
84
+" set globdir \"\"\n"
85
+" set sep \"\"set sep /foreach pat [glob.expandbracesreaddir_pattern $dir $pat] {\n"
86
+" globdir$sep$name http://jim.berl3cl. See http://jimset nocomplain 0-nocomplain\"} {\n"
87
+"lappend result {*}[glob.globnocomplain == 0flush/
88
+#define _GNU_SOURCEREFERENCES erlios.de/ *long offsetfseekfilenflush."3short
89
+#define HAVE_UNISTD_H
90
+#define HAVE_UMASK
91
+#include elseSEPARATOR ":"
92
+#ifdef _ATFORM_PLATFORM "unix"
93
+#define TCL_PLATFORM_PATH_SEPARATOR ":"
94
+#ifdef _MINIX
95
+#define vfork VE_WAITPID
96
+#Vndif
97
+#define HAVE_WAITPID
98
+# HAVE_ISATTY
99
+#define HAVE_MKSTEMP
100
+#define HAVE_LINK
101
+#define HAVE_SYS_TIME_H
102
+#define HAVE_DITFORM "unix"
103
+#define TCL_PLATFndif
104
+#define JIM_VERSION 75if
105
+
106
+
107
+#5if
108
+
109
+
110
+#if defined(_WIN32) || defined(WIN32)
111
+
112
+#define HAVE_DLOPEN
113
+void *dlopen(const rror(void);
114
+
115
+
116
+#if defined(__MINGW32__)
117
+ #(disable:4146)
118118
#endif
119119
120
-#endif
121
-/* Jim - A small embeddable Tcl interpreter
122
- *
123
- * Copyright 2005 Salvatore Sanfilippo <[email protected]>
124
- * Copyright 2005 Clemens Hintze <[email protected]>
125
- * Copyright 2005 patthoyts - Pat Thoyts <[email protected]>
126
- * Copyright 2008 oharboe - �yvind Harboe - [email protected]
127
- * Copyright 2008 Andrew Lunn <[email protected]>
128
- * Copyright 2008 Duane Ellis <[email protected]>
129
- * Copyright 2008 Uwe Klein <[email protected]>
130
- *
131
- * Redistribution and use in source and binary forms, with or without
132
- * modification, are permitted provided that the following conditions
133
- * are met:
134
- *
135
- * 1. Redistributions of source code must retain the above copyright
136
- * notice, this list of conditions and the following disclaimer.
137
- * 2. Redistributions in binary form must reproduce the above
138
- * copyright notice, this list of conditions and the following
139
- * disclaimer in the documentation and/or other materials
140
- * provided with the distribution.
141
- *
142
- * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY
143
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
144
- * THE IMPLIED WARRANTIES OF MERCHANTABILI
120
+#include <limits.h>
121
+#define jim_wide _iint refCount;
122
+ charemptyObjhttp://jim.berlios.de/ 3cl. See htHAVE_MKDIR_ONE_AR3cl. See http://jim.berlios.de/ */
123
+et result { if {$pattern in {. ..}$pattern{*[[*?]*}\n"
124
+" set files[file isdir set files [list} else {\n"
125
+" set files \" continue\n"
126
+"
127
+#define HAVE_SYSTEM3cl. See htglob.expandbraces {pattern} {\n"
128
+"\n"
129
+"\n"
130
+" if {[set fb [string first \"\\{\" $pattern]] < 0list}\n"
131
+" if {[set nb [string firstlist}\n"
132
+" set beforeine HAVE_SYSTEM
133
+#elif defin3cl. See http://jim.b$fb+1 $nb-1]\n"
134
+" set afterine HAVE_SYSTEM
135
+#elif de3cl. lmap part [split $braced ,] {\n"
136
+" set pat $before$part$after\n"
137
+" proc glob.glob if {$dir eq $pattern} {\n"
138
+\n"
139
+" set dir foreach dir $dirlismatch \"*/\" $dir]}ep \"\"\n"
140
+" } elseif {$dir eq \".\"} {\n"
141
+" set globdir \"\NESTING_DEPTH 1xpandbracesreaddir_pattern $dir $pat] {\n"
142
+" globdir$sep$name http://jim.berl3c3cl. See http://jim.berlios.de/ */
143
+#define _GNU_SOURCEREFERENCES single source file,/* This is single source file, bootstrap version of Jim Tcl. See http://jim.tcl.tk/ */
144
+#define JIM_TCL_COMPAT_H
145
+#define TCL_LIBRARY "."
146
+#define jim_ext_stdlib
147
+#define jimregexpxec
148
+#define jim_efilexec
149
+#define jim_eexecxec
150
+#define jim_eclockxec
151
+#define jim_ee TCL_PLATFORM_OS "windows"
152
+#define TCL_PLATFORM_PLATFORM "windows"
153
+#define TCL_PLATFORM_PATH_SEPARATOR ";"
154
+#define HAVE_MKDIR_ONE_ARG
155
+#define HAVE_SYSTEM
156
+#elif defined(__MINGW32__)
157
+#define TCL_PLATFOR3cl. consthashint indexjim_wide callFrameId3cl. See http://jim.berlios.d} vajim_wide jim_wide id3clchar *data;
158
+ size_t flags;
159
+ c
--- a/autosetup/jimsh0.c
+++ b/autosetup/jimsh0.c
@@ -18,127 +18,142 @@
18 #define HAVE_UMASK
19 #include elseSEPARATOR ":"
20 #ifdef _ATFORM_PLATFORM "unix"
21 #define TCL_PLATFORM_PATH_SEPARMKSTEMP
 
 
22 #define HAVE_LINK
23 #define HAVE_SYS_TIME_H
24 #define HAVE_DITFORM "unix"
25 #define TCL_PLATFndif
26 #define JIM_VERS3cl. See http://jim.berlios.de/ */
27 #define _GNU_SOURCEREFERENCES single source file,/* /**
28 * UTF-8 utility functions
29 *
30 * (c) 2010 Steve Bennett <[email protected]>
31 *
32 * See LICENCE for licence details.
33 */
34
35 /**
36 * Converts the given unicode codepoint (0 - 0xffff) to utf-8
37 * and stores the result at 'p'.
38 *
39 * Returns the number of utf-8 characters (1-3).
40 */
41 intJim Tcl. See http://jim.tcl.tk/ */
42 #define JIM_TCL_COMPAT_H
43 #define/* No utf-8 support. 1 byte = 1 char */
44 #define utf8_strlen(S, B) TCL_LIBRARY "."
45 #define j
46 #defineS, CP) (*(CP) = #define jim_eexecxec
 
47 #define jim_eclockxec
48 #define jim_ee TCL_PLATFORM_OS "windows"
49 #define TCL_PLATFORM_PLATFORM "windows"
50 #define TCL_PLAT/**
51 * Returns the length of the utf-8 sequence starting with 'c'.
52 *
53 * Returns 1-4, or -1 if this is not a valid start byte.
54 *
55 * Note that charlen=4 is not supported by the rest of the API.
56 */
57 int utf8_charlen(int c);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
59 /**
60 * Returns the number of characters in the utf-8
61 * string of the given byte length.
62 *
63 * Any bytes which are not part of an valid utf-8
64 * sequence are treated as individual characters.
65 *
66 * The string *must* be null terminated.
67 *
68 * Does not support unicode code points > \uffff
69 */
70 int utf8_strlen(bytelen);
71
72 /**
73 * Returns the byte index of the given character in the utf-8 string.
74 *
75 * The string *must* be null terminated.
76 *
77 * This will return the byte length of a utf-8 string
78 * if given the char charindex);
79
80 /**
81 * Returns the unicode codepoint corresponding to the
82 * utf-8 sequence 'str'.
83 *
84 * Stores the result in *uc and returns the number of bytes
85 * consumed.
86 *
87 * If 'str' is null terminated, then an invalid utf-8 sequence
88 * at the end of the string will be returned as individual bytes.
89 *
90 * If it is not null terminated, the length *must* be checked first.
91 *
92 * Does not support unicode c*uc);
93
94 /**
95 * Returns the number of bytes before 'str' that the previous
96 * utf-8 character sequence starts (which may be the middle of a sequence).
97 *
98 * Looks back at most 'len' bytes backwards, which must be > 0.
99 * If no start char is found, returns -len
100 */
101 int utf8_prev_len(
102 /**
103 * Returns the upper-case variant of the given unicode codepoint.
104 *
105 * Does not support unicode code points > \uffff
106 */
107 int utf8_upper(int uc);
108
109 /**
110 * Returns the lower-case variant of the given unicode codepoint.
111 *
112 * NOTE: Use utf8_upper() in preference for case-insensitive matching.
113 *
114 * Does not support unicode code points > \uffff
115 */
116 int utf8_lower(int uc);
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118 #endif
119
120 #endif
121 /* Jim - A small embeddable Tcl interpreter
122 *
123 * Copyright 2005 Salvatore Sanfilippo <[email protected]>
124 * Copyright 2005 Clemens Hintze <[email protected]>
125 * Copyright 2005 patthoyts - Pat Thoyts <[email protected]>
126 * Copyright 2008 oharboe - �yvind Harboe - [email protected]
127 * Copyright 2008 Andrew Lunn <[email protected]>
128 * Copyright 2008 Duane Ellis <[email protected]>
129 * Copyright 2008 Uwe Klein <[email protected]>
130 *
131 * Redistribution and use in source and binary forms, with or without
132 * modification, are permitted provided that the following conditions
133 * are met:
134 *
135 * 1. Redistributions of source code must retain the above copyright
136 * notice, this list of conditions and the following disclaimer.
137 * 2. Redistributions in binary form must reproduce the above
138 * copyright notice, this list of conditions and the following
139 * disclaimer in the documentation and/or other materials
140 * provided with the distribution.
141 *
142 * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY
143 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
144 * THE IMPLIED WARRANTIES OF MERCHANTABILI
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/autosetup/jimsh0.c
+++ b/autosetup/jimsh0.c
@@ -18,127 +18,142 @@
18 #define HAVE_UMASK
19 #include elseSEPARATOR ":"
20 #ifdef _ATFORM_PLATFORM "unix"
21 #define TCL_PLATFORM_PATH_SEPARATOR ":#elseVE_MKSTEMP
22 #define HAVY
23 #define HAVE_MKSTEMP
24 #define HAVE_LINK
25 #define HAVE_SYS_TIME_H
26 #define HAVE_DITFORM "unix"
27 #define TCL_PLATFndif
28 #define JIM_VERS3cl. See http://jim.berlios.de/ */
29 #define _GNU_SOURCEREFERENCES single source file,/* This is single source file, bootstrap version of Jim Tcl. See http://jim.tcl.tk/ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30 #define JIM_TCL_COMPAT_H
31 #define TCL_LIBRARY "."
32 #define jim_ext_stdlib
33 #define jimregexpxec
34 #define jim_efilexec
35 #define jim_eexecxec
36 #define jim_eclockxec
37 #define jim_ee TCL_PLATFORM_OS "windows"
38 #define TCL_PLATFORM_PLATFORM "windows"
39 #define TCL_PLATFORM_PATH_SEPARATOR ";"
40 #define HAVE_MKDIR_ONE_ARG
41 #define HAVE_SYSTEM
42 #elif defined(__MINGW32__)
43 #define TCL_PLATFORM_OS "mingw"
44 #define TCL_PLATFORM_PLATFORM "windows"
45 #define TCL_PLATFORM_PATH_SEPARATOR ";"
46 #define HAVE_MKDIR_ONE_ARG
47 #define HAVE_SYSTEM
48 #define HAVE_SYS_TIME_H
49 #define HAVE_DIRENT_H
50 #define HAVE_UNISTD_H
51 #define HAVE_UMASK
52 #include elseSEPARATOR ":"
53 #ifdef _ATFORM_PLATFORM "unix"
54 #define TCL_PLATFORM_PATH_SEPARATOR ":"
55 #ifdef _MINIX
56 #define vfork VE_WAITPID
57 #Vndif
58 #define HAVE_WAITPID
59 #define HAVE_ISATE_WAITPID
60 #define HAVE_ISATTY
61 #define HAVE_MKSTEMP
62 #define HAVE_LINK
63 #define HAVE_SYS_TIME_H
64 #define HAVE_DITFORM "unix"
65 #define TCL_PLATFndif
66 #define JIM_VERSION 75if
67
 
 
 
 
 
 
 
 
 
 
 
 
68
69 #5if
 
 
 
 
 
 
70
 
 
 
 
 
 
 
 
 
 
 
 
 
71
72 #if defined(_WIN32) || defined(WIN32)
 
 
 
 
 
 
 
 
 
 
 
 
 
73
74 #define HAVE_DLOPEN
75 void *dlopen(const rror(void);
 
 
 
 
 
 
76
77
78 #if defined(__MINGW3l lmap part [split $braced ,] {\n"
79 " set pat $before$part$after\n"
80 " proc glob.glob if {$dir eq $pattern} {\n"
81 \n"
82 " set dir foreach dir $dirlismatch \"*/\" $dir]}ep \"\"\n"
83 " } elseif {$dir eq \".\"} {\n"
84 " set globdir \"\"\n"
85 " set sep \"\"set sep /foreach pat [glob.expandbracesreaddir_pattern $dir $pat] {\n"
86 " globdir$sep$name http://jim.berl3cl. See http://jimset nocomplain 0-nocomplain\"} {\n"
87 "lappend result {*}[glob.globnocomplain == 0flush/
88 #define _GNU_SOURCEREFERENCES erlios.de/ *long offsetfseekfilenflush."3short
89 #define HAVE_UNISTD_H
90 #define HAVE_UMASK
91 #include elseSEPARATOR ":"
92 #ifdef _ATFORM_PLATFORM "unix"
93 #define TCL_PLATFORM_PATH_SEPARATOR ":"
94 #ifdef _MINIX
95 #define vfork VE_WAITPID
96 #Vndif
97 #define HAVE_WAITPID
98 # HAVE_ISATTY
99 #define HAVE_MKSTEMP
100 #define HAVE_LINK
101 #define HAVE_SYS_TIME_H
102 #define HAVE_DITFORM "unix"
103 #define TCL_PLATFndif
104 #define JIM_VERSION 75if
105
106
107 #5if
108
109
110 #if defined(_WIN32) || defined(WIN32)
111
112 #define HAVE_DLOPEN
113 void *dlopen(const rror(void);
114
115
116 #if defined(__MINGW32__)
117 #(disable:4146)
118 #endif
119
120 #include <limits.h>
121 #define jim_wide _iint refCount;
122 charemptyObjhttp://jim.berlios.de/ 3cl. See htHAVE_MKDIR_ONE_AR3cl. See http://jim.berlios.de/ */
123 et result { if {$pattern in {. ..}$pattern{*[[*?]*}\n"
124 " set files[file isdir set files [list} else {\n"
125 " set files \" continue\n"
126 "
127 #define HAVE_SYSTEM3cl. See htglob.expandbraces {pattern} {\n"
128 "\n"
129 "\n"
130 " if {[set fb [string first \"\\{\" $pattern]] < 0list}\n"
131 " if {[set nb [string firstlist}\n"
132 " set beforeine HAVE_SYSTEM
133 #elif defin3cl. See http://jim.b$fb+1 $nb-1]\n"
134 " set afterine HAVE_SYSTEM
135 #elif de3cl. lmap part [split $braced ,] {\n"
136 " set pat $before$part$after\n"
137 " proc glob.glob if {$dir eq $pattern} {\n"
138 \n"
139 " set dir foreach dir $dirlismatch \"*/\" $dir]}ep \"\"\n"
140 " } elseif {$dir eq \".\"} {\n"
141 " set globdir \"\NESTING_DEPTH 1xpandbracesreaddir_pattern $dir $pat] {\n"
142 " globdir$sep$name http://jim.berl3c3cl. See http://jim.berlios.de/ */
143 #define _GNU_SOURCEREFERENCES single source file,/* This is single source file, bootstrap version of Jim Tcl. See http://jim.tcl.tk/ */
144 #define JIM_TCL_COMPAT_H
145 #define TCL_LIBRARY "."
146 #define jim_ext_stdlib
147 #define jimregexpxec
148 #define jim_efilexec
149 #define jim_eexecxec
150 #define jim_eclockxec
151 #define jim_ee TCL_PLATFORM_OS "windows"
152 #define TCL_PLATFORM_PLATFORM "windows"
153 #define TCL_PLATFORM_PATH_SEPARATOR ";"
154 #define HAVE_MKDIR_ONE_ARG
155 #define HAVE_SYSTEM
156 #elif defined(__MINGW32__)
157 #define TCL_PLATFOR3cl. consthashint indexjim_wide callFrameId3cl. See http://jim.berlios.d} vajim_wide jim_wide id3clchar *data;
158 size_t flags;
159 c
--- a/autosetup/system.tcl
+++ b/autosetup/system.tcl
@@ -70,11 +70,4 @@
7070
program-transform-name:
7171
}
7272
73
-# @check-feature set prefixdefine[get-env exec-prefix \${prefix}]]\${exec_prefix}/bin
74
- sbindir \${exec_prefix}/sbin
75
- libexecdir \${exec_prefix}/libexec
76
- libdir \${exec_prefix}/lib
77
- datadir \${prefix}/share
78
- sysconfdir \${prefix}/etc
79
- sharedstatedir \${prefix}\${prefix}/var
80
- infodir \${prefix}\${prefix}/share Copyright (c) ht (c) 2010 WorkWare Sys
73
+# @check-feature set prefix
--- a/autosetup/system.tcl
+++ b/autosetup/system.tcl
@@ -70,11 +70,4 @@
70 program-transform-name:
71 }
72
73 # @check-feature set prefixdefine[get-env exec-prefix \${prefix}]]\${exec_prefix}/bin
74 sbindir \${exec_prefix}/sbin
75 libexecdir \${exec_prefix}/libexec
76 libdir \${exec_prefix}/lib
77 datadir \${prefix}/share
78 sysconfdir \${prefix}/etc
79 sharedstatedir \${prefix}\${prefix}/var
80 infodir \${prefix}\${prefix}/share Copyright (c) ht (c) 2010 WorkWare Sys
--- a/autosetup/system.tcl
+++ b/autosetup/system.tcl
@@ -70,11 +70,4 @@
70 program-transform-name:
71 }
72
73 # @check-feature set prefix
 
 
 
 
 
 
 
--- a/autosetup/test-tclsh
+++ b/autosetup/test-tclsh
@@ -5,17 +5,16 @@
55
66
if {[catch {info version} version] == 0} {
77
# This is Jim Tcl
8
- if {$version >= 0.70} {
9
- # Ensure that rege
10
- # Older versions of jimsh mayinfo patchlevel]]} {
8
+ if {$version >= 0.72} {
9
+ # Ensure that regexp works
10
+ regexp (a.*?) a
11
+ puts [info nameofexecutable]
12
+ exit 0
13
+ }
14
+} elseif {[catch {info tclversion} version] == 0} {
15
+ if {$version >= 8.5 && ![string match 8.5a* [info patchlevel]]} {
1116
puts [info nameofexecutable]
1217
exit 0
1318
}
1419
}
1520
exit 1
16
-puts [file join [p]
17
- exit 0
18
- }
19
-} elseif {[catch {info tclversion} version] == 0} {
20
- if {$version >= 8.5 && ![string match 8.5a* [info patchlevel]]} {
21
- puts [info nameofexecut
--- a/autosetup/test-tclsh
+++ b/autosetup/test-tclsh
@@ -5,17 +5,16 @@
5
6 if {[catch {info version} version] == 0} {
7 # This is Jim Tcl
8 if {$version >= 0.70} {
9 # Ensure that rege
10 # Older versions of jimsh mayinfo patchlevel]]} {
 
 
 
 
 
11 puts [info nameofexecutable]
12 exit 0
13 }
14 }
15 exit 1
16 puts [file join [p]
17 exit 0
18 }
19 } elseif {[catch {info tclversion} version] == 0} {
20 if {$version >= 8.5 && ![string match 8.5a* [info patchlevel]]} {
21 puts [info nameofexecut
--- a/autosetup/test-tclsh
+++ b/autosetup/test-tclsh
@@ -5,17 +5,16 @@
5
6 if {[catch {info version} version] == 0} {
7 # This is Jim Tcl
8 if {$version >= 0.72} {
9 # Ensure that regexp works
10 regexp (a.*?) a
11 puts [info nameofexecutable]
12 exit 0
13 }
14 } elseif {[catch {info tclversion} version] == 0} {
15 if {$version >= 8.5 && ![string match 8.5a* [info patchlevel]]} {
16 puts [info nameofexecutable]
17 exit 0
18 }
19 }
20 exit 1
 
 
 
 
 
 
+859
--- a/src/jim.h
+++ b/src/jim.h
@@ -0,0 +1,859 @@
1
+/* Jim - A small embeddable Tcl interpreter
2
+ *
3
+ * Copyright 2005 Salvatore Sanfilippo <[email protected]>
4
+ * Copyright 2005 Clemens Hintze <[email protected]>
5
+ * Copyright 2005 patthoyts - Pat Thoyts <[email protected]>
6
+ * Copyright 2008 oharboe - �yvind Harboe - [email protected]
7
+ * Copyright 2008 Andrew Lunn <[email protected]>
8
+ * Copyright 2008 Duane Ellis <[email protected]>
9
+ * Copyright 2008 Uwe Klein <[email protected]>
10
+ *
11
+ * Redistribution and use in source and binary forms, with or without
12
+ * modification, are permitted provided that the following conditions
13
+ * are met:
14
+ *
15
+ * 1. Redistributions of source code must retain the above copyright
16
+ * notice, this list of conditions and the following disclaimer.
17
+ * 2. Redistributions in binary form must reproduce the above
18
+ * copyright notice, this list of conditions and the following
19
+ * disclaimer in the documentation and/or other materials
20
+ * provided with the distribution.
21
+ *
22
+ * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY
23
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
+ * JIM TCL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
27
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
33
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ *
35
+ * The views and conclusions contained in the software and documentation
36
+ * are those of the authors and should not be interpreted as representing
37
+ * official policies, either expressed or implied, of the Jim Tcl Project.
38
+ *
39
+ *--- Inline Header File Documentation ---
40
+ * [By Duane Ellis, [email protected], 8/18/8]
41
+ *
42
+ * Belief is "Jim" would greatly benifit if Jim Internals where
43
+ * documented in some way - form whatever, and perhaps - the package:
44
+ * 'doxygen' is the correct approach to do that.
45
+ *
46
+ * Details, see: http://www.stack.nl/~dimitri/doxygen/
47
+ *
48
+ * To that end please follow these guide lines:
49
+ *
50
+ * (A) Document the PUBLIC api in the .H file.
51
+ *
52
+ * (B) Document JIM Internals, in the .C file.
53
+ *
54
+ * (C) Remember JIM is embedded in other packages, to that end do
55
+ * not assume that your way of documenting is the right way, Jim's
56
+ * public documentation should be agnostic, such that it is some
57
+ * what agreeable with the "package" that is embedding JIM inside
58
+ * of it's own doxygen documentation.
59
+ *
60
+ * (D) Use minimal Doxygen tags.
61
+ *
62
+ * This will be an "ongoing work in progress" for some time.
63
+ **/
64
+
65
+#ifndef __JIM__H
66
+#define __JIM__H
67
+
68
+#ifdef __cplusplus
69
+extern "C" {
70
+#endif
71
+
72
+#include <time.h>
73
+#include <limits.h>
74
+#include <stdio.h> /* for the FILE typedef definition */
75
+#include <stdlib.h> /* In order to export the Jim_Free() macro */
76
+#include <stdarg.h> /* In order to get type va_list */
77
+
78
+/* -----------------------------------------------------------------------------
79
+ * System configuration
80
+ * autoconf (configure) will set these
81
+ * ---------------------------------------------------------------------------*/
82
+#include <jim-win32compat.h>
83
+
84
+#ifndef HAVE_NO_AUTOCONF
85
+#include <jim-config.h>
86
+#endif
87
+
88
+/* -----------------------------------------------------------------------------
89
+ * Compiler specific fixes.
90
+ * ---------------------------------------------------------------------------*/
91
+
92
+/* Long Long type and related issues */
93
+#ifndef jim_wide
94
+# ifdef HAVE_LONG_LONG
95
+# define jim_wide long long
96
+# ifndef LLONG_MAX
97
+# define LLONG_MAX 9223372036854775807LL
98
+# endif
99
+# ifndef LLONG_MIN
100
+# define LLONG_MIN (-LLONG_MAX - 1LL)
101
+# endif
102
+# define JIM_WIDE_MIN LLONG_MIN
103
+# define JIM_WIDE_MAX LLONG_MAX
104
+# else
105
+# define jim_wide long
106
+# define JIM_WIDE_MIN LONG_MIN
107
+# define JIM_WIDE_MAX LONG_MAX
108
+# endif
109
+
110
+/* -----------------------------------------------------------------------------
111
+ * LIBC specific fixes
112
+ * ---------------------------------------------------------------------------*/
113
+
114
+# ifdef HAVE_LONG_LONG
115
+# define JIM_WIDE_MODIFIER "lld"
116
+# else
117
+# define JIM_WIDE_MODIFIER "ld"
118
+# define strtoull strtoul
119
+# endif
120
+#endif
121
+
122
+#define UCHAR(c) ((unsigned char)(c))
123
+
124
+/* -----------------------------------------------------------------------------
125
+ * Exported defines
126
+ * ---------------------------------------------------------------------------*/
127
+
128
+/* Jim version numbering: every version of jim is marked with a
129
+ * successive integer number. This is version 0. The first
130
+ * stable version will be 1, then 2, 3, and so o2. */
131
+#define JIM_VERSION 73
132
+
133
+#define JIM_OK 0
134
+#define JIM_ERR 1
135
+#define JIM_RETURN 2
136
+#define JIM_BREAK 3
137
+#define JIM_CONTINUE 4
138
+#define JIM_SIGNAL 5
139
+#define JIM_EXIT 6
140
+/* The following are internal codes and should never been seen/used */
141
+#define JIM_EVAL 7
142
+
143
+#define JIM_MAX_NESTING_DEPTH 1000 /* default max nesting depth */
144
+
145
+/* Some function get an integer argument with flags to change
146
+ * the behaviour. */
147
+#define JIM_NONE 0 /* no flags set */
148
+#define JIM_ERRMSG 1 /* set an error message in the interpreter. */
149
+
150
+#define JIM_UNSHARED 4 /* Flag to Jim_GetVariable() */
151
+
152
+/* Flags for Jim_SubstObj() */
153
+#define JIM_SUBST_NOVAR 1 /* don't perform variables substitutions */
154
+#define JIM_SUBST_NOCMD 2 /* don't perform command substitutions */
155
+#define JIM_SUBST_NOESC 4 /* don't perform escapes substitutions */
156
+#define JIM_SUBST_FLAG 128 /* flag to indicate that this is a real substition object */
157
+
158
+/* Unused arguments generate annoying warnings... */
159
+#define JIM_NOTUSED(V) ((void) V)
160
+
161
+/* Flags for Jim_GetEnum() */
162
+#define JIM_ENUM_ABBREV 2 /* Allow unambiguous abbreviation */
163
+
164
+/* Flags used by API calls getting a 'nocase' argument. */
165
+#define JIM_CASESENS 0 /* case sensitive */
166
+#define JIM_NOCASE 1 /* no case */
167
+
168
+/* Filesystem related */
169
+#define JIM_PATH_LEN 1024
170
+
171
+/* Newline, some embedded system may need -DJIM_CRLF */
172
+#ifdef JIM_CRLF
173
+#define JIM_NL "\r\n"
174
+#else
175
+#define JIM_NL "\n"
176
+#endif
177
+
178
+#define JIM_LIBPATH "auto_path"
179
+#define JIM_INTERACTIVE "tcl_interactive"
180
+
181
+/* -----------------------------------------------------------------------------
182
+ * Stack
183
+ * ---------------------------------------------------------------------------*/
184
+
185
+typedef struct Jim_Stack {
186
+ int len;
187
+ int maxlen;
188
+ void **vector;
189
+} Jim_Stack;
190
+
191
+/* -----------------------------------------------------------------------------
192
+ * Hash table
193
+ * ---------------------------------------------------------------------------*/
194
+
195
+typedef struct Jim_HashEntry {
196
+ const void *key;
197
+ union {
198
+ void *val;
199
+ int intval;
200
+ } u;
201
+ struct Jim_HashEntry *next;
202
+} Jim_HashEntry;
203
+
204
+typedef struct Jim_HashTableType {
205
+ unsigned int (*hashFunction)(const void *key);
206
+ const void *(*keyDup)(void *privdata, const void *key);
207
+ void *(*valDup)(void *privdata, const void *obj);
208
+ int (*keyCompare)(void *privdata, const void *key1, const void *key2);
209
+ void (*keyDestructor)(void *privdata, const void *key);
210
+ void (*valDestructor)(void *privdata, void *obj);
211
+} Jim_HashTableType;
212
+
213
+typedef struct Jim_HashTable {
214
+ Jim_HashEntry **table;
215
+ const Jim_HashTableType *type;
216
+ unsigned int size;
217
+ unsigned int sizemask;
218
+ unsigned int used;
219
+ unsigned int collisions;
220
+ void *privdata;
221
+} Jim_HashTable;
222
+
223
+typedef struct Jim_HashTableIterator {
224
+ Jim_HashTable *ht;
225
+ int index;
226
+ Jim_HashEntry *entry, *nextEntry;
227
+} Jim_HashTableIterator;
228
+
229
+/* This is the initial size of every hash table */
230
+#define JIM_HT_INITIAL_SIZE 16
231
+
232
+/* ------------------------------- Macros ------------------------------------*/
233
+#define Jim_FreeEntryVal(ht, entry) \
234
+ if ((ht)->type->valDestructor) \
235
+ (ht)->type->valDestructor((ht)->privdata, (entry)->u.val)
236
+
237
+#define Jim_SetHashVal(ht, entry, _val_) do { \
238
+ if ((ht)->type->valDup) \
239
+ entry->u.val = (ht)->type->valDup((ht)->privdata, _val_); \
240
+ else \
241
+ entry->u.val = (_val_); \
242
+} while(0)
243
+
244
+#define Jim_FreeEntryKey(ht, entry) \
245
+ if ((ht)->type->keyDestructor) \
246
+ (ht)->type->keyDestructor((ht)->privdata, (entry)->key)
247
+
248
+#define Jim_SetHashKey(ht, entry, _key_) do { \
249
+ if ((ht)->type->keyDup) \
250
+ entry->key = (ht)->type->keyDup((ht)->privdata, _key_); \
251
+ else \
252
+ entry->key = (_key_); \
253
+} while(0)
254
+
255
+#define Jim_CompareHashKeys(ht, key1, key2) \
256
+ (((ht)->type->keyCompare) ? \
257
+ (ht)->type->keyCompare((ht)->privdata, key1, key2) : \
258
+ (key1) == (key2))
259
+
260
+#define Jim_HashKey(ht, key) (ht)->type->hashFunction(key)
261
+
262
+#define Jim_GetHashEntryKey(he) ((he)->key)
263
+#define Jim_GetHashEntryVal(he) ((he)->val)
264
+#define Jim_GetHashTableCollisions(ht) ((ht)->collisions)
265
+#define Jim_GetHashTableSize(ht) ((ht)->size)
266
+#define Jim_GetHashTableUsed(ht) ((ht)->used)
267
+
268
+/* -----------------------------------------------------------------------------
269
+ * Jim_Obj structure
270
+ * ---------------------------------------------------------------------------*/
271
+
272
+/* -----------------------------------------------------------------------------
273
+ * Jim object. This is mostly the same as Tcl_Obj itself,
274
+ * with the addition of the 'prev' and 'next' pointers.
275
+ * In Jim all the objects are stored into a linked list for GC purposes,
276
+ * so that it's possible to access every object living in a given interpreter
277
+ * sequentially. When an object is freed, it's moved into a different
278
+ * linked list, used as object pool.
279
+ *
280
+ * The refcount of a freed object is always -1.
281
+ * ---------------------------------------------------------------------------*/
282
+typedef struct Jim_Obj {
283
+ int refCount; /* reference count */
284
+ char *bytes; /* string representation buffer. NULL = no string repr. */
285
+ int length; /* number of bytes in 'bytes', not including the numterm. */
286
+ const struct Jim_ObjType *typePtr; /* object type. */
287
+ /* Internal representation union */
288
+ union {
289
+ /* integer number type */
290
+ jim_wide wideValue;
291
+ /* hashed object type value */
292
+ int hashValue;
293
+ /* index type */
294
+ int indexValue;
295
+ /* return code type */
296
+ int returnCode;
297
+ /* double number type */
298
+ double doubleValue;
299
+ /* Generic pointer */
300
+ void *ptr;
301
+ /* Generic two pointers value */
302
+ struct {
303
+ void *ptr1;
304
+ void *ptr2;
305
+ } twoPtrValue;
306
+ /* Variable object */
307
+ struct {
308
+ unsigned jim_wide callFrameId;
309
+ struct Jim_Var *varPtr;
310
+ } varValue;
311
+ /* Command object */
312
+ struct {
313
+ unsigned jim_wide procEpoch;
314
+ struct Jim_Cmd *cmdPtr;
315
+ } cmdValue;
316
+ /* List object */
317
+ struct {
318
+ struct Jim_Obj **ele; /* Elements vector */
319
+ int len; /* Length */
320
+ int maxLen; /* Allocated 'ele' length */
321
+ } listValue;
322
+ /* String type */
323
+ struct {
324
+ int maxLength;
325
+ int charLength; /* utf-8 char length. -1 if unknown */
326
+ } strValue;
327
+ /* Reference type */
328
+ struct {
329
+ jim_wide id;
330
+ struct Jim_Reference *refPtr;
331
+ } refValue;
332
+ /* Source type */
333
+ struct {
334
+ struct Jim_Obj *fileNameObj;
335
+ int lineNumber;
336
+ } sourceValue;
337
+ /* Dict substitution type */
338
+ struct {
339
+ struct Jim_Obj *varNameObjPtr;
340
+ struct Jim_Obj *indexObjPtr;
341
+ } dictSubstValue;
342
+ /* tagged binary type */
343
+ struct {
344
+ unsigned char *data;
345
+ size_t len;
346
+ } binaryValue;
347
+ /* Regular expression pattern */
348
+ struct {
349
+ unsigned flags;
350
+ void *compre; /* really an allocated (regex_t *) */
351
+ } regexpValue;
352
+ struct {
353
+ int line;
354
+ int argc;
355
+ } scriptLineValue;
356
+ } internalRep;
357
+ /* This are 8 or 16 bytes more for every object
358
+ * but this is required for efficient garbage collection
359
+ * of Jim references. */
360
+ struct Jim_Obj *prevObjPtr; /* pointer to the prev object. */
361
+ struct Jim_Obj *nextObjPtr; /* pointer to the next object. */
362
+} Jim_Obj;
363
+
364
+/* Jim_Obj related macros */
365
+#define Jim_IncrRefCount(objPtr) \
366
+ ++(objPtr)->refCount
367
+#define Jim_DecrRefCount(interp, objPtr) \
368
+ if (--(objPtr)->refCount <= 0) Jim_FreeObj(interp, objPtr)
369
+#define Jim_IsShared(objPtr) \
370
+ ((objPtr)->refCount > 1)
371
+
372
+/* This macro is used when we allocate a new object using
373
+ * Jim_New...Obj(), but for some error we need to destroy it.
374
+ * Instead to use Jim_IncrRefCount() + Jim_DecrRefCount() we
375
+ * can just call Jim_FreeNewObj. To call Jim_Free directly
376
+ * seems too raw, the object handling may change and we want
377
+ * that Jim_FreeNewObj() can be called only against objects
378
+ * that are belived to have refcount == 0. */
379
+#define Jim_FreeNewObj Jim_FreeObj
380
+
381
+/* Free the internal representation of the object. */
382
+#define Jim_FreeIntRep(i,o) \
383
+ if ((o)->typePtr && (o)->typePtr->freeIntRepProc) \
384
+ (o)->typePtr->freeIntRepProc(i, o)
385
+
386
+/* Get the internal representation pointer */
387
+#define Jim_GetIntRepPtr(o) (o)->internalRep.ptr
388
+
389
+/* Set the internal representation pointer */
390
+#define Jim_SetIntRepPtr(o, p) \
391
+ (o)->internalRep.ptr = (p)
392
+
393
+/* The object type structure.
394
+ * There are four methods.
395
+ *
396
+ * - FreeIntRep is used to free the internal representation of the object.
397
+ * Can be NULL if there is nothing to free.
398
+ * - DupIntRep is used to duplicate the internal representation of the object.
399
+ * If NULL, when an object is duplicated, the internalRep union is
400
+ * directly copied from an object to another.
401
+ * Note that it's up to the caller to free the old internal repr of the
402
+ * object before to call the Dup method.
403
+ * - UpdateString is used to create the string from the internal repr.
404
+ * - setFromAny is used to convert the current object into one of this type.
405
+ */
406
+
407
+struct Jim_Interp;
408
+
409
+typedef void (Jim_FreeInternalRepProc)(struct Jim_Interp *interp,
410
+ struct Jim_Obj *objPtr);
411
+typedef void (Jim_DupInternalRepProc)(struct Jim_Interp *interp,
412
+ struct Jim_Obj *srcPtr, Jim_Obj *dupPtr);
413
+typedef void (Jim_UpdateStringProc)(struct Jim_Obj *objPtr);
414
+
415
+typedef struct Jim_ObjType {
416
+ const char *name; /* The name of the type. */
417
+ Jim_FreeInternalRepProc *freeIntRepProc;
418
+ Jim_DupInternalRepProc *dupIntRepProc;
419
+ Jim_UpdateStringProc *updateStringProc;
420
+ int flags;
421
+} Jim_ObjType;
422
+
423
+/* Jim_ObjType flags */
424
+#define JIM_TYPE_NONE 0 /* No flags */
425
+#define JIM_TYPE_REFERENCES 1 /* The object may contain referneces. */
426
+
427
+/* Starting from 1 << 20 flags are reserved for private uses of
428
+ * different calls. This way the same 'flags' argument may be used
429
+ * to pass both global flags and private flags. */
430
+#define JIM_PRIV_FLAG_SHIFT 20
431
+
432
+/* -----------------------------------------------------------------------------
433
+ * Call frame, vars, commands structures
434
+ * ---------------------------------------------------------------------------*/
435
+
436
+/* Call frame */
437
+typedef struct Jim_CallFrame {
438
+ unsigned jim_wide id; /* Call Frame ID. Used for caching. */
439
+ int level; /* Level of this call frame. 0 = global */
440
+ struct Jim_HashTable vars; /* Where local vars are stored */
441
+ struct Jim_HashTable *staticVars; /* pointer to procedure static vars */
442
+ struct Jim_CallFrame *parentCallFrame;
443
+ Jim_Obj *const *argv; /* object vector of the current procedure call. */
444
+ int argc; /* number of args of the current procedure call. */
445
+ Jim_Obj *procArgsObjPtr; /* arglist object of the running procedure */
446
+ Jim_Obj *procBodyObjPtr; /* body object of the running procedure */
447
+ struct Jim_CallFrame *nextFramePtr;
448
+ Jim_Obj *fileNameObj; /* file and line of caller of this proc (if available) */
449
+ int line;
450
+} Jim_CallFrame;
451
+
452
+/* The var structure. It just holds the pointer of the referenced
453
+ * object. If linkFramePtr is not NULL the variable is a link
454
+ * to a variable of name store on objPtr living on the given callframe
455
+ * (this happens when the [global] or [upvar] command is used).
456
+ * The interp in order to always know how to free the Jim_Obj associated
457
+ * with a given variable because In Jim objects memory managment is
458
+ * bound to interpreters. */
459
+typedef struct Jim_Var {
460
+ Jim_Obj *objPtr;
461
+ struct Jim_CallFrame *linkFramePtr;
462
+} Jim_Var;
463
+
464
+/* The cmd structure. */
465
+typedef int (*Jim_CmdProc)(struct Jim_Interp *interp, int argc,
466
+ Jim_Obj *const *argv);
467
+typedef void (*Jim_DelCmdProc)(struct Jim_Interp *interp, void *privData);
468
+
469
+
470
+
471
+/* A command is implemented in C if funcPtr is != NULL, otherwise
472
+ * it's a Tcl procedure with the arglist and body represented by the
473
+ * two objects referenced by arglistObjPtr and bodyoObjPtr. */
474
+typedef struct Jim_Cmd {
475
+ int inUse; /* Reference count */
476
+ int isproc; /* Is this a procedure? */
477
+ union {
478
+ struct {
479
+ /* native (C) command */
480
+ Jim_CmdProc cmdProc; /* The command implementation */
481
+ Jim_DelCmdProc delProc; /* Called when the command is deleted if != NULL */
482
+ void *privData; /* command-private data available via Jim_CmdPrivData() */
483
+ } native;
484
+ struct {
485
+ /* Tcl procedure */
486
+ Jim_Obj *argListObjPtr;
487
+ Jim_Obj *bodyObjPtr;
488
+ Jim_HashTable *staticVars; /* Static vars hash table. NULL if no statics. */
489
+ struct Jim_Cmd *prevCmd; /* Previous command defn if proc created 'local' */
490
+ int argListLen; /* Length of argListObjPtr */
491
+ int reqArity; /* Number of required parameters */
492
+ int optArity; /* Number of optional parameters */
493
+ int argsPos; /* Position of 'args', if specified, or -1 */
494
+ int upcall; /* True if proc is currently in upcall */
495
+ struct Jim_ProcArg {
496
+ Jim_Obj *nameObjPtr; /* Name of this arg */
497
+ Jim_Obj *defaultObjPtr; /* Default value, (or rename for $args) */
498
+ } *arglist;
499
+ } proc;
500
+ } u;
501
+} Jim_Cmd;
502
+
503
+/* Pseudo Random Number Generator State structure */
504
+typedef struct Jim_PrngState {
505
+ unsigned char sbox[256];
506
+ unsigned int i, j;
507
+} Jim_PrngState;
508
+
509
+/* -----------------------------------------------------------------------------
510
+ * Jim interpreter structure.
511
+ * Fields similar to the real Tcl interpreter structure have the same names.
512
+ * ---------------------------------------------------------------------------*/
513
+typedef struct Jim_Interp {
514
+ Jim_Obj *result; /* object returned by the last command called. */
515
+ int errorLine; /* Error line where an error occurred. */
516
+ Jim_Obj *errorFileNameObj; /* Error file where an error occurred. */
517
+ int addStackTrace; /* > 0 If a level should be added to the stack trace */
518
+ int maxNestingDepth; /* Used for infinite loop detection. */
519
+ int returnCode; /* Completion code to return on JIM_RETURN. */
520
+ int returnLevel; /* Current level of 'return -level' */
521
+ int exitCode; /* Code to return to the OS on JIM_EXIT. */
522
+ long id; /* Hold unique id for various purposes */
523
+ int signal_level; /* A nesting level of catch -signal */
524
+ jim_wide sigmask; /* Bit mask of caught signals, or 0 if none */
525
+ int (*signal_set_result)(struct Jim_Interp *interp, jim_wide sigmask); /* Set a result for the sigmask */
526
+ Jim_CallFrame *framePtr; /* Pointer to the current call frame */
527
+ Jim_CallFrame *topFramePtr; /* toplevel/global frame pointer. */
528
+ struct Jim_HashTable commands; /* Commands hash table */
529
+ unsigned jim_wide procEpoch; /* Incremented every time the result
530
+ of procedures names lookup caching
531
+ may no longer be valid. */
532
+ unsigned jim_wide callFrameEpoch; /* Incremented every time a new
533
+ callframe is created. This id is used for the
534
+ 'ID' field contained in the Jim_CallFrame
535
+ structure. */
536
+ int local; /* If 'local' is in effect, newly defined procs keep a reference to the old defn */
537
+ Jim_Obj *liveList; /* Linked list of all the live objects. */
538
+ Jim_Obj *freeList; /* Linked list of all the unused objects. */
539
+ Jim_Obj *currentScriptObj; /* Script currently in execution. */
540
+ Jim_Obj *emptyObj; /* Shared empty string object. */
541
+ Jim_Obj *trueObj; /* Shared true int object. */
542
+ Jim_Obj *falseObj; /* Shared false int object. */
543
+ unsigned jim_wide referenceNextId; /* Next id for reference. */
544
+ struct Jim_HashTable references; /* References hash table. */
545
+ jim_wide lastCollectId; /* reference max Id of the last GC
546
+ execution. It's set to -1 while the collection
547
+ is running as sentinel to avoid to recursive
548
+ calls via the [collect] command inside
549
+ finalizers. */
550
+ time_t lastCollectTime; /* unix time of the last GC execution */
551
+ Jim_Obj *stackTrace; /* Stack trace object. */
552
+ Jim_Obj *errorProc; /* Name of last procedure which returned an error */
553
+ Jim_Obj *unknown; /* Unknown command cache */
554
+ int unknown_called; /* The unknown command has been invoked */
555
+ int errorFlag; /* Set if an error occurred during execution. */
556
+ void *cmdPrivData; /* Used to pass the private data pointer to
557
+ a command. It is set to what the user specified
558
+ via Jim_CreateCommand(). */
559
+
560
+ struct Jim_CallFrame *freeFramesList; /* list of CallFrame structures. */
561
+ struct Jim_HashTable assocData; /* per-interp storage for use by packages */
562
+ Jim_PrngState *prngState; /* per interpreter Random Number Gen. state. */
563
+ struct Jim_HashTable packages; /* Provided packages hash table */
564
+ Jim_Stack *localProcs; /* procs to be destroyed on end of evaluation */
565
+ Jim_Stack *loadHandles; /* handles of loaded modules [load] */
566
+} Jim_Interp;
567
+
568
+/* Currently provided as macro that performs the increment.
569
+ * At some point may be a real function doing more work.
570
+ * The proc epoch is used in order to know when a command lookup
571
+ * cached can no longer considered valid. */
572
+#define Jim_InterpIncrProcEpoch(i) (i)->procEpoch++
573
+#define Jim_SetResultString(i,s,l) Jim_SetResult(i, Jim_NewStringObj(i,s,l))
574
+#define Jim_SetResultInt(i,intval) Jim_SetResult(i, Jim_NewIntObj(i,intval))
575
+/* Note: Using trueObj and falseObj here makes some things slower...*/
576
+#define Jim_SetResultBool(i,b) Jim_SetResultInt(i, b)
577
+#define Jim_SetEmptyResult(i) Jim_SetResult(i, (i)->emptyObj)
578
+#define Jim_GetResult(i) ((i)->result)
579
+#define Jim_CmdPrivData(i) ((i)->cmdPrivData)
580
+#define Jim_String(o) Jim_GetString((o), NULL)
581
+
582
+/* Note that 'o' is expanded only one time inside this macro,
583
+ * so it's safe to use side effects. */
584
+#define Jim_SetResult(i,o) do { \
585
+ Jim_Obj *_resultObjPtr_ = (o); \
586
+ Jim_IncrRefCount(_resultObjPtr_); \
587
+ Jim_DecrRefCount(i,(i)->result); \
588
+ (i)->result = _resultObjPtr_; \
589
+} while(0)
590
+
591
+/* Use this for filehandles, etc. which need a unique id */
592
+#define Jim_GetId(i) (++(i)->id)
593
+
594
+/* Reference structure. The interpreter pointer is held within privdata member in HashTable */
595
+#define JIM_REFERENCE_TAGLEN 7 /* The tag is fixed-length, because the reference
596
+ string representation must be fixed length. */
597
+typedef struct Jim_Reference {
598
+ Jim_Obj *objPtr;
599
+ Jim_Obj *finalizerCmdNamePtr;
600
+ char tag[JIM_REFERENCE_TAGLEN+1];
601
+} Jim_Reference;
602
+
603
+/* -----------------------------------------------------------------------------
604
+ * Exported API prototypes.
605
+ * ---------------------------------------------------------------------------*/
606
+
607
+/* Macros that are common for extensions and core. */
608
+#define Jim_NewEmptyStringObj(i) Jim_NewStringObj(i, "", 0)
609
+
610
+/* The core includes real prototypes, extensions instead
611
+ * include a global function pointer for every function exported.
612
+ * Once the extension calls Jim_InitExtension(), the global
613
+ * functon pointers are set to the value of the STUB table
614
+ * contained in the Jim_Interp structure.
615
+ *
616
+ * This makes Jim able to load extensions even if it is statically
617
+ * linked itself, and to load extensions compiled with different
618
+ * versions of Jim (as long as the API is still compatible.) */
619
+
620
+/* Macros are common for core and extensions */
621
+#define Jim_FreeHashTableIterator(iter) Jim_Free(iter)
622
+
623
+#define JIM_EXPORT
624
+
625
+/* Memory allocation */
626
+JIM_EXPORT void *Jim_Alloc (int size);
627
+JIM_EXPORT void *Jim_Realloc(void *ptr, int size);
628
+JIM_EXPORT void Jim_Free (void *ptr);
629
+JIM_EXPORT char * Jim_StrDup (const char *s);
630
+JIM_EXPORT char *Jim_StrDupLen(const char *s, int l);
631
+
632
+/* environment */
633
+JIM_EXPORT char **Jim_GetEnviron(void);
634
+JIM_EXPORT void Jim_SetEnviron(char **env);
635
+
636
+/* evaluation */
637
+JIM_EXPORT int Jim_Eval(Jim_Interp *interp, const char *script);
638
+/* in C code, you can do this and get better error messages */
639
+/* Jim_EvalSource( interp, __FILE__, __LINE__ , "some tcl commands"); */
640
+JIM_EXPORT int Jim_EvalSource(Jim_Interp *interp, const char *filename, int lineno, const char *script);
641
+/* Backwards compatibility */
642
+#define Jim_Eval_Named(I, S, F, L) Jim_EvalSource((I), (F), (L), (S))
643
+
644
+JIM_EXPORT int Jim_EvalGlobal(Jim_Interp *interp, const char *script);
645
+JIM_EXPORT int Jim_EvalFile(Jim_Interp *interp, const char *filename);
646
+JIM_EXPORT int Jim_EvalFileGlobal(Jim_Interp *interp, const char *filename);
647
+JIM_EXPORT int Jim_EvalObj (Jim_Interp *interp, Jim_Obj *scriptObjPtr);
648
+JIM_EXPORT int Jim_EvalObjVector (Jim_Interp *interp, int objc,
649
+ Jim_Obj *const *objv);
650
+JIM_EXPORT int Jim_EvalObjPrefix(Jim_Interp *interp, Jim_Obj *prefix,
651
+ int objc, Jim_Obj *const *objv);
652
+#define Jim_EvalPrefix(i, p, oc, ov) Jim_EvalObjPrefix((i), Jim_NewStringObj((i), (p), -1), (oc), (ov))
653
+JIM_EXPORT int Jim_SubstObj (Jim_Interp *interp, Jim_Obj *substObjPtr,
654
+ Jim_Obj **resObjPtrPtr, int flags);
655
+
656
+/* stack */
657
+JIM_EXPORT void Jim_InitStack(Jim_Stack *stack);
658
+JIM_EXPORT void Jim_FreeStack(Jim_Stack *stack);
659
+JIM_EXPORT int Jim_StackLen(Jim_Stack *stack);
660
+JIM_EXPORT void Jim_StackPush(Jim_Stack *stack, void *element);
661
+JIM_EXPORT void * Jim_StackPop(Jim_Stack *stack);
662
+JIM_EXPORT void * Jim_StackPeek(Jim_Stack *stack);
663
+JIM_EXPORT void Jim_FreeStackElements(Jim_Stack *stack, void (*freeFunc)(void *ptr));
664
+
665
+/* hash table */
666
+JIM_EXPORT int Jim_InitHashTable (Jim_HashTable *ht,
667
+ const Jim_HashTableType *type, void *privdata);
668
+JIM_EXPORT int Jim_ExpandHashTable (Jim_HashTable *ht,
669
+ unsigned int size);
670
+JIM_EXPORT int Jim_AddHashEntry (Jim_HashTable *ht, const void *key,
671
+ void *val);
672
+JIM_EXPORT int Jim_ReplaceHashEntry (Jim_HashTable *ht,
673
+ const void *key, void *val);
674
+JIM_EXPORT int Jim_DeleteHashEntry (Jim_HashTable *ht,
675
+ const void *key);
676
+JIM_EXPORT int Jim_FreeHashTable (Jim_HashTable *ht);
677
+JIM_EXPORT Jim_HashEntry * Jim_FindHashEntry (Jim_HashTable *ht,
678
+ const void *key);
679
+JIM_EXPORT int Jim_ResizeHashTable (Jim_HashTable *ht);
680
+JIM_EXPORT Jim_HashTableIterator *Jim_GetHashTableIterator
681
+ (Jim_HashTable *ht);
682
+JIM_EXPORT Jim_HashEntry * Jim_NextHashEntry
683
+ (Jim_HashTableIterator *iter);
684
+
685
+/* objects */
686
+JIM_EXPORT Jim_Obj * Jim_NewObj (Jim_Interp *interp);
687
+JIM_EXPORT void Jim_FreeObj (Jim_Interp *interp, Jim_Obj *objPtr);
688
+JIM_EXPORT void Jim_InvalidateStringRep (Jim_Obj *objPtr);
689
+JIM_EXPORT void Jim_InitStringRep (Jim_Obj *objPtr, const char *bytes,
690
+ int length);
691
+JIM_EXPORT Jim_Obj * Jim_DuplicateObj (Jim_Interp *interp,
692
+ Jim_Obj *objPtr);
693
+JIM_EXPORT const char * Jim_GetString(Jim_Obj *objPtr,
694
+ int *lenPtr);
695
+JIM_EXPORT int Jim_Length(Jim_Obj *objPtr);
696
+
697
+/* string object */
698
+JIM_EXPORT Jim_Obj * Jim_NewStringObj (Jim_Interp *interp,
699
+ const char *s, int len);
700
+JIM_EXPORT Jim_Obj *Jim_NewStringObjUtf8(Jim_Interp *interp,
701
+ const char *s, int charlen);
702
+JIM_EXPORT Jim_Obj * Jim_NewStringObjNoAlloc (Jim_Interp *interp,
703
+ char *s, int len);
704
+JIM_EXPORT void Jim_AppendString (Jim_Interp *interp, Jim_Obj *objPtr,
705
+ const char *str, int len);
706
+JIM_EXPORT void Jim_AppendObj (Jim_Interp *interp, Jim_Obj *objPtr,
707
+ Jim_Obj *appendObjPtr);
708
+JIM_EXPORT void Jim_AppendStrings (Jim_Interp *interp,
709
+ Jim_Obj *objPtr, ...);
710
+JIM_EXPORT int Jim_StringEqObj(Jim_Obj *aObjPtr, Jim_Obj *bObjPtr);
711
+JIM_EXPORT int Jim_StringMatchObj (Jim_Interp *interp, Jim_Obj *patternObjPtr,
712
+ Jim_Obj *objPtr, int nocase);
713
+JIM_EXPORT Jim_Obj * Jim_StringRangeObj (Jim_Interp *interp,
714
+ Jim_Obj *strObjPtr, Jim_Obj *firstObjPtr,
715
+ Jim_Obj *lastObjPtr);
716
+JIM_EXPORT Jim_Obj * Jim_FormatString (Jim_Interp *interp,
717
+ Jim_Obj *fmtObjPtr, int objc, Jim_Obj *const *objv);
718
+JIM_EXPORT Jim_Obj * Jim_ScanString (Jim_Interp *interp, Jim_Obj *strObjPtr,
719
+ Jim_Obj *fmtObjPtr, int flags);
720
+JIM_EXPORT int Jim_CompareStringImmediate (Jim_Interp *interp,
721
+ Jim_Obj *objPtr, const char *str);
722
+JIM_EXPORT int Jim_StringCompareObj(Jim_Interp *interp, Jim_Obj *firstObjPtr,
723
+ Jim_Obj *secondObjPtr, int nocase);
724
+JIM_EXPORT int Jim_Utf8Length(Jim_Interp *interp, Jim_Obj *objPtr);
725
+
726
+/* reference object */
727
+JIM_EXPORT Jim_Obj * Jim_NewReference (Jim_Interp *interp,
728
+ Jim_Obj *objPtr, Jim_Obj *tagPtr, Jim_Obj *cmdNamePtr);
729
+JIM_EXPORT Jim_Reference * Jim_GetReference (Jim_Interp *interp,
730
+ Jim_Obj *objPtr);
731
+JIM_EXPORT int Jim_SetFinalizer (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *cmdNamePtr);
732
+JIM_EXPORT int Jim_GetFinalizer (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj **cmdNamePtrPtr);
733
+
734
+/* interpreter */
735
+JIM_EXPORT Jim_Interp * Jim_CreateInterp (void);
736
+JIM_EXPORT void Jim_FreeInterp (Jim_Interp *i);
737
+JIM_EXPORT int Jim_GetExitCode (Jim_Interp *interp);
738
+JIM_EXPORT const char *Jim_ReturnCode(int code);
739
+JIM_EXPORT void Jim_SetResultFormatted(Jim_Interp *interp, const char *format, ...);
740
+
741
+/* commands */
742
+JIM_EXPORT void Jim_RegisterCoreCommands (Jim_Interp *interp);
743
+JIM_EXPORT int Jim_CreateCommand (Jim_Interp *interp,
744
+ const char *cmdName, Jim_CmdProc cmdProc, void *privData,
745
+ Jim_DelCmdProc delProc);
746
+JIM_EXPORT int Jim_DeleteCommand (Jim_Interp *interp,
747
+ const char *cmdName);
748
+JIM_EXPORT int Jim_RenameCommand (Jim_Interp *interp,
749
+ const char *oldName, const char *newName);
750
+JIM_EXPORT Jim_Cmd * Jim_GetCommand (Jim_Interp *interp,
751
+ Jim_Obj *objPtr, int flags);
752
+JIM_EXPORT int Jim_SetVariable (Jim_Interp *interp,
753
+ Jim_Obj *nameObjPtr, Jim_Obj *valObjPtr);
754
+JIM_EXPORT int Jim_SetVariableStr (Jim_Interp *interp,
755
+ const char *name, Jim_Obj *objPtr);
756
+JIM_EXPORT int Jim_SetGlobalVariableStr (Jim_Interp *interp,
757
+ const char *name, Jim_Obj *objPtr);
758
+JIM_EXPORT int Jim_SetVariableStrWithStr (Jim_Interp *interp,
759
+ const char *name, const char *val);
760
+JIM_EXPORT int Jim_SetVariableLink (Jim_Interp *interp,
761
+ Jim_Obj *nameObjPtr, Jim_Obj *targetNameObjPtr,
762
+ Jim_CallFrame *targetCallFrame);
763
+JIM_EXPORT Jim_Obj * Jim_GetVariable (Jim_Interp *interp,
764
+ Jim_Obj *nameObjPtr, int flags);
765
+JIM_EXPORT Jim_Obj * Jim_GetGlobalVariable (Jim_Interp *interp,
766
+ Jim_Obj *nameObjPtr, int flags);
767
+JIM_EXPORT Jim_Obj * Jim_GetVariableStr (Jim_Interp *interp,
768
+ const char *name, int flags);
769
+JIM_EXPORT Jim_Obj * Jim_GetGlobalVariableStr (Jim_Interp *interp,
770
+ const char *name, int flags);
771
+JIM_EXPORT int Jim_UnsetVariable (Jim_Interp *interp,
772
+ Jim_Obj *nameObjPtr, int flags);
773
+
774
+/* call frame */
775
+JIM_EXPORT Jim_CallFrame *Jim_GetCallFrameByLevel(Jim_Interp *interp,
776
+ Jim_Obj *levelObjPtr);
777
+
778
+/* garbage collection */
779
+JIM_EXPORT int Jim_Collect (Jim_Interp *interp);
780
+JIM_EXPORT void Jim_CollectIfNeeded (Jim_Interp *interp);
781
+
782
+/* index object */
783
+JIM_EXPORT int Jim_GetIndex (Jim_Interp *interp, Jim_Obj *objPtr,
784
+ int *indexPtr);
785
+
786
+/* list object */
787
+JIM_EXPORT Jim_Obj * Jim_NewListObj (Jim_Interp *interp,
788
+ Jim_Obj *const *elements, int len);
789
+JIM_EXPORT void Jim_ListInsertElements (Jim_Interp *interp,
790
+ Jim_Obj *listPtr, int listindex, int objc, Jim_Obj *const *objVec);
791
+JIM_EXPORT void Jim_ListAppendElement (Jim_Interp *interp,
792
+ Jim_Obj *listPtr, Jim_Obj *objPtr);
793
+JIM_EXPORT void Jim_ListAppendList (Jim_Interp *interp,
794
+ Jim_Obj *listPtr, Jim_Obj *appendListPtr);
795
+JIM_EXPORT int Jim_ListLength (Jim_Interp *interp, Jim_Obj *objPtr);
796
+JIM_EXPORT int Jim_ListIndex (Jim_Interp *interp, Jim_Obj *listPrt,
797
+ int listindex, Jim_Obj **objPtrPtr, int seterr);
798
+JIM_EXPORT int Jim_SetListIndex (Jim_Interp *interp,
799
+ Jim_Obj *varNamePtr, Jim_Obj *const *indexv, int indexc,
800
+ Jim_Obj *newObjPtr);
801
+JIM_EXPORT Jim_Obj * Jim_ConcatObj (Jim_Interp *interp, int objc,
802
+ Jim_Obj *const *objv);
803
+
804
+/* dict object */
805
+JIM_EXPORT Jim_Obj * Jim_NewDictObj (Jim_Interp *interp,
806
+ Jim_Obj *const *elements, int len);
807
+JIM_EXPORT int Jim_DictKey (Jim_Interp *interp, Jim_Obj *dictPtr,
808
+ Jim_Obj *keyPtr, Jim_Obj **objPtrPtr, int flags);
809
+JIM_EXPORT int Jim_DictKeysVector (Jim_Interp *interp,
810
+ Jim_Obj *dictPtr, Jim_Obj *const *keyv, int keyc,
811
+ Jim_Obj **objPtrPtr, int flags);
812
+JIM_EXPORT int Jim_SetDictKeysVector (Jim_Interp *interp,
813
+ Jim_Obj *varNamePtr, Jim_Obj *const *keyv, int keyc,
814
+ Jim_Obj *newObjPtr, int flags);
815
+JIM_EXPORT int Jim_DictPairs(Jim_Interp *interp,
816
+ Jim_Obj *dictPtr, Jim_Obj ***objPtrPtr, int *len);
817
+JIM_EXPORT int Jim_DictAddElement(Jim_Interp *interp, Jim_Obj *objPtr,
818
+ Jim_Obj *keyObjPtr, Jim_Obj *valueObjPtr);
819
+JIM_EXPORT int Jim_DictKeys(Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *patternObj);
820
+JIM_EXPORT int Jim_DictSize(Jim_Interp *interp, Jim_Obj *objPtr);
821
+
822
+/* return code object */
823
+JIM_EXPORT int Jim_GetReturnCode (Jim_Interp *interp, Jim_Obj *objPtr,
824
+ int *intPtr);
825
+
826
+/* expression object */
827
+JIM_EXPORT int Jim_EvalExpression (Jim_Interp *interp,
828
+ Jim_Obj *exprObjPtr, Jim_Obj **exprResultPtrPtr);
829
+JIM_EXPORT int Jim_GetBoolFromExpr (Jim_Interp *interp,
830
+ Jim_Obj *exprObjPtr, int *boolPtr);
831
+
832
+/* integer object */
833
+JIM_EXPORT int Jim_GetWide (Jim_Interp *interp, Jim_Obj *objPtr,
834
+ jim_wide *widePtr);
835
+JIM_EXPORT int Jim_GetLong (Jim_Interp *interp, Jim_Obj *objPtr,
836
+ long *longPtr);
837
+#define Jim_NewWideObj Jim_NewIntObj
838
+JIM_EXPORT Jim_Obj * Jim_NewIntObj (Jim_Interp *interp,
839
+ jim_wide wideValue);
840
+
841
+/* double object */
842
+JIM_EXPORT int Jim_GetDouble(Jim_Interp *interp, Jim_Obj *objPtr,
843
+ double *doublePtr);
844
+JIM_EXPORT void Jim_SetDouble(Jim_Interp *interp, Jim_Obj *objPtr,
845
+ double doubleValue);
846
+JIM_EXPORT Jim_Obj * Jim_NewDoubleObj(Jim_Interp *interp, double doubleValue);
847
+
848
+/* shared strings */
849
+JIM_EXPORT const char * Jim_GetSharedString (Jim_Interp *interp,
850
+ const char *str);
851
+JIM_EXPORT void Jim_ReleaseSharedString (Jim_Interp *interp,
852
+ const char *str);
853
+
854
+/* commands utilities */
855
+JIM_EXPORT void Jim_WrongNumArgs (Jim_Interp *interp, int argc,
856
+ Jim_Obj *const *argv, const char *msg);
857
+JIM_EXPORT int Jim_GetEnum (Jim_Interp *interp, Jim_Obj *objPtr,
858
+ const char * const *tablePtr, int *indexPtr, const char *name, int flags);
859
+JIM_EXPORT int Ji
--- a/src/jim.h
+++ b/src/jim.h
@@ -0,0 +1,859 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/jim.h
+++ b/src/jim.h
@@ -0,0 +1,859 @@
1 /* Jim - A small embeddable Tcl interpreter
2 *
3 * Copyright 2005 Salvatore Sanfilippo <[email protected]>
4 * Copyright 2005 Clemens Hintze <[email protected]>
5 * Copyright 2005 patthoyts - Pat Thoyts <[email protected]>
6 * Copyright 2008 oharboe - �yvind Harboe - [email protected]
7 * Copyright 2008 Andrew Lunn <[email protected]>
8 * Copyright 2008 Duane Ellis <[email protected]>
9 * Copyright 2008 Uwe Klein <[email protected]>
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above
18 * copyright notice, this list of conditions and the following
19 * disclaimer in the documentation and/or other materials
20 * provided with the distribution.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY
23 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 * JIM TCL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
27 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
33 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 * The views and conclusions contained in the software and documentation
36 * are those of the authors and should not be interpreted as representing
37 * official policies, either expressed or implied, of the Jim Tcl Project.
38 *
39 *--- Inline Header File Documentation ---
40 * [By Duane Ellis, [email protected], 8/18/8]
41 *
42 * Belief is "Jim" would greatly benifit if Jim Internals where
43 * documented in some way - form whatever, and perhaps - the package:
44 * 'doxygen' is the correct approach to do that.
45 *
46 * Details, see: http://www.stack.nl/~dimitri/doxygen/
47 *
48 * To that end please follow these guide lines:
49 *
50 * (A) Document the PUBLIC api in the .H file.
51 *
52 * (B) Document JIM Internals, in the .C file.
53 *
54 * (C) Remember JIM is embedded in other packages, to that end do
55 * not assume that your way of documenting is the right way, Jim's
56 * public documentation should be agnostic, such that it is some
57 * what agreeable with the "package" that is embedding JIM inside
58 * of it's own doxygen documentation.
59 *
60 * (D) Use minimal Doxygen tags.
61 *
62 * This will be an "ongoing work in progress" for some time.
63 **/
64
65 #ifndef __JIM__H
66 #define __JIM__H
67
68 #ifdef __cplusplus
69 extern "C" {
70 #endif
71
72 #include <time.h>
73 #include <limits.h>
74 #include <stdio.h> /* for the FILE typedef definition */
75 #include <stdlib.h> /* In order to export the Jim_Free() macro */
76 #include <stdarg.h> /* In order to get type va_list */
77
78 /* -----------------------------------------------------------------------------
79 * System configuration
80 * autoconf (configure) will set these
81 * ---------------------------------------------------------------------------*/
82 #include <jim-win32compat.h>
83
84 #ifndef HAVE_NO_AUTOCONF
85 #include <jim-config.h>
86 #endif
87
88 /* -----------------------------------------------------------------------------
89 * Compiler specific fixes.
90 * ---------------------------------------------------------------------------*/
91
92 /* Long Long type and related issues */
93 #ifndef jim_wide
94 # ifdef HAVE_LONG_LONG
95 # define jim_wide long long
96 # ifndef LLONG_MAX
97 # define LLONG_MAX 9223372036854775807LL
98 # endif
99 # ifndef LLONG_MIN
100 # define LLONG_MIN (-LLONG_MAX - 1LL)
101 # endif
102 # define JIM_WIDE_MIN LLONG_MIN
103 # define JIM_WIDE_MAX LLONG_MAX
104 # else
105 # define jim_wide long
106 # define JIM_WIDE_MIN LONG_MIN
107 # define JIM_WIDE_MAX LONG_MAX
108 # endif
109
110 /* -----------------------------------------------------------------------------
111 * LIBC specific fixes
112 * ---------------------------------------------------------------------------*/
113
114 # ifdef HAVE_LONG_LONG
115 # define JIM_WIDE_MODIFIER "lld"
116 # else
117 # define JIM_WIDE_MODIFIER "ld"
118 # define strtoull strtoul
119 # endif
120 #endif
121
122 #define UCHAR(c) ((unsigned char)(c))
123
124 /* -----------------------------------------------------------------------------
125 * Exported defines
126 * ---------------------------------------------------------------------------*/
127
128 /* Jim version numbering: every version of jim is marked with a
129 * successive integer number. This is version 0. The first
130 * stable version will be 1, then 2, 3, and so o2. */
131 #define JIM_VERSION 73
132
133 #define JIM_OK 0
134 #define JIM_ERR 1
135 #define JIM_RETURN 2
136 #define JIM_BREAK 3
137 #define JIM_CONTINUE 4
138 #define JIM_SIGNAL 5
139 #define JIM_EXIT 6
140 /* The following are internal codes and should never been seen/used */
141 #define JIM_EVAL 7
142
143 #define JIM_MAX_NESTING_DEPTH 1000 /* default max nesting depth */
144
145 /* Some function get an integer argument with flags to change
146 * the behaviour. */
147 #define JIM_NONE 0 /* no flags set */
148 #define JIM_ERRMSG 1 /* set an error message in the interpreter. */
149
150 #define JIM_UNSHARED 4 /* Flag to Jim_GetVariable() */
151
152 /* Flags for Jim_SubstObj() */
153 #define JIM_SUBST_NOVAR 1 /* don't perform variables substitutions */
154 #define JIM_SUBST_NOCMD 2 /* don't perform command substitutions */
155 #define JIM_SUBST_NOESC 4 /* don't perform escapes substitutions */
156 #define JIM_SUBST_FLAG 128 /* flag to indicate that this is a real substition object */
157
158 /* Unused arguments generate annoying warnings... */
159 #define JIM_NOTUSED(V) ((void) V)
160
161 /* Flags for Jim_GetEnum() */
162 #define JIM_ENUM_ABBREV 2 /* Allow unambiguous abbreviation */
163
164 /* Flags used by API calls getting a 'nocase' argument. */
165 #define JIM_CASESENS 0 /* case sensitive */
166 #define JIM_NOCASE 1 /* no case */
167
168 /* Filesystem related */
169 #define JIM_PATH_LEN 1024
170
171 /* Newline, some embedded system may need -DJIM_CRLF */
172 #ifdef JIM_CRLF
173 #define JIM_NL "\r\n"
174 #else
175 #define JIM_NL "\n"
176 #endif
177
178 #define JIM_LIBPATH "auto_path"
179 #define JIM_INTERACTIVE "tcl_interactive"
180
181 /* -----------------------------------------------------------------------------
182 * Stack
183 * ---------------------------------------------------------------------------*/
184
185 typedef struct Jim_Stack {
186 int len;
187 int maxlen;
188 void **vector;
189 } Jim_Stack;
190
191 /* -----------------------------------------------------------------------------
192 * Hash table
193 * ---------------------------------------------------------------------------*/
194
195 typedef struct Jim_HashEntry {
196 const void *key;
197 union {
198 void *val;
199 int intval;
200 } u;
201 struct Jim_HashEntry *next;
202 } Jim_HashEntry;
203
204 typedef struct Jim_HashTableType {
205 unsigned int (*hashFunction)(const void *key);
206 const void *(*keyDup)(void *privdata, const void *key);
207 void *(*valDup)(void *privdata, const void *obj);
208 int (*keyCompare)(void *privdata, const void *key1, const void *key2);
209 void (*keyDestructor)(void *privdata, const void *key);
210 void (*valDestructor)(void *privdata, void *obj);
211 } Jim_HashTableType;
212
213 typedef struct Jim_HashTable {
214 Jim_HashEntry **table;
215 const Jim_HashTableType *type;
216 unsigned int size;
217 unsigned int sizemask;
218 unsigned int used;
219 unsigned int collisions;
220 void *privdata;
221 } Jim_HashTable;
222
223 typedef struct Jim_HashTableIterator {
224 Jim_HashTable *ht;
225 int index;
226 Jim_HashEntry *entry, *nextEntry;
227 } Jim_HashTableIterator;
228
229 /* This is the initial size of every hash table */
230 #define JIM_HT_INITIAL_SIZE 16
231
232 /* ------------------------------- Macros ------------------------------------*/
233 #define Jim_FreeEntryVal(ht, entry) \
234 if ((ht)->type->valDestructor) \
235 (ht)->type->valDestructor((ht)->privdata, (entry)->u.val)
236
237 #define Jim_SetHashVal(ht, entry, _val_) do { \
238 if ((ht)->type->valDup) \
239 entry->u.val = (ht)->type->valDup((ht)->privdata, _val_); \
240 else \
241 entry->u.val = (_val_); \
242 } while(0)
243
244 #define Jim_FreeEntryKey(ht, entry) \
245 if ((ht)->type->keyDestructor) \
246 (ht)->type->keyDestructor((ht)->privdata, (entry)->key)
247
248 #define Jim_SetHashKey(ht, entry, _key_) do { \
249 if ((ht)->type->keyDup) \
250 entry->key = (ht)->type->keyDup((ht)->privdata, _key_); \
251 else \
252 entry->key = (_key_); \
253 } while(0)
254
255 #define Jim_CompareHashKeys(ht, key1, key2) \
256 (((ht)->type->keyCompare) ? \
257 (ht)->type->keyCompare((ht)->privdata, key1, key2) : \
258 (key1) == (key2))
259
260 #define Jim_HashKey(ht, key) (ht)->type->hashFunction(key)
261
262 #define Jim_GetHashEntryKey(he) ((he)->key)
263 #define Jim_GetHashEntryVal(he) ((he)->val)
264 #define Jim_GetHashTableCollisions(ht) ((ht)->collisions)
265 #define Jim_GetHashTableSize(ht) ((ht)->size)
266 #define Jim_GetHashTableUsed(ht) ((ht)->used)
267
268 /* -----------------------------------------------------------------------------
269 * Jim_Obj structure
270 * ---------------------------------------------------------------------------*/
271
272 /* -----------------------------------------------------------------------------
273 * Jim object. This is mostly the same as Tcl_Obj itself,
274 * with the addition of the 'prev' and 'next' pointers.
275 * In Jim all the objects are stored into a linked list for GC purposes,
276 * so that it's possible to access every object living in a given interpreter
277 * sequentially. When an object is freed, it's moved into a different
278 * linked list, used as object pool.
279 *
280 * The refcount of a freed object is always -1.
281 * ---------------------------------------------------------------------------*/
282 typedef struct Jim_Obj {
283 int refCount; /* reference count */
284 char *bytes; /* string representation buffer. NULL = no string repr. */
285 int length; /* number of bytes in 'bytes', not including the numterm. */
286 const struct Jim_ObjType *typePtr; /* object type. */
287 /* Internal representation union */
288 union {
289 /* integer number type */
290 jim_wide wideValue;
291 /* hashed object type value */
292 int hashValue;
293 /* index type */
294 int indexValue;
295 /* return code type */
296 int returnCode;
297 /* double number type */
298 double doubleValue;
299 /* Generic pointer */
300 void *ptr;
301 /* Generic two pointers value */
302 struct {
303 void *ptr1;
304 void *ptr2;
305 } twoPtrValue;
306 /* Variable object */
307 struct {
308 unsigned jim_wide callFrameId;
309 struct Jim_Var *varPtr;
310 } varValue;
311 /* Command object */
312 struct {
313 unsigned jim_wide procEpoch;
314 struct Jim_Cmd *cmdPtr;
315 } cmdValue;
316 /* List object */
317 struct {
318 struct Jim_Obj **ele; /* Elements vector */
319 int len; /* Length */
320 int maxLen; /* Allocated 'ele' length */
321 } listValue;
322 /* String type */
323 struct {
324 int maxLength;
325 int charLength; /* utf-8 char length. -1 if unknown */
326 } strValue;
327 /* Reference type */
328 struct {
329 jim_wide id;
330 struct Jim_Reference *refPtr;
331 } refValue;
332 /* Source type */
333 struct {
334 struct Jim_Obj *fileNameObj;
335 int lineNumber;
336 } sourceValue;
337 /* Dict substitution type */
338 struct {
339 struct Jim_Obj *varNameObjPtr;
340 struct Jim_Obj *indexObjPtr;
341 } dictSubstValue;
342 /* tagged binary type */
343 struct {
344 unsigned char *data;
345 size_t len;
346 } binaryValue;
347 /* Regular expression pattern */
348 struct {
349 unsigned flags;
350 void *compre; /* really an allocated (regex_t *) */
351 } regexpValue;
352 struct {
353 int line;
354 int argc;
355 } scriptLineValue;
356 } internalRep;
357 /* This are 8 or 16 bytes more for every object
358 * but this is required for efficient garbage collection
359 * of Jim references. */
360 struct Jim_Obj *prevObjPtr; /* pointer to the prev object. */
361 struct Jim_Obj *nextObjPtr; /* pointer to the next object. */
362 } Jim_Obj;
363
364 /* Jim_Obj related macros */
365 #define Jim_IncrRefCount(objPtr) \
366 ++(objPtr)->refCount
367 #define Jim_DecrRefCount(interp, objPtr) \
368 if (--(objPtr)->refCount <= 0) Jim_FreeObj(interp, objPtr)
369 #define Jim_IsShared(objPtr) \
370 ((objPtr)->refCount > 1)
371
372 /* This macro is used when we allocate a new object using
373 * Jim_New...Obj(), but for some error we need to destroy it.
374 * Instead to use Jim_IncrRefCount() + Jim_DecrRefCount() we
375 * can just call Jim_FreeNewObj. To call Jim_Free directly
376 * seems too raw, the object handling may change and we want
377 * that Jim_FreeNewObj() can be called only against objects
378 * that are belived to have refcount == 0. */
379 #define Jim_FreeNewObj Jim_FreeObj
380
381 /* Free the internal representation of the object. */
382 #define Jim_FreeIntRep(i,o) \
383 if ((o)->typePtr && (o)->typePtr->freeIntRepProc) \
384 (o)->typePtr->freeIntRepProc(i, o)
385
386 /* Get the internal representation pointer */
387 #define Jim_GetIntRepPtr(o) (o)->internalRep.ptr
388
389 /* Set the internal representation pointer */
390 #define Jim_SetIntRepPtr(o, p) \
391 (o)->internalRep.ptr = (p)
392
393 /* The object type structure.
394 * There are four methods.
395 *
396 * - FreeIntRep is used to free the internal representation of the object.
397 * Can be NULL if there is nothing to free.
398 * - DupIntRep is used to duplicate the internal representation of the object.
399 * If NULL, when an object is duplicated, the internalRep union is
400 * directly copied from an object to another.
401 * Note that it's up to the caller to free the old internal repr of the
402 * object before to call the Dup method.
403 * - UpdateString is used to create the string from the internal repr.
404 * - setFromAny is used to convert the current object into one of this type.
405 */
406
407 struct Jim_Interp;
408
409 typedef void (Jim_FreeInternalRepProc)(struct Jim_Interp *interp,
410 struct Jim_Obj *objPtr);
411 typedef void (Jim_DupInternalRepProc)(struct Jim_Interp *interp,
412 struct Jim_Obj *srcPtr, Jim_Obj *dupPtr);
413 typedef void (Jim_UpdateStringProc)(struct Jim_Obj *objPtr);
414
415 typedef struct Jim_ObjType {
416 const char *name; /* The name of the type. */
417 Jim_FreeInternalRepProc *freeIntRepProc;
418 Jim_DupInternalRepProc *dupIntRepProc;
419 Jim_UpdateStringProc *updateStringProc;
420 int flags;
421 } Jim_ObjType;
422
423 /* Jim_ObjType flags */
424 #define JIM_TYPE_NONE 0 /* No flags */
425 #define JIM_TYPE_REFERENCES 1 /* The object may contain referneces. */
426
427 /* Starting from 1 << 20 flags are reserved for private uses of
428 * different calls. This way the same 'flags' argument may be used
429 * to pass both global flags and private flags. */
430 #define JIM_PRIV_FLAG_SHIFT 20
431
432 /* -----------------------------------------------------------------------------
433 * Call frame, vars, commands structures
434 * ---------------------------------------------------------------------------*/
435
436 /* Call frame */
437 typedef struct Jim_CallFrame {
438 unsigned jim_wide id; /* Call Frame ID. Used for caching. */
439 int level; /* Level of this call frame. 0 = global */
440 struct Jim_HashTable vars; /* Where local vars are stored */
441 struct Jim_HashTable *staticVars; /* pointer to procedure static vars */
442 struct Jim_CallFrame *parentCallFrame;
443 Jim_Obj *const *argv; /* object vector of the current procedure call. */
444 int argc; /* number of args of the current procedure call. */
445 Jim_Obj *procArgsObjPtr; /* arglist object of the running procedure */
446 Jim_Obj *procBodyObjPtr; /* body object of the running procedure */
447 struct Jim_CallFrame *nextFramePtr;
448 Jim_Obj *fileNameObj; /* file and line of caller of this proc (if available) */
449 int line;
450 } Jim_CallFrame;
451
452 /* The var structure. It just holds the pointer of the referenced
453 * object. If linkFramePtr is not NULL the variable is a link
454 * to a variable of name store on objPtr living on the given callframe
455 * (this happens when the [global] or [upvar] command is used).
456 * The interp in order to always know how to free the Jim_Obj associated
457 * with a given variable because In Jim objects memory managment is
458 * bound to interpreters. */
459 typedef struct Jim_Var {
460 Jim_Obj *objPtr;
461 struct Jim_CallFrame *linkFramePtr;
462 } Jim_Var;
463
464 /* The cmd structure. */
465 typedef int (*Jim_CmdProc)(struct Jim_Interp *interp, int argc,
466 Jim_Obj *const *argv);
467 typedef void (*Jim_DelCmdProc)(struct Jim_Interp *interp, void *privData);
468
469
470
471 /* A command is implemented in C if funcPtr is != NULL, otherwise
472 * it's a Tcl procedure with the arglist and body represented by the
473 * two objects referenced by arglistObjPtr and bodyoObjPtr. */
474 typedef struct Jim_Cmd {
475 int inUse; /* Reference count */
476 int isproc; /* Is this a procedure? */
477 union {
478 struct {
479 /* native (C) command */
480 Jim_CmdProc cmdProc; /* The command implementation */
481 Jim_DelCmdProc delProc; /* Called when the command is deleted if != NULL */
482 void *privData; /* command-private data available via Jim_CmdPrivData() */
483 } native;
484 struct {
485 /* Tcl procedure */
486 Jim_Obj *argListObjPtr;
487 Jim_Obj *bodyObjPtr;
488 Jim_HashTable *staticVars; /* Static vars hash table. NULL if no statics. */
489 struct Jim_Cmd *prevCmd; /* Previous command defn if proc created 'local' */
490 int argListLen; /* Length of argListObjPtr */
491 int reqArity; /* Number of required parameters */
492 int optArity; /* Number of optional parameters */
493 int argsPos; /* Position of 'args', if specified, or -1 */
494 int upcall; /* True if proc is currently in upcall */
495 struct Jim_ProcArg {
496 Jim_Obj *nameObjPtr; /* Name of this arg */
497 Jim_Obj *defaultObjPtr; /* Default value, (or rename for $args) */
498 } *arglist;
499 } proc;
500 } u;
501 } Jim_Cmd;
502
503 /* Pseudo Random Number Generator State structure */
504 typedef struct Jim_PrngState {
505 unsigned char sbox[256];
506 unsigned int i, j;
507 } Jim_PrngState;
508
509 /* -----------------------------------------------------------------------------
510 * Jim interpreter structure.
511 * Fields similar to the real Tcl interpreter structure have the same names.
512 * ---------------------------------------------------------------------------*/
513 typedef struct Jim_Interp {
514 Jim_Obj *result; /* object returned by the last command called. */
515 int errorLine; /* Error line where an error occurred. */
516 Jim_Obj *errorFileNameObj; /* Error file where an error occurred. */
517 int addStackTrace; /* > 0 If a level should be added to the stack trace */
518 int maxNestingDepth; /* Used for infinite loop detection. */
519 int returnCode; /* Completion code to return on JIM_RETURN. */
520 int returnLevel; /* Current level of 'return -level' */
521 int exitCode; /* Code to return to the OS on JIM_EXIT. */
522 long id; /* Hold unique id for various purposes */
523 int signal_level; /* A nesting level of catch -signal */
524 jim_wide sigmask; /* Bit mask of caught signals, or 0 if none */
525 int (*signal_set_result)(struct Jim_Interp *interp, jim_wide sigmask); /* Set a result for the sigmask */
526 Jim_CallFrame *framePtr; /* Pointer to the current call frame */
527 Jim_CallFrame *topFramePtr; /* toplevel/global frame pointer. */
528 struct Jim_HashTable commands; /* Commands hash table */
529 unsigned jim_wide procEpoch; /* Incremented every time the result
530 of procedures names lookup caching
531 may no longer be valid. */
532 unsigned jim_wide callFrameEpoch; /* Incremented every time a new
533 callframe is created. This id is used for the
534 'ID' field contained in the Jim_CallFrame
535 structure. */
536 int local; /* If 'local' is in effect, newly defined procs keep a reference to the old defn */
537 Jim_Obj *liveList; /* Linked list of all the live objects. */
538 Jim_Obj *freeList; /* Linked list of all the unused objects. */
539 Jim_Obj *currentScriptObj; /* Script currently in execution. */
540 Jim_Obj *emptyObj; /* Shared empty string object. */
541 Jim_Obj *trueObj; /* Shared true int object. */
542 Jim_Obj *falseObj; /* Shared false int object. */
543 unsigned jim_wide referenceNextId; /* Next id for reference. */
544 struct Jim_HashTable references; /* References hash table. */
545 jim_wide lastCollectId; /* reference max Id of the last GC
546 execution. It's set to -1 while the collection
547 is running as sentinel to avoid to recursive
548 calls via the [collect] command inside
549 finalizers. */
550 time_t lastCollectTime; /* unix time of the last GC execution */
551 Jim_Obj *stackTrace; /* Stack trace object. */
552 Jim_Obj *errorProc; /* Name of last procedure which returned an error */
553 Jim_Obj *unknown; /* Unknown command cache */
554 int unknown_called; /* The unknown command has been invoked */
555 int errorFlag; /* Set if an error occurred during execution. */
556 void *cmdPrivData; /* Used to pass the private data pointer to
557 a command. It is set to what the user specified
558 via Jim_CreateCommand(). */
559
560 struct Jim_CallFrame *freeFramesList; /* list of CallFrame structures. */
561 struct Jim_HashTable assocData; /* per-interp storage for use by packages */
562 Jim_PrngState *prngState; /* per interpreter Random Number Gen. state. */
563 struct Jim_HashTable packages; /* Provided packages hash table */
564 Jim_Stack *localProcs; /* procs to be destroyed on end of evaluation */
565 Jim_Stack *loadHandles; /* handles of loaded modules [load] */
566 } Jim_Interp;
567
568 /* Currently provided as macro that performs the increment.
569 * At some point may be a real function doing more work.
570 * The proc epoch is used in order to know when a command lookup
571 * cached can no longer considered valid. */
572 #define Jim_InterpIncrProcEpoch(i) (i)->procEpoch++
573 #define Jim_SetResultString(i,s,l) Jim_SetResult(i, Jim_NewStringObj(i,s,l))
574 #define Jim_SetResultInt(i,intval) Jim_SetResult(i, Jim_NewIntObj(i,intval))
575 /* Note: Using trueObj and falseObj here makes some things slower...*/
576 #define Jim_SetResultBool(i,b) Jim_SetResultInt(i, b)
577 #define Jim_SetEmptyResult(i) Jim_SetResult(i, (i)->emptyObj)
578 #define Jim_GetResult(i) ((i)->result)
579 #define Jim_CmdPrivData(i) ((i)->cmdPrivData)
580 #define Jim_String(o) Jim_GetString((o), NULL)
581
582 /* Note that 'o' is expanded only one time inside this macro,
583 * so it's safe to use side effects. */
584 #define Jim_SetResult(i,o) do { \
585 Jim_Obj *_resultObjPtr_ = (o); \
586 Jim_IncrRefCount(_resultObjPtr_); \
587 Jim_DecrRefCount(i,(i)->result); \
588 (i)->result = _resultObjPtr_; \
589 } while(0)
590
591 /* Use this for filehandles, etc. which need a unique id */
592 #define Jim_GetId(i) (++(i)->id)
593
594 /* Reference structure. The interpreter pointer is held within privdata member in HashTable */
595 #define JIM_REFERENCE_TAGLEN 7 /* The tag is fixed-length, because the reference
596 string representation must be fixed length. */
597 typedef struct Jim_Reference {
598 Jim_Obj *objPtr;
599 Jim_Obj *finalizerCmdNamePtr;
600 char tag[JIM_REFERENCE_TAGLEN+1];
601 } Jim_Reference;
602
603 /* -----------------------------------------------------------------------------
604 * Exported API prototypes.
605 * ---------------------------------------------------------------------------*/
606
607 /* Macros that are common for extensions and core. */
608 #define Jim_NewEmptyStringObj(i) Jim_NewStringObj(i, "", 0)
609
610 /* The core includes real prototypes, extensions instead
611 * include a global function pointer for every function exported.
612 * Once the extension calls Jim_InitExtension(), the global
613 * functon pointers are set to the value of the STUB table
614 * contained in the Jim_Interp structure.
615 *
616 * This makes Jim able to load extensions even if it is statically
617 * linked itself, and to load extensions compiled with different
618 * versions of Jim (as long as the API is still compatible.) */
619
620 /* Macros are common for core and extensions */
621 #define Jim_FreeHashTableIterator(iter) Jim_Free(iter)
622
623 #define JIM_EXPORT
624
625 /* Memory allocation */
626 JIM_EXPORT void *Jim_Alloc (int size);
627 JIM_EXPORT void *Jim_Realloc(void *ptr, int size);
628 JIM_EXPORT void Jim_Free (void *ptr);
629 JIM_EXPORT char * Jim_StrDup (const char *s);
630 JIM_EXPORT char *Jim_StrDupLen(const char *s, int l);
631
632 /* environment */
633 JIM_EXPORT char **Jim_GetEnviron(void);
634 JIM_EXPORT void Jim_SetEnviron(char **env);
635
636 /* evaluation */
637 JIM_EXPORT int Jim_Eval(Jim_Interp *interp, const char *script);
638 /* in C code, you can do this and get better error messages */
639 /* Jim_EvalSource( interp, __FILE__, __LINE__ , "some tcl commands"); */
640 JIM_EXPORT int Jim_EvalSource(Jim_Interp *interp, const char *filename, int lineno, const char *script);
641 /* Backwards compatibility */
642 #define Jim_Eval_Named(I, S, F, L) Jim_EvalSource((I), (F), (L), (S))
643
644 JIM_EXPORT int Jim_EvalGlobal(Jim_Interp *interp, const char *script);
645 JIM_EXPORT int Jim_EvalFile(Jim_Interp *interp, const char *filename);
646 JIM_EXPORT int Jim_EvalFileGlobal(Jim_Interp *interp, const char *filename);
647 JIM_EXPORT int Jim_EvalObj (Jim_Interp *interp, Jim_Obj *scriptObjPtr);
648 JIM_EXPORT int Jim_EvalObjVector (Jim_Interp *interp, int objc,
649 Jim_Obj *const *objv);
650 JIM_EXPORT int Jim_EvalObjPrefix(Jim_Interp *interp, Jim_Obj *prefix,
651 int objc, Jim_Obj *const *objv);
652 #define Jim_EvalPrefix(i, p, oc, ov) Jim_EvalObjPrefix((i), Jim_NewStringObj((i), (p), -1), (oc), (ov))
653 JIM_EXPORT int Jim_SubstObj (Jim_Interp *interp, Jim_Obj *substObjPtr,
654 Jim_Obj **resObjPtrPtr, int flags);
655
656 /* stack */
657 JIM_EXPORT void Jim_InitStack(Jim_Stack *stack);
658 JIM_EXPORT void Jim_FreeStack(Jim_Stack *stack);
659 JIM_EXPORT int Jim_StackLen(Jim_Stack *stack);
660 JIM_EXPORT void Jim_StackPush(Jim_Stack *stack, void *element);
661 JIM_EXPORT void * Jim_StackPop(Jim_Stack *stack);
662 JIM_EXPORT void * Jim_StackPeek(Jim_Stack *stack);
663 JIM_EXPORT void Jim_FreeStackElements(Jim_Stack *stack, void (*freeFunc)(void *ptr));
664
665 /* hash table */
666 JIM_EXPORT int Jim_InitHashTable (Jim_HashTable *ht,
667 const Jim_HashTableType *type, void *privdata);
668 JIM_EXPORT int Jim_ExpandHashTable (Jim_HashTable *ht,
669 unsigned int size);
670 JIM_EXPORT int Jim_AddHashEntry (Jim_HashTable *ht, const void *key,
671 void *val);
672 JIM_EXPORT int Jim_ReplaceHashEntry (Jim_HashTable *ht,
673 const void *key, void *val);
674 JIM_EXPORT int Jim_DeleteHashEntry (Jim_HashTable *ht,
675 const void *key);
676 JIM_EXPORT int Jim_FreeHashTable (Jim_HashTable *ht);
677 JIM_EXPORT Jim_HashEntry * Jim_FindHashEntry (Jim_HashTable *ht,
678 const void *key);
679 JIM_EXPORT int Jim_ResizeHashTable (Jim_HashTable *ht);
680 JIM_EXPORT Jim_HashTableIterator *Jim_GetHashTableIterator
681 (Jim_HashTable *ht);
682 JIM_EXPORT Jim_HashEntry * Jim_NextHashEntry
683 (Jim_HashTableIterator *iter);
684
685 /* objects */
686 JIM_EXPORT Jim_Obj * Jim_NewObj (Jim_Interp *interp);
687 JIM_EXPORT void Jim_FreeObj (Jim_Interp *interp, Jim_Obj *objPtr);
688 JIM_EXPORT void Jim_InvalidateStringRep (Jim_Obj *objPtr);
689 JIM_EXPORT void Jim_InitStringRep (Jim_Obj *objPtr, const char *bytes,
690 int length);
691 JIM_EXPORT Jim_Obj * Jim_DuplicateObj (Jim_Interp *interp,
692 Jim_Obj *objPtr);
693 JIM_EXPORT const char * Jim_GetString(Jim_Obj *objPtr,
694 int *lenPtr);
695 JIM_EXPORT int Jim_Length(Jim_Obj *objPtr);
696
697 /* string object */
698 JIM_EXPORT Jim_Obj * Jim_NewStringObj (Jim_Interp *interp,
699 const char *s, int len);
700 JIM_EXPORT Jim_Obj *Jim_NewStringObjUtf8(Jim_Interp *interp,
701 const char *s, int charlen);
702 JIM_EXPORT Jim_Obj * Jim_NewStringObjNoAlloc (Jim_Interp *interp,
703 char *s, int len);
704 JIM_EXPORT void Jim_AppendString (Jim_Interp *interp, Jim_Obj *objPtr,
705 const char *str, int len);
706 JIM_EXPORT void Jim_AppendObj (Jim_Interp *interp, Jim_Obj *objPtr,
707 Jim_Obj *appendObjPtr);
708 JIM_EXPORT void Jim_AppendStrings (Jim_Interp *interp,
709 Jim_Obj *objPtr, ...);
710 JIM_EXPORT int Jim_StringEqObj(Jim_Obj *aObjPtr, Jim_Obj *bObjPtr);
711 JIM_EXPORT int Jim_StringMatchObj (Jim_Interp *interp, Jim_Obj *patternObjPtr,
712 Jim_Obj *objPtr, int nocase);
713 JIM_EXPORT Jim_Obj * Jim_StringRangeObj (Jim_Interp *interp,
714 Jim_Obj *strObjPtr, Jim_Obj *firstObjPtr,
715 Jim_Obj *lastObjPtr);
716 JIM_EXPORT Jim_Obj * Jim_FormatString (Jim_Interp *interp,
717 Jim_Obj *fmtObjPtr, int objc, Jim_Obj *const *objv);
718 JIM_EXPORT Jim_Obj * Jim_ScanString (Jim_Interp *interp, Jim_Obj *strObjPtr,
719 Jim_Obj *fmtObjPtr, int flags);
720 JIM_EXPORT int Jim_CompareStringImmediate (Jim_Interp *interp,
721 Jim_Obj *objPtr, const char *str);
722 JIM_EXPORT int Jim_StringCompareObj(Jim_Interp *interp, Jim_Obj *firstObjPtr,
723 Jim_Obj *secondObjPtr, int nocase);
724 JIM_EXPORT int Jim_Utf8Length(Jim_Interp *interp, Jim_Obj *objPtr);
725
726 /* reference object */
727 JIM_EXPORT Jim_Obj * Jim_NewReference (Jim_Interp *interp,
728 Jim_Obj *objPtr, Jim_Obj *tagPtr, Jim_Obj *cmdNamePtr);
729 JIM_EXPORT Jim_Reference * Jim_GetReference (Jim_Interp *interp,
730 Jim_Obj *objPtr);
731 JIM_EXPORT int Jim_SetFinalizer (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *cmdNamePtr);
732 JIM_EXPORT int Jim_GetFinalizer (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj **cmdNamePtrPtr);
733
734 /* interpreter */
735 JIM_EXPORT Jim_Interp * Jim_CreateInterp (void);
736 JIM_EXPORT void Jim_FreeInterp (Jim_Interp *i);
737 JIM_EXPORT int Jim_GetExitCode (Jim_Interp *interp);
738 JIM_EXPORT const char *Jim_ReturnCode(int code);
739 JIM_EXPORT void Jim_SetResultFormatted(Jim_Interp *interp, const char *format, ...);
740
741 /* commands */
742 JIM_EXPORT void Jim_RegisterCoreCommands (Jim_Interp *interp);
743 JIM_EXPORT int Jim_CreateCommand (Jim_Interp *interp,
744 const char *cmdName, Jim_CmdProc cmdProc, void *privData,
745 Jim_DelCmdProc delProc);
746 JIM_EXPORT int Jim_DeleteCommand (Jim_Interp *interp,
747 const char *cmdName);
748 JIM_EXPORT int Jim_RenameCommand (Jim_Interp *interp,
749 const char *oldName, const char *newName);
750 JIM_EXPORT Jim_Cmd * Jim_GetCommand (Jim_Interp *interp,
751 Jim_Obj *objPtr, int flags);
752 JIM_EXPORT int Jim_SetVariable (Jim_Interp *interp,
753 Jim_Obj *nameObjPtr, Jim_Obj *valObjPtr);
754 JIM_EXPORT int Jim_SetVariableStr (Jim_Interp *interp,
755 const char *name, Jim_Obj *objPtr);
756 JIM_EXPORT int Jim_SetGlobalVariableStr (Jim_Interp *interp,
757 const char *name, Jim_Obj *objPtr);
758 JIM_EXPORT int Jim_SetVariableStrWithStr (Jim_Interp *interp,
759 const char *name, const char *val);
760 JIM_EXPORT int Jim_SetVariableLink (Jim_Interp *interp,
761 Jim_Obj *nameObjPtr, Jim_Obj *targetNameObjPtr,
762 Jim_CallFrame *targetCallFrame);
763 JIM_EXPORT Jim_Obj * Jim_GetVariable (Jim_Interp *interp,
764 Jim_Obj *nameObjPtr, int flags);
765 JIM_EXPORT Jim_Obj * Jim_GetGlobalVariable (Jim_Interp *interp,
766 Jim_Obj *nameObjPtr, int flags);
767 JIM_EXPORT Jim_Obj * Jim_GetVariableStr (Jim_Interp *interp,
768 const char *name, int flags);
769 JIM_EXPORT Jim_Obj * Jim_GetGlobalVariableStr (Jim_Interp *interp,
770 const char *name, int flags);
771 JIM_EXPORT int Jim_UnsetVariable (Jim_Interp *interp,
772 Jim_Obj *nameObjPtr, int flags);
773
774 /* call frame */
775 JIM_EXPORT Jim_CallFrame *Jim_GetCallFrameByLevel(Jim_Interp *interp,
776 Jim_Obj *levelObjPtr);
777
778 /* garbage collection */
779 JIM_EXPORT int Jim_Collect (Jim_Interp *interp);
780 JIM_EXPORT void Jim_CollectIfNeeded (Jim_Interp *interp);
781
782 /* index object */
783 JIM_EXPORT int Jim_GetIndex (Jim_Interp *interp, Jim_Obj *objPtr,
784 int *indexPtr);
785
786 /* list object */
787 JIM_EXPORT Jim_Obj * Jim_NewListObj (Jim_Interp *interp,
788 Jim_Obj *const *elements, int len);
789 JIM_EXPORT void Jim_ListInsertElements (Jim_Interp *interp,
790 Jim_Obj *listPtr, int listindex, int objc, Jim_Obj *const *objVec);
791 JIM_EXPORT void Jim_ListAppendElement (Jim_Interp *interp,
792 Jim_Obj *listPtr, Jim_Obj *objPtr);
793 JIM_EXPORT void Jim_ListAppendList (Jim_Interp *interp,
794 Jim_Obj *listPtr, Jim_Obj *appendListPtr);
795 JIM_EXPORT int Jim_ListLength (Jim_Interp *interp, Jim_Obj *objPtr);
796 JIM_EXPORT int Jim_ListIndex (Jim_Interp *interp, Jim_Obj *listPrt,
797 int listindex, Jim_Obj **objPtrPtr, int seterr);
798 JIM_EXPORT int Jim_SetListIndex (Jim_Interp *interp,
799 Jim_Obj *varNamePtr, Jim_Obj *const *indexv, int indexc,
800 Jim_Obj *newObjPtr);
801 JIM_EXPORT Jim_Obj * Jim_ConcatObj (Jim_Interp *interp, int objc,
802 Jim_Obj *const *objv);
803
804 /* dict object */
805 JIM_EXPORT Jim_Obj * Jim_NewDictObj (Jim_Interp *interp,
806 Jim_Obj *const *elements, int len);
807 JIM_EXPORT int Jim_DictKey (Jim_Interp *interp, Jim_Obj *dictPtr,
808 Jim_Obj *keyPtr, Jim_Obj **objPtrPtr, int flags);
809 JIM_EXPORT int Jim_DictKeysVector (Jim_Interp *interp,
810 Jim_Obj *dictPtr, Jim_Obj *const *keyv, int keyc,
811 Jim_Obj **objPtrPtr, int flags);
812 JIM_EXPORT int Jim_SetDictKeysVector (Jim_Interp *interp,
813 Jim_Obj *varNamePtr, Jim_Obj *const *keyv, int keyc,
814 Jim_Obj *newObjPtr, int flags);
815 JIM_EXPORT int Jim_DictPairs(Jim_Interp *interp,
816 Jim_Obj *dictPtr, Jim_Obj ***objPtrPtr, int *len);
817 JIM_EXPORT int Jim_DictAddElement(Jim_Interp *interp, Jim_Obj *objPtr,
818 Jim_Obj *keyObjPtr, Jim_Obj *valueObjPtr);
819 JIM_EXPORT int Jim_DictKeys(Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *patternObj);
820 JIM_EXPORT int Jim_DictSize(Jim_Interp *interp, Jim_Obj *objPtr);
821
822 /* return code object */
823 JIM_EXPORT int Jim_GetReturnCode (Jim_Interp *interp, Jim_Obj *objPtr,
824 int *intPtr);
825
826 /* expression object */
827 JIM_EXPORT int Jim_EvalExpression (Jim_Interp *interp,
828 Jim_Obj *exprObjPtr, Jim_Obj **exprResultPtrPtr);
829 JIM_EXPORT int Jim_GetBoolFromExpr (Jim_Interp *interp,
830 Jim_Obj *exprObjPtr, int *boolPtr);
831
832 /* integer object */
833 JIM_EXPORT int Jim_GetWide (Jim_Interp *interp, Jim_Obj *objPtr,
834 jim_wide *widePtr);
835 JIM_EXPORT int Jim_GetLong (Jim_Interp *interp, Jim_Obj *objPtr,
836 long *longPtr);
837 #define Jim_NewWideObj Jim_NewIntObj
838 JIM_EXPORT Jim_Obj * Jim_NewIntObj (Jim_Interp *interp,
839 jim_wide wideValue);
840
841 /* double object */
842 JIM_EXPORT int Jim_GetDouble(Jim_Interp *interp, Jim_Obj *objPtr,
843 double *doublePtr);
844 JIM_EXPORT void Jim_SetDouble(Jim_Interp *interp, Jim_Obj *objPtr,
845 double doubleValue);
846 JIM_EXPORT Jim_Obj * Jim_NewDoubleObj(Jim_Interp *interp, double doubleValue);
847
848 /* shared strings */
849 JIM_EXPORT const char * Jim_GetSharedString (Jim_Interp *interp,
850 const char *str);
851 JIM_EXPORT void Jim_ReleaseSharedString (Jim_Interp *interp,
852 const char *str);
853
854 /* commands utilities */
855 JIM_EXPORT void Jim_WrongNumArgs (Jim_Interp *interp, int argc,
856 Jim_Obj *const *argv, const char *msg);
857 JIM_EXPORT int Jim_GetEnum (Jim_Interp *interp, Jim_Obj *objPtr,
858 const char * const *tablePtr, int *indexPtr, const char *name, int flags);
859 JIM_EXPORT int Ji
+3 -2
--- a/src/main.c
+++ b/src/main.c
@@ -7,7 +7,8 @@
77
** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak;
88
}
99
}setuid(sStat.st_uid);g.zPath && (0==str)) ){
10
- orkaround include <jim.h>Jim/* The scrv_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
10
+ orkaround include <jim.h>Jim/* The scriptscriptscriptrkaround is
11
+#if INTERFACE4 *db44struct {warnings;4_env_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
1112
** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak;
1213
}
1314
}setuid(sStat.st_uid);g.zPath && (0==str)) ){
@@ -32,4 +33,4 @@
3233
**
3334
** --nossl SSL connections are not available so do notredirect from http: to https:.", 0)0);;g.zPath && (0==sorkaround ;g.zPath && (0==sorkaround is
3435
#if INTERFACE4 *db44struct {warnings;4_env_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
35
-** argument.und is orkaround is orkaround is else if( fossi &) { /* The TH1TH1TH1Th
36
+** argument.und is orkaround is orkaround is else if( fossi &) { /* The TH1TH1TH1
--- a/src/main.c
+++ b/src/main.c
@@ -7,7 +7,8 @@
7 ** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak;
8 }
9 }setuid(sStat.st_uid);g.zPath && (0==str)) ){
10 orkaround include <jim.h>Jim/* The scrv_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
 
11 ** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak;
12 }
13 }setuid(sStat.st_uid);g.zPath && (0==str)) ){
@@ -32,4 +33,4 @@
32 **
33 ** --nossl SSL connections are not available so do notredirect from http: to https:.", 0)0);;g.zPath && (0==sorkaround ;g.zPath && (0==sorkaround is
34 #if INTERFACE4 *db44struct {warnings;4_env_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
35 ** argument.und is orkaround is orkaround is else if( fossi &) { /* The TH1TH1TH1Th
--- a/src/main.c
+++ b/src/main.c
@@ -7,7 +7,8 @@
7 ** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak;
8 }
9 }setuid(sStat.st_uid);g.zPath && (0==str)) ){
10 orkaround include <jim.h>Jim/* The scriptscriptscriptrkaround is
11 #if INTERFACE4 *db44struct {warnings;4_env_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
12 ** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak;
13 }
14 }setuid(sStat.st_uid);g.zPath && (0==str)) ){
@@ -32,4 +33,4 @@
33 **
34 ** --nossl SSL connections are not available so do notredirect from http: to https:.", 0)0);;g.zPath && (0==sorkaround ;g.zPath && (0==sorkaround is
35 #if INTERFACE4 *db44struct {warnings;4_env_config(0, SQLITE4_ENVp44_OK44_ERROR44_PERM44_ABOR4_BUSY44_NOMEM444_READONL444_IOER444_CO44_FULL444_PROTOCOL4ound is ound is 44_SCHEMA4444_MISMATCH444_NOLFS44_FORMAT: 444_RANG444_snprintf(zCode, sizeof(zCode), the
36 ** argument.und is orkaround is orkaround is else if( fossi &) { /* The TH1TH1TH1
+2 -6
--- a/src/main.mk
+++ b/src/main.mk
@@ -1,9 +1,5 @@
1
-# DO NOT EDth.o h_lang DO NOT EDITturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
1
+# DO NOT EDITturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
22
$(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitajson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
33
$(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_ud5mergxferd5merg_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
44
$(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_u333jimtcljson_diff3.h $(SRCDIR)/jim.hdiffloginlog3.o: $(SRCDIR)/3.c -o $(OBJDIR)/sqlite333_shell -DSQLITEjimtcl.o: $(DJIM_BOOTSTRAP_LIB_ONLY -c $(SRCDIR)/../autosetup/jimsh0.c -o $(OBJDIR)/jimtc_tcl_tcl_tclTCL_OBJ.1 =
5
-TCL_OBJ.0zizip.c >pdpdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
6
- $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitajson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
7
- $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_ud5mergxferd5merg_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
8
- $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_u333jimtcljson_diff3.h $(SRCDIR)/jim.hdiffloginlog3.o: $(SRCDIR)/3.c -o $(OBJDIR)/sqlite333_shell -DSQLITEjimtcl.o: $(DJIM_BOOTSTRAP_LIB_ONLY -c $(SRCDIR)/../autosetup/jimsh0.c -o $(OBJDIR)/jimtc_tcl_tcl_tclTCL_OBJ.1 =
9
-TCL_OBJ.0zizip.c ># DO NOT EDITturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson
5
+TCL_OBJ.0zizip.c >
--- a/src/main.mk
+++ b/src/main.mk
@@ -1,9 +1,5 @@
1 # DO NOT EDth.o h_lang DO NOT EDITturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
2 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitajson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
3 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_ud5mergxferd5merg_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
4 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_u333jimtcljson_diff3.h $(SRCDIR)/jim.hdiffloginlog3.o: $(SRCDIR)/3.c -o $(OBJDIR)/sqlite333_shell -DSQLITEjimtcl.o: $(DJIM_BOOTSTRAP_LIB_ONLY -c $(SRCDIR)/../autosetup/jimsh0.c -o $(OBJDIR)/jimtc_tcl_tcl_tclTCL_OBJ.1 =
5 TCL_OBJ.0zizip.c >pdpdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
6 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitajson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
7 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_ud5mergxferd5merg_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
8 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_u333jimtcljson_diff3.h $(SRCDIR)/jim.hdiffloginlog3.o: $(SRCDIR)/3.c -o $(OBJDIR)/sqlite333_shell -DSQLITEjimtcl.o: $(DJIM_BOOTSTRAP_LIB_ONLY -c $(SRCDIR)/../autosetup/jimsh0.c -o $(OBJDIR)/jimtc_tcl_tcl_tclTCL_OBJ.1 =
9 TCL_OBJ.0zizip.c ># DO NOT EDITturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson
--- a/src/main.mk
+++ b/src/main.mk
@@ -1,9 +1,5 @@
1 # DO NOT EDITturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
2 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitajson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
3 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_ud5mergxferd5merg_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifytagjson_timelinjsitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdrstagjson_timelinjsonlitagjson_userrgoverifvverifytagjson_timelinjson_usrgoh_timelitagjson_userrgo -DCSON_FOSSIL_MODEpdaturlpdatepdtagjson_timelinjson_usagjportreport.c >verifynamepathnamnamname.c >taxfersetud5ergeerge3xfer4444d5_.c:xfer_.c:4xfermelinjson_usrgoh_tilitagjson_userrgoverifvverixfer.c >4.o: $(SRCDIR)/sqlite44tagjson_timelinjson_usrgoh_time444.c -o $(OBJDIR)/sqlite44.h
4 $(XTCC) -Dmtagjson_tI$(SRCDIRI$(SRCDIRI$(SRCDIR) -c -otagjson_timelinjsonlitagjson_utagjson_timelinjson_u333jimtcljson_diff3.h $(SRCDIR)/jim.hdiffloginlog3.o: $(SRCDIR)/3.c -o $(OBJDIR)/sqlite333_shell -DSQLITEjimtcl.o: $(DJIM_BOOTSTRAP_LIB_ONLY -c $(SRCDIR)/../autosetup/jimsh0.c -o $(OBJDIR)/jimtc_tcl_tcl_tclTCL_OBJ.1 =
5 TCL_OBJ.0zizip.c >
 
 
 
 
+4 -33
--- a/src/makemake.tcl
+++ b/src/makemake.tcl
@@ -70,7 +70,7 @@
7070
<<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
7171
TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing
7272
ifdef MINGW_BROKEN_MAINARGS
73
-TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNIth_langR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
73
+TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNICODEvIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
7474
TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing
7575
ifdef MINGW_BROKEN_MAINARGS
7676
TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNICODE444.
@@ -79,7 +79,8 @@
7979
# set to 1. miniz librimeGETS += zlibENABLE_LOCKING_STYLE=0
8080
RCDIR)/miniz.c
8181
$(XTCJ.Z_OBJ.0 =
82
-MINIZ_OBJ.1 "otherwise, it "otherwthIZ_OBJ.1 = $(OBJDjim
82
+MINIZ_OBJ.1 "otherwise, it "otherwise, it lshellshell.jim.h
83
+MINIZ_OBJ.1 = $(OBJDjim
8384
}jimjimjimjim.h=1y in which the zl is installed.
8485
#
8586
#
@@ -119,33 +120,6 @@
119120
#"
120121
set SQLITE3sqlite333_shell}otherwise, it should n inclusqlite3\\$(SQLIT(SQL33.h"
121122
th33.c"
122
-set opt $SQth_tclIVE_APIS \
123
- <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
124
-# source tree sh in the
125
-# source tree should be used; otherwise, it should not.
126
-MINIZ_OBJ.0 =
127
-MINIZ_OBJ.1 = $(OBJDIR)/miniz.o
128
-MINIZ_OBJ. = $(MINIZMINIZ_OBJ.MINIZminO
129
- -DMINIZ_NO_TIME
130
-_NO_TIME
131
- -DMINIZ_NO_ARz librarFOSSIL_ENABLE_MINIZ
132
-# set to 1. miniz library included in the
133
-# source tree should be used; otherwise, it should not.
134
-MINIZ_OBJ.0 =
135
-MINIZ_OBJ.Z_OBJ.0 =
136
-MINIZ_OBJ.1 = $(OBJDIR)/miniz.o
137
-MINIZ_OBJ. = $(MINIZMINIZ_OBJ.MINIZminiz.o: $(SRCDIR)/miniz.c
138
- $(XTCC) $(MINIZ_OPTIONS) -c AGSsqlite3ggOpenSSLRCMINIZMINIZendifCDIR)/sqlite3\\$(SQLITE_CFLAGSsqlite3ggOpenSSLRCC += -I$(ZINCDLIBTARGETS localtime=fossil_localtimeG+= zlibsqlite_Mdiffminiz librimeGETS += zlibENABLE_LOCKING_STYLE=0
139
-RCDIR)/miniz.c
140
- $(XTCJ.Z_OBJ.0 =
141
-MINIZ_OBJ.1 "otherwise, it "otherwise, it ld bProvide the SQLite package to TclQLITE# Provide the SQLite package to TclTCL_SQLITETCL_SQLITE=1 -DBUILD_sqlite=1O_ARCHIVE_APIS \
142
- <<<MI mi inclusqlite3\\$(SQLITE_$(SMINIZen1k1k1kj inclusqlite3\\$(SQLITE_CFLAin#lappend SHELLFLAGSsqlite3ggOpenSSLRCC += -I$(#lappend SHELLzlibsqlite3qlite3.c-ZINCDIR)SSSSLJSOR)\sqlite3.c
143
-$(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\3333.h"
144
-33.c"
145
-set opt {-DSQLITEotherwise, it should n "
146
-#"
147
-set SQLITE3sqlite333_shell}otherwise, it should n inclusqlite3\\$(SQLIT(SQL33.h"
148
-th33.c"
149123
set opt $SQLITEsqlite3sqlite333_she3\\$(SQLITE_CFLAin#lappend SHELLFLAGSsqlite3ggOpenSSLRCC += -I$(#lappend SHELLzlibsqlite3qlite3.c-ZINCDIR)SSSSLJSON =ggRCDIR)\sqlite3.c
150124
$(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \
151125
<<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
@@ -155,7 +129,4 @@
155129
$(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \
156130
<<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
157131
# source tree sh in the
158
-# source tree shouldappend SHELLsrc/ DO NOT EDITsrc/ DO NOT EDITsrc/thjimjimjimjim.h=1y in which the zl is installed.
159
-#
160
-#
161
-Z /lib -I$(ZLIBDIR)/includenclusqlite3\\$(SQLththththth.h
132
+# source tree shouldappend SHELLsrc/ DO NOT EDITsrc/ DO NOT EDITsrc/
--- a/src/makemake.tcl
+++ b/src/makemake.tcl
@@ -70,7 +70,7 @@
70 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
71 TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing
72 ifdef MINGW_BROKEN_MAINARGS
73 TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNIth_langR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
74 TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing
75 ifdef MINGW_BROKEN_MAINARGS
76 TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNICODE444.
@@ -79,7 +79,8 @@
79 # set to 1. miniz librimeGETS += zlibENABLE_LOCKING_STYLE=0
80 RCDIR)/miniz.c
81 $(XTCJ.Z_OBJ.0 =
82 MINIZ_OBJ.1 "otherwise, it "otherwthIZ_OBJ.1 = $(OBJDjim
 
83 }jimjimjimjim.h=1y in which the zl is installed.
84 #
85 #
@@ -119,33 +120,6 @@
119 #"
120 set SQLITE3sqlite333_shell}otherwise, it should n inclusqlite3\\$(SQLIT(SQL33.h"
121 th33.c"
122 set opt $SQth_tclIVE_APIS \
123 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
124 # source tree sh in the
125 # source tree should be used; otherwise, it should not.
126 MINIZ_OBJ.0 =
127 MINIZ_OBJ.1 = $(OBJDIR)/miniz.o
128 MINIZ_OBJ. = $(MINIZMINIZ_OBJ.MINIZminO
129 -DMINIZ_NO_TIME
130 _NO_TIME
131 -DMINIZ_NO_ARz librarFOSSIL_ENABLE_MINIZ
132 # set to 1. miniz library included in the
133 # source tree should be used; otherwise, it should not.
134 MINIZ_OBJ.0 =
135 MINIZ_OBJ.Z_OBJ.0 =
136 MINIZ_OBJ.1 = $(OBJDIR)/miniz.o
137 MINIZ_OBJ. = $(MINIZMINIZ_OBJ.MINIZminiz.o: $(SRCDIR)/miniz.c
138 $(XTCC) $(MINIZ_OPTIONS) -c AGSsqlite3ggOpenSSLRCMINIZMINIZendifCDIR)/sqlite3\\$(SQLITE_CFLAGSsqlite3ggOpenSSLRCC += -I$(ZINCDLIBTARGETS localtime=fossil_localtimeG+= zlibsqlite_Mdiffminiz librimeGETS += zlibENABLE_LOCKING_STYLE=0
139 RCDIR)/miniz.c
140 $(XTCJ.Z_OBJ.0 =
141 MINIZ_OBJ.1 "otherwise, it "otherwise, it ld bProvide the SQLite package to TclQLITE# Provide the SQLite package to TclTCL_SQLITETCL_SQLITE=1 -DBUILD_sqlite=1O_ARCHIVE_APIS \
142 <<<MI mi inclusqlite3\\$(SQLITE_$(SMINIZen1k1k1kj inclusqlite3\\$(SQLITE_CFLAin#lappend SHELLFLAGSsqlite3ggOpenSSLRCC += -I$(#lappend SHELLzlibsqlite3qlite3.c-ZINCDIR)SSSSLJSOR)\sqlite3.c
143 $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\3333.h"
144 33.c"
145 set opt {-DSQLITEotherwise, it should n "
146 #"
147 set SQLITE3sqlite333_shell}otherwise, it should n inclusqlite3\\$(SQLIT(SQL33.h"
148 th33.c"
149 set opt $SQLITEsqlite3sqlite333_she3\\$(SQLITE_CFLAin#lappend SHELLFLAGSsqlite3ggOpenSSLRCC += -I$(#lappend SHELLzlibsqlite3qlite3.c-ZINCDIR)SSSSLJSON =ggRCDIR)\sqlite3.c
150 $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \
151 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
@@ -155,7 +129,4 @@
155 $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \
156 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
157 # source tree sh in the
158 # source tree shouldappend SHELLsrc/ DO NOT EDITsrc/ DO NOT EDITsrc/thjimjimjimjim.h=1y in which the zl is installed.
159 #
160 #
161 Z /lib -I$(ZLIBDIR)/includenclusqlite3\\$(SQLththththth.h
--- a/src/makemake.tcl
+++ b/src/makemake.tcl
@@ -70,7 +70,7 @@
70 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
71 TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing
72 ifdef MINGW_BROKEN_MAINARGS
73 TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNICODEvIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked)
74 TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing
75 ifdef MINGW_BROKEN_MAINARGS
76 TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNICODE444.
@@ -79,7 +79,8 @@
79 # set to 1. miniz librimeGETS += zlibENABLE_LOCKING_STYLE=0
80 RCDIR)/miniz.c
81 $(XTCJ.Z_OBJ.0 =
82 MINIZ_OBJ.1 "otherwise, it "otherwise, it lshellshell.jim.h
83 MINIZ_OBJ.1 = $(OBJDjim
84 }jimjimjimjim.h=1y in which the zl is installed.
85 #
86 #
@@ -119,33 +120,6 @@
120 #"
121 set SQLITE3sqlite333_shell}otherwise, it should n inclusqlite3\\$(SQLIT(SQL33.h"
122 th33.c"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123 set opt $SQLITEsqlite3sqlite333_she3\\$(SQLITE_CFLAin#lappend SHELLFLAGSsqlite3ggOpenSSLRCC += -I$(#lappend SHELLzlibsqlite3qlite3.c-ZINCDIR)SSSSLJSON =ggRCDIR)\sqlite3.c
124 $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \
125 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
@@ -155,7 +129,4 @@
129 $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \
130 <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the
131 # source tree sh in the
132 # source tree shouldappend SHELLsrc/ DO NOT EDITsrc/ DO NOT EDITsrc/
 
 
 
D src/th.c
-269
--- a/src/th.c
+++ b/src/th.c
@@ -1,269 +0,0 @@
1
--1, 1, 1, 0zero
2
-*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
3
-*!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
4
-*!iRight!iRight/AD*SUBT:paGc entries. Frees
5
-** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
6
-gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
7
- const * zData, int nData ){
8
- return Th_Vtab_Output( pInterp->pVtab, zData, nData );
9
-}
10
-
11
-void Th_OutputEnable( L@8wW,1C:har flag ){
12
- pInterp->pVtab->out.enabled = flag;
13
-}
14
-
15
-char Th_OutputEnabled( I@8wW,3f: ){
16
- return pInterp->pVtab->out.enabled ? 1 : 0;
17
-}
18
-
19
-int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
20
- FILE * dest = pState ? (FILE*)pState : stdout;
21
- int rc = (int)fwrite(zData, 1, nData, dest);
22
- fflush(dest);H@DMV,2~:void Th_Output_dispose_FILE( void * pState ){
23
- FILE * f = pState ? (FILE*)pState : NULL;
24
- if(f
25
- && (f != stdout)
26
- && (f != stderr)
27
- && (f != stdin)){
28
- fflush(f);
29
- fclose(f1q7@9Mg,w:any client-side gc entries first. */
30
- if( interp->paGc ){
31
-R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
32
- interp->paGc = NULL;
33
- }
34
-
35
- /* Clean up the output abstraction. */
36
- if( interp->pVtab && interp->pVtab->out.xDispose ){
37
- interp->pVtab->out.xDispose( interp->pVtab->out.pState );
38
- }
39
- 5_@BBa,4D@BH6,C:Realloc(NULLJ@BME,4KA@BLg,3:++n7M@Fet,Rc@FmK,Fx@GDC,_: and assigns its value to
40
-** pResult6B@GT8,C:*
41
-** ReturnsL@C7W,X:of z consumed in parsing the valuHw@GZF,2L:Attempts to convert (zArg,nArg) to an integer. On success *piOut is
42
-** assigned to its value and TH_OK is returned, else piOut is not
43
-** modified andL@4qR,1c:. Conversion errors are considered
44
-** non-fatal here, so interp's error state is not set.
45
-*/
46
-int Th_TryN@HCF,S@1D0,2w@Gvs,P@3aW,2u@G~D,9:n integerf@H2D,1:i13@H2t,36@Gsv,y:const int rc = Th_TryInt(interp, z, n, piOut);
47
- if( TH_OK !=_@AQj,a@GzB,1:}H@DMV,1a:
48
-/*
49
-**n*)G@GZG,4X:Th_Output_f_ob( char const * zData, int len, void * pState );
50
-
51
-/*
52
-** Th_Output::dispose() impl which requires pState to be-a Th_Ob_Manager.
53
-*/
54
-static void Th_Output_dispose_ob( void * pState );
55
-
56
-/* Empty-initialized Th_Ob_Manager instance. */
57
-#define Th_Ob_Man_empty_m { \
58
- NULL/*aBuf*/, 9@HOw,Ge: \
59
- 0/*nBuf*/, \
60
- -1/*cursor*/, \
61
- NULL/*interp*/, \
62
- NULL/*aOutput*/ \
63
-}
64
-
65
-/* Empty-initialized Th_Vtab_OutputMethods instance. */
66
-#define Th_Vtab_OutputMethods_empty_m { \
67
- NULL /* write() */, \
68
- NULL /* dispose() */, \
69
- NULL /*pState*/,\
70
- 1/*enabled*/\
71
-}
72
-/* Vtab_OutputMethods instance initialized for OB support. */
73
-#define Th_Vtab_OutputMethods_ob_m { \
74
- Th_Output_f_ob /*write()*/, \
75
- Th_Output_dispose_ob /* dispose() */, \
76
- NULL /*pState*/,\
77
- 1/*enabled*/\
78
-}
79
-/* Empty-initialized Th_Vtab_Man instance. */
80
-static const Th_Ob_Manager Th_Ob_Man_empty = Th_Ob_Man_empty_m;
81
-/* Empty-initialized Th_Vtab_OutputMethods instance. */
82
-static Th_Vtab_OutputMethods Th_Vtab_OutputMethods_empty = Th_Vtab_OutputMethods_empty_m;
83
-/* Th_Vtab_OutputMethods instance initialized for OB support. */
84
-static Th_Vtab_OutputMethods Th_Vtab_OutputMethods_ob = Th_Vtab_OutputMethods_ob_m;
85
-
86
-/*
87
-** Internal key for Th_Set/GetData(), for storing a Th_Ob_Manager instance.
88
-*/
89
-#define Th_Ob_Man_KEY "Th_Ob_Manager"
90
-
91
-Th_Ob_Manager * Th_Ob_GetManageJ@8TG,Dj:){
92
- return (Th_Ob_Manager*) Th_GetData(interp, Th_Ob_Man_KEY );
93
-}
94
-
95
-Blob * Th_Ob_GetCurrentBuffer( Th_Ob_Manager * pMan ){
96
- return pMan->nBuf>0 ? pMan->aBuf[pMan->cursor] : 0;
97
-}
98
-
99
-
100
-/*
101
-** Th_Output_f() impl which expects pState to be (Th_Ob_Manager*).
102
-** (zData,len) are appended to pState's current output buffer.
103
-*/
104
-int Th_Output_f_ob( char const * zData, int len, void * pState ){
105
- Th_Ob_Manager * pMan = (Th_Ob_Manager*)pState;
106
- Blob * b = Th_Ob_GetCurrentBuffer( pMan );
107
- assert( NULL != pMan );
108
- assert( b );
109
- blob_append( b, zData, len );
110
- return len;
111
-}
112
-
113
-void Th_Output_dispose_ob( void * pState ){
114
- /* possible todo: move the cleanup logic from
115
- Th_Ob_Pop() to here? */
116
-#if 0
117
- Th_Ob_Manager * pMan = (Th_Ob_Manager*)pState;
118
- Blob * b = Th_Ob_GetCurrentBuffer( pMan );
119
- assert( NULL != pMan );
120
- assert( b );
121
-#endif
122
-}
123
-
124
-
125
-
126
-int Th_Ob_Push( Th_Ob_Manager * pMan,H@EKF,b:Th_Vtab_OutputMethods const * pWriter,H@EKF,I~:Blob ** pOut ){
127
- Blob * pBlob;
128
- int x, i;
129
- if( NULL == pWriter ){
130
- pWriter = &Th_Vtab_OutputMethods_ob;
131
- }
132
- assert( NULL != pMan->interp );
133
- pBlob = (Blob *)Th_Malloc(pMan->interp, sizeof(Blob));
134
- *pBlob = empty_blob;
135
-
136
- if( pMan->cursor >= pMan->nBuf-2 ){
137
- /* expand if needed */
138
- void * re;
139
- x = pMan->nBuf + 5;
140
- if( pMan->cursor >= x ) {
141
- assert( 0 && "This really should not happen." );
142
- x = pMan->cursor + 5;
143
- }
144
- re = Th_Realloc( pMan->interp, pMan->aBuf, x * sizeof(Blob*) );
145
- if(NULL==re){
146
- goto error;
147
- }
148
- pMan->aBuf = (Blob **)re;
149
- re = Th_Realloc( pMan->interp, pMan->aOutput, x * sizeof(Th_Vtab_OutputMethods) );
150
- if(NULL==re){
151
- goto error;
152
- }
153
- pMan->aOutput = (Th_Vtab_OutputMethods*)re;
154
- for( i = pMan->nBuf; i < x; ++i ){
155
- pMan->aOutput[i] = Th_Vtab_OutputMethods_empty;
156
- pMan->aBuf[i] = NULL;
157
- }
158
- pMan->nBuf = x;
159
- }
160
- assert( pMan->nBuf > pMan->cursor );
161
- assert( pMan->cursor >= -1 );
162
- ++pMan->cursor;
163
- pMan->aBuf[pMan->cursor] = pBlob;
164
- pMan->aOutput[pMan->cursor] = pMan->interp->pVtab->out;
165
- pMan->interp->pVtab->out = *pWriter;
166
- pMan->interp->pVtab->out.pState = pMan;
167
- if( pOut ){
168
- *pOut = pBlobM@8ZF,v: error:
169
- if( pBlob ){
170
- Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
171
-}
172
-
173
-Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
174
- if( pMan->cursor < 0 ){
175
- return NULL;
176
- }else{
177
- Blob * rc;
178
- Th_Vtab_OutputMethods * theOut;
179
- assert( pMan->nBuf > pMan->cursor );
180
- rc = pMan->aBuf[pMan->cursor];
181
- pMan->aBuf[pMan->cursor] = NULL;
182
- theOut = &pMan->aOutput[pMan->cursor];
183
-#if 0
184
- /* We need something like this (but not this!) if we extend the
185
- support to use other (non-Blob) proxies. We will likely need
186
- another callback function or two for that case, e.g. xStart()
187
- and xEnd(), which would be called when they are pushed/popped
188
- to/from the stack.
189
- */
190
- if( theOut->xDispose ){
191
- theOut->xDispose( theOut->pState );
192
- }
193
-#endif
194
- pMan->interp->pVtab->out = *theOut;
195
- pMan->aOutput[pMan->cursor] = Th_Vtab_OutputMethods_empty;
196
- if(-1 == --pMan->cursor){
197
- Th_Interp * interp = pMan->interp;
198
- Th_Free( pMan->interp, pMan->aBuf );
199
- Th_Free( pMan->interp, pMan->aOutput );
200
- *pMan = Th_Ob_Man_empty;
201
- pMan->interp = interp;
202
- assert(-1 == pMan->cursor);
203
- }
204
- return rc;
205
- }
206
-}
207
-
208
-int Th_Ob_PopAndFree( Th_Ob_Manager * pMan ){
209
- Blob * b = Th_Ob_Pop( pMan );
210
- if(!b) return 1;
211
- else {
212
- blob_reset(b);
213
- Th_Free( pMan->interp, b );
214
- return 0;
215
- }
216
-}
217
-
218
-
219
-void Th_ob_cleanup( Th_Ob_Manager * man ){
220
- while( 0 == Th_Ob_PopAndFree(man) ){}
221
-}
222
-
223
-
224
-/*
225
-** TH command:
226
-**
227
-** ob clean
228
-**
229
-** Erases any currently buffered contents but does not modify
230
-** the buffering levelG@GZG,H:ob_clean_command(K@B0G,B:void *ctx,
231
-R@Egl,4H: int argc, const char **argv, int *argl
232
-){
233
- const char doRc = ctx ? 1 : 0;
234
- Th_Ob_Manager * pMan = ctx ? (Th_Ob_Manager *)ctx : Th_Ob_GetManager(interp);
235
- Blob * b;
236
- assert( pMan && (interp == pMan->interp) );
237
- b = pMan ? Th_Ob_GetCurrentBuffer(pMan) : NULL;
238
- if(!bN@Eoz,l: interp, "Not currently buffering.", NULL, 0 );
239
-N@Gzl,g:}else{
240
- blob_reset(b);
241
- if( doRc ) {
242
-MMalloc(Free(zMalloc(n++typedef char u8;4IsNumber(4 doublefOutif( !sqlite4{
243
- const char doRc = ctx ?qlite4Output_dispose_FILE /* -1, 1, 1, 0zero
244
-*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
245
-*!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance. See th.h for the docs.
246
-*/
247
-const Th_Vtab_OutputMethods Th_Vtab_OutputMethods_FILE = {
248
- Th_Output_f_FILE /* xWrite() */,
249
- Th_Output_dispose_FILE /* dispose() */,
250
- NULL /*pState*/,
251
- 1/*enabled*/
252
-};
253
-
254
-/*
255
-** Holds client-provided "garbage collected" data for
256
-** a Th_Interp instance.
257
-*/
258
-struct Th_GcEntry {
259
- void * pData /* arbitrary data Th_Interp *, void * ); /* finalizer for pData */
260
-};
261
-typedef struct Th_GcEntry Th_GcEntry 0zero
262
-*!iRight!iRight/A-1, 1, 1, 0zero
263
-*!iRight!iRight Th_Hash * paGc; /* Holds client-provided data owned by this
264
-object. It would these in a list (beentries), but Th_Hasof being here and working.
265
-Gc:typedef char u8;MODULUS: %ADD:ero
266
-*!iRight!iRight/AD*SUBTRACT-therSconst-1, 1, 1, 0zero
267
-*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
268
-*!iRight!iRight/AD*SUBT:paGc entries. Frees
269
-** pEntry->pData but not pEntryJ@1qE,7:Free3333AtoF
--- a/src/th.c
+++ b/src/th.c
@@ -1,269 +0,0 @@
1 -1, 1, 1, 0zero
2 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
3 *!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
4 *!iRight!iRight/AD*SUBT:paGc entries. Frees
5 ** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
6 gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
7 const * zData, int nData ){
8 return Th_Vtab_Output( pInterp->pVtab, zData, nData );
9 }
10
11 void Th_OutputEnable( L@8wW,1C:har flag ){
12 pInterp->pVtab->out.enabled = flag;
13 }
14
15 char Th_OutputEnabled( I@8wW,3f: ){
16 return pInterp->pVtab->out.enabled ? 1 : 0;
17 }
18
19 int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
20 FILE * dest = pState ? (FILE*)pState : stdout;
21 int rc = (int)fwrite(zData, 1, nData, dest);
22 fflush(dest);H@DMV,2~:void Th_Output_dispose_FILE( void * pState ){
23 FILE * f = pState ? (FILE*)pState : NULL;
24 if(f
25 && (f != stdout)
26 && (f != stderr)
27 && (f != stdin)){
28 fflush(f);
29 fclose(f1q7@9Mg,w:any client-side gc entries first. */
30 if( interp->paGc ){
31 R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
32 interp->paGc = NULL;
33 }
34
35 /* Clean up the output abstraction. */
36 if( interp->pVtab && interp->pVtab->out.xDispose ){
37 interp->pVtab->out.xDispose( interp->pVtab->out.pState );
38 }
39 5_@BBa,4D@BH6,C:Realloc(NULLJ@BME,4KA@BLg,3:++n7M@Fet,Rc@FmK,Fx@GDC,_: and assigns its value to
40 ** pResult6B@GT8,C:*
41 ** ReturnsL@C7W,X:of z consumed in parsing the valuHw@GZF,2L:Attempts to convert (zArg,nArg) to an integer. On success *piOut is
42 ** assigned to its value and TH_OK is returned, else piOut is not
43 ** modified andL@4qR,1c:. Conversion errors are considered
44 ** non-fatal here, so interp's error state is not set.
45 */
46 int Th_TryN@HCF,S@1D0,2w@Gvs,P@3aW,2u@G~D,9:n integerf@H2D,1:i13@H2t,36@Gsv,y:const int rc = Th_TryInt(interp, z, n, piOut);
47 if( TH_OK !=_@AQj,a@GzB,1:}H@DMV,1a:
48 /*
49 **n*)G@GZG,4X:Th_Output_f_ob( char const * zData, int len, void * pState );
50
51 /*
52 ** Th_Output::dispose() impl which requires pState to be-a Th_Ob_Manager.
53 */
54 static void Th_Output_dispose_ob( void * pState );
55
56 /* Empty-initialized Th_Ob_Manager instance. */
57 #define Th_Ob_Man_empty_m { \
58 NULL/*aBuf*/, 9@HOw,Ge: \
59 0/*nBuf*/, \
60 -1/*cursor*/, \
61 NULL/*interp*/, \
62 NULL/*aOutput*/ \
63 }
64
65 /* Empty-initialized Th_Vtab_OutputMethods instance. */
66 #define Th_Vtab_OutputMethods_empty_m { \
67 NULL /* write() */, \
68 NULL /* dispose() */, \
69 NULL /*pState*/,\
70 1/*enabled*/\
71 }
72 /* Vtab_OutputMethods instance initialized for OB support. */
73 #define Th_Vtab_OutputMethods_ob_m { \
74 Th_Output_f_ob /*write()*/, \
75 Th_Output_dispose_ob /* dispose() */, \
76 NULL /*pState*/,\
77 1/*enabled*/\
78 }
79 /* Empty-initialized Th_Vtab_Man instance. */
80 static const Th_Ob_Manager Th_Ob_Man_empty = Th_Ob_Man_empty_m;
81 /* Empty-initialized Th_Vtab_OutputMethods instance. */
82 static Th_Vtab_OutputMethods Th_Vtab_OutputMethods_empty = Th_Vtab_OutputMethods_empty_m;
83 /* Th_Vtab_OutputMethods instance initialized for OB support. */
84 static Th_Vtab_OutputMethods Th_Vtab_OutputMethods_ob = Th_Vtab_OutputMethods_ob_m;
85
86 /*
87 ** Internal key for Th_Set/GetData(), for storing a Th_Ob_Manager instance.
88 */
89 #define Th_Ob_Man_KEY "Th_Ob_Manager"
90
91 Th_Ob_Manager * Th_Ob_GetManageJ@8TG,Dj:){
92 return (Th_Ob_Manager*) Th_GetData(interp, Th_Ob_Man_KEY );
93 }
94
95 Blob * Th_Ob_GetCurrentBuffer( Th_Ob_Manager * pMan ){
96 return pMan->nBuf>0 ? pMan->aBuf[pMan->cursor] : 0;
97 }
98
99
100 /*
101 ** Th_Output_f() impl which expects pState to be (Th_Ob_Manager*).
102 ** (zData,len) are appended to pState's current output buffer.
103 */
104 int Th_Output_f_ob( char const * zData, int len, void * pState ){
105 Th_Ob_Manager * pMan = (Th_Ob_Manager*)pState;
106 Blob * b = Th_Ob_GetCurrentBuffer( pMan );
107 assert( NULL != pMan );
108 assert( b );
109 blob_append( b, zData, len );
110 return len;
111 }
112
113 void Th_Output_dispose_ob( void * pState ){
114 /* possible todo: move the cleanup logic from
115 Th_Ob_Pop() to here? */
116 #if 0
117 Th_Ob_Manager * pMan = (Th_Ob_Manager*)pState;
118 Blob * b = Th_Ob_GetCurrentBuffer( pMan );
119 assert( NULL != pMan );
120 assert( b );
121 #endif
122 }
123
124
125
126 int Th_Ob_Push( Th_Ob_Manager * pMan,H@EKF,b:Th_Vtab_OutputMethods const * pWriter,H@EKF,I~:Blob ** pOut ){
127 Blob * pBlob;
128 int x, i;
129 if( NULL == pWriter ){
130 pWriter = &Th_Vtab_OutputMethods_ob;
131 }
132 assert( NULL != pMan->interp );
133 pBlob = (Blob *)Th_Malloc(pMan->interp, sizeof(Blob));
134 *pBlob = empty_blob;
135
136 if( pMan->cursor >= pMan->nBuf-2 ){
137 /* expand if needed */
138 void * re;
139 x = pMan->nBuf + 5;
140 if( pMan->cursor >= x ) {
141 assert( 0 && "This really should not happen." );
142 x = pMan->cursor + 5;
143 }
144 re = Th_Realloc( pMan->interp, pMan->aBuf, x * sizeof(Blob*) );
145 if(NULL==re){
146 goto error;
147 }
148 pMan->aBuf = (Blob **)re;
149 re = Th_Realloc( pMan->interp, pMan->aOutput, x * sizeof(Th_Vtab_OutputMethods) );
150 if(NULL==re){
151 goto error;
152 }
153 pMan->aOutput = (Th_Vtab_OutputMethods*)re;
154 for( i = pMan->nBuf; i < x; ++i ){
155 pMan->aOutput[i] = Th_Vtab_OutputMethods_empty;
156 pMan->aBuf[i] = NULL;
157 }
158 pMan->nBuf = x;
159 }
160 assert( pMan->nBuf > pMan->cursor );
161 assert( pMan->cursor >= -1 );
162 ++pMan->cursor;
163 pMan->aBuf[pMan->cursor] = pBlob;
164 pMan->aOutput[pMan->cursor] = pMan->interp->pVtab->out;
165 pMan->interp->pVtab->out = *pWriter;
166 pMan->interp->pVtab->out.pState = pMan;
167 if( pOut ){
168 *pOut = pBlobM@8ZF,v: error:
169 if( pBlob ){
170 Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
171 }
172
173 Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
174 if( pMan->cursor < 0 ){
175 return NULL;
176 }else{
177 Blob * rc;
178 Th_Vtab_OutputMethods * theOut;
179 assert( pMan->nBuf > pMan->cursor );
180 rc = pMan->aBuf[pMan->cursor];
181 pMan->aBuf[pMan->cursor] = NULL;
182 theOut = &pMan->aOutput[pMan->cursor];
183 #if 0
184 /* We need something like this (but not this!) if we extend the
185 support to use other (non-Blob) proxies. We will likely need
186 another callback function or two for that case, e.g. xStart()
187 and xEnd(), which would be called when they are pushed/popped
188 to/from the stack.
189 */
190 if( theOut->xDispose ){
191 theOut->xDispose( theOut->pState );
192 }
193 #endif
194 pMan->interp->pVtab->out = *theOut;
195 pMan->aOutput[pMan->cursor] = Th_Vtab_OutputMethods_empty;
196 if(-1 == --pMan->cursor){
197 Th_Interp * interp = pMan->interp;
198 Th_Free( pMan->interp, pMan->aBuf );
199 Th_Free( pMan->interp, pMan->aOutput );
200 *pMan = Th_Ob_Man_empty;
201 pMan->interp = interp;
202 assert(-1 == pMan->cursor);
203 }
204 return rc;
205 }
206 }
207
208 int Th_Ob_PopAndFree( Th_Ob_Manager * pMan ){
209 Blob * b = Th_Ob_Pop( pMan );
210 if(!b) return 1;
211 else {
212 blob_reset(b);
213 Th_Free( pMan->interp, b );
214 return 0;
215 }
216 }
217
218
219 void Th_ob_cleanup( Th_Ob_Manager * man ){
220 while( 0 == Th_Ob_PopAndFree(man) ){}
221 }
222
223
224 /*
225 ** TH command:
226 **
227 ** ob clean
228 **
229 ** Erases any currently buffered contents but does not modify
230 ** the buffering levelG@GZG,H:ob_clean_command(K@B0G,B:void *ctx,
231 R@Egl,4H: int argc, const char **argv, int *argl
232 ){
233 const char doRc = ctx ? 1 : 0;
234 Th_Ob_Manager * pMan = ctx ? (Th_Ob_Manager *)ctx : Th_Ob_GetManager(interp);
235 Blob * b;
236 assert( pMan && (interp == pMan->interp) );
237 b = pMan ? Th_Ob_GetCurrentBuffer(pMan) : NULL;
238 if(!bN@Eoz,l: interp, "Not currently buffering.", NULL, 0 );
239 N@Gzl,g:}else{
240 blob_reset(b);
241 if( doRc ) {
242 MMalloc(Free(zMalloc(n++typedef char u8;4IsNumber(4 doublefOutif( !sqlite4{
243 const char doRc = ctx ?qlite4Output_dispose_FILE /* -1, 1, 1, 0zero
244 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
245 *!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance. See th.h for the docs.
246 */
247 const Th_Vtab_OutputMethods Th_Vtab_OutputMethods_FILE = {
248 Th_Output_f_FILE /* xWrite() */,
249 Th_Output_dispose_FILE /* dispose() */,
250 NULL /*pState*/,
251 1/*enabled*/
252 };
253
254 /*
255 ** Holds client-provided "garbage collected" data for
256 ** a Th_Interp instance.
257 */
258 struct Th_GcEntry {
259 void * pData /* arbitrary data Th_Interp *, void * ); /* finalizer for pData */
260 };
261 typedef struct Th_GcEntry Th_GcEntry 0zero
262 *!iRight!iRight/A-1, 1, 1, 0zero
263 *!iRight!iRight Th_Hash * paGc; /* Holds client-provided data owned by this
264 object. It would these in a list (beentries), but Th_Hasof being here and working.
265 Gc:typedef char u8;MODULUS: %ADD:ero
266 *!iRight!iRight/AD*SUBTRACT-therSconst-1, 1, 1, 0zero
267 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
268 *!iRight!iRight/AD*SUBT:paGc entries. Frees
269 ** pEntry->pData but not pEntryJ@1qE,7:Free3333AtoF
--- a/src/th.c
+++ b/src/th.c
@@ -1,269 +0,0 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
D src/th.h

No diff available

D src/th_lang.c
-2
--- a/src/th_lang.c
+++ b/src/th_lang.c
@@ -1,2 +0,0 @@
1
-zName/*
2
-**zName
--- a/src/th_lang.c
+++ b/src/th_lang.c
@@ -1,2 +0,0 @@
1 zName/*
2 **zName
--- a/src/th_lang.c
+++ b/src/th_lang.c
@@ -1,2 +0,0 @@
 
 
+73 -16
--- a/src/th_main.c
+++ b/src/th_main.c
@@ -13,22 +13,79 @@
1313
S@5z~,E:"command_hook"K@6LC,9:ERROR ){
1414
P@60A,y@60c,3P:/*
1515
** Make sure that the TH1 script error was not caused by a "n/*
16
-** *lobal variable counting the number of outstanding calls to malloc()
17
-** made by the th1 implementation. This is used to catch memory leaks
18
-** in the interpreter. Obviously, it also means th1 is not threadsafenOutstandingMalloc = 0;
16
+** * Nn are ignored.
17
+*/
18
+int");
19
+ }
20
+ return web page.
21
+** Returning1], argl[1], &enableOutput)he script returned TH_ERROR (e.g. the "command_hook" TH1 command does
22
+ **less the called command
23
+ ** (i.e. "command_hook") explicitly forbids/
24
+static longQUERY
25
+#ifndef INTERFACE
26
+memcmp(zResult, NO_COMMAND_HOOK_ERROR, nResult)!=0 ){
27
+f@61Y,5d:}
28
+ }
29
+ /*
30
+ ** If the script returned TH_ERROR (e.g. the "cJim int argc, Jim_Obj *const *argv)
31
+{e "well-known" TH1 errJim_WrongNumArgs(interp, 1, argv, "BOOLEAN");
32
+ return JIM_ERR;
33
+ }
34
+ return Jim_GetLong&enableOutput);
35
+}ript raising an error or calling [break]/[continue]) may
36
+** cause an error message to be displayractive user.Name,
37
+ char cmdFlags
38
+){
39
+ int rc;
40
+ Th_FossilInit(1, 1);
41
+ Th_Store("cmd_name", zName);
42
+ Th_Storif( g.cgiOutput return (rc != TH_ERRz, n)fwrite(z, 1, n, sTh_FossilInit();
1943
20
-/*
21
-** Implementations of malloc() and free() to pass to the interpret Th_FossilInit(1, 1*xMalloc(unsigned int n){
22
- void *p = fossil_malloc(n);
23
- if( p ){
24
- nOutstandingMalloc++;
44
+ Jim_Obj *oint nValue;Value*aszElem;
45
+ char **azElem;TH1th_ei,G~@5Ju,k@5ad,SI@5cs,Zw@64C,4V:is function is called by Fossil just prior to dispatching a command.
46
+** Returning a value other than TH_OK from this function (i.e. via an
47
+** evaluated script raising an error or ca# include <sqlite3.h>
48
+#endif are the "well-known" TH1 error mesD,1h@2EX,65@2Gl,4:JSONf@2Mt,a@2Sk,5b@2MR,8:MARKDOWNf@2Mt,Y@2Tx,e@2cO,21@2V0,28f@2ei,G~@5Ju,k@5ad,SI@5cs,Zw@64C,4V:is function is called by Fossil just prior to dispatching a command.
49
+** Returning a value other than TH_OK from this function (i.e. via an
50
+** evaluated script raising an error or calling [break]/[continue]) will
51
+** cause the actual command execution to be skipped.
52
+*/
53
+int Th_CommandHook(G@3HG,P:Name,
54
+ char cmdFlags
55
+){
56
+K@5xj,1Q:Th_FossilInit(1, 1);
57
+ Th_Store("cmd_name", zName);
58
+ Th_StoreInt("cmd_flags", cmdFlags);
59
+S@5z~,E:"command_hook"K@6LC,9:ERROR ){
60
+P@60A,y@60c,3P:/*
61
+ ** Make sure that the TH1 script error was not caused by a "n/*
62
+** * Nn are ignored.
63
+*/
64
+int");
2565
}
26
- return p;
27
-}
28
-static void xFree(void *p){
29
- if( p ){
30
- nOutstandingMalloc--;
66
+ return web page.
67
+** Returning1], argl[1], &enableOutput)he script returned TH_ERROR (e.g. the "command_hook" TH1 command does
68
+ **less the called command
69
+ ** (i.e. "command_hook") explicitly forbids/
70
+static longQUERY
71
+#ifndef INTERFACE
72
+memcmp(zResult, NO_COMMAND_HOOK_ERROR, nResult)!=0 ){
73
+f@61Y,5d:}
3174
}
32
- free(p);
33
-}
34
-static Th_Vtab
75
+ /*
76
+ ** If the script returned TH_ERROR (e.g. the "cJim int argc, Jim_Obj *const *argv)
77
+{e "well-known" TH1 errJim_WrongNumArgs(interp, 1, argv, "BOOLEAN");
78
+ return JIM_ERR;
79
+ }
80
+ return Jim_GetLong&enableOutput);
81
+}ript raising an error or calling [break]/[continue]) may
82
+** cause an error message to be displayractive user.Name,
83
+ char cmdFlags
84
+){
85
+ int rc;
86
+ Th_FossilInit(1, 1);
87
+ Th_Store("cmd_name", zName);
88
+ Th_Storif( g.cgiOutput return (rc != TH_ERRz, n)fwrite(z, 1, n, sTh_FossilInit();
89
+
90
+ Jim_Obj *oint nValue;Value*aszElem;
91
+ char **azElem;thth
--- a/src/th_main.c
+++ b/src/th_main.c
@@ -13,22 +13,79 @@
13 S@5z~,E:"command_hook"K@6LC,9:ERROR ){
14 P@60A,y@60c,3P:/*
15 ** Make sure that the TH1 script error was not caused by a "n/*
16 ** *lobal variable counting the number of outstanding calls to malloc()
17 ** made by the th1 implementation. This is used to catch memory leaks
18 ** in the interpreter. Obviously, it also means th1 is not threadsafenOutstandingMalloc = 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
20 /*
21 ** Implementations of malloc() and free() to pass to the interpret Th_FossilInit(1, 1*xMalloc(unsigned int n){
22 void *p = fossil_malloc(n);
23 if( p ){
24 nOutstandingMalloc++;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25 }
26 return p;
27 }
28 static void xFree(void *p){
29 if( p ){
30 nOutstandingMalloc--;
 
 
 
31 }
32 free(p);
33 }
34 static Th_Vtab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/th_main.c
+++ b/src/th_main.c
@@ -13,22 +13,79 @@
13 S@5z~,E:"command_hook"K@6LC,9:ERROR ){
14 P@60A,y@60c,3P:/*
15 ** Make sure that the TH1 script error was not caused by a "n/*
16 ** * Nn are ignored.
17 */
18 int");
19 }
20 return web page.
21 ** Returning1], argl[1], &enableOutput)he script returned TH_ERROR (e.g. the "command_hook" TH1 command does
22 **less the called command
23 ** (i.e. "command_hook") explicitly forbids/
24 static longQUERY
25 #ifndef INTERFACE
26 memcmp(zResult, NO_COMMAND_HOOK_ERROR, nResult)!=0 ){
27 f@61Y,5d:}
28 }
29 /*
30 ** If the script returned TH_ERROR (e.g. the "cJim int argc, Jim_Obj *const *argv)
31 {e "well-known" TH1 errJim_WrongNumArgs(interp, 1, argv, "BOOLEAN");
32 return JIM_ERR;
33 }
34 return Jim_GetLong&enableOutput);
35 }ript raising an error or calling [break]/[continue]) may
36 ** cause an error message to be displayractive user.Name,
37 char cmdFlags
38 ){
39 int rc;
40 Th_FossilInit(1, 1);
41 Th_Store("cmd_name", zName);
42 Th_Storif( g.cgiOutput return (rc != TH_ERRz, n)fwrite(z, 1, n, sTh_FossilInit();
43
44 Jim_Obj *oint nValue;Value*aszElem;
45 char **azElem;TH1th_ei,G~@5Ju,k@5ad,SI@5cs,Zw@64C,4V:is function is called by Fossil just prior to dispatching a command.
46 ** Returning a value other than TH_OK from this function (i.e. via an
47 ** evaluated script raising an error or ca# include <sqlite3.h>
48 #endif are the "well-known" TH1 error mesD,1h@2EX,65@2Gl,4:JSONf@2Mt,a@2Sk,5b@2MR,8:MARKDOWNf@2Mt,Y@2Tx,e@2cO,21@2V0,28f@2ei,G~@5Ju,k@5ad,SI@5cs,Zw@64C,4V:is function is called by Fossil just prior to dispatching a command.
49 ** Returning a value other than TH_OK from this function (i.e. via an
50 ** evaluated script raising an error or calling [break]/[continue]) will
51 ** cause the actual command execution to be skipped.
52 */
53 int Th_CommandHook(G@3HG,P:Name,
54 char cmdFlags
55 ){
56 K@5xj,1Q:Th_FossilInit(1, 1);
57 Th_Store("cmd_name", zName);
58 Th_StoreInt("cmd_flags", cmdFlags);
59 S@5z~,E:"command_hook"K@6LC,9:ERROR ){
60 P@60A,y@60c,3P:/*
61 ** Make sure that the TH1 script error was not caused by a "n/*
62 ** * Nn are ignored.
63 */
64 int");
65 }
66 return web page.
67 ** Returning1], argl[1], &enableOutput)he script returned TH_ERROR (e.g. the "command_hook" TH1 command does
68 **less the called command
69 ** (i.e. "command_hook") explicitly forbids/
70 static longQUERY
71 #ifndef INTERFACE
72 memcmp(zResult, NO_COMMAND_HOOK_ERROR, nResult)!=0 ){
73 f@61Y,5d:}
74 }
75 /*
76 ** If the script returned TH_ERROR (e.g. the "cJim int argc, Jim_Obj *const *argv)
77 {e "well-known" TH1 errJim_WrongNumArgs(interp, 1, argv, "BOOLEAN");
78 return JIM_ERR;
79 }
80 return Jim_GetLong&enableOutput);
81 }ript raising an error or calling [break]/[continue]) may
82 ** cause an error message to be displayractive user.Name,
83 char cmdFlags
84 ){
85 int rc;
86 Th_FossilInit(1, 1);
87 Th_Store("cmd_name", zName);
88 Th_Storif( g.cgiOutput return (rc != TH_ERRz, n)fwrite(z, 1, n, sTh_FossilInit();
89
90 Jim_Obj *oint nValue;Value*aszElem;
91 char **azElem;thth
+2 -5
--- a/src/th_tcl.c
+++ b/src/th_tcl.c
@@ -8,7 +8,7 @@
88
/*
99
** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *TH1TH1v[i-1]);TH1TH1/1 4)rgc-1; /1 4)rgc-/1 4)rgc-1; /1 4)rgc-/1 4)rgc-1; /1 4)rgc-th1Th1th1th1th1TH1rc = Jim_Eval(th1Interp, arg);
1010
arg = Jim_String(Jim_GetResult(th1Interp)-1));th1ExprTh1Exprth1exprRth1th1TH11 4)rgc-1; \
11
- for(obji=1; obji<Jim_NewStringObj(th1InString(exprResultth-1));
11
+ for(obji=1; obji<Jim_NewStringObj(th1InString(exprResultObj-1));
1212
}
1313
TH1 },TH1 11 4)rgc-1; /1 th1th1th1TH1TH1Th1th1Eval", Th1Evalth1Expr", Th1th_TH1/* Usecontext? */pContext, NULL);
1414
}
@@ -21,7 +21,4 @@
2121
objv = 0;
2222
2323
/*
24
-** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *argv[i], argl[i]);v[i-1]);Th
25
- Thvoid *ctx,
26
- int argc,
27
- conTHTH_ERROreturn Th""Th_ErrorMessagecl interpreter", (const char *
24
+** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *
--- a/src/th_tcl.c
+++ b/src/th_tcl.c
@@ -8,7 +8,7 @@
8 /*
9 ** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *TH1TH1v[i-1]);TH1TH1/1 4)rgc-1; /1 4)rgc-/1 4)rgc-1; /1 4)rgc-/1 4)rgc-1; /1 4)rgc-th1Th1th1th1th1TH1rc = Jim_Eval(th1Interp, arg);
10 arg = Jim_String(Jim_GetResult(th1Interp)-1));th1ExprTh1Exprth1exprRth1th1TH11 4)rgc-1; \
11 for(obji=1; obji<Jim_NewStringObj(th1InString(exprResultth-1));
12 }
13 TH1 },TH1 11 4)rgc-1; /1 th1th1th1TH1TH1Th1th1Eval", Th1Evalth1Expr", Th1th_TH1/* Usecontext? */pContext, NULL);
14 }
@@ -21,7 +21,4 @@
21 objv = 0;
22
23 /*
24 ** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *argv[i], argl[i]);v[i-1]);Th
25 Thvoid *ctx,
26 int argc,
27 conTHTH_ERROreturn Th""Th_ErrorMessagecl interpreter", (const char *
--- a/src/th_tcl.c
+++ b/src/th_tcl.c
@@ -8,7 +8,7 @@
8 /*
9 ** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *TH1TH1v[i-1]);TH1TH1/1 4)rgc-1; /1 4)rgc-/1 4)rgc-1; /1 4)rgc-/1 4)rgc-1; /1 4)rgc-th1Th1th1th1th1TH1rc = Jim_Eval(th1Interp, arg);
10 arg = Jim_String(Jim_GetResult(th1Interp)-1));th1ExprTh1Exprth1exprRth1th1TH11 4)rgc-1; \
11 for(obji=1; obji<Jim_NewStringObj(th1InString(exprResultObj-1));
12 }
13 TH1 },TH1 11 4)rgc-1; /1 th1th1th1TH1TH1Th1th1Eval", Th1Evalth1Expr", Th1th_TH1/* Usecontext? */pContext, NULL);
14 }
@@ -21,7 +21,4 @@
21 objv = 0;
22
23 /*
24 ** Fetch the Tcl interpreter f**********JimjimJim Jim_String(argv[ivoid *
 
 
 
+1 -11
--- a/src/tkt.c
+++ b/src/tkt.c
@@ -30,14 +30,4 @@
3030
const char * );
3131
const char **azField = 0; /* Nam char **azField = 0; /* Names oName char **azFiees of database fields5 }
3232
const char **azField = }
33
- cosize, &size,&size, &size,&sizeTh_Eval(g.interp, 0, zConfig, -1
34
- Th_Interp *interp,
35
- void *p,
36
- int argc,
37
- const char **argv,
38
- int *argl
39
-){
40
- int idx;
41
-
42
- if( argc!=3 ){
43
- return Th_WrongNumArgs(interp, "argl[1], argv[1], argl[2], argv[2]argv[1], argl[1]argl[1]Th_ErrorMessage", argv[1], a
33
+ cosize
--- a/src/tkt.c
+++ b/src/tkt.c
@@ -30,14 +30,4 @@
30 const char * );
31 const char **azField = 0; /* Nam char **azField = 0; /* Names oName char **azFiees of database fields5 }
32 const char **azField = }
33 cosize, &size,&size, &size,&sizeTh_Eval(g.interp, 0, zConfig, -1
34 Th_Interp *interp,
35 void *p,
36 int argc,
37 const char **argv,
38 int *argl
39 ){
40 int idx;
41
42 if( argc!=3 ){
43 return Th_WrongNumArgs(interp, "argl[1], argv[1], argl[2], argv[2]argv[1], argl[1]argl[1]Th_ErrorMessage", argv[1], a
--- a/src/tkt.c
+++ b/src/tkt.c
@@ -30,14 +30,4 @@
30 const char * );
31 const char **azField = 0; /* Nam char **azField = 0; /* Names oName char **azFiees of database fields5 }
32 const char **azField = }
33 cosize
 
 
 
 
 
 
 
 
 
 
--- a/win/Makefile.PellesCGMake
+++ b/win/Makefile.PellesCGMake
@@ -1 +1 @@
1
-# DO NOT EDITsrc/ththth# DO NOT EDITsrc/
1
+# DO NOT EDITsrc/
--- a/win/Makefile.PellesCGMake
+++ b/win/Makefile.PellesCGMake
@@ -1 +1 @@
1 # DO NOT EDITsrc/ththth# DO NOT EDITsrc/
--- a/win/Makefile.PellesCGMake
+++ b/win/Makefile.PellesCGMake
@@ -1 +1 @@
1 # DO NOT EDITsrc/
--- a/win/Makefile.dmc
+++ b/win/Makefile.dmc
@@ -487,4 +487,4 @@
487487
**
488488
489489
ENABLjson_diffFR@4lr,~:3.h $(SRCDIR)\jim.h VERSION.h
490
-$(SRCDIR)\sqlite3.h $(SRCDIR)\jim12@50X,1FSQ~r;th
490
+$(SRCDIR)\sqlite3.h $(SRCDIR)\jim12@50X,1FSQ~r;
--- a/win/Makefile.dmc
+++ b/win/Makefile.dmc
@@ -487,4 +487,4 @@
487 **
488
489 ENABLjson_diffFR@4lr,~:3.h $(SRCDIR)\jim.h VERSION.h
490 $(SRCDIR)\sqlite3.h $(SRCDIR)\jim12@50X,1FSQ~r;th
--- a/win/Makefile.dmc
+++ b/win/Makefile.dmc
@@ -487,4 +487,4 @@
487 **
488
489 ENABLjson_diffFR@4lr,~:3.h $(SRCDIR)\jim.h VERSION.h
490 $(SRCDIR)\sqlite3.h $(SRCDIR)\jim12@50X,1FSQ~r;
--- a/win/Makefile.mingw
+++ b/win/Makefile.mingw
@@ -40,4 +40,4 @@
4040
$(XTCC) -D#LIB = -lz -lws2_32
4141
# OpenSSL:@29l,3b@5WH,5:browsN@
4242
M@8~C,z@40l,LIB += -lmingwex -lz -lws2_32G,3z@65G,V@69O,H@6Bk,H@6N@9ql,A@4v~,3B@6 If you do not runEh,2:dbM@BXk,J@makensis6Ml,7:deltacmN@9mG,P@4FWc:\Program Files\NSIS\makensisT@6eE,3U@6eh,3:docM@BXk,J@2GG,3b@6j1,5:encodN@69W,I@6pG,3U@6nW,4:evenN@9ql,J@2G~,2:: J@6sj,h@AnW,2:exI@9nz,2:exJ@8SW,A:export.o: K@2G~,1U@6t~,2:exQ@9qi,A@4_j,J@BPk,4:filek@BhV,8:file.c >A@8sU,3:filG@5~G,I@BRU,1W@6yB,Q@BTV,3l@6~G,R@73A,3c@73b,4:globM@BXk,A@4EG,3b@77x,R@7Bh,H@7DW,3M@7CP,3:gziN@BgW,A@2kN,3T@7GU,Q@BgT,4b@7KW,X@7PG,G@7N0,2:slK@7Uz,3:sslq@7LF,2i@7RG,7:http_ssN@BGW,O@4O~,4e@7Uz,A:http_transQ@9qi,J@7bT,2:: J@7aW,h@AnW,2:imI@9nz,2H@7az,2:imQ@9qi,3c@7dr,Q@73B,H@7j~,2:: H@1mF,l@8WW,J@8N0,I@8jU,J@8hW,H@7pG,m@8Tl,P@7lG,3:jsoN@AFW,4t@7mE,Z@7rG,O@7w0,4E@7sC,A:json_brancN@7Bl,L@7z~,J@7iG,3z@7xj,X@80r,M@82~,3z@81j,V@85r,H@82~,L@8fW,3a@86x,U@8Ag,N@8FE,2:: N@73A,K@C6l,J@7iG,4:_logm@5ik,31@8Hj,5:json_R@8xG,N@8PU,2:: N@8Mh,m@8WW,2x@8Mw,A:json_queryM@BXk,O@8SF,2:: O@1pz,m@8WW,K@9nx,5:json_L@9oG,B:json_reportJ@8hW,5:reporK@7pE,o@9pD,g@8UT,5:json_S@9qg,I@8ZG,J@7iG,1:_n@AfE,2o@8XC,U@8_9,N@8eW,J@7iG,9:_timelinep@8G~,3H@8bF,Z@8ef,M@2Ql,2:: M@8gU,m@8WW,2q@8gi,V@8jh,J@8oW,J@7iG,5:_wikip@8G~,4:wikiJ@8N0,3:wikG@5hW,5:json_I@BVk,1p@8mh,V@8of,I@4_j,1: H@8qG,h@AnW,2N@8qQ,Q@8sw,A@5dA,3b@8tW,R@8xG,3y@8xh,3:maiN@AFW,L@93V,2:: L@92S,j@8yG,6:nifestG@8z0,2:bO@8_F,J@5KG,3b@5J5,5:bislogV@69O,H@6Bk,H@60F,2json_query@5df,G@5g0,3E@5eO,P@5hrepormQ@9qi,3c@7dr,Q@73,3b@5WH,5:browsN@69W,H@5dW,3m@5_k,T@5df,G@5g0,3E@5eO,P@5hl,H@5lV,3m@5iR,6:checkiN@AFW,I@5qG,3u@5n6,U@5r9,M@5tF,3z@5rz,8:clearsigN@AFW,3l@5wb,R@5~W,J@64G,41@60F,V@64Q,M@67G,3z@65G,V@69O,H@6Bk,H@60F,2:ntn@6nj,2h@6BE,6:contenN@9ql,A@4v~,3B@6Eh,2:dbM@BXk,J@4EG,1: I@1e~,3A@6J0,4:deltN@5dl,4B@6Ml,7:deltacmN@9mG,P@4FW,4D@6Ry,X@6WK,3c@6Wr,Q@85w,K@6dj,2:: K@1gV,i@6J0,2g@6bP,T@6eE,3U@6eh,3:docM@BXk,J@2GG,3b@6j1,5:encodN@69W,I@6pG,3U@6nW,4:evenN@9ql,J@2G~,2:: J@6sj,h@AnW,2:exI@9nz,2:exJ@8SW,A:export.o: K@2G~,1U@6t~,2:exQ@9qi,A@4_j,J@BPk,4:filek@BhV,8:file.c >A@8sU,3:filG@5~G,I@BRU,1W@6yB,Q@BTV,3l@6~G,R@73A,3c@73b,4:globM@BXk,A@4EG,3b@77x,R@7Bh,H@7DW,3M@7CP,3:gziN@BgW,A@2kN,3T@7GU,Q@BgT,4b@7KW,X@7PG,G@7N0,2:slK@7Uz,3:sslq@7LF,2i@7RG,7:http_ssN@BGW,O@4O~,4e@7Uz,A:http_transQ@9qi,J@7bT,2:: J@7aW,h@AnW,2:imI@9nz,2H@7az,2:imQ@9qi,3c@7dr,Q@73B,H@7j~,2:: H@1mF,l@8WW,J@8N0,I@8jU,J@8hW,H@7pG,m@8Tl,P@7lG,3:jsoN@AFW,4t@7mE,Z@7rG,O@7w0,4E@7sC,A:json_brancN@7Bl,L@7z~,J@7iG,3z@7xj,X@80r,M@82~,3z@81j,V@85r,H@82~,L@8fW,3a@86x,U@8Ag,N@8FE,2:: N@1oi,m@8WW,2x@8Cg,5:json_R@73A,K@C6l,J@7iG,4:_logm@5ik,31@8Hj,5:json_R@8xG,N@8PU,2:: N@8Mh,m@8WW,2x@8Mw,A:json_queryM@BXk,O@8SF,2:: O@1pz,m@8WW,K@9nx,5:json_L@9oG,B:json_reportJ@8hW,5:reporK@7pE,o@9pD,g@8UT,5:json_S@9qg,I@8ZG,J@7iG,1:_n@AfE,2o@8XC,U@8_9,N@8eW,J@7iG,9:_timelinep@8G~,3H@8bF,Z@8ef,M@2Ql,2:: M@8gU,m@8WW,2q@8gi,V@8jh,J@8oW,J@7iG,5:_wikip@8G~,4:wikiJ@8N0,3:wikG@5hW,5:json_I@BVk,1p@8mh,V@8of,I@4_j,1: H@8qG,h@AnW,2N@8qQ,Q@8sw,A@5dA,3b@8tW,R@8xG,3y@8xh,3:maiN@AFW,L@93V,2:: L@92S,j@8yG,6:nifestG@8z0,2R@92z,7:manifesN@9ql,D:$(OBJDIR)/md5G@91W,31@96V,3:md5M@BXk,I@9DW,3U@9AM,R@9Dz,J@2Tk,3b@9Ei,S@9IT,3c@9Iv,3:namN@APPNAME)
43
- $(TCLSH) msysmingw zip_.c:zith
43
+ $(TCLSH) msysmingw zip_.c:zi
--- a/win/Makefile.mingw
+++ b/win/Makefile.mingw
@@ -40,4 +40,4 @@
40 $(XTCC) -D#LIB = -lz -lws2_32
41 # OpenSSL:@29l,3b@5WH,5:browsN@
42 M@8~C,z@40l,LIB += -lmingwex -lz -lws2_32G,3z@65G,V@69O,H@6Bk,H@6N@9ql,A@4v~,3B@6 If you do not runEh,2:dbM@BXk,J@makensis6Ml,7:deltacmN@9mG,P@4FWc:\Program Files\NSIS\makensisT@6eE,3U@6eh,3:docM@BXk,J@2GG,3b@6j1,5:encodN@69W,I@6pG,3U@6nW,4:evenN@9ql,J@2G~,2:: J@6sj,h@AnW,2:exI@9nz,2:exJ@8SW,A:export.o: K@2G~,1U@6t~,2:exQ@9qi,A@4_j,J@BPk,4:filek@BhV,8:file.c >A@8sU,3:filG@5~G,I@BRU,1W@6yB,Q@BTV,3l@6~G,R@73A,3c@73b,4:globM@BXk,A@4EG,3b@77x,R@7Bh,H@7DW,3M@7CP,3:gziN@BgW,A@2kN,3T@7GU,Q@BgT,4b@7KW,X@7PG,G@7N0,2:slK@7Uz,3:sslq@7LF,2i@7RG,7:http_ssN@BGW,O@4O~,4e@7Uz,A:http_transQ@9qi,J@7bT,2:: J@7aW,h@AnW,2:imI@9nz,2H@7az,2:imQ@9qi,3c@7dr,Q@73B,H@7j~,2:: H@1mF,l@8WW,J@8N0,I@8jU,J@8hW,H@7pG,m@8Tl,P@7lG,3:jsoN@AFW,4t@7mE,Z@7rG,O@7w0,4E@7sC,A:json_brancN@7Bl,L@7z~,J@7iG,3z@7xj,X@80r,M@82~,3z@81j,V@85r,H@82~,L@8fW,3a@86x,U@8Ag,N@8FE,2:: N@73A,K@C6l,J@7iG,4:_logm@5ik,31@8Hj,5:json_R@8xG,N@8PU,2:: N@8Mh,m@8WW,2x@8Mw,A:json_queryM@BXk,O@8SF,2:: O@1pz,m@8WW,K@9nx,5:json_L@9oG,B:json_reportJ@8hW,5:reporK@7pE,o@9pD,g@8UT,5:json_S@9qg,I@8ZG,J@7iG,1:_n@AfE,2o@8XC,U@8_9,N@8eW,J@7iG,9:_timelinep@8G~,3H@8bF,Z@8ef,M@2Ql,2:: M@8gU,m@8WW,2q@8gi,V@8jh,J@8oW,J@7iG,5:_wikip@8G~,4:wikiJ@8N0,3:wikG@5hW,5:json_I@BVk,1p@8mh,V@8of,I@4_j,1: H@8qG,h@AnW,2N@8qQ,Q@8sw,A@5dA,3b@8tW,R@8xG,3y@8xh,3:maiN@AFW,L@93V,2:: L@92S,j@8yG,6:nifestG@8z0,2:bO@8_F,J@5KG,3b@5J5,5:bislogV@69O,H@6Bk,H@60F,2json_query@5df,G@5g0,3E@5eO,P@5hrepormQ@9qi,3c@7dr,Q@73,3b@5WH,5:browsN@69W,H@5dW,3m@5_k,T@5df,G@5g0,3E@5eO,P@5hl,H@5lV,3m@5iR,6:checkiN@AFW,I@5qG,3u@5n6,U@5r9,M@5tF,3z@5rz,8:clearsigN@AFW,3l@5wb,R@5~W,J@64G,41@60F,V@64Q,M@67G,3z@65G,V@69O,H@6Bk,H@60F,2:ntn@6nj,2h@6BE,6:contenN@9ql,A@4v~,3B@6Eh,2:dbM@BXk,J@4EG,1: I@1e~,3A@6J0,4:deltN@5dl,4B@6Ml,7:deltacmN@9mG,P@4FW,4D@6Ry,X@6WK,3c@6Wr,Q@85w,K@6dj,2:: K@1gV,i@6J0,2g@6bP,T@6eE,3U@6eh,3:docM@BXk,J@2GG,3b@6j1,5:encodN@69W,I@6pG,3U@6nW,4:evenN@9ql,J@2G~,2:: J@6sj,h@AnW,2:exI@9nz,2:exJ@8SW,A:export.o: K@2G~,1U@6t~,2:exQ@9qi,A@4_j,J@BPk,4:filek@BhV,8:file.c >A@8sU,3:filG@5~G,I@BRU,1W@6yB,Q@BTV,3l@6~G,R@73A,3c@73b,4:globM@BXk,A@4EG,3b@77x,R@7Bh,H@7DW,3M@7CP,3:gziN@BgW,A@2kN,3T@7GU,Q@BgT,4b@7KW,X@7PG,G@7N0,2:slK@7Uz,3:sslq@7LF,2i@7RG,7:http_ssN@BGW,O@4O~,4e@7Uz,A:http_transQ@9qi,J@7bT,2:: J@7aW,h@AnW,2:imI@9nz,2H@7az,2:imQ@9qi,3c@7dr,Q@73B,H@7j~,2:: H@1mF,l@8WW,J@8N0,I@8jU,J@8hW,H@7pG,m@8Tl,P@7lG,3:jsoN@AFW,4t@7mE,Z@7rG,O@7w0,4E@7sC,A:json_brancN@7Bl,L@7z~,J@7iG,3z@7xj,X@80r,M@82~,3z@81j,V@85r,H@82~,L@8fW,3a@86x,U@8Ag,N@8FE,2:: N@1oi,m@8WW,2x@8Cg,5:json_R@73A,K@C6l,J@7iG,4:_logm@5ik,31@8Hj,5:json_R@8xG,N@8PU,2:: N@8Mh,m@8WW,2x@8Mw,A:json_queryM@BXk,O@8SF,2:: O@1pz,m@8WW,K@9nx,5:json_L@9oG,B:json_reportJ@8hW,5:reporK@7pE,o@9pD,g@8UT,5:json_S@9qg,I@8ZG,J@7iG,1:_n@AfE,2o@8XC,U@8_9,N@8eW,J@7iG,9:_timelinep@8G~,3H@8bF,Z@8ef,M@2Ql,2:: M@8gU,m@8WW,2q@8gi,V@8jh,J@8oW,J@7iG,5:_wikip@8G~,4:wikiJ@8N0,3:wikG@5hW,5:json_I@BVk,1p@8mh,V@8of,I@4_j,1: H@8qG,h@AnW,2N@8qQ,Q@8sw,A@5dA,3b@8tW,R@8xG,3y@8xh,3:maiN@AFW,L@93V,2:: L@92S,j@8yG,6:nifestG@8z0,2R@92z,7:manifesN@9ql,D:$(OBJDIR)/md5G@91W,31@96V,3:md5M@BXk,I@9DW,3U@9AM,R@9Dz,J@2Tk,3b@9Ei,S@9IT,3c@9Iv,3:namN@APPNAME)
43 $(TCLSH) msysmingw zip_.c:zith
--- a/win/Makefile.mingw
+++ b/win/Makefile.mingw
@@ -40,4 +40,4 @@
40 $(XTCC) -D#LIB = -lz -lws2_32
41 # OpenSSL:@29l,3b@5WH,5:browsN@
42 M@8~C,z@40l,LIB += -lmingwex -lz -lws2_32G,3z@65G,V@69O,H@6Bk,H@6N@9ql,A@4v~,3B@6 If you do not runEh,2:dbM@BXk,J@makensis6Ml,7:deltacmN@9mG,P@4FWc:\Program Files\NSIS\makensisT@6eE,3U@6eh,3:docM@BXk,J@2GG,3b@6j1,5:encodN@69W,I@6pG,3U@6nW,4:evenN@9ql,J@2G~,2:: J@6sj,h@AnW,2:exI@9nz,2:exJ@8SW,A:export.o: K@2G~,1U@6t~,2:exQ@9qi,A@4_j,J@BPk,4:filek@BhV,8:file.c >A@8sU,3:filG@5~G,I@BRU,1W@6yB,Q@BTV,3l@6~G,R@73A,3c@73b,4:globM@BXk,A@4EG,3b@77x,R@7Bh,H@7DW,3M@7CP,3:gziN@BgW,A@2kN,3T@7GU,Q@BgT,4b@7KW,X@7PG,G@7N0,2:slK@7Uz,3:sslq@7LF,2i@7RG,7:http_ssN@BGW,O@4O~,4e@7Uz,A:http_transQ@9qi,J@7bT,2:: J@7aW,h@AnW,2:imI@9nz,2H@7az,2:imQ@9qi,3c@7dr,Q@73B,H@7j~,2:: H@1mF,l@8WW,J@8N0,I@8jU,J@8hW,H@7pG,m@8Tl,P@7lG,3:jsoN@AFW,4t@7mE,Z@7rG,O@7w0,4E@7sC,A:json_brancN@7Bl,L@7z~,J@7iG,3z@7xj,X@80r,M@82~,3z@81j,V@85r,H@82~,L@8fW,3a@86x,U@8Ag,N@8FE,2:: N@73A,K@C6l,J@7iG,4:_logm@5ik,31@8Hj,5:json_R@8xG,N@8PU,2:: N@8Mh,m@8WW,2x@8Mw,A:json_queryM@BXk,O@8SF,2:: O@1pz,m@8WW,K@9nx,5:json_L@9oG,B:json_reportJ@8hW,5:reporK@7pE,o@9pD,g@8UT,5:json_S@9qg,I@8ZG,J@7iG,1:_n@AfE,2o@8XC,U@8_9,N@8eW,J@7iG,9:_timelinep@8G~,3H@8bF,Z@8ef,M@2Ql,2:: M@8gU,m@8WW,2q@8gi,V@8jh,J@8oW,J@7iG,5:_wikip@8G~,4:wikiJ@8N0,3:wikG@5hW,5:json_I@BVk,1p@8mh,V@8of,I@4_j,1: H@8qG,h@AnW,2N@8qQ,Q@8sw,A@5dA,3b@8tW,R@8xG,3y@8xh,3:maiN@AFW,L@93V,2:: L@92S,j@8yG,6:nifestG@8z0,2:bO@8_F,J@5KG,3b@5J5,5:bislogV@69O,H@6Bk,H@60F,2json_query@5df,G@5g0,3E@5eO,P@5hrepormQ@9qi,3c@7dr,Q@73,3b@5WH,5:browsN@69W,H@5dW,3m@5_k,T@5df,G@5g0,3E@5eO,P@5hl,H@5lV,3m@5iR,6:checkiN@AFW,I@5qG,3u@5n6,U@5r9,M@5tF,3z@5rz,8:clearsigN@AFW,3l@5wb,R@5~W,J@64G,41@60F,V@64Q,M@67G,3z@65G,V@69O,H@6Bk,H@60F,2:ntn@6nj,2h@6BE,6:contenN@9ql,A@4v~,3B@6Eh,2:dbM@BXk,J@4EG,1: I@1e~,3A@6J0,4:deltN@5dl,4B@6Ml,7:deltacmN@9mG,P@4FW,4D@6Ry,X@6WK,3c@6Wr,Q@85w,K@6dj,2:: K@1gV,i@6J0,2g@6bP,T@6eE,3U@6eh,3:docM@BXk,J@2GG,3b@6j1,5:encodN@69W,I@6pG,3U@6nW,4:evenN@9ql,J@2G~,2:: J@6sj,h@AnW,2:exI@9nz,2:exJ@8SW,A:export.o: K@2G~,1U@6t~,2:exQ@9qi,A@4_j,J@BPk,4:filek@BhV,8:file.c >A@8sU,3:filG@5~G,I@BRU,1W@6yB,Q@BTV,3l@6~G,R@73A,3c@73b,4:globM@BXk,A@4EG,3b@77x,R@7Bh,H@7DW,3M@7CP,3:gziN@BgW,A@2kN,3T@7GU,Q@BgT,4b@7KW,X@7PG,G@7N0,2:slK@7Uz,3:sslq@7LF,2i@7RG,7:http_ssN@BGW,O@4O~,4e@7Uz,A:http_transQ@9qi,J@7bT,2:: J@7aW,h@AnW,2:imI@9nz,2H@7az,2:imQ@9qi,3c@7dr,Q@73B,H@7j~,2:: H@1mF,l@8WW,J@8N0,I@8jU,J@8hW,H@7pG,m@8Tl,P@7lG,3:jsoN@AFW,4t@7mE,Z@7rG,O@7w0,4E@7sC,A:json_brancN@7Bl,L@7z~,J@7iG,3z@7xj,X@80r,M@82~,3z@81j,V@85r,H@82~,L@8fW,3a@86x,U@8Ag,N@8FE,2:: N@1oi,m@8WW,2x@8Cg,5:json_R@73A,K@C6l,J@7iG,4:_logm@5ik,31@8Hj,5:json_R@8xG,N@8PU,2:: N@8Mh,m@8WW,2x@8Mw,A:json_queryM@BXk,O@8SF,2:: O@1pz,m@8WW,K@9nx,5:json_L@9oG,B:json_reportJ@8hW,5:reporK@7pE,o@9pD,g@8UT,5:json_S@9qg,I@8ZG,J@7iG,1:_n@AfE,2o@8XC,U@8_9,N@8eW,J@7iG,9:_timelinep@8G~,3H@8bF,Z@8ef,M@2Ql,2:: M@8gU,m@8WW,2q@8gi,V@8jh,J@8oW,J@7iG,5:_wikip@8G~,4:wikiJ@8N0,3:wikG@5hW,5:json_I@BVk,1p@8mh,V@8of,I@4_j,1: H@8qG,h@AnW,2N@8qQ,Q@8sw,A@5dA,3b@8tW,R@8xG,3y@8xh,3:maiN@AFW,L@93V,2:: L@92S,j@8yG,6:nifestG@8z0,2R@92z,7:manifesN@9ql,D:$(OBJDIR)/md5G@91W,31@96V,3:md5M@BXk,I@9DW,3U@9AM,R@9Dz,J@2Tk,3b@9Ei,S@9IT,3c@9Iv,3:namN@APPNAME)
43 $(TCLSH) msysmingw zip_.c:zi
+501 -1
--- a/win/Makefile.msc
+++ b/win/Makefile.msc
@@ -1,4 +1,504 @@
1
-thson$O
1
+# DO NOT EDITrssrssgamation.h :
2
+
3
+_
4
+
5
+_
6
+
7
+_.c"
8
+
9
+_.c"duskinstashsta_matimelin
10
+
11
+_.sqlite3thth_lang$Odbsrc/Maybe MSCDIR, stment
12
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zLIB = zdll.lib
13
+ZINCDIR =Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
14
+MSCDIR = c:\mscIR = $(MSCDIR)\extra\include
15
+ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
16
+
17
+_.sqlite3thth_l
18
+
19
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c contenSRCDIR)\..\zlib-1.2.5
20
+ZLIBDMSCDIR)\extra\include
21
+ZLe_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c jsonTIMEVAL_H -DDIRENT_H json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merg4_OPTIONS = /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
22
+_.c"rssrssgamation.
23
+
24
+_.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
25
+
26
+_.sqlite3thth_la
27
+
28
+_.c"duskinstashsta_matimelin
29
+
30
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
31
+
32
+_
33
+
34
+_
35
+
36
+_.c"
37
+
38
+_
39
+
40
+_.c"duskinstashsta_matimelin
41
+
42
+_.sqlite3thth_lang$ite3thth_l
43
+
44
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
45
+_.c"duskinstashsta_matimelin
46
+
47
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.hdiffup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
48
+_.c"rssrssgamation.
49
+
50
+_.c"duskinstas$O $(OX)\import$$(OX_.c"duskinstashs
51
+
52
+_.c"duskinstashsta_matime$(OX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
53
+
54
+_.sqlite3thth_la
55
+
56
+_.c"duskinstashsta_matimelin
57
+
58
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
59
+
60
+_
61
+
62
+_
63
+
64
+_.c"
65
+
66
+_
67
+
68
+_.c"duskinstashsta_matimelin
69
+
70
+_.sqlite3thth_lang$ite3thth_l
71
+
72
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
73
+_.c"duskinstashsta_matimelin
74
+
75
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
76
+
77
+_
78
+
79
+_
80
+
81
+_.c"
82
+
83
+_.c"duskinstashsta_matimelin
84
+
85
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
86
+
87
+_
88
+
89
+_
90
+
91
+_.c"rssrssgamation.h :
92
+
93
+_
94
+
95
+_
96
+
97
+_.c"
98
+
99
+_.c"duskinstashsta_matimelin
100
+
101
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
102
+
103
+_
104
+
105
+_
106
+
107
+_.c"
108
+
109
+_Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
110
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
111
+#ZINCDIR = C:\zlib125-dll\include
112
+#ZLIBDIR = C:\zlib125-dll\lib
113
+#ZLIB = zdll.lib
114
+ZINCDIR = $(MSCDIR)\extra\include
115
+ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
116
+
117
+_.sqlite3thth_l
118
+
119
+_.c"duskidiff_.c:json_diffjimc glob_.c graph_.c gzip_.c http_.c -DNO_TIMEVAL -DNO_DIRENTimport_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._h /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
120
+_.c"rssrssgamation.
121
+
122
+_.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
123
+
124
+_.sqlite3thth_la
125
+
126
+_.c"duskinstashsta_matimelin
127
+
128
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
129
+
130
+_
131
+
132
+_
133
+
134
+_.c"
135
+
136
+_
137
+
138
+_.c"duskinstashsta_matimelin
139
+
140
+_.sqlite3thth_lang$ite3thth_l
141
+
142
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bis
143
+
144
+_.c"duskinstashsta_matimelin
145
+
146
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
147
+
148
+_
149
+
150
+_
151
+
152
+_.c"
153
+
154
+_.c"duskinstashsta_matimelin
155
+
156
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
157
+
158
+_
159
+
160
+_
161
+
162
+_.c"rssrssgamation.h :
163
+
164
+_
165
+
166
+_
167
+
168
+_.c"
169
+
170
+_.c"duskinstashsta_matimelin
171
+
172
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
173
+
174
+_
175
+
176
+_
177
+
178
+_.c"
179
+
180
+_Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
181
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
182
+#ZINCDIR = C:\zlib125-dll\include
183
+#ZLIBDIR = C:\zlib125-dll\lib
184
+#ZLIB = zdll.lib
185
+ZINCDIR = $(MSCDIR)\extra\include
186
+ZLI
187
+_.sq/DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
188
+_.c"rssrssgamation.
189
+
190
+_.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
191
+
192
+_.sqlite3thth_la
193
+
194
+_.c"duskinstashsta_matimelin
195
+
196
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
197
+
198
+_
199
+
200
+_
201
+
202
+_.c"
203
+
204
+_
205
+
206
+_.c"duskinstashsta_matimelin
207
+
208
+_.sqlite3thth_lang$ite3thth_l
209
+
210
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
211
+_.c"duskinstashsta_matimelin
212
+
213
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.hdiffup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
214
+_.c"rssrssgamation.
215
+
216
+_.c"duskinstas$O $(OX)\import$$(OX_.c"duskinstashs
217
+
218
+_.c"duskinstashsta_matime$(OX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
219
+
220
+_.sqlite3thth_la
221
+
222
+_.c"duskinstashsta_matimelin
223
+
224
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
225
+
226
+_
227
+
228
+_
229
+
230
+_.c"
231
+
232
+_
233
+
234
+_.c"duskinstashsta_matimelin
235
+
236
+_.sqlite3thth_lang$ite3thth_l
237
+
238
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
239
+_.c"duskinstashsta_matimelin
240
+
241
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
242
+
243
+_
244
+
245
+_
246
+
247
+_.c"
248
+
249
+_.c"duskinstashsta_matimelin
250
+
251
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
252
+
253
+_
254
+
255
+_
256
+
257
+_.c"rssrssgamation.h :
258
+
259
+_
260
+
261
+_
262
+
263
+_.c"
264
+
265
+_.c"duskinstashsta_matimelin
266
+
267
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
268
+
269
+_
270
+
271
+_
272
+
273
+_.c"
274
+
275
+_Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
276
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
277
+#ZINCDIR = C:\zlib125-dll\include
278
+#ZLIBDIR = C:\zlib125-dll\lib
279
+#ZLIB = zdll.lib
280
+ZINCDIR = $(MSCDIR)\extra\include
281
+ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
282
+
283
+_.sqlite3thth_l
284
+
285
+_.c"duskidiff_.c:json_diffjim $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
286
+
287
+_
288
+
289
+_
290
+
291
+_.c"
292
+
293
+_
294
+
295
+_.c"duskinstashsta_matimelin
296
+
297
+_.sqlite3thth_lang$ite3thth_l
298
+
299
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_$O >ormat_.c configure_.c $Oled from http://zliattach$Oled from http://zlibag$Oled from http://zlibisect$Oled from http://zliblob$Oled from http://zlibranch$Oled from http://zlibrowse$Oled from http://zlicaptcha$Oled from http://zlicgi$Oled from http://zlicheckin$Oled from http://zlicheckout$Oled from http://zliclearsign$Oled from http://zliclone$Oled from http://zlicomformat$Oled from http://zliconfigure$Oled from http://zlicontent$Oled from http://zlidb$Oled from http://zlidelta$Oled from http://zlideltacmd$Oled from http://zlidescendants$Oled from http://zlidiff$Oled from http://zlidiffcmd$Oled from http://zlidoc$Oled from http://zliencode$Oled from http://zlievent$Oled from http://zliexport$Oled from http://zlifile$Oled from http://zlifinfo$Oled from http://zliglob$Oled from http://zligraph$Oled from http://zligzip$Oled from http://zlihttp$Oled from http://zlihttp_socket$Oled from http://zlihttp_ssl$Oled from http://zlihttp_transport$Oled from http://zliimport$Oled from http://zliinfo$Oled from http://zlijimtcl$Oled from http://zlijson$Oled from http://zlijson_artifact$Oled from http://zlijson_branch$Oled from http://zlijson_diff$Oled from http://zlijson_login$Oled from http://zlijson_query$Oled from http://zlijson_report$Oled from http://zlijson_tag$Oled from http://zlijson_timeline$Oled from http://zlijson_user$Oled from http://zlijson_wiki$Oled from http://zlileaf$Oled from http://zlilogin$Oled from http://zlimain$Oled from http://zlimanifest$Oled from http://zlimd5$Oled from http://zlimerge$Oled from http://zlimerge3$Oled from http://zliname$Oled from http://zlipath$Oled from http://zlipivot$Oled from http://zlipopen$Oled from http://zlipqueue$Oled from http://zliprintf$Oled from http://zlirebuild$Oled from http://zlireport$Oled from http://zlirss$Ochema$Oearch$Oetup$Oha1$Ohell$Ohun$Okins$O$Oite3$Otash$Otat$Otyle$Oync$Oled from http://zlitag$Oled from http://zlitar$Oled from http://zlith_main$Oled from http://zlitimeline$Oled from http://zlitkt$Oled from http://zlitktsetup$Oled from http://zliundo$Oled from http://zliupdate$Oled from http://zliurl$Oled from http://zliuser$Oled from http://zliverify$Oled from http://zlivfile$Oled from http://zlib.ne$Oled from http://zlib.neformat$Oled from http://zlib.nhttp$Oled from http://zlixfer$Oled from http://zlizip$Ogamation.h :
300
+
301
+_
302
+
303
+_
304
+
305
+_.c"
306
+
307
+_.c"duskinstashsta_matimelin
308
+
309
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
310
+
311
+_
312
+
313
+_
314
+
315
+_.c"rssrssgamation.h :
316
+
317
+_
318
+
319
+_
320
+
321
+_.c"
322
+
323
+_.c"duskinstashsta_matimelin
324
+
325
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
326
+
327
+_
328
+
329
+_
330
+
331
+_.c"
332
+
333
+_Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
334
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
335
+#ZIN
336
+
337
+_.c"duskinstashsta_matimelin
338
+
339
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
340
+
341
+_
342
+
343
+_
344
+
345
+_.c"
346
+
347
+_.c"duskinstashsta_matimelin
348
+
349
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
350
+
351
+_
352
+
353
+_
354
+
355
+_.c"rssrssgamation.h :
356
+
357
+_
358
+
359
+_
360
+
361
+_.c"
362
+
363
+_.c"duskinstashsta_matimelin
364
+
365
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
366
+
367
+_
368
+
369
+_
370
+
371
+_.c"
372
+
373
+_Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
374
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
375
+#ZINCDIR = C:\zlib125-dll\include
376
+#ZLIBDIR = C:\zlib125-dll\lib
377
+#ZLIB = zdll.lib
378
+ZINCDIR = $(MSCDIR)\extra\include
379
+ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
380
+
381
+_.sqlite3thth_l
382
+
383
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merg4_OPTIONS = /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
384
+_.c"rssrssgamation.
385
+
386
+_.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
387
+
388
+_.sqlite3thth_la
389
+
390
+_.c"duskinstashsta_matimelin
391
+
392
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
393
+
394
+_
395
+
396
+_
397
+
398
+_.c"
399
+
400
+_
401
+
402
+_.c"duskinstashsta_matimelin
403
+
404
+_.sqlite3thth_lang$ite3thth_l
405
+
406
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
407
+_.c"duskinstashsta_matimelin
408
+
409
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.hdiffup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
410
+_.c"rssrssgamation.
411
+
412
+_.c"duskinstas$O $(OX)\import$$(OX_.c"duskinstashs
413
+
414
+_.c"duskinstashsta_matime$(OX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
415
+
416
+_.sqlite3thth_la
417
+
418
+_.c"duskinstashsta_matimelin
419
+
420
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
421
+
422
+_
423
+
424
+_
425
+
426
+_.c"
427
+
428
+_
429
+
430
+_.c"duskinstashsta_matimelin
431
+
432
+_.sqlite3thth_lang$ite3thth_l
433
+
434
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
435
+_.c"duskinstashsta_matimelin
436
+
437
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
438
+
439
+_
440
+
441
+_
442
+
443
+_.c"
444
+
445
+_.c"duskinstashsta_matimelin
446
+
447
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
448
+
449
+_
450
+
451
+_
452
+
453
+_.c"rssrssgamation.h :
454
+
455
+_
456
+
457
+_
458
+
459
+_.c"
460
+
461
+_.c"duskinstashsta_matimelin
462
+
463
+_.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
464
+
465
+_
466
+
467
+_
468
+
469
+_.c"
470
+
471
+_Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
472
+MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
473
+#ZINCDIR = C:\zlib125-dll\include
474
+#ZLIBDIR = C:\zlib125-dll\lib
475
+#ZLIB MSCDIR)\extracket_.c http_ssl_. i.c jsonTIMEVAL_H -DDIRENT_H json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merg4_OPTIONMSCDIR)\extra\libmerg4_OPTIONS = /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
476
+_.c"rssrssgamation.
477
+
478
+_.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
479
+
480
+_.sqlite3thth_la
481
+
482
+_.c"duskinstashsta_matimelin
483
+
484
+_.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
485
+
486
+_
487
+
488
+_
489
+
490
+_.c"
491
+
492
+_
493
+
494
+_.c"duskinstashsta_matimelin
495
+
496
+_.sqlite3thth_lang$ite3thth_l
497
+
498
+_.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
499
+_.c"duskinstashsta_matimelin
500
+
501
+_.sqlite3tson$O
2502
#ZLIB = zdll.lib
3503
ZI = $(MSCDIR)\extra\M
4504
_.sqlite3thth_lan
--- a/win/Makefile.msc
+++ b/win/Makefile.msc
@@ -1,4 +1,504 @@
1 thson$O
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 #ZLIB = zdll.lib
3 ZI = $(MSCDIR)\extra\M
4 _.sqlite3thth_lan
--- a/win/Makefile.msc
+++ b/win/Makefile.msc
@@ -1,4 +1,504 @@
1 # DO NOT EDITrssrssgamation.h :
2
3 _
4
5 _
6
7 _.c"
8
9 _.c"duskinstashsta_matimelin
10
11 _.sqlite3thth_lang$Odbsrc/Maybe MSCDIR, stment
12 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zLIB = zdll.lib
13 ZINCDIR =Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
14 MSCDIR = c:\mscIR = $(MSCDIR)\extra\include
15 ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
16
17 _.sqlite3thth_l
18
19 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c contenSRCDIR)\..\zlib-1.2.5
20 ZLIBDMSCDIR)\extra\include
21 ZLe_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c jsonTIMEVAL_H -DDIRENT_H json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merg4_OPTIONS = /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
22 _.c"rssrssgamation.
23
24 _.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
25
26 _.sqlite3thth_la
27
28 _.c"duskinstashsta_matimelin
29
30 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
31
32 _
33
34 _
35
36 _.c"
37
38 _
39
40 _.c"duskinstashsta_matimelin
41
42 _.sqlite3thth_lang$ite3thth_l
43
44 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
45 _.c"duskinstashsta_matimelin
46
47 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.hdiffup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
48 _.c"rssrssgamation.
49
50 _.c"duskinstas$O $(OX)\import$$(OX_.c"duskinstashs
51
52 _.c"duskinstashsta_matime$(OX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
53
54 _.sqlite3thth_la
55
56 _.c"duskinstashsta_matimelin
57
58 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
59
60 _
61
62 _
63
64 _.c"
65
66 _
67
68 _.c"duskinstashsta_matimelin
69
70 _.sqlite3thth_lang$ite3thth_l
71
72 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
73 _.c"duskinstashsta_matimelin
74
75 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
76
77 _
78
79 _
80
81 _.c"
82
83 _.c"duskinstashsta_matimelin
84
85 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
86
87 _
88
89 _
90
91 _.c"rssrssgamation.h :
92
93 _
94
95 _
96
97 _.c"
98
99 _.c"duskinstashsta_matimelin
100
101 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
102
103 _
104
105 _
106
107 _.c"
108
109 _Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
110 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
111 #ZINCDIR = C:\zlib125-dll\include
112 #ZLIBDIR = C:\zlib125-dll\lib
113 #ZLIB = zdll.lib
114 ZINCDIR = $(MSCDIR)\extra\include
115 ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
116
117 _.sqlite3thth_l
118
119 _.c"duskidiff_.c:json_diffjimc glob_.c graph_.c gzip_.c http_.c -DNO_TIMEVAL -DNO_DIRENTimport_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._h /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
120 _.c"rssrssgamation.
121
122 _.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
123
124 _.sqlite3thth_la
125
126 _.c"duskinstashsta_matimelin
127
128 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
129
130 _
131
132 _
133
134 _.c"
135
136 _
137
138 _.c"duskinstashsta_matimelin
139
140 _.sqlite3thth_lang$ite3thth_l
141
142 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bis
143
144 _.c"duskinstashsta_matimelin
145
146 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
147
148 _
149
150 _
151
152 _.c"
153
154 _.c"duskinstashsta_matimelin
155
156 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
157
158 _
159
160 _
161
162 _.c"rssrssgamation.h :
163
164 _
165
166 _
167
168 _.c"
169
170 _.c"duskinstashsta_matimelin
171
172 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
173
174 _
175
176 _
177
178 _.c"
179
180 _Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
181 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
182 #ZINCDIR = C:\zlib125-dll\include
183 #ZLIBDIR = C:\zlib125-dll\lib
184 #ZLIB = zdll.lib
185 ZINCDIR = $(MSCDIR)\extra\include
186 ZLI
187 _.sq/DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
188 _.c"rssrssgamation.
189
190 _.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
191
192 _.sqlite3thth_la
193
194 _.c"duskinstashsta_matimelin
195
196 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
197
198 _
199
200 _
201
202 _.c"
203
204 _
205
206 _.c"duskinstashsta_matimelin
207
208 _.sqlite3thth_lang$ite3thth_l
209
210 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
211 _.c"duskinstashsta_matimelin
212
213 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.hdiffup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
214 _.c"rssrssgamation.
215
216 _.c"duskinstas$O $(OX)\import$$(OX_.c"duskinstashs
217
218 _.c"duskinstashsta_matime$(OX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
219
220 _.sqlite3thth_la
221
222 _.c"duskinstashsta_matimelin
223
224 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
225
226 _
227
228 _
229
230 _.c"
231
232 _
233
234 _.c"duskinstashsta_matimelin
235
236 _.sqlite3thth_lang$ite3thth_l
237
238 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
239 _.c"duskinstashsta_matimelin
240
241 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
242
243 _
244
245 _
246
247 _.c"
248
249 _.c"duskinstashsta_matimelin
250
251 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
252
253 _
254
255 _
256
257 _.c"rssrssgamation.h :
258
259 _
260
261 _
262
263 _.c"
264
265 _.c"duskinstashsta_matimelin
266
267 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
268
269 _
270
271 _
272
273 _.c"
274
275 _Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
276 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
277 #ZINCDIR = C:\zlib125-dll\include
278 #ZLIBDIR = C:\zlib125-dll\lib
279 #ZLIB = zdll.lib
280 ZINCDIR = $(MSCDIR)\extra\include
281 ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
282
283 _.sqlite3thth_l
284
285 _.c"duskidiff_.c:json_diffjim $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
286
287 _
288
289 _
290
291 _.c"
292
293 _
294
295 _.c"duskinstashsta_matimelin
296
297 _.sqlite3thth_lang$ite3thth_l
298
299 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_$O >ormat_.c configure_.c $Oled from http://zliattach$Oled from http://zlibag$Oled from http://zlibisect$Oled from http://zliblob$Oled from http://zlibranch$Oled from http://zlibrowse$Oled from http://zlicaptcha$Oled from http://zlicgi$Oled from http://zlicheckin$Oled from http://zlicheckout$Oled from http://zliclearsign$Oled from http://zliclone$Oled from http://zlicomformat$Oled from http://zliconfigure$Oled from http://zlicontent$Oled from http://zlidb$Oled from http://zlidelta$Oled from http://zlideltacmd$Oled from http://zlidescendants$Oled from http://zlidiff$Oled from http://zlidiffcmd$Oled from http://zlidoc$Oled from http://zliencode$Oled from http://zlievent$Oled from http://zliexport$Oled from http://zlifile$Oled from http://zlifinfo$Oled from http://zliglob$Oled from http://zligraph$Oled from http://zligzip$Oled from http://zlihttp$Oled from http://zlihttp_socket$Oled from http://zlihttp_ssl$Oled from http://zlihttp_transport$Oled from http://zliimport$Oled from http://zliinfo$Oled from http://zlijimtcl$Oled from http://zlijson$Oled from http://zlijson_artifact$Oled from http://zlijson_branch$Oled from http://zlijson_diff$Oled from http://zlijson_login$Oled from http://zlijson_query$Oled from http://zlijson_report$Oled from http://zlijson_tag$Oled from http://zlijson_timeline$Oled from http://zlijson_user$Oled from http://zlijson_wiki$Oled from http://zlileaf$Oled from http://zlilogin$Oled from http://zlimain$Oled from http://zlimanifest$Oled from http://zlimd5$Oled from http://zlimerge$Oled from http://zlimerge3$Oled from http://zliname$Oled from http://zlipath$Oled from http://zlipivot$Oled from http://zlipopen$Oled from http://zlipqueue$Oled from http://zliprintf$Oled from http://zlirebuild$Oled from http://zlireport$Oled from http://zlirss$Ochema$Oearch$Oetup$Oha1$Ohell$Ohun$Okins$O$Oite3$Otash$Otat$Otyle$Oync$Oled from http://zlitag$Oled from http://zlitar$Oled from http://zlith_main$Oled from http://zlitimeline$Oled from http://zlitkt$Oled from http://zlitktsetup$Oled from http://zliundo$Oled from http://zliupdate$Oled from http://zliurl$Oled from http://zliuser$Oled from http://zliverify$Oled from http://zlivfile$Oled from http://zlib.ne$Oled from http://zlib.neformat$Oled from http://zlib.nhttp$Oled from http://zlixfer$Oled from http://zlizip$Ogamation.h :
300
301 _
302
303 _
304
305 _.c"
306
307 _.c"duskinstashsta_matimelin
308
309 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
310
311 _
312
313 _
314
315 _.c"rssrssgamation.h :
316
317 _
318
319 _
320
321 _.c"
322
323 _.c"duskinstashsta_matimelin
324
325 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
326
327 _
328
329 _
330
331 _.c"
332
333 _Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
334 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
335 #ZIN
336
337 _.c"duskinstashsta_matimelin
338
339 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
340
341 _
342
343 _
344
345 _.c"
346
347 _.c"duskinstashsta_matimelin
348
349 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
350
351 _
352
353 _
354
355 _.c"rssrssgamation.h :
356
357 _
358
359 _
360
361 _.c"
362
363 _.c"duskinstashsta_matimelin
364
365 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
366
367 _
368
369 _
370
371 _.c"
372
373 _Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
374 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
375 #ZINCDIR = C:\zlib125-dll\include
376 #ZLIBDIR = C:\zlib125-dll\lib
377 #ZLIB = zdll.lib
378 ZINCDIR = $(MSCDIR)\extra\include
379 ZLIBDIR = $(MSCDIR)\extra\MSCDIR)\extraMSCDIR)\extra\libhsta_matimelin
380
381 _.sqlite3thth_l
382
383 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merg4_OPTIONS = /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
384 _.c"rssrssgamation.
385
386 _.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
387
388 _.sqlite3thth_la
389
390 _.c"duskinstashsta_matimelin
391
392 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
393
394 _
395
396 _
397
398 _.c"
399
400 _
401
402 _.c"duskinstashsta_matimelin
403
404 _.sqlite3thth_lang$ite3thth_l
405
406 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
407 _.c"duskinstashsta_matimelin
408
409 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.hdiffup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
410 _.c"rssrssgamation.
411
412 _.c"duskinstas$O $(OX)\import$$(OX_.c"duskinstashs
413
414 _.c"duskinstashsta_matime$(OX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
415
416 _.sqlite3thth_la
417
418 _.c"duskinstashsta_matimelin
419
420 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
421
422 _
423
424 _
425
426 _.c"
427
428 _
429
430 _.c"duskinstashsta_matimelin
431
432 _.sqlite3thth_lang$ite3thth_l
433
434 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
435 _.c"duskinstashsta_matimelin
436
437 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
438
439 _
440
441 _
442
443 _.c"
444
445 _.c"duskinstashsta_matimelin
446
447 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
448
449 _
450
451 _
452
453 _.c"rssrssgamation.h :
454
455 _
456
457 _
458
459 _.c"
460
461 _.c"duskinstashsta_matimelin
462
463 _.sqlite3thth_lang$OdbdeltadeltaBJDIR)\cson_amalgamation.h :
464
465 _
466
467 _
468
469 _.c"
470
471 _Maybe MSCDIR, SSL, ZLIB, or INCL needs adjustment
472 MSCDIR = c:\msc# When using precompiled from http://zlib.net/zlib125-dll.zip
473 #ZINCDIR = C:\zlib125-dll\include
474 #ZLIBDIR = C:\zlib125-dll\lib
475 #ZLIB MSCDIR)\extracket_.c http_ssl_. i.c jsonTIMEVAL_H -DDIRENT_H json_finfo_.c json_login_.c json_qnfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merg4_OPTIONMSCDIR)\extra\libmerg4_OPTIONS = /DSQLITE4.c pqu_OPTIONS = /DSQLITE.c pqueue_.c printf_.c rebuild__THREADSAFE=0 /DSQLITEhema4_.c stat_.c style_.c syn4. timeline_.c tkt_.c tktstup_.c undo_.c update_.c url_.c user_.c verify_.c vfile_.c wiki_.c wikiwinhttp_.c wysiwyg_.c x$(OX)\attach$Oblob$O $(OX)\branch$O $(OX)\browse$O $(OX)\captcha$O $(OX)\cgi$O $(OX)\checkin$O $(OX)\checkout$O$(OX)\clone$O $(OX)\comformat$O$(OX)\content$O $(OX)\db$O $(O$(OX)\diff$O $(OX)\diffcmd$O $(OX)\doc$O $(OX)\encode$O $(OX)\event$O $(OX)\export$O $(OX)\file$O $(OX)\finfo$O $(OX)\glob$O $(OX)\graph$O
476 _.c"rssrssgamation.
477
478 _.c"duskinstas$O $(OX)\import$$(OX_diffX)\json$O $(OX)\json_tag$O$O $(OX)\json_user$O
479
480 _.sqlite3thth_la
481
482 _.c"duskinstashsta_matimelin
483
484 _.sqlite3thth_la\merge3$O $(OX)\name$O $(OX)\path$O $(OX)\pivot$O $(OX)\popen$O$(OX)\prin$(OX)\rss$O $(OX)\schema$O $(OX)\search$O $(OX)\setup$O $(OX)\sha1$O $(OX)\shun$O $(OX)\skins$O $(OX)\sqlcmd3O $(OX)\style$O $(OX)\sync$O $(OX)\tag$O $(OX)\tar$O $(OX)\th_main$O :
485
486 _
487
488 _
489
490 _.c"
491
492 _
493
494 _.c"duskinstashsta_matimelin
495
496 _.sqlite3thth_lang$ite3thth_l
497
498 _.c"duskinstashsta_allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_. import_.c info_.c json_.cbranch_.cdiff_.c json_dir_.c -DUNICODE -D_UNICODE json_finfo_.c json_login_.c json_qunicows.libinfo_.c json_login_.c json_query_.c json_report_.c json_tag_._html_.c md5_.c merge_.c merge3_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c r3
499 _.c"duskinstashsta_matimelin
500
501 _.sqlite3tson$O
502 #ZLIB = zdll.lib
503 ZI = $(MSCDIR)\extra\M
504 _.sqlite3thth_lan

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button