]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Teach the sqlite3 CLI shell to look in XDG_STATE_HOME for the CLI history file before...
authorstephan <stephan@noemail.net>
Wed, 16 Jul 2025 09:27:55 +0000 (09:27 +0000)
committerstephan <stephan@noemail.net>
Wed, 16 Jul 2025 09:27:55 +0000 (09:27 +0000)
FossilOrigin-Name: 1e663374c3fcc20ab0b3250aa1ff9d5e5ac391c89808ad589aa30c8882d4b61e

1  2 
manifest
manifest.uuid
src/shell.c.in

diff --cc manifest
index 304c2d4d6a86269299b52d2b203c4e9aeb73506f,353f38b6e87fac7f57b47040baee682b1efb3c9d..6dd5cd61af5d20ac974df9b7f6b1b60835dc3193
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Avoid\sevaluating\sspecial\svtab\soperators\s(e.g.\sMATCH)\sthat\sare\spart\sof\sON\sclauses\sattached\sto\sleft\sjoins\sfrom\sbeing\sevaluated\stoo\searly.\sFix\sfor\s[forum:/forumpost/428ef7c468\s|\sforum\spost\s428ef7c468].
- D 2025-07-15T19:00:01.118
 -C Squelch\sa\slegitimate\sbut\sharmless\s'discards\sconst'\swarning.
 -D 2025-07-16T09:20:02.408
++C Teach\sthe\ssqlite3\sCLI\sshell\sto\slook\sin\sXDG_STATE_HOME\sfor\sthe\sCLI\shistory\sfile\sbefore\sfalling\sback\sto\sits\shistorical\slocation\sin\sthe\suser's\shome\sdirectory.
++D 2025-07-16T09:27:55.137
  F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@@ -718,8 -717,8 +718,8 @@@ F mptest/crash02.subtest f4ef05adcd15d6
  F mptest/mptest.c aa41ace6dbc5050d76b02548d3521e6bbccae4f0
  F mptest/multiwrite01.test dab5c5f8f9534971efce679152c5146da265222d
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
- F sqlite3.1 acdff36db796e2d00225b911d3047d580cd136547298435426ce9d40347973cc
+ F sqlite3.1 9e426a150af072be26b0661bcd54567692d979e99bc7daf55b22b952ff8e41a6
 -F sqlite3.pc.in 0977c03a4da7c4204bd60e784a0efb8d51a190448aba78a4e973fe7192bdaf03
 +F sqlite3.pc.in e6dee284fba59ef500092fdc1843df3be8433323a3733c91da96690a50a5b398
  F src/alter.c fc7bbbeb9e89c7124bf5772ce474b333b7bdc18d6e080763211a40fde69fb1da
  F src/analyze.c 03bcfc083fc0cccaa9ded93604e1d4244ea245c17285d463ef6a60425fcb247d
  F src/attach.c 9af61b63b10ee702b1594ecd24fb8cea0839cfdb6addee52fba26fa879f5db9d
@@@ -784,10 -783,10 +784,10 @@@ F src/pragma.c 30b535d0a66348df844ee36f
  F src/prepare.c 1832be043fce7d489959aae6f994c452d023914714c4d5457beaed51c0f3d126
  F src/printf.c 71b6d3a0093bf23f473e25480ca0024e8962681506c75f4ffd3d343a3f0ab113
  F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 -F src/resolve.c d40fe18d7c2fd0339f5846ffcf7d6809866e380acdf14c76fb2af87e9fe13f64
 +F src/resolve.c d3ee7ed308d46f4ee6d3bb6316d8d6f87158f93a7fd616732138cc953cf364f0
  F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 -F src/select.c 882d739e0d5e6c7a8b46a3cca3ada37fe1a56301f1360d6b141312c666bbe482
 -F src/shell.c.in 550ca8a09f8ac55203e69aae34e429b79d92cb44edf7419d8f3dd88eefab5d39
 +F src/select.c fc003cad96a105765261f7b6c5f4596e505894262bb5593cb29e10b682800d12
- F src/shell.c.in 73c0eeb7c265d59b99219d5aa055f412f07842088d8036b6d259927d85dd1bbf
++F src/shell.c.in 2be7d0b2ba7221bd991f96d0c72728c06cead09bec3965e230ad703c9daf0c8a
  F src/sqlite.h.in 5c54f2461a1ea529bab8499148a2b238e2d4bb571d59e8ea5322d0c190abb693
  F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
  F src/sqlite3ext.h 0bfd049bb2088cc44c2ad54f2079d1c6e43091a4e1ce8868779b75f6c1484f1e
@@@ -2213,9 -2208,8 +2213,9 @@@ F tool/version-info.c 3b36468a90faf1bbd
  F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
  F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 0fcc3cbdfa21adf97aed01fa76991cccf9380e2755b0182a9e2c94e3c8fb38d7 ffebbb7ae977adc6c729d30b51f2ff29d416e018d82e450d87ccd973472819c8
- R 0ec55818aae25b06d1ba2943b74e8035
- T +closed ffebbb7ae977adc6c729d30b51f2ff29d416e018d82e450d87ccd973472819c8
- U dan
- Z 39542e12671ba6b0f9f551dd25869359
 -P ebb346c5aa427b9e84a035278ee245d54810d9954efef12b898f2d7bc0ff630c
 -R debb7a97a27a2dab2543b88f76ae8cc2
++P 9f184f8dfa5ef6d57e10376adc30e0060ceda07d283c23dfdfe3dbdd6608f839 73539fe0932494234b8f2293b0dbc1f0aac60a7d00fdaf4a59c2da654ce26f5b
++R 301553834aa3054a0cc5a0c4c21b9798
++T +closed 73539fe0932494234b8f2293b0dbc1f0aac60a7d00fdaf4a59c2da654ce26f5b Closed\sby\sintegrate-merge.
+ U stephan
 -Z affb48d71da77c1ae112258e0a7a4bb5
++Z f8c26aad77c21d4fab9a1de2f2326205
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index 38a5d0f0c3c57e51d6c1ca40667ac89d958fa8e7,d86bd127b84135efaf5a7743cd6b89e148b77e53..abbd3fd28c6749003d78272a41c6fc04c37818d6
@@@ -1,1 -1,1 +1,1 @@@
- 9f184f8dfa5ef6d57e10376adc30e0060ceda07d283c23dfdfe3dbdd6608f839
 -73539fe0932494234b8f2293b0dbc1f0aac60a7d00fdaf4a59c2da654ce26f5b
++1e663374c3fcc20ab0b3250aa1ff9d5e5ac391c89808ad589aa30c8882d4b61e
diff --cc src/shell.c.in
index 5cda6a1a1bc19f530420d2fce72faf6a344f0b96,7b28bf6842db37bf42c3a855997b8edede722da2..a311d85c4fe7482ff4e39c2659835523264387f4
@@@ -12760,16 -12759,28 +12760,30 @@@ static char *find_home_dir(int clearFla
  }
  
  /*
- ** On non-Windows platforms, look for $XDG_CONFIG_HOME.
- ** If ${XDG_CONFIG_HOME}/sqlite3/sqliterc is found, return
- ** the path to it.  If there is no $(XDG_CONFIG_HOME) then
- ** look for $(HOME)/.config/sqlite3/sqliterc and if found
- ** return that.  If none of these are found, return 0.
+ ** On non-Windows platforms, look for:
  **
- ** The string returned is obtained from sqlite3_malloc() and
- ** should be freed by the caller.
+ ** - ${zEnvVar}/${zBaseName}
+ ** - ${HOME}/${zSubdir}/${zBaseName}
+ **
+ ** $zEnvVar is intended to be the name of an XDG_... environment
+ ** variable, e.g. XDG_CONFIG_HOME or XDG_STATE_HOME.  If zEnvVar is
+ ** NULL or getenv(zEnvVar) is NULL then fall back to the second
+ ** option. If the selected option is not found in the filesystem,
+ ** return 0.
+ **
+ ** zSubdir may be NULL or empty, in which case ${HOME}/${zBaseName}
+ ** becomes the fallback.
+ **
+ ** Both zSubdir and zBaseName may contain subdirectory parts. zSubdir
 -** will conventionally be ".config" or ".local/state".
++** will conventionally be ".config" or ".local/state", which, not
++** coincidentally, is the typical subdir of the corresponding XDG_...
++** var with the XDG var's $HOME prefix.
+ **
+ ** The returned string is obtained from sqlite3_malloc() and should be
+ ** sqlite3_free()'d by the caller.
  */
- static char *find_xdg_config(void){
+ static char *find_xdg_file(const char *zEnvVar, const char *zSubdir,
+                            const char *zBaseName){
  #if defined(_WIN32) || defined(WIN32) || defined(_WIN32_WCE) \
       || defined(__RTP__) || defined(_WRS_KERNEL)
    return 0;