gnucash stable: Bug 799490 - Error on start or opening a gnucash file: Can't parse the URL
John Ralls
jralls at code.gnucash.org
Sat May 17 21:24:33 EDT 2025
Updated via https://github.com/Gnucash/gnucash/commit/019fbb3f (commit)
from https://github.com/Gnucash/gnucash/commit/910130c5 (commit)
commit 019fbb3f58dc987070accb636fde4f02bc5d0600
Author: John Ralls <jralls at ceridwen.us>
Date: Sat May 17 18:23:23 2025 -0700
Bug 799490 - Error on start or opening a gnucash file: Can't parse the URL
g_filename_from_uri can't handle # in paths but gnc_uri_get_path can.
diff --git a/gnucash/gnome-utils/dialog-file-access.c b/gnucash/gnome-utils/dialog-file-access.c
index c595e79f6a..91c0c50901 100644
--- a/gnucash/gnome-utils/dialog-file-access.c
+++ b/gnucash/gnome-utils/dialog-file-access.c
@@ -144,8 +144,7 @@ gnc_ui_file_access_response_cb(GtkDialog *dialog, gint response, GtkDialog *unus
}
if (g_str_has_prefix (url, "file://"))
{
- if ( g_file_test( g_filename_from_uri( url, NULL, NULL ),
- G_FILE_TEST_IS_DIR ))
+ if ( g_file_test (gnc_uri_get_path (url), G_FILE_TEST_IS_DIR))
{
gtk_file_chooser_set_current_folder_uri( faw->fileChooser, url );
return;
diff --git a/gnucash/gnome-utils/dialog-preferences.c b/gnucash/gnome-utils/dialog-preferences.c
index f4de4a5510..1d8076704c 100644
--- a/gnucash/gnome-utils/dialog-preferences.c
+++ b/gnucash/gnome-utils/dialog-preferences.c
@@ -75,6 +75,7 @@
#include "gnc-prefs.h"
#include "gnc-ui.h"
#include "gnc-ui-util.h"
+#include <gnc-uri-utils.h>
#include <gnc-session.h>
#include "gnc-component-manager.h"
#include "dialog-preferences.h"
@@ -887,7 +888,7 @@ gnc_prefs_connect_file_chooser_button (GtkFileChooserButton *fcb, const gchar *b
if (uri && *uri) // default entry
{
- gchar *path_head = g_filename_from_uri (uri, NULL, NULL);
+ gchar *path_head = gnc_uri_get_path (uri);
// test for current folder present and set chooser to it
if (g_file_test (path_head, G_FILE_TEST_IS_DIR))
diff --git a/libgnucash/engine/qofsession.cpp b/libgnucash/engine/qofsession.cpp
index 79b5569fa6..81392db879 100644
--- a/libgnucash/engine/qofsession.cpp
+++ b/libgnucash/engine/qofsession.cpp
@@ -55,6 +55,7 @@ static QofLogModule log_module = QOF_MOD_SESSION;
#include "qof-backend.hpp"
#include "qofsession.hpp"
#include "gnc-backend-prov.hpp"
+#include "gnc-uri-utils.h"
#include <vector>
#include <boost/algorithm/string.hpp>
@@ -274,7 +275,7 @@ QofSessionImpl::begin (const char* new_uri, SessionOpenMode mode) noexcept
char * scheme {g_uri_parse_scheme (new_uri)};
char * filename {nullptr};
if (g_strcmp0 (scheme, "file") == 0)
- filename = g_filename_from_uri (new_uri, nullptr, nullptr);
+ filename = gnc_uri_get_path(new_uri);
else if (!scheme)
filename = g_strdup (new_uri);
Summary of changes:
gnucash/gnome-utils/dialog-file-access.c | 3 +--
gnucash/gnome-utils/dialog-preferences.c | 3 ++-
libgnucash/engine/qofsession.cpp | 3 ++-
3 files changed, 5 insertions(+), 4 deletions(-)
More information about the gnucash-changes
mailing list