From d2fb06de65cacf278df2b69bd8866feb07c061a9 Mon Sep 17 00:00:00 2001 From: Albert Graef <aggraef@gmail.com> Date: Mon, 31 Oct 2016 20:51:02 +0100 Subject: [PATCH] Linux: Try to create the ~/.pd-l2ork config dir if necessary when saving the preferences file. --- pd/src/s_file.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pd/src/s_file.c b/pd/src/s_file.c index a3c46cc10..f2b127c35 100644 --- a/pd/src/s_file.c +++ b/pd/src/s_file.c @@ -139,10 +139,19 @@ static FILE *sys_prefsavefp; static void sys_initsavepreferences( void) { char filenamebuf[FILENAME_MAX], *homedir = getenv("HOME"); - FILE *fp; + struct stat statbuf; if (!homedir) return; + snprintf(filenamebuf, FILENAME_MAX, "%s/.pd-l2ork", homedir); + filenamebuf[FILENAME_MAX-1] = 0; + if (stat(filenamebuf, &statbuf) || !S_ISDIR(statbuf.st_mode)) { + // user config dir doesn't exist yet, try to create it + if (mkdir(filenamebuf, 0755)) { + pd_error(0, "%s: %s",filenamebuf, strerror(errno)); + return; + } + } snprintf(filenamebuf, FILENAME_MAX, "%s/.pd-l2ork/user.settings", homedir); filenamebuf[FILENAME_MAX-1] = 0; if ((sys_prefsavefp = fopen(filenamebuf, "w")) == NULL) -- GitLab