summaryrefslogtreecommitdiff
path: root/sqlite3/0001-shell-check-default-XDG_CONFIG_HOME-dir.patch
blob: 62d3ccd6dbed30849f75c220e3c60ebbbd408321 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From d5fd7c1bf501bf57ae1a70dfe33780f7706d31c3 Mon Sep 17 00:00:00 2001
From: Terin Stock <terinjokes@gmail.com>
Date: Wed, 22 May 2024 02:22:56 +0200
Subject: [PATCH] shell: check default XDG_CONFIG_HOME dir

The XDG documentation states the default of `$HOME/.config` should be
used when `$XDG_CONFIG_HOME` is unset or empty.

This changeset modifies the shell startup to query this location if the
environment variable is not being set to another value.
---
 src/shell.c.in | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/shell.c.in b/src/shell.c.in
index 1220b42..3c2c8ce 100644
--- a/src/shell.c.in
+++ b/src/shell.c.in
@@ -11795,6 +11795,7 @@ static const char *find_xdg_config(void){
   static int alreadyTried = 0;
   static char *zConfig = 0;
   const char *zXdgHome;
+  char *home_dir = NULL;
 
   if( alreadyTried!=0 ){
     return zConfig;
@@ -11803,6 +11804,16 @@ static const char *find_xdg_config(void){
   zXdgHome = getenv("XDG_CONFIG_HOME");
   if( zXdgHome==0 ){
-    return 0;
+    home_dir = find_home_dir(0);
+    if( home_dir != 0 ) {
+      zConfig = sqlite3_mprintf("%s/.config/sqlite3/sqliterc", home_dir);
+      shell_check_oom(zConfig);
+      if( access(zConfig,0)!=0 ){
+        sqlite3_free(zConfig);
+        zConfig = 0;
+      } else {
+        return zConfig;
+      }
+    }
   }
   zConfig = sqlite3_mprintf("%s/sqlite3/sqliterc", zXdgHome);
   shell_check_oom(zConfig);
-- 
2.44.1