From d50d824d4d5da94bc1035688e313ba0959195256 Mon Sep 17 00:00:00 2001 From: drh <> Date: Mon, 12 Oct 2026 20:09:23 +0000 Subject: [PATCH] Improvements to [313ab6c4e517e599] to address the concern raised by [bugs:/info/2026-10-12T17:03:33Z|Bug comment 2026-10-12T17:03:33Z]. FossilOrigin-Name: 51f69864e716501cae4f756a158256cefa38482bf9dcdf29f7eedf9f1af8752c --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/shell.c.in | 28 ++++++++++++++-------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/manifest b/manifest index e7f40724e5..23466d8e7d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Avoid\sleaking\spages\swhen\sremapping\sa\sdatabase\sfile\son\sunix.\sForum\spost\s[forum:3cfba36128\s|\s3cfba36128]. -D 2026-10-12T18:20:50.776 +C Improvements\sto\s[313ab6c4e517e599]\sto\saddress\sthe\sconcern\sraised\nby\s[bugs:/info/2026-10-12T17:03:33Z|Bug\scomment\s2026-10-12T17:03:33Z]. +D 2026-10-12T20:09:23.846 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 23bf5cd12a116bef8458f1277a0e6a17ac244c039d41a052cd63f3d6aef714fa -F src/shell.c.in 25658e63c27c772c8f79c6e9d9d8aab0d01f270a4a567ebd3c43efa93f0fd2fa +F src/shell.c.in ee702d9d1ec9ee363954ffbc31f5335046253610565a54ae171f9c9bc8ac25be F src/sqlite.h.in 648fdc66f52433fc0f6cf9564ac924cde544eca9605bbac36aa22d8c944f11ed F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 F src/sqlite3ext.h 5e113c4c0442f2f1b3345d44cbe4b82fad45f2fc0c35f0ed4eef27fb8f1cb394 @@ -2285,8 +2285,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 163413d8e19b97e36b2a1f6734c271b3944195a213973e2975e43f45a1e80735 -R 14af62c5c6fa84e9b5fb778b7d1785df -U dan -Z c50dc0affc2c87cf84f9973e6d795fe3 +P 90d3c595afe345808c6c0fe8042ba1e8241a88132935a9a3fd69e69e71c1059c +R 09e78795ca0c5ffd4d889fe236e969fc +U drh +Z 82b0a7666711b99a162d49a2ea3a7895 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index de6d3d2b3d..88838f3ea0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -90d3c595afe345808c6c0fe8042ba1e8241a88132935a9a3fd69e69e71c1059c +51f69864e716501cae4f756a158256cefa38482bf9dcdf29f7eedf9f1af8752c diff --git a/src/shell.c.in b/src/shell.c.in index b00236f808..02b4b5bb9b 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -13584,19 +13584,19 @@ static char *one_input_line( ** except that if the final semicolon is followed by whitespace, it ** still returns true. */ -static int line_is_complete(char *zSql){ - char *zSemi; - char c; - int rc; - if( sqlite3_complete(zSql) ) return 1; - zSemi = strrchr(zSql, ';'); - if( zSemi==0 ) return 0; - if( !line_is_all_whitespace(&zSemi[1]) ) return 0; - c = zSemi[1]; - zSemi[1] = 0; - rc = sqlite3_complete(zSql); - zSemi[1] = c; - return rc; +static int line_is_complete(char *zSql, int nSql){ + sqlite3_int64 x; + assert( nSql>=0 && zSql[nSql]==0 ); + x = sqlite3_incomplete(zSql); + if( x==0x00 || x==0x10 ) return 1; + if( x==0x2d0001 ){ + zSql[nSql] = '\n'; + zSql[nSql+1] = 0; + x = sqlite3_incomplete(zSql); + zSql[nSql] = 0; + if( x==0x00 || x==0x10 ) return 1; + } + return 0; } /* @@ -13696,7 +13696,7 @@ static int process_input(ShellState *p, const char *zSrc){ errCnt++; break; } - if( nSql && hasSemi && line_is_complete(zSql) ){ + if( nSql && hasSemi && line_is_complete(zSql, nSql) ){ echo_group_input(p, zSql); errCnt += runOneSqlLine(p, zSql, p->zInFile, startline); nSql = 0;