]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Further improvements to the ".ar" command of the CLI.
authordrh <>
Thu, 11 Jun 2026 16:39:41 +0000 (16:39 +0000)
committerdrh <>
Thu, 11 Jun 2026 16:39:41 +0000 (16:39 +0000)
FossilOrigin-Name: 6149b938c7a1e95a0fb8600a81557dd0e3efb7b312f3806e2c09d03acf9f4b17

manifest
manifest.uuid
src/shell.c.in

index 55e79123ab93b67c99673c2746c4048de17bf408..e920e01b3a6735e889f92cece0890340c28735ca 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Three-pass\salgorithm\sfor\sthe\s".ar\sx"\scommand\sin\sthe\sCLI,\sso\sthat\ssymlinks\nare\screated\safter\sall\sregular\sfiles\sare\screated.
-D 2026-06-11T14:28:48.700
+C Further\simprovements\sto\sthe\s".ar"\scommand\sof\sthe\sCLI.
+D 2026-06-11T16:39:41.329
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -739,7 +739,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c d0724113da9f5c0430d2052808ce59519f51ae7c4fbb1f5ef21fe3a832956086
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c 5c3a5e3c1e6c3f8ccabeb414e18dce64e6f3e797de225ee93034f2c9e76f289c
-F src/shell.c.in ce875e841ad3f240d3b0ccb492e8c849552e7273a92cbe936eb8f22014448666
+F src/shell.c.in b856edfafe2616aeb250ff9f20a63c5cd25dbf248963a1b45e9678248816c589
 F src/sqlite.h.in 749454ec71c875bc130d399ff9a7e47191d143d1b9d8b4af3839b6028df9eda9
 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
 F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e
@@ -2209,8 +2209,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 3a040ffc47fa3e38b36716587c56d9b071d9c69d9daaa9cf0ef6baa654419ab5
-R f25542232c944cff5bd84dfd8cb028e6
+P 37a80d20fe1948db15ac72432ed7bf3d573c80807fe0a58c58440647e3c34ab8
+R b4b5582ab5a9e414137c6eab8d990580
 U drh
-Z 3ff2a55612509f55590dac3ec3f890b6
+Z 15fcde3ed98298d9b573860d48a53101
 # Remove this line to create a well-formed Fossil manifest.
index 59d6e82ebca2036bb49f5d836711f78d70a8c589..469a2547ccf5ca3289f491f5baacf07eeb0cb947 100644 (file)
@@ -1 +1 @@
-37a80d20fe1948db15ac72432ed7bf3d573c80807fe0a58c58440647e3c34ab8
+6149b938c7a1e95a0fb8600a81557dd0e3efb7b312f3806e2c09d03acf9f4b17
index a3c13e8b191c0710bd31e2e1a23157673b471b26..f0a94dbdf89f20611e45bf5c621982e148bab14d 100644 (file)
@@ -7338,14 +7338,22 @@ static int arRemoveCommand(ArCommand *pAr){
 */
 static int arExtractCommand(ArCommand *pAr){
   const char *zSql1 =
-    "WITH dest(dpath,dlen) AS (SELECT realpath($dir),length(realpath($dir)))\n"
-    "SELECT ($dir || name),\n"
+    "WITH dest(dpath,dlen) AS (\n"
+#ifdef _WIN32
+    "  SELECT realpath($dir) || '\\',\n"
+#else
+    "  SELECT realpath($dir) || '/',\n"
+#endif
+    "  1+length(realpath($dir))\n"
+    ")\n"
+    "SELECT\n"
+    "    ($dir || name),\n"
     "    CASE $dryrun\n"
-    "    WHEN 0 THEN writefile($dir||name, %s, mode, mtime)\n"
-    "    WHEN 1 THEN 0\n"
-    "    ELSE shell_putsnl(format('writefile(%%Q,%%s,%%0o,%%d)',"
-                           "$dir||name,quote(%s),mode,mtime))\n"
-    "    END\n"
+    "      WHEN 0 THEN writefile($dir||name, %s, mode, mtime)\n"
+    "      WHEN 1 THEN 0\n"
+    "      ELSE shell_putsnl(format('writefile(%%Q,%%s,%%0o,%%d)',"
+                           "$dir||name,quote(%s),mode,mtime)) IS NULL\n"
+    "      END\n"
     "  FROM dest CROSS JOIN %s\n"
     " WHERE (%s)\n"
     "   AND (CASE $pass WHEN 0 THEN (mode&0xf000)<>0xa000\n"