Commit 4200ed30 authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

history: create the path '~/.local/share/' when it is needed


On a freshly installed system, or for a new user, the default
XDG data directory may not exist yet.  So, create it when not.
Reported-by: default avatarBrand Huntsman <alpha@qzx.com>
parent 2b314ed1
Showing with 9 additions and 5 deletions
+9 -5
......@@ -26,10 +26,6 @@
#ifdef ENABLE_HISTORIES
#ifndef XDG_DATA_FALLBACK
#define XDG_DATA_FALLBACK "/.local/share"
#endif
#ifndef SEARCH_HISTORY
#define SEARCH_HISTORY "search_history"
#endif
......@@ -272,9 +268,17 @@ bool have_statedir(void)
if (xdgdatadir != NULL)
statedir = concatenate(xdgdatadir, "/nano/");
else
statedir = concatenate(homedir, XDG_DATA_FALLBACK "/nano/");
statedir = concatenate(homedir, "/.local/share/nano/");
if (stat(statedir, &dirstat) == -1) {
if (xdgdatadir == NULL) {
char *statepath = concatenate(homedir, "/.local");
mkdir(statepath, S_IRWXU | S_IRWXG | S_IRWXO);
free(statepath);
statepath = concatenate(homedir, "/.local/share");
mkdir(statepath, S_IRWXU);
free(statepath);
}
if (mkdir(statedir, S_IRWXU | S_IRWXG | S_IRWXO) == -1) {
history_error(N_("Unable to create directory %s: %s\n"
"It is required for saving/loading "
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment