mirror of
https://github.com/weechat/weechat.git
synced 2026-07-08 02:33:12 +02:00
core: display an error on startup if environment variable "HOME" is not set
This commit is contained in:
+16
-5
@@ -440,6 +440,9 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
|
||||
*runtime_dir = NULL;
|
||||
|
||||
ptr_home = getenv ("HOME");
|
||||
if (!ptr_home)
|
||||
goto error_home;
|
||||
|
||||
xdg_config_home = getenv ("XDG_CONFIG_HOME");
|
||||
xdg_data_home = getenv ("XDG_DATA_HOME");
|
||||
xdg_cache_home = getenv ("XDG_CACHE_HOME");
|
||||
@@ -460,7 +463,7 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
|
||||
}
|
||||
*config_dir = strdup (path);
|
||||
if (!*config_dir)
|
||||
goto error;
|
||||
goto error_memory;
|
||||
|
||||
/* set data dir: $XDG_DATA_HOME/weechat or $HOME/.local/share/weechat */
|
||||
if (xdg_data_home && xdg_data_home[0])
|
||||
@@ -478,7 +481,7 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
|
||||
}
|
||||
*data_dir = strdup (path);
|
||||
if (!*data_dir)
|
||||
goto error;
|
||||
goto error_memory;
|
||||
|
||||
/* set cache dir: $XDG_CACHE_HOME/weechat or $HOME/.cache/weechat */
|
||||
if (xdg_cache_home && xdg_cache_home[0])
|
||||
@@ -495,7 +498,7 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
|
||||
}
|
||||
*cache_dir = strdup (path);
|
||||
if (!*cache_dir)
|
||||
goto error;
|
||||
goto error_memory;
|
||||
|
||||
/* set runtime dir: $XDG_RUNTIME_DIR/weechat or same as cache dir */
|
||||
if (xdg_runtime_dir && xdg_runtime_dir[0])
|
||||
@@ -510,10 +513,19 @@ dir_find_xdg_dirs (char **config_dir, char **data_dir, char **cache_dir,
|
||||
*runtime_dir = strdup (*cache_dir);
|
||||
}
|
||||
if (!*runtime_dir)
|
||||
goto error;
|
||||
goto error_memory;
|
||||
|
||||
return 1;
|
||||
|
||||
error_home:
|
||||
string_fprintf (stderr,
|
||||
_("Error: environment variable \"HOME\" is not defined\n"));
|
||||
goto error;
|
||||
|
||||
error_memory:
|
||||
string_fprintf (stderr, _("Error: not enough memory\n"));
|
||||
goto error;
|
||||
|
||||
error:
|
||||
if (*config_dir)
|
||||
{
|
||||
@@ -535,7 +547,6 @@ error:
|
||||
free (*runtime_dir);
|
||||
*runtime_dir = NULL;
|
||||
}
|
||||
string_fprintf (stderr, _("Error: not enough memory\n"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user