-C Less\serror-prone\sparsing\sof\s".once"\soptions.\s\sFix\sfor\sthe\sproblem\sreported\nby\s[forum:/info/2026-04-17T01:26:56Z|forum\spost\s2026-04-17T01:26:56Z].
-D 2026-04-17T01:50:40.615
+C Help-text\sand\scomment\sfixes\sin\sthe\sCLI.\s\sAdd\sthe\soutput-redir-test.txt\ntesting\sscript.
+D 2026-04-17T11:41:33.625
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/resolve.c 928ff887f2a7c64275182060d94d06fdddbe32226c569781cf7e7edc6f58d7fd
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c ffe199f025a0dd74670d2a77232bdea364a4d7b36f32c64a6572d39ba6a11576
-F src/shell.c.in 88bb0ac5dd5787a38165754a2f82082d8d31467ef561d35377294a92415ca211
+F src/shell.c.in b399c9a95de754595345bdd98e631c3ba55162c446d70b44398223c25dc4065a
F src/sqlite.h.in 39d2e09114d2bdb7afd998f4a469c8f8cd065f8093835a7d0422f260fc78fb4f
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e
F test/oserror.test ee3fad06ec8671c4d047c2c92a567fc2e0e8161caaec7edd6d48325c5ac97f30
F test/ossfuzz.c b5d232d9717fc999a121c82c4880ae5b9d7fb3ae55d2d87a8da906bc80020906
F test/ossshell.c f125c5bd16e537a2549aa579b328dd1c59905e7ab1338dfc210e755bb7b69f17
+F test/output-redirect-test.txt aeebac99f766f1e54bb2628b13c2d89a3d77de942138a01210c8a814b54c2bc8
F test/ovfl.test 199c482696defceacee8c8e0e0ef36da62726b2f
F test/pager1.test b083c2d5d89df8e979658d9320bfc0b9d50b4ef8ae1d9e115a692ff0b9768393
F test/pager2.test c0ede15952b607f9a38f653acdfa73c19e657958e9104aab1a71950ea7b71831
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P a4bf9289c9cdb12b22bfb24e7e2b0243384e9edece12ae3fed14afbfe9b93260
-R 0f63c4268db1999bde9ac472d751de9a
+P b235a8093734f457c2731af017c99027510d04e5cd1060f5559afbec5409a472
+R d84b09a56d9bc4c33abb3c6cf40ee177
U drh
-Z b2d06a4c32b45078b0f11c43a3f1e77d
+Z 795ba898df4e3b3f60a212f6e3214fb0
# Remove this line to create a well-formed Fossil manifest.
-b235a8093734f457c2731af017c99027510d04e5cd1060f5559afbec5409a472
+ec58a133b4716d4f5a53c38853f8ecdb7a1275b931663ce07c8dc700d845e62e
" -a|--all Also show system-generated indexes",
" --expr Show only expression indexes",
" --sys Show only system-generated indexes",
- ".intck ?STEPS_PER_UNLOCK? Run an incremental integrity check on the db",
+ ".intck ?STEPS? Run an incremental integrity check on the db",
#ifdef SQLITE_ENABLE_IOTRACE
",iotrace FILE Enable I/O diagnostic logging to FILE",
#endif
" --reset Reset the count for each input and interrupt",
" --timeout S Halt after running for S seconds",
#endif
- ".prompt MAIN CONTINUE Replace the standard prompts",
- " --hard-reset Unset SQLITE_PS1/2 and then --reset",
- " --reset Revert to default prompts",
- " --show Show the current prompt strings",
- " -- No more options. Subsequent args are prompts",
+ ".prompt MAIN CONTINUE Replace the standard prompts",
+ " --hard-reset Unset SQLITE_PS1/2 and then --reset",
+ " --reset Revert to default prompts",
+ " --show Show the current prompt strings",
+ " -- No more options. Subsequent args are prompts",
#ifndef SQLITE_SHELL_FIDDLE
".quit Stop interpreting input stream, exit if primary.",
".read FILE Read input from FILE or command output",
cli_printf(stderr,"Failed: [%s]\n", zCmd);
}else{
/* Give the start/open/xdg-open command some time to get
- ** going before we continue, and potential delete the
+ ** going before we continue and potentially delete the
** p->zTempFile data file out from under it */
sqlite3_sleep(2000);
}
**
** Start a new test case identified by NAME. All output
** through the next ".check" command is captured for comparison. See the
-** ".check" commandn for additional informatioon.
+** ".check" command for additional informatioon.
**
** Options:
** --error-prefix TEXT Change error message prefix text to TEXT
--- /dev/null
+# This script is used to test certain output redirection commands
+# in the CLI, specifically:
+#
+# .www
+# .once -w
+# .output -w
+# .once -e
+# .ooutput -e
+# .excel
+# .once -x
+# .output -x
+#
+# Because of system interactions it is difficult to test these
+# commands automatically. They must be tested manually, with the
+# aid of this script.
+#
+# To run the test:
+#
+# 1. Be on a console of the machine under test (not on ssh).
+# 2. Run "./sqlite3 test/output-redir-test.txt" or similar.
+# 3. Verify that all the right pop-ups appear. More information
+# on what popups to expect appears on the console output.
+#
+.print "Expect to see 8 output pop-ups:
+.print " * 3 new tabs in your web-browser"
+.print " * 2 editor windows"
+.print " * 3 spreadsheets"
+.print "There is a 2-second pause between tests. Wait until"
+.print "prompted to verify results...."
+.print ""
+.print "Running web-browser tests first..."
+.mode box
+CREATE TABLE t1(x);
+INSERT INTO t1 VALUES
+ ('Web-browser test 1 of 3'),
+ ('Test for the ".www" commmand.');
+.www
+SELECT * FROM t1;
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Web-browser test 2 of 3'),
+ ('Test for the ".once -w" commmand.');
+.once -w
+SELECT * FROM t1;
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Web-browser test 3 of 3'),
+ ('Test for the ".output -w" commmand.'),
+ ('Confirm additional text below.');
+.output -w
+SELECT * FROM t1;
+.print "This test should also appear after the table."
+.print "in the web-browser output".
+.output
+
+.print "Web-browser tests are done. Starting editor tests."
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Editor test 1 of 2'),
+ ('Test for the ".once -e" commmand.');
+.once -e
+SELECT * FROM t1;
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Editor test 2 of 2'),
+ ('Test for the ".output -e" commmand.'),
+ ('Confirm additional text below.');
+.output -e
+SELECT * FROM t1;
+.print "This test should also appear after the table."
+.print "in the pop-up editor window.".
+.output
+.print "Pop-up editor tests are done. Starting spreadsheed tests"
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Spreadsheet test 1 of 3'),
+ ('Test for the ".excel" commmand.');
+.excel
+SELECT * FROM t1;
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Spreadsheet test 2 of 3'),
+ ('Test for the ".once -x" commmand.');
+.once -x
+SELECT * FROM t1;
+
+DELETE FROM t1;
+INSERT INTO t1 VALUES
+ ('Spreadsheet test 3 of 3'),
+ ('Test for the ".output -x" commmand.'),
+ ('Confirm additional text below.');
+.output -x
+SELECT * FROM t1;
+.print "This test should also appear after the table."
+.print "in the spreadsheet output".
+.output
+
+.print "All tests are done. You may now verify the results."