Fossil SCM
When attempting to open the configuration, permit the 'FOSSIL_HOME' environment variable (if present), to override 'HOME'.
Commit
c97a085a0e7200b808dd3a810d46c1ad369604c3
Parent
bf681039e2a2967…
1 file changed
+25
-20
M
src/db.c
+25
-20
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -927,30 +927,35 @@ | ||
| 927 | 927 | char *zHome; |
| 928 | 928 | if( g.zConfigDbName ){ |
| 929 | 929 | if( useAttach==g.useAttach ) return; |
| 930 | 930 | db_close_config(); |
| 931 | 931 | } |
| 932 | -#if defined(_WIN32) || defined(__CYGWIN__) | |
| 933 | - zHome = fossil_getenv("LOCALAPPDATA"); | |
| 934 | - if( zHome==0 ){ | |
| 935 | - zHome = fossil_getenv("APPDATA"); | |
| 936 | - if( zHome==0 ){ | |
| 937 | - char *zDrive = fossil_getenv("HOMEDRIVE"); | |
| 938 | - zHome = fossil_getenv("HOMEPATH"); | |
| 939 | - if( zDrive && zHome ) zHome = mprintf("%s%s", zDrive, zHome); | |
| 940 | - } | |
| 941 | - } | |
| 942 | - if( zHome==0 ){ | |
| 943 | - fossil_fatal("cannot locate home directory - " | |
| 944 | - "please set the LOCALAPPDATA or APPDATA or HOMEPATH " | |
| 945 | - "environment variables"); | |
| 946 | - } | |
| 947 | -#else | |
| 948 | - zHome = fossil_getenv("HOME"); | |
| 949 | - if( zHome==0 ){ | |
| 950 | - fossil_fatal("cannot locate home directory - " | |
| 951 | - "please set the HOME environment variable"); | |
| 932 | + zHome = fossil_getenv("FOSSIL_HOME"); | |
| 933 | +#if defined(_WIN32) || defined(__CYGWIN__) | |
| 934 | + if( zHome==0 ){ | |
| 935 | + zHome = fossil_getenv("LOCALAPPDATA"); | |
| 936 | + if( zHome==0 ){ | |
| 937 | + zHome = fossil_getenv("APPDATA"); | |
| 938 | + if( zHome==0 ){ | |
| 939 | + char *zDrive = fossil_getenv("HOMEDRIVE"); | |
| 940 | + char *zPath = fossil_getenv("HOMEPATH"); | |
| 941 | + if( zDrive && zPath ) zHome = mprintf("%s%s", zDrive, zPath); | |
| 942 | + } | |
| 943 | + } | |
| 944 | + } | |
| 945 | + if( zHome==0 ){ | |
| 946 | + fossil_fatal("cannot locate home directory - please set the " | |
| 947 | + "FOSSIL_HOME, LOCALAPPDATA, APPDATA, or HOMEPATH " | |
| 948 | + "environment variables"); | |
| 949 | + } | |
| 950 | +#else | |
| 951 | + if( zHome==0 ){ | |
| 952 | + zHome = fossil_getenv("HOME"); | |
| 953 | + } | |
| 954 | + if( zHome==0 ){ | |
| 955 | + fossil_fatal("cannot locate home directory - please set the " | |
| 956 | + "FOSSIL_HOME or HOME environment variables"); | |
| 952 | 957 | } |
| 953 | 958 | #endif |
| 954 | 959 | if( file_isdir(zHome)!=1 ){ |
| 955 | 960 | fossil_fatal("invalid home directory: %s", zHome); |
| 956 | 961 | } |
| 957 | 962 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -927,30 +927,35 @@ | |
| 927 | char *zHome; |
| 928 | if( g.zConfigDbName ){ |
| 929 | if( useAttach==g.useAttach ) return; |
| 930 | db_close_config(); |
| 931 | } |
| 932 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 933 | zHome = fossil_getenv("LOCALAPPDATA"); |
| 934 | if( zHome==0 ){ |
| 935 | zHome = fossil_getenv("APPDATA"); |
| 936 | if( zHome==0 ){ |
| 937 | char *zDrive = fossil_getenv("HOMEDRIVE"); |
| 938 | zHome = fossil_getenv("HOMEPATH"); |
| 939 | if( zDrive && zHome ) zHome = mprintf("%s%s", zDrive, zHome); |
| 940 | } |
| 941 | } |
| 942 | if( zHome==0 ){ |
| 943 | fossil_fatal("cannot locate home directory - " |
| 944 | "please set the LOCALAPPDATA or APPDATA or HOMEPATH " |
| 945 | "environment variables"); |
| 946 | } |
| 947 | #else |
| 948 | zHome = fossil_getenv("HOME"); |
| 949 | if( zHome==0 ){ |
| 950 | fossil_fatal("cannot locate home directory - " |
| 951 | "please set the HOME environment variable"); |
| 952 | } |
| 953 | #endif |
| 954 | if( file_isdir(zHome)!=1 ){ |
| 955 | fossil_fatal("invalid home directory: %s", zHome); |
| 956 | } |
| 957 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -927,30 +927,35 @@ | |
| 927 | char *zHome; |
| 928 | if( g.zConfigDbName ){ |
| 929 | if( useAttach==g.useAttach ) return; |
| 930 | db_close_config(); |
| 931 | } |
| 932 | zHome = fossil_getenv("FOSSIL_HOME"); |
| 933 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 934 | if( zHome==0 ){ |
| 935 | zHome = fossil_getenv("LOCALAPPDATA"); |
| 936 | if( zHome==0 ){ |
| 937 | zHome = fossil_getenv("APPDATA"); |
| 938 | if( zHome==0 ){ |
| 939 | char *zDrive = fossil_getenv("HOMEDRIVE"); |
| 940 | char *zPath = fossil_getenv("HOMEPATH"); |
| 941 | if( zDrive && zPath ) zHome = mprintf("%s%s", zDrive, zPath); |
| 942 | } |
| 943 | } |
| 944 | } |
| 945 | if( zHome==0 ){ |
| 946 | fossil_fatal("cannot locate home directory - please set the " |
| 947 | "FOSSIL_HOME, LOCALAPPDATA, APPDATA, or HOMEPATH " |
| 948 | "environment variables"); |
| 949 | } |
| 950 | #else |
| 951 | if( zHome==0 ){ |
| 952 | zHome = fossil_getenv("HOME"); |
| 953 | } |
| 954 | if( zHome==0 ){ |
| 955 | fossil_fatal("cannot locate home directory - please set the " |
| 956 | "FOSSIL_HOME or HOME environment variables"); |
| 957 | } |
| 958 | #endif |
| 959 | if( file_isdir(zHome)!=1 ){ |
| 960 | fossil_fatal("invalid home directory: %s", zHome); |
| 961 | } |
| 962 |