summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/extension/implementation/script.cpp4
-rw-r--r--src/extension/system.cpp9
2 files changed, 4 insertions, 9 deletions
diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp
index 70b006d31..eabf147f6 100644
--- a/src/extension/implementation/script.cpp
+++ b/src/extension/implementation/script.cpp
@@ -581,7 +581,9 @@ Script::open(Inkscape::Extension::Input *module,
} // data_read
if (mydoc != NULL) {
- sp_document_set_uri(mydoc, filenameArg);
+ g_free(mydoc->base);
+ mydoc->base = NULL;
+ sp_document_change_uri_and_hrefs(mydoc, filenameArg);
}
// make sure we don't leak file descriptors from g_file_open_tmp
diff --git a/src/extension/system.cpp b/src/extension/system.cpp
index 37b70fec8..fdebd7b22 100644
--- a/src/extension/system.cpp
+++ b/src/extension/system.cpp
@@ -257,14 +257,7 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension,
saved_dataloss = g_strdup(repr->attribute("inkscape:dataloss"));
} else {
/* The document is changing name/uri. */
-
- /* TODO: Don't treat URIs and filenames interchangeably.
- * So call g_filename_to_uri when passing to sp_document_set_uri,
- * and change rebase_hrefs to accept a base URI/LEIRI instead of dir name. */
- gchar *const new_base = g_path_get_dirname(fileName);
- Inkscape::XML::rebase_hrefs(doc, new_base, true);
- sp_document_set_uri(doc, fileName);
- g_free(new_base);
+ sp_document_change_uri_and_hrefs(doc, fileName);
}
// Update attributes: