Fossil SCM
Replace the TH1 interpreter with Jim Tcl.
Commit
863e789e83b45edd95cb7049db2f81d82254879b
Parent
796dcfe0728bb2b…
23 files changed
+1
-4
+1
-1
+59
-8
+1
-3
+3
-2
+122
-107
+1
-8
+8
-9
+859
+3
-2
+2
-6
+4
-33
-269
-2
+73
-16
+2
-5
+1
-11
+1
-1
+1
-1
+1
-1
+501
-1
~
auto.def
~
autosetup/README.autosetup
~
autosetup/autosetup
~
autosetup/cc-shared.tcl
~
autosetup/cc.tcl
~
autosetup/find-tclsh
~
autosetup/jimsh0.c
~
autosetup/system.tcl
~
autosetup/test-tclsh
+
src/jim.h
~
src/main.c
~
src/main.mk
~
src/makemake.tcl
-
src/th.c
-
src/th.h
-
src/th_lang.c
~
src/th_main.c
~
src/th_tcl.c
~
src/tkt.c
~
win/Makefile.PellesCGMake
~
win/Makefile.dmc
~
win/Makefile.mingw
~
win/Makefile.msc
M
auto.def
+1
-4
| --- a/auto.def | ||
| +++ b/auto.def | ||
| @@ -28,7 +28,4 @@ | ||
| 28 | 28 | if {$tclpath ne "1"} { |
| 29 | 29 | I$tclpath/include |
| 30 | 30 | 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 | } |
+1
-1
| --- 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 |
+59
-8
| --- a/autosetup/autosetup | ||
| +++ b/autosetup/autosetup | ||
| @@ -5,11 +5,62 @@ | ||
| 5 | 5 | return $alias |
| 6 | 6 | }[error-location $msg]use cc cc-shareduplevel #0#!/bin/sh |
| 7 | 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 | |
| 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; |
+1
-3
| --- a/autosetup/cc-shared.tcl | ||
| +++ b/autosetup/cc-shared.tcl | ||
| @@ -30,6 +30,4 @@ | ||
| 30 | 30 | # Generic Unix settingsstems http://www.workwa# Copyrigference for identifying the toolchain |
| 31 | 31 | # http://sourceforge.net/apps/mediawiki/predef/ define SHOBJ_LDFLAGS_R -bobject |
| 32 | 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 | -} | |
| 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
+3
-2
| --- a/autosetup/find-tclsh | ||
| +++ b/autosetup/find-tclsh | ||
| @@ -1,9 +1,10 @@ | ||
| 1 | 1 | #!/bin/sh |
| 2 | 2 | # Looks for a suitable tclsh or jimsh in the PATH |
| 3 | 3 | # 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" | |
| 5 | 6 | for cc in tclsh8.7; do |
| 6 | - jimsh0-tclsh}"; } 2>/devexit 0 | |
| 7 | + { $tclsh " >/dev "$d/${1-autosetup--tclsh}"; } 2>/devexit 0 | |
| 7 | 8 | done |
| 8 | 9 | echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0" |
| 9 | 10 | 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 @@ | ||
| 18 | 18 | #define HAVE_UMASK |
| 19 | 19 | #include elseSEPARATOR ":" |
| 20 | 20 | #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 | |
| 22 | 24 | #define HAVE_LINK |
| 23 | 25 | #define HAVE_SYS_TIME_H |
| 24 | 26 | #define HAVE_DITFORM "unix" |
| 25 | 27 | #define TCL_PLATFndif |
| 26 | 28 | #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/ */ | |
| 42 | 30 | #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 | |
| 47 | 36 | #define jim_eclockxec |
| 48 | 37 | #define jim_ee TCL_PLATFORM_OS "windows" |
| 49 | 38 | #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 | |
| 58 | 67 | |
| 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 | 68 | |
| 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 | |
| 79 | 70 | |
| 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 | 71 | |
| 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) | |
| 108 | 73 | |
| 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); | |
| 117 | 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 | 118 | #endif |
| 119 | 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 | |
| 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 |
+1
-8
| --- a/autosetup/system.tcl | ||
| +++ b/autosetup/system.tcl | ||
| @@ -70,11 +70,4 @@ | ||
| 70 | 70 | program-transform-name: |
| 71 | 71 | } |
| 72 | 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 | |
| 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 |
+8
-9
| --- a/autosetup/test-tclsh | ||
| +++ b/autosetup/test-tclsh | ||
| @@ -5,17 +5,16 @@ | ||
| 5 | 5 | |
| 6 | 6 | if {[catch {info version} version] == 0} { |
| 7 | 7 | # 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]]} { | |
| 11 | 16 | puts [info nameofexecutable] |
| 12 | 17 | exit 0 |
| 13 | 18 | } |
| 14 | 19 | } |
| 15 | 20 | 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 @@ | ||
| 7 | 7 | ** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak; |
| 8 | 8 | } |
| 9 | 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 | |
| 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 | |
| 11 | 12 | ** argument.und is orkaround is orkaround is else if( fossil_strcmp(z,zbreak; |
| 12 | 13 | } |
| 13 | 14 | }setuid(sStat.st_uid);g.zPath && (0==str)) ){ |
| @@ -32,4 +33,4 @@ | ||
| 32 | 33 | ** |
| 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 |
| 34 | 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 |
| 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 | |
| 2 | 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 | 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 | 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 | |
| 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 @@ | ||
| 70 | 70 | <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz dropDUNICODE -D_UNICODE (statically linked) |
| 71 | 71 | TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing |
| 72 | 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) | |
| 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 | 74 | TTCL=1=1lunicows-DUNICODE -D_UNICODEunicows.lib Fix buggy MinGW command line parsing |
| 75 | 75 | ifdef MINGW_BROKEN_MAINARGS |
| 76 | 76 | TCC += -DMINGW_BROKEN_MAINARGS$(MSDUNICODE -D_UNICODELIB += -municode86 -DUNICODE -D_UNICODE444. |
| @@ -79,7 +79,8 @@ | ||
| 79 | 79 | # set to 1. miniz librimeGETS += zlibENABLE_LOCKING_STYLE=0 |
| 80 | 80 | RCDIR)/miniz.c |
| 81 | 81 | $(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 | |
| 83 | 84 | }jimjimjimjim.h=1y in which the zl is installed. |
| 84 | 85 | # |
| 85 | 86 | # |
| @@ -119,33 +120,6 @@ | ||
| 119 | 120 | #" |
| 120 | 121 | set SQLITE3sqlite333_shell}otherwise, it should n inclusqlite3\\$(SQLIT(SQL33.h" |
| 121 | 122 | 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 | 123 | set opt $SQLITEsqlite3sqlite333_she3\\$(SQLITE_CFLAin#lappend SHELLFLAGSsqlite3ggOpenSSLRCC += -I$(#lappend SHELLzlibsqlite3qlite3.c-ZINCDIR)SSSSLJSON =ggRCDIR)\sqlite3.c |
| 150 | 124 | $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \ |
| 151 | 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 @@ | ||
| 155 | 129 | $(OXIR)/sqlite3\\$(SQLITE_CF,ggRCDIR)/sqlite3\\$(SMINIZen1k1k1kjjjNO_ARCHIVE_APIS \ |
| 156 | 130 | <<<MI miggRCDIR)/sqlite3\\$(SQLITE_CFLACLsqlite3ggOpenSSLRCC += -I$(ZINCDIR)LIB += -lzrc}zlibLIBTARGiniz (libz drop-in alternative) precomp64A no-asm!else64 included in the |
| 157 | 131 | # 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 @@ | ||
| 13 | 13 | S@5z~,E:"command_hook"K@6LC,9:ERROR ){ |
| 14 | 14 | P@60A,y@60c,3P:/* |
| 15 | 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; | |
| 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(); | |
| 19 | 43 | |
| 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"); | |
| 25 | 65 | } |
| 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:} | |
| 31 | 74 | } |
| 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 @@ | ||
| 8 | 8 | /* |
| 9 | 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 | 10 | 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)); | |
| 12 | 12 | } |
| 13 | 13 | TH1 },TH1 11 4)rgc-1; /1 th1th1th1TH1TH1Th1th1Eval", Th1Evalth1Expr", Th1th_TH1/* Usecontext? */pContext, NULL); |
| 14 | 14 | } |
| @@ -21,7 +21,4 @@ | ||
| 21 | 21 | objv = 0; |
| 22 | 22 | |
| 23 | 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 * | |
| 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 @@ | ||
| 30 | 30 | const char * ); |
| 31 | 31 | const char **azField = 0; /* Nam char **azField = 0; /* Names oName char **azFiees of database fields5 } |
| 32 | 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 | |
| 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 |
+1
-1
| --- 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/ |
+1
-1
| --- a/win/Makefile.dmc | ||
| +++ b/win/Makefile.dmc | ||
| @@ -487,4 +487,4 @@ | ||
| 487 | 487 | ** |
| 488 | 488 | |
| 489 | 489 | 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; |
+1
-1
| --- a/win/Makefile.mingw | ||
| +++ b/win/Makefile.mingw | ||
| @@ -40,4 +40,4 @@ | ||
| 40 | 40 | $(XTCC) -D#LIB = -lz -lws2_32 |
| 41 | 41 | # OpenSSL:@29l,3b@5WH,5:browsN@ |
| 42 | 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 | |
| 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 | |
| 2 | 502 | #ZLIB = zdll.lib |
| 3 | 503 | ZI = $(MSCDIR)\extra\M |
| 4 | 504 | _.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 |