From 6222fff3a9641b466e709d3a8a8da856e2f720ae Mon Sep 17 00:00:00 2001 From: drh <> Date: Tue, 6 Oct 2026 14:34:02 +0000 Subject: [PATCH] In the CLI, further improvements to delayed temp-file deletion so that the test/output-redirect-test.txt script works even better. FossilOrigin-Name: adacd1423f159fa4698f7e40dd1488256a13dff0b31cc90e28c3441109596ef4 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/shell.c.in | 12 ++++++++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 4ede7fcd20..f18fd3e651 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sto\sthe\stime-delay\stemporary-file\sdeletion\slogic\sin\sthe\sCLI,\nadded\sby\s[4e9ee211ca661fe8]\sbut\snever\sfully\sdebugged.\s\sNow\sworking\nwith\sthe\stest/output-redir-test.txt\stest\sscript. -D 2026-10-06T11:49:24.684 +C In\sthe\sCLI,\sfurther\simprovements\sto\sdelayed\stemp-file\sdeletion\sso\sthat\nthe\stest/output-redirect-test.txt\sscript\sworks\seven\sbetter. +D 2026-10-06T14:34:02.987 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -802,7 +802,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c F src/resolve.c 0e0990f60c93db38c735d85e5d1741130e72dd0670aec204b5a39118b53c8044 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 F src/select.c 088184992ed43f1bf3cb520fcb16783c449dfa0a15bcde8d0bc98c40afb66f59 -F src/shell.c.in 7ece17f8f4c6e126bdd1e4802b2e656e11c636b966875564ff1330f9a0db5472 +F src/shell.c.in 4007bb5e67d79045137db895275902785e88d77bca2b06d8b7d94e518e84a410 F src/sqlite.h.in 884996e07cfb7681efc76661b79d56a93f9edaea7f6fc4a3c82636dc84783486 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 F src/sqlite3ext.h 5e113c4c0442f2f1b3345d44cbe4b82fad45f2fc0c35f0ed4eef27fb8f1cb394 @@ -2280,8 +2280,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 97014dfa8283019275e97f3245111b63cf9c3e2f2e9544e8790885ed0eac3c27 -R 94e977303445ffdf179c47ce85642404 +P 9dd1e3a1c739045c08db36c0d6ea921472535dfab583bf689310491e64f4fa4b +R f913f7626e3d02c72c08a08b16733eed U drh -Z d942466c804ec5d938ae767be46a0df9 +Z 08af29dc49e706669a4b6d3a6fea9494 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index ca687d64c7..cfcf4c976d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9dd1e3a1c739045c08db36c0d6ea921472535dfab583bf689310491e64f4fa4b +adacd1423f159fa4698f7e40dd1488256a13dff0b31cc90e28c3441109596ef4 diff --git a/src/shell.c.in b/src/shell.c.in index f1138445bf..1476a4a42a 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -6039,7 +6039,11 @@ static void output_reset(ShellState *p){ "xdg-open"; #endif char *zCmd; +#ifdef __linux__ + zCmd = sqlite3_mprintf("%s %s 2>/dev/null", zXdgOpenCmd, p->zTempFile); +#else zCmd = sqlite3_mprintf("%s %s", zXdgOpenCmd, p->zTempFile); +#endif if( system(zCmd) ){ cli_printf(stderr,"Failed: [%s]\n", zCmd); }else{ @@ -6543,7 +6547,11 @@ static void clearTempFile(ShellState *p, int nDelay, int bForce){ int doDelete = tmToGo<=0; if( !doDelete && alwaysFree ){ int tmSleep = nDelay; - if( tmSleep > tmToGo ) tmSleep = (int)(tmToGo/1000); + if( tmSleep > tmToGo/1000 ) tmSleep = (int)(tmToGo/1000); + if( tmSleep>=1000 ){ + cli_printf(p->out,"Waiting about %d.%d seconds to delete temp" + " file(s)\n", tmSleep/1000, (tmSleep/100)%10); + } sqlite3_sleep(tmSleep); nDelay -= tmSleep; doDelete = 1; @@ -14735,7 +14743,7 @@ int SQLITE_CDECL main(int argc, char **argv){ find_home_dir(1); output_reset(&data); data.doXdgOpen = 0; - clearTempFile(&data,2500,1); + clearTempFile(&data,10000,1); globalShellState = 0; while( data.nModeStack ) modePop(&data); free(data.aModeStack);