From ee0637688d1a3ce176b9dbe1e9ae4c02d55e872a Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Wed, 15 Nov 2023 13:43:19 +0100 Subject: FLUID: Fixes generating default templates --- fluid/fluid.cxx | 12 ++++++------ fluid/template_panel.cxx | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/fluid/fluid.cxx b/fluid/fluid.cxx index 067bd16c5..96138234c 100644 --- a/fluid/fluid.cxx +++ b/fluid/fluid.cxx @@ -708,10 +708,10 @@ void save_template_cb(Fl_Widget *, void *) { if (!c || !*c) return; // Convert template name to filename_with_underscores - char safename[FL_PATH_MAX], *safeptr; - strlcpy(safename, c, sizeof(safename)); - for (safeptr = safename; *safeptr; safeptr ++) { - if (isspace(*safeptr)) *safeptr = '_'; + char savename[FL_PATH_MAX], *saveptr; + strlcpy(savename, c, sizeof(savename)); + for (saveptr = savename; *saveptr; saveptr ++) { + if (isspace(*saveptr)) *saveptr = '_'; } // Find the templates directory... @@ -719,10 +719,10 @@ void save_template_cb(Fl_Widget *, void *) { fluid_prefs.getUserdataPath(filename, sizeof(filename)); strlcat(filename, "templates", sizeof(filename)); - if (fl_access(filename, 0)) fl_mkdir(filename, 0777); + if (fl_access(filename, 0)) fl_make_path(filename); strlcat(filename, "/", sizeof(filename)); - strlcat(filename, safename, sizeof(filename)); + strlcat(filename, savename, sizeof(filename)); char *ext = filename + strlen(filename); if (ext >= (filename + sizeof(filename) - 5)) { diff --git a/fluid/template_panel.cxx b/fluid/template_panel.cxx index d109acdba..14d974b54 100644 --- a/fluid/template_panel.cxx +++ b/fluid/template_panel.cxx @@ -216,12 +216,14 @@ void template_load() { int num_files; fluid_prefs.getUserdataPath(path, sizeof(path)); + if (path[0] == 0) return; strlcat(path, "templates", sizeof(path)); + fl_make_path(path); int sample_templates_generated = 0; fluid_prefs.get("sample_templates_generated", sample_templates_generated, 0); - if (sample_templates_generated < 2) { + strcpy(filename, path); strcat(filename, "/FLTK_License.fl"); FILE *f = fopen(filename, "wb"); -- cgit v1.2.3