forked from AuroraMiddleware/gtk
Use a variant of the code from gtkfilesel.c to parse a "text/uri-list"
2004-04-15 Federico Mena Quintero <federico@ximian.com> * gtk/gtkfilechooserdefault.c (split_uris): Use a variant of the code from gtkfilesel.c to parse a "text/uri-list" blob. Fixes #140126.
This commit is contained in:
parent
647bba80a6
commit
6cb9668e69
@ -1,3 +1,9 @@
|
|||||||
|
2004-04-15 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
|
* gtk/gtkfilechooserdefault.c (split_uris): Use a variant of the
|
||||||
|
code from gtkfilesel.c to parse a "text/uri-list" blob. Fixes
|
||||||
|
#140126.
|
||||||
|
|
||||||
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2004-04-15 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
|
* gtk/gtkfilechooserdefault.c (split_uris): Use a variant of the
|
||||||
|
code from gtkfilesel.c to parse a "text/uri-list" blob. Fixes
|
||||||
|
#140126.
|
||||||
|
|
||||||
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2004-04-15 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
|
* gtk/gtkfilechooserdefault.c (split_uris): Use a variant of the
|
||||||
|
code from gtkfilesel.c to parse a "text/uri-list" blob. Fixes
|
||||||
|
#140126.
|
||||||
|
|
||||||
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2004-04-15 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
|
* gtk/gtkfilechooserdefault.c (split_uris): Use a variant of the
|
||||||
|
code from gtkfilesel.c to parse a "text/uri-list" blob. Fixes
|
||||||
|
#140126.
|
||||||
|
|
||||||
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2004-04-15 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
|
* gtk/gtkfilechooserdefault.c (split_uris): Use a variant of the
|
||||||
|
code from gtkfilesel.c to parse a "text/uri-list" blob. Fixes
|
||||||
|
#140126.
|
||||||
|
|
||||||
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
2004-04-15 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
* gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init):
|
||||||
|
@ -2239,28 +2239,49 @@ shortcuts_drag_drop_cb (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Converts raw selection data from text/uri-list to a list of strings */
|
/* Converts raw selection data from text/uri-list to a list of strings. */
|
||||||
static GSList *
|
static GSList *
|
||||||
split_uris (const char *data)
|
split_uris (const char *data)
|
||||||
{
|
{
|
||||||
GSList *uris;
|
GSList *uris;
|
||||||
const char *p, *start;
|
const char *p, *q;
|
||||||
|
|
||||||
uris = NULL;
|
uris = NULL;
|
||||||
|
|
||||||
start = data;
|
p = data;
|
||||||
|
|
||||||
for (p = start; *p != 0; p++)
|
/* We don't actually try to validate the URI according to RFC
|
||||||
if (*p == '\r' && *(p + 1) == '\n')
|
* 2396, or even check for allowed characters - we just ignore
|
||||||
{
|
* comments and trim whitespace off the ends. We also
|
||||||
char *name;
|
* allow LF delimination as well as the specified CRLF.
|
||||||
|
*
|
||||||
|
* We do allow comments like specified in RFC 2483.
|
||||||
|
*/
|
||||||
|
while (p)
|
||||||
|
{
|
||||||
|
if (*p != '#')
|
||||||
|
{
|
||||||
|
while (g_ascii_isspace (*p))
|
||||||
|
p++;
|
||||||
|
|
||||||
name = g_strndup (start, p - start);
|
q = p;
|
||||||
uris = g_slist_prepend (uris, name);
|
while (*q && (*q != '\n') && (*q != '\r'))
|
||||||
|
q++;
|
||||||
|
|
||||||
start = p + 2;
|
if (q > p)
|
||||||
p = start;
|
{
|
||||||
}
|
q--;
|
||||||
|
while (q > p && g_ascii_isspace (*q))
|
||||||
|
q--;
|
||||||
|
|
||||||
|
if (q > p)
|
||||||
|
uris = g_slist_prepend (uris, g_strndup (p, q - p + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p = strchr (p, '\n');
|
||||||
|
if (p)
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
uris = g_slist_reverse (uris);
|
uris = g_slist_reverse (uris);
|
||||||
return uris;
|
return uris;
|
||||||
@ -5075,7 +5096,7 @@ location_entry_set_from_list (GtkFileChooserDefault *impl,
|
|||||||
gtk_tree_path_free (tree_path);
|
gtk_tree_path_free (tree_path);
|
||||||
|
|
||||||
gtk_tree_model_sort_convert_iter_to_child_iter (impl->sort_model, &child_iter, &iter);
|
gtk_tree_model_sort_convert_iter_to_child_iter (impl->sort_model, &child_iter, &iter);
|
||||||
|
|
||||||
info = _gtk_file_system_model_get_info (impl->browse_files_model, &child_iter);
|
info = _gtk_file_system_model_get_info (impl->browse_files_model, &child_iter);
|
||||||
if (!info)
|
if (!info)
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user