[Github-comments] [geany/geany] Create project's filename path (#2586)
Matthew Brush
notifications at xxxxx
Tue Sep 15 02:49:42 UTC 2020
@codebrainz commented on this pull request.
> @@ -772,6 +772,36 @@ static gboolean update_config(const PropertyDialogElements *e, gboolean new_proj
}
g_free(locale_path);
}
+
+ /* create filename path if it doesn't exist and if file name ends with '.geany' */
+ if ((err_code = utils_is_file_writable(locale_filename)) != 0 &&
Since the new code doesn't use the value assigned to `err_code` here, doesn't seem much point in assigning to it.
Moreover, this use of `utils_is_file_writable()` seems like it's deceptively subtle, given what that function does and the comment above it. It might also result in a weird race condition.
Since you're using `utils_mkdir(..., TRUE)` below, which will succeed if the directory already exists, I think you could probably just drop this whole `if` block. Just get the dirname of the project file and try and create it with `utils_mkdir(..., TRUE)` as you already do.
Given the above, the logic could probably be restructured like this (untested/example code):
```c
gchar *project_file_dirname = g_path_get_dirname(locale_filename);
gboolean create_dir = FALSE;
// if the project file's directory doesn't exist, offer the user to create it
if (! g_file_test(project_file_dirname, G_FILE_TEST_EXISTS))
create_dir = dialogs_show_question_full(...);
// if the project file's directory doesn't exist and the user wants to try and create it
if (create_dir)
{
// try and create the project file's directory recursively, if it doesn't already exist
err_code = utils_mkdir(project_file_dirname, TRUE);
if (err_code != 0)
{
SHOW_ERR1(...);
g_free(project_file_dirname);
return FALSE;
}
}
else
{
// TODO: should this be handled?
}
g_free(project_file_dirname);
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2586#pullrequestreview-488285588
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20200914/e9e33cb3/attachment-0001.htm>
More information about the Github-comments
mailing list