aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--libsylph/utils.c23
3 files changed, 31 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 78d756ec..c586aacf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2005-10-26
+ * libsylph/utils.c: uri_list_extract_filenames(): use GLib functions
+ to extract URIs if available.
+
+2005-10-26
+
* src/main.c: win32: convert locale string to UTF-8 when setting
rc dir.
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 94dd4b8c..fcdea38b 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,10 @@
2005-10-26
+ * libsylph/utils.c: uri_list_extract_filenames(): 利用可能であれば
+ URI を展開するのに GLib の関数を使用するようにした。
+
+2005-10-26
+
* src/main.c: win32: rc dir を設定するときはロケール文字列を UTF-8
に変換するようにした。
diff --git a/libsylph/utils.c b/libsylph/utils.c
index 80b6545c..95bc237f 100644
--- a/libsylph/utils.c
+++ b/libsylph/utils.c
@@ -1449,9 +1449,27 @@ gchar *trim_string_before(const gchar *str, gint len)
GList *uri_list_extract_filenames(const gchar *uri_list)
{
GList *result = NULL;
- const gchar *p, *q;
gchar *file;
+#if GLIB_CHECK_VERSION(2, 6, 0)
+ gchar **uris;
+ gint i;
+
+ uris = g_uri_list_extract_uris(uri_list);
+ g_return_val_if_fail(uris != NULL, NULL);
+
+ for (i = 0; uris[i] != NULL; i++) {
+ file = g_filename_from_uri(uris[i], NULL, NULL);
+ if (file)
+ result = g_list_append(result, file);
+ }
+
+ g_strfreev(uris);
+
+ return result;
+#else
+ const gchar *p, *q;
+
p = uri_list;
while (p) {
@@ -1471,7 +1489,7 @@ GList *uri_list_extract_filenames(const gchar *uri_list)
strncpy(file, p, q - p + 1);
file[q - p + 1] = '\0';
decode_uri(file, file);
- result = g_list_append(result,file);
+ result = g_list_append(result, file);
}
}
}
@@ -1480,6 +1498,7 @@ GList *uri_list_extract_filenames(const gchar *uri_list)
}
return result;
+#endif
}
#define HEX_TO_INT(val, hex) \