-C Fix\san\sfts5\sproblem\swhere\sa\stransaction\sconsisting\sof\s(a)\sa\sDELETE\son\srowid\sX,\s(b)\sa\sprefix\squery,\sand\s(c)\san\sINSERT\son\srowid\sX,\scould\scorrupt\sthe\sindex.
-D 2023-11-06T19:01:25.066
+C Update\sthe\ssrctree-check.tcl\sscript\sand\schild\sscript\sso\sthat\sthey\scan\sbe\srun\non\sa\sread-only\ssource\stree\sand\sso\sthat\sif\sany\sinconsistencies\sare\sfound,\sthe\nscript\sreturns\sa\snon-zero\sexit\scode\sand\sthus\shalts\sthe\sbuild.
+D 2023-11-06T19:08:46.831
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F tool/merge-test.tcl de76b62f2de2a92d4c1ca4f976bce0aea6899e0229e250479b229b2a1914b176
F tool/mkautoconfamal.sh cbdcf993fa83dccbef7fb77b39cdeb31ef9f77d9d88c9e343b58d35ca3898a6a
F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x
-F tool/mkctimec.tcl 372452e24267dfe1b496eec3992d10c6e5e7d7870a152560cdcfe5404bc8cc04 x
+F tool/mkctimec.tcl a16682eae5f01f85e5861b2aa215ca0d46b4230658ee25977e02b4508566fb75 x
F tool/mkkeywordhash.c b9faa0ae7e14e4dbbcd951cddd786bf46b8a65bb07b129ba8c0cfade723aaffd
F tool/mkmsvcmin.tcl 8897d515ef7f94772322db95a3b6fce6c614d84fe0bdd06ba5a1c786351d5a1d
F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
F tool/mkopcodeh.tcl 769d9e6a8b462323150dc13a8539d6064664b72974f7894befe2491cc73e05cd
F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
-F tool/mkpragmatab.tcl bd07bd59d45d0f3448e123d6937e9811195f9908a51e09d774609883055bfd3d
+F tool/mkpragmatab.tcl 32e359ccb21011958a821955254bd7a5fa7915d01a8c16fed91ffc8b40cb4adf
F tool/mkshellc.tcl b7adf08b82de60811d2cb6af05ff59fc17e5cd6f3e98743c14eaaa3f8971fed0
F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/sqltclsh.tcl 862f4cf1418df5e1315b5db3b5ebe88969e2a784525af5fbf9596592f14ed848
F tool/src-verify.c 41c586dee84d0b190ad13e0282ed83d4a65ec9fefde9adf4943efdf6558eea7f
F tool/srcck1.c 371de5363b70154012955544f86fdee8f6e5326f
-F tool/srctree-check.tcl cef630bc4ff21a460d72479c43a42bf1c1ed61897659305c35c8d72e91bcb176
+F tool/srctree-check.tcl 9f1098d439159692ece45cc9e701b35df4956269399fe0c770e41f235d1ce5e6
F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37
F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 34f23c3d0d080fef82e3515ecb74257f68878c74fb0bdceac176a004aa1a84e9
-Q +c2058a045b57571b2b5d342adb212fe606717c633a0422755691ae6bf5725d25
-R 076f635f2ce923c956d7afe0c8e318bb
+P 34af510a5615339f2963875eab94d4b07725e766c20819f82add19faa229d552
+Q +58eb5440d75fb13c1a089cb935de6fb94b4322e10e349db8f11f37b9a2fda2fc
+Q +cba9f0601ca995ac6952aa3a83f7264f6d25aaaa2ea36b19e90cbf591077de72
+R 07f5bfdcff7ecaae49d8d3d2bfc1f266
U drh
-Z 51ac790dc9094eab5a57469e82ae7453
+Z 58004ee5792314b55778e61ab0e49ddd
# Remove this line to create a well-formed Fossil manifest.
-34af510a5615339f2963875eab94d4b07725e766c20819f82add19faa229d552
\ No newline at end of file
+a0cc7e8117abf03c8d0ab903f1f4b8ff48b6c0e6de85080c9d2a915fd1c16778
\ No newline at end of file
# definition used in src/ctime.c, run this script from
# the checkout root. It generates src/ctime.c .
#
+# Results are normally written into src/ctime.c. But if an argument is
+# provided, results are written there instead. Examples:
+#
+# tclsh tool/mkctimec.tcl ;# <-- results to src/ctime.c
+#
+# tclsh tool/mkctimec.tcl /dev/tty ;# <-- results to the terminal
+#
set ::headWarning {/* DO NOT EDIT!
}]
}
-set ctime_c "src/ctime.c"
+if {$argc>0} {
+ set destfile [lindex $argv 0]
+} else {
+ set destfile "[file dir [file dir [file normal $argv0]]]/src/ctime.c"
+ puts "Overwriting $destfile..."
+}
-if {[catch {set cfd [open $ctime_c w]}]!=0} {
- puts stderr "File '$ctime_c' unwritable."
+if {[catch {set cfd [open $destfile w]}]!=0} {
+ puts stderr "File '$destfile' unwritable."
exit 1;
}
# Then add the extra "case PragTyp_XXXXX:" and subsequent code for the
# new pragma in ../src/pragma.c.
#
+# The results are normally written into the ../src/pragma.h file. However,
+# if an alternative output file name is provided as an argument, then
+# results are written into the alternative. For example:
+#
+# tclsh tool/mkpragmatab.tcl ;# <--- Results to src/pragma.h
+#
+# tclsh tool/mkpragmatab.tcl /dev/tty ;# <-- results to terminal
+#
# Flag meanings:
set flagMeaning(NeedSchema) {Force schema load before running}
# Open the output file
#
-set destfile "[file dir [file dir [file normal $argv0]]]/src/pragma.h"
-puts "Overwriting $destfile with new pragma table..."
+if {$argc>0} {
+ set destfile [lindex $argv 0]
+} else {
+ set destfile "[file dir [file dir [file normal $argv0]]]/src/pragma.h"
+ puts "Overwriting $destfile with new pragma table..."
+}
set fd [open $destfile wb]
puts $fd {/* DO NOT EDIT!
** This file is automatically generated by the script at
# Find the root of the tree.
#
set ROOT [file dir [file dir [file normalize $argv0]]]
-cd $ROOT
# Name of the TCL interpreter
#
set TCLSH [info nameofexe]
+# Number of errors seen.
+#
+set NERR 0
+
######################### autoconf/tea/configure.ac ###########################
set confac [readfile $ROOT/autoconf/tea/configure.ac]
append pattern {])}
if {[string first $pattern $confac]<=0} {
puts "ERROR: ./autoconf/tea/configure.ac does not agree with ./VERSION"
- exit 1
+ puts "...... Fix: manually edit ./autoconf/tea/configure.ac to"
+ incr NERR
}
######################### autoconf/Makefile.msc ###############################
set f1 [readfile $ROOT/autoconf/Makefile.msc]
-exec mv $ROOT/autoconf/Makefile.msc $ROOT/autoconf/Makefile.msc.tmp
-exec $TCLSH $ROOT/tool/mkmsvcmin.tcl
-set f2 [readfile $ROOT/autoconf/Makefile.msc]
-exec mv $ROOT/autoconf/Makefile.msc.tmp $ROOT/autoconf/Makefile.msc
+exec $TCLSH $ROOT/tool/mkmsvcmin.tcl $ROOT/Makefile.msc tmp1.txt
+set f2 [readfile tmp1.txt]
+file delete tmp1.txt
if {$f1 != $f2} {
puts "ERROR: ./autoconf/Makefile.msc does not agree with ./Makefile.msc"
+ puts "...... Fix: tclsh tool/mkmsvcmin.tcl"
+ incr NERR
}
######################### src/pragma.h ########################################
set f1 [readfile $ROOT/src/pragma.h]
-exec mv $ROOT/src/pragma.h $ROOT/src/pragma.h.tmp
-exec $TCLSH $ROOT/tool/mkpragmatab.tcl
-set f2 [readfile $ROOT/src/pragma.h]
-exec mv $ROOT/src/pragma.h.tmp $ROOT/src/pragma.h
+exec $TCLSH $ROOT/tool/mkpragmatab.tcl tmp2.txt
+set f2 [readfile tmp2.txt]
+file delete tmp2.txt
if {$f1 != $f2} {
puts "ERROR: ./src/pragma.h does not agree with ./tool/mkpragmatab.tcl"
+ puts "...... Fix: tclsh tool/mkpragmatab.tcl"
+ incr NERR
}
######################### src/ctime.c ########################################
set f1 [readfile $ROOT/src/ctime.c]
-exec mv $ROOT/src/ctime.c $ROOT/src/ctime.c.tmp
-exec $TCLSH $ROOT/tool/mkctimec.tcl
-set f2 [readfile $ROOT/src/ctime.c]
-exec mv $ROOT/src/ctime.c.tmp $ROOT/src/ctime.c
+exec $TCLSH $ROOT/tool/mkctimec.tcl tmp3.txt
+set f2 [readfile tmp3.txt]
+file delete tmp3.txt
if {$f1 != $f2} {
puts "ERROR: ./src/ctime.c does not agree with ./tool/mkctimec.tcl"
+ puts "..... Fix: tclsh tool/mkctimec.tcl"
+ incr NERR
}
+
+# If any errors are seen, exit 1 so that the build will fail.
+#
+if {$NERR>0} {exit 1}