mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-20 19:43:01 +00:00
added new utility function file_utils_filename_from_uri().
2005-02-03 Sven Neumann <sven@gimp.org> * app/file/file-utils.[ch]: added new utility function file_utils_filename_from_uri(). * app/file/file-open.c (file_open_image) * app/file/file-save.c (file_save_as): * app/file/file-utils.c (file_utils_find_proc) (file_utils_uri_to_utf8_filename): replaced calls to g_filename_from_uri() with file_utils_filename_from_uri().
This commit is contained in:
parent
eb834ca3bf
commit
8b3481f3ff
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2005-02-03 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/file/file-utils.[ch]: added new utility function
|
||||
file_utils_filename_from_uri().
|
||||
|
||||
* app/file/file-open.c (file_open_image)
|
||||
* app/file/file-save.c (file_save_as):
|
||||
* app/file/file-utils.c (file_utils_find_proc)
|
||||
(file_utils_uri_to_utf8_filename): replaced g_filename_from_uri()
|
||||
with file_utils_filename_from_uri().
|
||||
|
||||
2005-02-03 Bill Skaggs <weskaggs@primate.ucdavis.edu>
|
||||
|
||||
* app/widgets/gimppropwidgets.c: add gtk-doc comments to
|
||||
|
|
|
@ -106,7 +106,7 @@ file_open_image (Gimp *gimp,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
filename = g_filename_from_uri (uri, NULL, NULL);
|
||||
filename = file_utils_filename_from_uri (uri);
|
||||
|
||||
if (filename)
|
||||
{
|
||||
|
@ -224,7 +224,7 @@ file_open_thumbnail (Gimp *gimp,
|
|||
gint image_id;
|
||||
gint i;
|
||||
|
||||
filename = g_filename_from_uri (uri, NULL, NULL);
|
||||
filename = file_utils_filename_from_uri (uri);
|
||||
|
||||
args = g_new0 (Argument, proc->num_args);
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ file_save_as (GimpImage *gimage,
|
|||
return GIMP_PDB_CALLING_ERROR;
|
||||
}
|
||||
|
||||
filename = g_filename_from_uri (uri, NULL, NULL);
|
||||
filename = file_utils_filename_from_uri (uri);
|
||||
|
||||
if (filename)
|
||||
{
|
||||
|
|
|
@ -129,6 +129,53 @@ file_utils_filename_to_uri (GSList *procs,
|
|||
return uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* file_utils_filename_from_uri:
|
||||
* @uri: a URI
|
||||
*
|
||||
* A utility function to be used as a replacement for
|
||||
* g_filename_from_uri(). It deals with file: URIs with hostname in a
|
||||
* platform-specific way. On Win32, a UNC path is created and
|
||||
* returned, on other platforms the URI is detected as non-local and
|
||||
* NULL is returned.
|
||||
*
|
||||
* Returns: newly allocated filename or %NULL if @uri is a remote file
|
||||
**/
|
||||
gchar *
|
||||
file_utils_filename_from_uri (const gchar *uri)
|
||||
{
|
||||
gchar *filename;
|
||||
gchar *hostname;
|
||||
|
||||
g_return_val_if_fail (uri != NULL, NULL);
|
||||
|
||||
filename = g_filename_from_uri (uri, &hostname, NULL);
|
||||
|
||||
if (!filename)
|
||||
return NULL;
|
||||
|
||||
if (hostname)
|
||||
{
|
||||
/* we have a file: URI with a hostname */
|
||||
#ifdef G_OS_WIN32
|
||||
/* on Win32, create a valid UNC path and use it as the filename */
|
||||
|
||||
gchar *tmp = g_build_filename ("//", hostname, filename, NULL);
|
||||
|
||||
g_free (filename);
|
||||
filename = tmp;
|
||||
#else
|
||||
/* otherwise return NULL, caller should use URI then */
|
||||
g_free (filename);
|
||||
filename = NULL;
|
||||
#endif
|
||||
|
||||
g_free (hostname);
|
||||
}
|
||||
|
||||
return filename;
|
||||
}
|
||||
|
||||
PlugInProcDef *
|
||||
file_utils_find_proc (GSList *procs,
|
||||
const gchar *uri)
|
||||
|
@ -146,7 +193,7 @@ file_utils_find_proc (GSList *procs,
|
|||
if (file_proc)
|
||||
return file_proc;
|
||||
|
||||
filename = g_filename_from_uri (uri, NULL, NULL);
|
||||
filename = file_utils_filename_from_uri (uri);
|
||||
|
||||
/* Then look for magics */
|
||||
if (filename)
|
||||
|
@ -254,9 +301,10 @@ file_utils_uri_to_utf8_filename (const gchar *uri)
|
|||
{
|
||||
g_return_val_if_fail (uri != NULL, NULL);
|
||||
|
||||
if (! strncmp (uri, "file:", strlen ("file:")))
|
||||
if (g_str_has_prefix (uri, "file:"))
|
||||
{
|
||||
gchar *filename = g_filename_from_uri (uri, NULL, NULL);
|
||||
gchar *filename = file_utils_filename_from_uri (uri);
|
||||
|
||||
if (filename)
|
||||
{
|
||||
GError *error = NULL;
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
gchar * file_utils_filename_to_uri (GSList *procs,
|
||||
const gchar *filename,
|
||||
GError **error);
|
||||
gchar * file_utils_filename_from_uri (const gchar *uri);
|
||||
|
||||
gchar * file_utils_uri_to_utf8_basename (const gchar *uri);
|
||||
gchar * file_utils_uri_to_utf8_filename (const gchar *uri);
|
||||
|
|
Loading…
Reference in a new issue