diff options
author | Ramiro Estrugo <ramiro@src.gnome.org> | 2001-04-04 11:29:08 +0000 |
---|---|---|
committer | Ramiro Estrugo <ramiro@src.gnome.org> | 2001-04-04 11:29:08 +0000 |
commit | 55bc3d9a83d7ca7d6dbca116e7471f638e40d371 (patch) | |
tree | 7177c6822d15f369a786d69409129acece52ae1f | |
parent | 79b2a4e377c837458af676ebe34c8cdc866a5bfd (diff) | |
download | nautilus-55bc3d9a83d7ca7d6dbca116e7471f638e40d371.tar.gz |
Move vfs extensions to eel.
* libnautilus-extensions/nautilus-file-utilities.c:
* libnautilus-extensions/nautilus-file-utilities.h:
Move vfs extensions to eel.
* components/services/install-view/nautilus-service-install-view.c:
* components/services/install/server/main.c:
* components/services/inventory/eazel-inventory-collect-hardware.c:
(add_info):
* components/services/inventory/eazel-inventory-service.c:
(impl_Trilobite_Eazel_Inventory_upload):
* components/text/nautilus-text-view.c: (handle_service_menu_item):
* components/tree/nautilus-tree-view.c: (select_current_location),
(tree_load_location_callback), (got_activation_uri_callback):
* libnautilus-extensions/nautilus-bookmark.c:
(nautilus_bookmark_compare_with), (nautilus_bookmark_compare_uris),
(bookmark_file_changed_callback):
* libnautilus-extensions/nautilus-directory-async.c:
(top_left_cancel), (activation_uri_cancel), (top_left_start),
(activation_uri_start):
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_make_uri_canonical), (nautilus_directory_new),
(nautilus_directory_notify_files_moved),
(nautilus_self_check_directory):
* libnautilus-extensions/nautilus-drag.c:
(nautilus_drag_items_in_trash),
(nautilus_drag_default_drop_action_for_icons):
* libnautilus-extensions/nautilus-file-operations.c:
(format_and_ellipsize_uri_for_dialog),
(nautilus_file_operations_copy_move):
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_get_internal),
(nautilus_file_get_parent_uri_for_display),
(nautilus_file_can_rename), (nautilus_file_get_uri_scheme),
(nautilus_file_is_in_trash), (nautilus_self_check_file):
* libnautilus-extensions/nautilus-icon-dnd.c:
(nautilus_icon_container_selection_items_local):
* libnautilus-extensions/nautilus-icon-factory.c:
(nautilus_icon_factory_get_icon_name_for_file),
(nautilus_icon_factory_get_emblem_icons_for_file):
* libnautilus-extensions/nautilus-link.c:
(nautilus_link_local_get_image_uri):
* libnautilus-extensions/nautilus-metafile.c:
(construct_private_metafile_vfs_uri), (metafile_read_cancel),
(metafile_read_restart):
* libnautilus-extensions/nautilus-tabs.c:
* libnautilus-extensions/nautilus-theme.c:
* libnautilus-extensions/nautilus-thumbnails.c:
(make_thumbnail_uri):
* libnautilus-extensions/nautilus-trash-file.c:
(nautilus_trash_file_initialize):
* libnautilus-extensions/nautilus-trash-monitor.c:
(nautilus_trash_files_changed_callback),
(nautilus_trash_monitor_initialize):
* src/file-manager/fm-desktop-icon-view.c:
(update_trash_link_and_delete_copies):
* src/file-manager/fm-directory-view.c: (show_trash_callback),
(trash_or_delete_files_common),
(fm_directory_view_trash_or_delete_files),
(fm_directory_view_move_copy_items):
* src/file-manager/fm-properties-window.c:
(is_merged_trash_directory):
* src/nautilus-application.c:
(nautilus_make_uri_list_from_shell_strv):
* src/nautilus-first-time-druid.c: (read_file_handle_cancel_cover),
(initiate_file_download):
* src/nautilus-location-bar.c: (try_to_expand_path),
(nautilus_location_bar_set_location),
(nautilus_location_bar_get_location),
(nautilus_location_bar_update_label):
* src/nautilus-profiler.c:
(nautilus_profiler_bonobo_ui_report_callback):
* src/nautilus-property-browser.c: (add_pattern_to_browser),
(emblem_dialog_clicked):
* src/nautilus-sidebar.c: (receive_dropped_uri_list):
* src/nautilus-theme-selector.c: (add_theme_to_icons):
* src/nautilus-window-manage-views.c: (set_displayed_location),
(check_bookmark_location_matches), (handle_go_elsewhere),
(viewed_file_changed_callback), (determined_initial_view_callback),
(open_location_prefer_existing_window_callback),
(report_redirect_callback):
* src/nautilus-window-menus.c: (show_bogus_bookmark_window):
Update for vfs extensions move to eel. Also cleanup the #include
state of some of these files. Removed unused #includes. Remove
some cut-n-paste code in services components and use the
extensions in eel directly.
57 files changed, 519 insertions, 3838 deletions
@@ -1,5 +1,94 @@ 2001-04-04 Ramiro Estrugo <ramiro@eazel.com> + * libnautilus-extensions/nautilus-file-utilities.c: + * libnautilus-extensions/nautilus-file-utilities.h: + Move vfs extensions to eel. + + * components/services/install-view/nautilus-service-install-view.c: + * components/services/install/server/main.c: + * components/services/inventory/eazel-inventory-collect-hardware.c: + (add_info): + * components/services/inventory/eazel-inventory-service.c: + (impl_Trilobite_Eazel_Inventory_upload): + * components/text/nautilus-text-view.c: (handle_service_menu_item): + * components/tree/nautilus-tree-view.c: (select_current_location), + (tree_load_location_callback), (got_activation_uri_callback): + * libnautilus-extensions/nautilus-bookmark.c: + (nautilus_bookmark_compare_with), (nautilus_bookmark_compare_uris), + (bookmark_file_changed_callback): + * libnautilus-extensions/nautilus-directory-async.c: + (top_left_cancel), (activation_uri_cancel), (top_left_start), + (activation_uri_start): + * libnautilus-extensions/nautilus-directory-private.h: + * libnautilus-extensions/nautilus-directory.c: + (nautilus_directory_make_uri_canonical), (nautilus_directory_new), + (nautilus_directory_notify_files_moved), + (nautilus_self_check_directory): + * libnautilus-extensions/nautilus-drag.c: + (nautilus_drag_items_in_trash), + (nautilus_drag_default_drop_action_for_icons): + * libnautilus-extensions/nautilus-file-operations.c: + (format_and_ellipsize_uri_for_dialog), + (nautilus_file_operations_copy_move): + * libnautilus-extensions/nautilus-file.c: + (nautilus_file_get_internal), + (nautilus_file_get_parent_uri_for_display), + (nautilus_file_can_rename), (nautilus_file_get_uri_scheme), + (nautilus_file_is_in_trash), (nautilus_self_check_file): + * libnautilus-extensions/nautilus-icon-dnd.c: + (nautilus_icon_container_selection_items_local): + * libnautilus-extensions/nautilus-icon-factory.c: + (nautilus_icon_factory_get_icon_name_for_file), + (nautilus_icon_factory_get_emblem_icons_for_file): + * libnautilus-extensions/nautilus-link.c: + (nautilus_link_local_get_image_uri): + * libnautilus-extensions/nautilus-metafile.c: + (construct_private_metafile_vfs_uri), (metafile_read_cancel), + (metafile_read_restart): + * libnautilus-extensions/nautilus-tabs.c: + * libnautilus-extensions/nautilus-theme.c: + * libnautilus-extensions/nautilus-thumbnails.c: + (make_thumbnail_uri): + * libnautilus-extensions/nautilus-trash-file.c: + (nautilus_trash_file_initialize): + * libnautilus-extensions/nautilus-trash-monitor.c: + (nautilus_trash_files_changed_callback), + (nautilus_trash_monitor_initialize): + * src/file-manager/fm-desktop-icon-view.c: + (update_trash_link_and_delete_copies): + * src/file-manager/fm-directory-view.c: (show_trash_callback), + (trash_or_delete_files_common), + (fm_directory_view_trash_or_delete_files), + (fm_directory_view_move_copy_items): + * src/file-manager/fm-properties-window.c: + (is_merged_trash_directory): + * src/nautilus-application.c: + (nautilus_make_uri_list_from_shell_strv): + * src/nautilus-first-time-druid.c: (read_file_handle_cancel_cover), + (initiate_file_download): + * src/nautilus-location-bar.c: (try_to_expand_path), + (nautilus_location_bar_set_location), + (nautilus_location_bar_get_location), + (nautilus_location_bar_update_label): + * src/nautilus-profiler.c: + (nautilus_profiler_bonobo_ui_report_callback): + * src/nautilus-property-browser.c: (add_pattern_to_browser), + (emblem_dialog_clicked): + * src/nautilus-sidebar.c: (receive_dropped_uri_list): + * src/nautilus-theme-selector.c: (add_theme_to_icons): + * src/nautilus-window-manage-views.c: (set_displayed_location), + (check_bookmark_location_matches), (handle_go_elsewhere), + (viewed_file_changed_callback), (determined_initial_view_callback), + (open_location_prefer_existing_window_callback), + (report_redirect_callback): + * src/nautilus-window-menus.c: (show_bogus_bookmark_window): + Update for vfs extensions move to eel. Also cleanup the #include + state of some of these files. Removed unused #includes. Remove + some cut-n-paste code in services components and use the + extensions in eel directly. + +2001-04-04 Ramiro Estrugo <ramiro@eazel.com> + * README: Add new librsvg and eel dependency entries. diff --git a/components/services/install-view/nautilus-service-install-view.c b/components/services/install-view/nautilus-service-install-view.c index 7547217b8..012577baf 100644 --- a/components/services/install-view/nautilus-service-install-view.c +++ b/components/services/install-view/nautilus-service-install-view.c @@ -40,7 +40,6 @@ #include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-macros.h> #include <eel/eel-glib-extensions.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> #include <eel/eel-string.h> #include <eel/eel-label.h> #include <eel/eel-gdk-extensions.h> diff --git a/components/services/install/server/main.c b/components/services/install/server/main.c index f458252e4..000402d4b 100644 --- a/components/services/install/server/main.c +++ b/components/services/install/server/main.c @@ -34,8 +34,8 @@ #ifdef STOP_IN_DEBUG /* Also add - $(top_builddir)/libnautilus-extensions/nautilus-debug.o \ -to the ldadd line in Makefile.am + $(EEL_LIBS) \ + to the LDADD line in Makefile.am */ #include <eel/eel-debug.h> #endif diff --git a/components/services/inventory/eazel-inventory-collect-hardware.c b/components/services/inventory/eazel-inventory-collect-hardware.c index 042622356..9458654b5 100644 --- a/components/services/inventory/eazel-inventory-collect-hardware.c +++ b/components/services/inventory/eazel-inventory-collect-hardware.c @@ -28,6 +28,8 @@ #include "eazel-inventory-collect-hardware.h" +#include <eel/eel-string.h> + #include <stdio.h> #include <stdlib.h> #include <ctype.h> @@ -404,29 +406,6 @@ Host: scsi0 Channel: 00 Id: 04 Lun: 00 return bus_node; } - -/* ripped straight out of libnautilus-extensions because we didn't want the - * dependency for one small function - */ -static gboolean -str_has_prefix (const char *haystack, const char *needle) -{ - const char *h, *n; - - /* Eat one character at a time. */ - h = haystack == NULL ? "" : haystack; - n = needle == NULL ? "" : needle; - do { - if (*n == '\0') { - return TRUE; - } - if (*h == '\0') { - return FALSE; - } - } while (*h++ == *n++); - return FALSE; -} - /* utility routine to extract information from a string and add it to an XML node */ static void add_info (xmlNodePtr node_ptr, @@ -447,7 +426,7 @@ add_info (xmlNodePtr node_ptr, for (index = 0; index < 32; index++) { if (info_array[index] == NULL) break; - if (str_has_prefix (info_array[index], field_name)) { + if (eel_str_has_prefix (info_array[index], field_name)) { field_data = info_array[index] + strlen (field_name); field_data = strchr (field_data, ':') + 1; field_data = g_strchug (field_data); diff --git a/components/services/inventory/eazel-inventory-service.c b/components/services/inventory/eazel-inventory-service.c index fe28a14c8..9958bf300 100644 --- a/components/services/inventory/eazel-inventory-service.c +++ b/components/services/inventory/eazel-inventory-service.c @@ -22,31 +22,25 @@ */ #include <config.h> -#include <gnome.h> -#include <liboaf/liboaf.h> +#include "eazel-inventory-service.h" + +#include "eazel-inventory-service-interface.h" +#include "eazel-inventory-utils.h" #include <bonobo.h> +#include <eel/eel-vfs-extensions.h> +#include <gconf/gconf-client.h> #include <ghttp.h> - +#include <gnome.h> #include <libgnomevfs/gnome-vfs.h> - -#define DEBUG(X...) g_print("eazel-inventory-service: " X) - - -#include <gconf/gconf-client.h> - -#include <libtrilobite/libtrilobite.h> +#include <liboaf/liboaf.h> +#include <libtrilobite/libammonite.h> #include <libtrilobite/libtrilobite-service.h> - -#include <libnautilus-extensions/nautilus-file-utilities.h> +#include <libtrilobite/libtrilobite.h> /* FIXME: crack */ /*#include <libammonite/libammonite.h>*/ -#include <libtrilobite/libammonite.h> - -#include "eazel-inventory-utils.h" -#include "eazel-inventory-service.h" -#include "eazel-inventory-service-interface.h" +#define DEBUG(X...) g_print("eazel-inventory-service: " X) #define KEY_GCONF_EAZEL_INVENTORY_ENABLED "/apps/eazel-trilobite/inventory/enabled" @@ -264,7 +258,7 @@ impl_Trilobite_Eazel_Inventory_upload (PortableServer_Servant servant, /* TODO: store new MD5 */ path = eazel_inventory_local_path (); - result = nautilus_read_entire_file (path, &file_size, &file_contents); + result = eel_read_entire_file (path, &file_size, &file_contents); g_free (path); if (result != GNOME_VFS_OK) { /* g_warning(_("can't open tempory file hell\n")); */ diff --git a/components/text/nautilus-text-view.c b/components/text/nautilus-text-view.c index df9024c6a..dd3d48139 100644 --- a/components/text/nautilus-text-view.c +++ b/components/text/nautilus-text-view.c @@ -26,35 +26,32 @@ #include <config.h> #include "nautilus-text-view.h" -#include <gnome-xml/parser.h> -#include <gnome-xml/xmlmemory.h> - -#include <bonobo/bonobo-zoomable.h> #include <bonobo/bonobo-control.h> - -#include <libnautilus/libnautilus.h> -#include <libnautilus/nautilus-clipboard.h> +#include <bonobo/bonobo-zoomable.h> #include <eel/eel-background.h> -#include <libnautilus-extensions/nautilus-bonobo-extensions.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <libnautilus-extensions/nautilus-file.h> #include <eel/eel-gdk-extensions.h> #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-macros.h> -#include <eel/eel-string.h> -#include <libnautilus-extensions/nautilus-font-factory.h> #include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <eel/eel-xml-extensions.h> -#include <libnautilus-extensions/nautilus-global-preferences.h> - +#include <ghttp.h> +#include <gnome-xml/parser.h> +#include <gnome-xml/xmlmemory.h> #include <gnome.h> #include <gtk/gtkeventbox.h> #include <libgnome/gnome-i18n.h> #include <libgnomevfs/gnome-vfs.h> -#include <ghttp.h> - +#include <libnautilus-extensions/nautilus-bonobo-extensions.h> +#include <libnautilus-extensions/nautilus-file-utilities.h> +#include <libnautilus-extensions/nautilus-file.h> +#include <libnautilus-extensions/nautilus-font-factory.h> +#include <libnautilus-extensions/nautilus-global-preferences.h> +#include <libnautilus/libnautilus.h> +#include <libnautilus/nautilus-clipboard.h> #include <limits.h> #define MAX_SERVICE_ITEMS 32 @@ -495,7 +492,7 @@ handle_service_menu_item (BonoboUIComponent *ui, gpointer user_data, const char /* load the resultant page through gnome-vfs */ /* FIXME: This uses sync. I/O. */ - if (nautilus_read_entire_file (uri, &text_size, &text_ptr) == GNOME_VFS_OK) { + if (eel_read_entire_file (uri, &text_size, &text_ptr) == GNOME_VFS_OK) { gtk_editable_delete_text (GTK_EDITABLE (parameters->text_view->details->text_display), 0, -1); gtk_text_insert (GTK_TEXT (parameters->text_view->details->text_display), NULL, NULL, NULL, diff --git a/components/tree/nautilus-tree-view.c b/components/tree/nautilus-tree-view.c index 94ffaf294..a3a6965bf 100644 --- a/components/tree/nautilus-tree-view.c +++ b/components/tree/nautilus-tree-view.c @@ -30,6 +30,11 @@ #include "nautilus-tree-view-private.h" #include <bonobo/bonobo-control.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gtk/gtkmain.h> #include <gtk/gtkscrolledwindow.h> @@ -39,12 +44,8 @@ #include <libnautilus-extensions/nautilus-file-attributes.h> #include <libnautilus-extensions/nautilus-file-utilities.h> #include <libnautilus-extensions/nautilus-file.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-icon-factory.h> -#include <eel/eel-string.h> #include <stdio.h> #define DISPLAY_TIMEOUT_INTERVAL_MSECS 500 @@ -1357,7 +1358,7 @@ select_current_location (NautilusTreeView *view) cancel_selection_in_progress (view); /* FIXME bugzilla.eazel.com 6801: it seems likely that either - * nautilus_uris_match or nautilus_uris_match_ignore_fragments + * eel_uris_match or eel_uris_match_ignore_fragments * should be used here. */ if (eel_strcmp (view->details->current_main_view_uri, @@ -1380,7 +1381,7 @@ tree_load_location_callback (NautilusView *nautilus_view, nautilus_view_report_load_complete (nautilus_view); g_free (view->details->current_main_view_uri); - view->details->current_main_view_uri = nautilus_make_uri_canonical (location); + view->details->current_main_view_uri = eel_make_uri_canonical (location); select_current_location (view); } @@ -1528,7 +1529,7 @@ got_activation_uri_callback (NautilusFile *file, uri = nautilus_file_get_activation_uri (file); if (uri != NULL && - !nautilus_uris_match_ignore_fragments (view->details->current_main_view_uri, uri) && + !eel_uris_match_ignore_fragments (view->details->current_main_view_uri, uri) && strncmp (uri, "command:", strlen ("command:")) != 0) { nautilus_view_open_location_in_this_window (NAUTILUS_VIEW (view), uri); g_free (view->details->selected_uri); diff --git a/libnautilus-extensions/nautilus-bookmark.c b/libnautilus-extensions/nautilus-bookmark.c index 02d69c176..9c383e0ab 100644 --- a/libnautilus-extensions/nautilus-bookmark.c +++ b/libnautilus-extensions/nautilus-bookmark.c @@ -25,9 +25,12 @@ #include <config.h> #include "nautilus-bookmark.h" -#include <eel/eel-gtk-macros.h> #include "nautilus-icon-factory.h" +#include <eel/eel-gdk-pixbuf-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtkaccellabel.h> #include <gtk/gtksignal.h> #include <libgnome/gnome-defs.h> @@ -36,9 +39,6 @@ #include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-gdk-pixbuf-extensions.h> -#include <eel/eel-gtk-extensions.h> enum { APPEARANCE_CHANGED, @@ -152,7 +152,7 @@ nautilus_bookmark_compare_with (gconstpointer a, gconstpointer b) return 1; } - if (!nautilus_uris_match (bookmark_a->details->uri, + if (!eel_uris_match (bookmark_a->details->uri, bookmark_b->details->uri)) { return 1; } @@ -182,7 +182,7 @@ nautilus_bookmark_compare_uris (gconstpointer a, gconstpointer b) bookmark_a = NAUTILUS_BOOKMARK (a); bookmark_b = NAUTILUS_BOOKMARK (b); - return !nautilus_uris_match (bookmark_a->details->uri, + return !eel_uris_match (bookmark_a->details->uri, bookmark_b->details->uri); } @@ -380,7 +380,7 @@ bookmark_file_changed_callback (NautilusFile *file, NautilusBookmark *bookmark) should_emit_contents_changed_signal = FALSE; file_uri = nautilus_file_get_uri (file); - if (!nautilus_uris_match (bookmark->details->uri, file_uri)) { + if (!eel_uris_match (bookmark->details->uri, file_uri)) { g_free (bookmark->details->uri); bookmark->details->uri = file_uri; should_emit_contents_changed_signal = TRUE; diff --git a/libnautilus-extensions/nautilus-directory-async.c b/libnautilus-extensions/nautilus-directory-async.c index 6377e80ca..745d2b48d 100644 --- a/libnautilus-extensions/nautilus-directory-async.c +++ b/libnautilus-extensions/nautilus-directory-async.c @@ -65,12 +65,12 @@ struct TopLeftTextReadState { NautilusFile *file; - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; }; struct ActivationURIReadState { NautilusFile *file; - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; }; typedef struct { @@ -367,7 +367,7 @@ static void top_left_cancel (NautilusDirectory *directory) { if (directory->details->top_left_read_state != NULL) { - nautilus_read_file_cancel (directory->details->top_left_read_state->handle); + eel_read_file_cancel (directory->details->top_left_read_state->handle); g_free (directory->details->top_left_read_state); directory->details->top_left_read_state = NULL; @@ -379,7 +379,7 @@ static void activation_uri_cancel (NautilusDirectory *directory) { if (directory->details->activation_uri_read_state != NULL) { - nautilus_read_file_cancel (directory->details->activation_uri_read_state->handle); + eel_read_file_cancel (directory->details->activation_uri_read_state->handle); g_free (directory->details->activation_uri_read_state); directory->details->activation_uri_read_state = NULL; @@ -2467,7 +2467,7 @@ top_left_start (NautilusDirectory *directory) directory->details->top_left_read_state = g_new0 (TopLeftTextReadState, 1); directory->details->top_left_read_state->file = file; uri = nautilus_file_get_uri (file); - directory->details->top_left_read_state->handle = nautilus_read_file_async + directory->details->top_left_read_state->handle = eel_read_file_async (uri, top_left_read_callback, top_left_read_more_callback, @@ -2751,13 +2751,13 @@ activation_uri_start (NautilusDirectory *directory) directory->details->activation_uri_read_state->file = file; uri = nautilus_file_get_uri (file); if (gmc_style_link) { - directory->details->activation_uri_read_state->handle = nautilus_read_file_async + directory->details->activation_uri_read_state->handle = eel_read_file_async (uri, activation_uri_gmc_link_read_callback, activation_uri_gmc_link_read_more_callback, directory); } else { - directory->details->activation_uri_read_state->handle = nautilus_read_entire_file_async + directory->details->activation_uri_read_state->handle = eel_read_entire_file_async (uri, activation_uri_nautilus_link_read_callback, directory); diff --git a/libnautilus-extensions/nautilus-directory-private.h b/libnautilus-extensions/nautilus-directory-private.h index 68e239869..d11030d15 100644 --- a/libnautilus-extensions/nautilus-directory-private.h +++ b/libnautilus-extensions/nautilus-directory-private.h @@ -31,7 +31,7 @@ #include <gnome-xml/tree.h> #include "nautilus-file.h" -#include "nautilus-file-utilities.h" +#include <eel/eel-vfs-extensions.h> #include "nautilus-directory-metafile-monitor.h" #include "nautilus-metafile-server.h" #include <libnautilus/nautilus-idle-queue.h> diff --git a/libnautilus-extensions/nautilus-directory.c b/libnautilus-extensions/nautilus-directory.c index fe5a3ba9a..9166fa4d9 100644 --- a/libnautilus-extensions/nautilus-directory.c +++ b/libnautilus-extensions/nautilus-directory.c @@ -316,7 +316,7 @@ nautilus_directory_make_uri_canonical (const char *uri) char *with_slashes; size_t length; - canonical_maybe_trailing_slash = nautilus_make_uri_canonical (uri); + canonical_maybe_trailing_slash = eel_make_uri_canonical (uri); /* To NautilusDirectory, a uri with or without a trailing * / is equivalent. This is necessary to prevent separate @@ -495,7 +495,7 @@ nautilus_directory_new (const char *uri) g_assert (uri != NULL); - if (nautilus_uri_is_trash (uri)) { + if (eel_uri_is_trash (uri)) { directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_TRASH_DIRECTORY, NULL)); } else { directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_VFS_DIRECTORY, NULL)); @@ -1208,7 +1208,7 @@ nautilus_directory_notify_files_moved (GList *uri_pairs) nautilus_directory_unref (new_directory); /* Update the file's name. */ - name = nautilus_uri_get_basename (pair->to_uri); + name = eel_uri_get_basename (pair->to_uri); nautilus_file_update_name (file, name); g_free (name); @@ -1631,10 +1631,10 @@ nautilus_self_check_directory (void) EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical (""), "file:///"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:/"), "file:///"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:///"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("trash:xxx"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("GNOME-TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("gnome-trash:xxx"), NAUTILUS_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("TRASH:XXX"), EEL_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("trash:xxx"), EEL_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("GNOME-TRASH:XXX"), EEL_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("gnome-trash:xxx"), EEL_TRASH_URI); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:///home/mathieu/"), "file:///home/mathieu"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:///home/mathieu"), "file:///home/mathieu"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("ftp://mathieu:password@le-hackeur.org"), "ftp://mathieu:password@le-hackeur.org"); diff --git a/libnautilus-extensions/nautilus-drag.c b/libnautilus-extensions/nautilus-drag.c index 5735c1b44..e609993b3 100644 --- a/libnautilus-extensions/nautilus-drag.c +++ b/libnautilus-extensions/nautilus-drag.c @@ -27,22 +27,21 @@ #include <config.h> #include "nautilus-drag.h" +#include "nautilus-link.h" +#include <eel/eel-glib-extensions.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <gtk/gtkmain.h> +#include <libgnome/gnome-i18n.h> +#include <libgnomeui/gnome-popup-menu.h> +#include <libgnomeui/gnome-uidefs.h> #include <libgnomevfs/gnome-vfs-find-directory.h> +#include <libgnomevfs/gnome-vfs-ops.h> #include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> -#include <libgnomevfs/gnome-vfs-ops.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <libgnomeui/gnome-uidefs.h> -#include <libgnomeui/gnome-popup-menu.h> -#include <libgnome/gnome-i18n.h> #include <stdio.h> #include <string.h> -#include <gtk/gtkmain.h> - -#include <eel/eel-glib-extensions.h> -#include "nautilus-link.h" -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-string.h> #define NAUTILUS_COMMAND_SPECIFIER "command:" @@ -225,7 +224,7 @@ nautilus_drag_items_in_trash (const GList *selection_list) * we should really test each item but that would be slow for large selections * and currently dropped items can only be from the same container */ - return nautilus_uri_is_in_trash (((DragSelectionItem *)selection_list->data)->uri); + return eel_uri_is_in_trash (((DragSelectionItem *)selection_list->data)->uri); } gboolean @@ -314,7 +313,7 @@ nautilus_drag_default_drop_action_for_icons (GdkDragContext *context, } /* Check for trash URI. We do a find_directory for any Trash directory. */ - if (nautilus_uri_is_trash (target_uri_string)) { + if (eel_uri_is_trash (target_uri_string)) { result = gnome_vfs_find_directory (NULL, GNOME_VFS_DIRECTORY_KIND_TRASH, &target_uri, FALSE, FALSE, 0777); if (result != GNOME_VFS_OK) { diff --git a/libnautilus-extensions/nautilus-file-operations.c b/libnautilus-extensions/nautilus-file-operations.c index df0b46da5..3f9afe920 100644 --- a/libnautilus-extensions/nautilus-file-operations.c +++ b/libnautilus-extensions/nautilus-file-operations.c @@ -34,6 +34,8 @@ #include <eel/eel-glib-extensions.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-stock-dialogs.h> +#include <eel/eel-vfs-extensions.h> + #include <gnome.h> #include <gtk/gtklabel.h> #include <libgnomevfs/gnome-vfs-async-ops.h> @@ -43,10 +45,9 @@ #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> #include <libnautilus-extensions/nautilus-file-changes-queue.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <libnautilus-extensions/nautilus-global-preferences.h> -#include <libnautilus-extensions/nautilus-link.h> -#include <libnautilus-extensions/nautilus-trash-monitor.h> +#include "nautilus-global-preferences.h" +#include "nautilus-link.h" +#include "nautilus-trash-monitor.h" typedef enum { TRANSFER_MOVE, @@ -247,7 +248,7 @@ format_and_ellipsize_uri_for_dialog (const char *uri) { char *unescaped, *result; - unescaped = nautilus_format_uri_for_display (uri); + unescaped = eel_format_uri_for_display (uri); result = ellipsize_string_for_dialog (unescaped); g_free (unescaped); @@ -1726,7 +1727,7 @@ nautilus_file_operations_copy_move (const GList *item_uris, move_options = GNOME_VFS_XFER_RECURSIVE; if (target_dir != NULL) { - if (nautilus_uri_is_trash (target_dir)) { + if (eel_uri_is_trash (target_dir)) { target_is_trash = TRUE; } else { target_dir_uri = gnome_vfs_uri_new (target_dir); diff --git a/libnautilus-extensions/nautilus-file-utilities.c b/libnautilus-extensions/nautilus-file-utilities.c index d93f8a75a..e63df3514 100644 --- a/libnautilus-extensions/nautilus-file-utilities.c +++ b/libnautilus-extensions/nautilus-file-utilities.c @@ -56,794 +56,6 @@ #define NAUTILUS_USER_MAIN_DIRECTORY_NAME "Nautilus" -#define READ_CHUNK_SIZE 8192 - -struct NautilusReadFileHandle { - GnomeVFSAsyncHandle *handle; - NautilusReadFileCallback callback; - NautilusReadMoreCallback read_more_callback; - gpointer callback_data; - gboolean is_open; - char *buffer; - GnomeVFSFileSize bytes_read; -}; - -#undef PTHREAD_ASYNC_READ - -#ifndef PTHREAD_ASYNC_READ -static void read_file_read_chunk (NautilusReadFileHandle *handle); -#endif - -/** - * nautilus_format_uri_for_display: - * - * Filter, modify, unescape and change URIs to make them appropriate - * to display to users. - * - * Rules: - * file: URI's without fragments should appear as local paths - * file: URI's with fragments should appear as file: URI's - * All other URI's appear as expected - * - * @uri: a URI - * - * returns a g_malloc'd string - **/ -char * -nautilus_format_uri_for_display (const char *uri) -{ - char *canonical_uri, *path; - - g_return_val_if_fail (uri != NULL, g_strdup ("")); - - canonical_uri = nautilus_make_uri_canonical (uri); - - /* If there's no fragment and it's a local path. */ - path = gnome_vfs_get_local_path_from_uri (canonical_uri); - if (path != NULL) { - g_free (canonical_uri); - return path; - } - - g_free (path); - return canonical_uri; -} - -static gboolean -is_valid_scheme_character (char c) -{ - return isalnum ((guchar) c) || c == '+' || c == '-' || c == '.'; -} - -static gboolean -has_valid_scheme (const char *uri) -{ - const char *p; - - p = uri; - - if (!is_valid_scheme_character (*p)) { - return FALSE; - } - - do { - p++; - } while (is_valid_scheme_character (*p)); - - return *p == ':'; -} - -/** - * nautilus_make_uri_from_input: - * - * Takes a user input path/URI and makes a valid URI - * out of it - * - * @location: a possibly mangled "uri" - * - * returns a newly allocated uri - * - **/ -char * -nautilus_make_uri_from_input (const char *location) -{ - char *stripped, *path, *uri; - - g_return_val_if_fail (location != NULL, g_strdup ("")); - - /* Strip off leading and trailing spaces. - * This makes copy/paste of URIs less error-prone. - */ - stripped = g_strstrip (g_strdup (location)); - - switch (stripped[0]) { - case '\0': - uri = g_strdup (""); - break; - case '/': - uri = gnome_vfs_get_uri_from_local_path (stripped); - break; - case '~': - path = gnome_vfs_expand_initial_tilde (stripped); - /* deliberately falling into default case on fail */ - if (*path == '/') { - uri = gnome_vfs_get_uri_from_local_path (path); - g_free (path); - break; - } - g_free (path); - /* don't insert break here, read above comment */ - default: - if (has_valid_scheme (stripped)) { - uri = g_strdup (stripped); - } else { - uri = g_strconcat ("http://", stripped, NULL); - } - } - - g_free (stripped); - - return uri; -} - -/* Note that NULL's and full paths are also handled by this function. - * A NULL location will return the current working directory - */ -static char * -file_uri_from_local_relative_path (const char *location) -{ - char *current_dir; - char *base_uri, *base_uri_slash; - char *location_escaped; - char *uri; - - current_dir = g_get_current_dir (); - base_uri = gnome_vfs_get_uri_from_local_path (current_dir); - /* g_get_current_dir returns w/o trailing / */ - base_uri_slash = g_strconcat (base_uri, "/", NULL); - - location_escaped = gnome_vfs_escape_path_string (location); - - uri = nautilus_uri_make_full_from_relative (base_uri_slash, location_escaped); - - g_free (location_escaped); - g_free (base_uri_slash); - g_free (base_uri); - g_free (current_dir); - - return uri; -} - -/** - * nautilus_make_uri_from_shell_arg: - * - * Similar to nautilus_make_uri_from_input, except that: - * - * 1) guesses relative paths instead of http domains - * 2) doesn't bother stripping leading/trailing white space - * 3) doesn't bother with ~ expansion--that's done by the shell - * - * @location: a possibly mangled "uri" - * - * returns a newly allocated uri - * - **/ -char * -nautilus_make_uri_from_shell_arg (const char *location) -{ - char *uri; - - g_return_val_if_fail (location != NULL, g_strdup ("")); - - switch (location[0]) { - case '\0': - uri = g_strdup (""); - break; - case '/': - uri = gnome_vfs_get_uri_from_local_path (location); - break; - default: - if (has_valid_scheme (location)) { - uri = g_strdup (location); - } else { - uri = file_uri_from_local_relative_path (location); - } - } - - return uri; -} - -char * -nautilus_uri_get_basename (const char *uri) -{ - GnomeVFSURI *vfs_uri; - char *name; - - /* Make VFS version of URI. */ - vfs_uri = gnome_vfs_uri_new (uri); - if (vfs_uri == NULL) { - return NULL; - } - - /* Extract name part. */ - name = gnome_vfs_uri_extract_short_name (vfs_uri); - gnome_vfs_uri_unref (vfs_uri); - - return name; -} - -char * -nautilus_uri_get_scheme (const char *uri) -{ - char *colon; - - g_return_val_if_fail (uri != NULL, NULL); - - colon = strchr (uri, ':'); - - if (colon == NULL) { - return NULL; - } - - return g_strndup (uri, colon - uri); -} - - -static gboolean -is_uri_partial (const char *uri) -{ - const char *current; - - /* RFC 2396 section 3.1 */ - for (current = uri ; - *current - && ((*current >= 'a' && *current <= 'z') - || (*current >= 'A' && *current <= 'Z') - || (*current >= '0' && *current <= '9') - || ('-' == *current) - || ('+' == *current) - || ('.' == *current)) ; - current++); - - return !(':' == *current); -} - -/* - * Remove "./" segments - * Compact "../" segments inside the URI - * Remove "." at the end of the URL - * Leave any ".."'s at the beginning of the URI - */ - -/* - * FIXME this is not the simplest or most time-efficent way - * to do this. Probably a far more clear way of doing this processing - * is to split the path into segments, rather than doing the processing - * in place. - */ -static void -remove_internal_relative_components (char *uri_current) -{ - char *segment_prev, *segment_cur; - size_t len_prev, len_cur; - - len_prev = len_cur = 0; - segment_prev = NULL; - - g_return_if_fail (uri_current != NULL); - - segment_cur = uri_current; - - while (*segment_cur) { - len_cur = strcspn (segment_cur, "/"); - - if (len_cur == 1 && segment_cur[0] == '.') { - /* Remove "." 's */ - if (segment_cur[1] == '\0') { - segment_cur[0] = '\0'; - break; - } else { - memmove (segment_cur, segment_cur + 2, strlen (segment_cur + 2) + 1); - continue; - } - } else if (len_cur == 2 && segment_cur[0] == '.' && segment_cur[1] == '.' ) { - /* Remove ".."'s (and the component to the left of it) that aren't at the - * beginning or to the right of other ..'s - */ - if (segment_prev) { - if (! (len_prev == 2 - && segment_prev[0] == '.' - && segment_prev[1] == '.')) { - if (segment_cur[2] == '\0') { - segment_prev[0] = '\0'; - break; - } else { - memmove (segment_prev, segment_cur + 3, strlen (segment_cur + 3) + 1); - - segment_cur = segment_prev; - len_cur = len_prev; - - /* now we find the previous segment_prev */ - if (segment_prev == uri_current) { - segment_prev = NULL; - } else if (segment_prev - uri_current >= 2) { - segment_prev -= 2; - for ( ; segment_prev > uri_current && segment_prev[0] != '/' - ; segment_prev-- ); - if (segment_prev[0] == '/') { - segment_prev++; - } - } - continue; - } - } - } - } - - /*Forward to next segment */ - - if (segment_cur [len_cur] == '\0') { - break; - } - - segment_prev = segment_cur; - len_prev = len_cur; - segment_cur += len_cur + 1; - } -} - - -/** - * nautilus_uri_make_full_from_relative: - * - * Returns a full URI given a full base URI, and a secondary URI which may - * be relative. - * - * Return value: the URI (NULL for some bad errors). - * - * FIXME: This code has been copied from nautilus-mozilla-content-view - * because nautilus-mozilla-content-view cannot link with libnautilus-extensions - * due to lame license issues. Really, this belongs in gnome-vfs, but was added - * after the Gnome 1.4 gnome-vfs API freeze - **/ - -char * -nautilus_uri_make_full_from_relative (const char *base_uri, const char *relative_uri) -{ - char *result = NULL; - - /* See section 5.2 in RFC 2396 */ - - if (base_uri == NULL && relative_uri == NULL) { - result = NULL; - } else if (base_uri == NULL) { - result = g_strdup (relative_uri); - } else if (relative_uri == NULL) { - result = g_strdup (base_uri); - } else if (!is_uri_partial (relative_uri)) { - result = g_strdup (relative_uri); - } else { - char *mutable_base_uri; - char *mutable_uri; - - char *uri_current; - size_t base_uri_length; - char *separator; - - mutable_base_uri = g_strdup (base_uri); - uri_current = mutable_uri = g_strdup (relative_uri); - - /* Chew off Fragment and Query from the base_url */ - - separator = strrchr (mutable_base_uri, '#'); - - if (separator) { - *separator = '\0'; - } - - separator = strrchr (mutable_base_uri, '?'); - - if (separator) { - *separator = '\0'; - } - - if ('/' == uri_current[0] && '/' == uri_current [1]) { - /* Relative URI's beginning with the authority - * component inherit only the scheme from their parents - */ - - separator = strchr (mutable_base_uri, ':'); - - if (separator) { - separator[1] = '\0'; - } - } else if ('/' == uri_current[0]) { - /* Relative URI's beginning with '/' absolute-path based - * at the root of the base uri - */ - - separator = strchr (mutable_base_uri, ':'); - - /* g_assert (separator), really */ - if (separator) { - /* If we start with //, skip past the authority section */ - if ('/' == separator[1] && '/' == separator[2]) { - separator = strchr (separator + 3, '/'); - if (separator) { - separator[0] = '\0'; - } - } else { - /* If there's no //, just assume the scheme is the root */ - separator[1] = '\0'; - } - } - } else if ('#' != uri_current[0]) { - /* Handle the ".." convention for relative uri's */ - - /* If there's a trailing '/' on base_url, treat base_url - * as a directory path. - * Otherwise, treat it as a file path, and chop off the filename - */ - - base_uri_length = strlen (mutable_base_uri); - if ('/' == mutable_base_uri[base_uri_length-1]) { - /* Trim off '/' for the operation below */ - mutable_base_uri[base_uri_length-1] = 0; - } else { - separator = strrchr (mutable_base_uri, '/'); - if (separator) { - *separator = '\0'; - } - } - - remove_internal_relative_components (uri_current); - - /* handle the "../"'s at the beginning of the relative URI */ - while (0 == strncmp ("../", uri_current, 3)) { - uri_current += 3; - separator = strrchr (mutable_base_uri, '/'); - if (separator) { - *separator = '\0'; - } else { - /* <shrug> */ - break; - } - } - - /* handle a ".." at the end */ - if (uri_current[0] == '.' && uri_current[1] == '.' - && uri_current[2] == '\0') { - - uri_current += 2; - separator = strrchr (mutable_base_uri, '/'); - if (separator) { - *separator = '\0'; - } - } - - /* Re-append the '/' */ - mutable_base_uri [strlen(mutable_base_uri)+1] = '\0'; - mutable_base_uri [strlen(mutable_base_uri)] = '/'; - } - - result = g_strconcat (mutable_base_uri, uri_current, NULL); - g_free (mutable_base_uri); - g_free (mutable_uri); - } - - return result; -} - - -gboolean -nautilus_uri_is_trash (const char *uri) -{ - return eel_istr_has_prefix (uri, "trash:") - || eel_istr_has_prefix (uri, "gnome-trash:"); -} - -gboolean -nautilus_uri_is_trash_folder (const char *uri) -{ - GnomeVFSURI *vfs_uri, *trash_vfs_uri; - gboolean result; - - /* Use a check for the actual trash first so that the trash - * itself will be "in trash". There are fancier ways to do - * this, but lets start with this. - */ - if (nautilus_uri_is_trash (uri)) { - return TRUE; - } - - vfs_uri = gnome_vfs_uri_new (uri); - if (vfs_uri == NULL) { - return FALSE; - } - - result = gnome_vfs_find_directory - (vfs_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, - &trash_vfs_uri, FALSE, FALSE, 0777) == GNOME_VFS_OK; - - if (result) { - result = gnome_vfs_uri_equal (trash_vfs_uri, vfs_uri); - gnome_vfs_uri_unref (trash_vfs_uri); - } - - gnome_vfs_uri_unref (vfs_uri); - - return result; -} - - -gboolean -nautilus_uri_is_in_trash (const char *uri) -{ - GnomeVFSURI *vfs_uri, *trash_vfs_uri; - gboolean result; - - /* Use a check for the actual trash first so that the trash - * itself will be "in trash". There are fancier ways to do - * this, but lets start with this. - */ - if (nautilus_uri_is_trash (uri)) { - return TRUE; - } - - vfs_uri = gnome_vfs_uri_new (uri); - if (vfs_uri == NULL) { - return FALSE; - } - - result = gnome_vfs_find_directory - (vfs_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, - &trash_vfs_uri, FALSE, FALSE, 0777) == GNOME_VFS_OK; - - if (result) { - result = gnome_vfs_uri_equal (trash_vfs_uri, vfs_uri) - || gnome_vfs_uri_is_parent (trash_vfs_uri, vfs_uri, TRUE); - gnome_vfs_uri_unref (trash_vfs_uri); - } - - gnome_vfs_uri_unref (vfs_uri); - - return result; -} - - -static gboolean -nautilus_uri_is_local_scheme (const char *uri) -{ - gboolean is_local_scheme; - char *temp_scheme; - int i; - char *local_schemes[] = {"file:", "help:", "ghelp:", "gnome-help:", - "trash:", "man:", "info:", - "hardware:", "search:", "pipe:", - "gnome-trash:", NULL}; - - is_local_scheme = FALSE; - for (temp_scheme = *local_schemes, i = 0; temp_scheme != NULL; i++, temp_scheme = local_schemes[i]) { - is_local_scheme = eel_istr_has_prefix (uri, temp_scheme); - if (is_local_scheme) { - break; - } - } - - - return is_local_scheme; -} - -static char * -nautilus_handle_trailing_slashes (const char *uri) -{ - char *temp, *uri_copy; - gboolean previous_char_is_column, previous_chars_are_slashes_without_column; - gboolean previous_chars_are_slashes_with_column; - gboolean is_local_scheme; - - g_assert (uri != NULL); - - uri_copy = g_strdup (uri); - if (strlen (uri_copy) <= 2) { - return uri_copy; - } - - is_local_scheme = nautilus_uri_is_local_scheme (uri); - - previous_char_is_column = FALSE; - previous_chars_are_slashes_without_column = FALSE; - previous_chars_are_slashes_with_column = FALSE; - - /* remove multiple trailing slashes */ - for (temp = uri_copy; *temp != '\0'; temp++) { - if (*temp == '/' && !previous_char_is_column) { - previous_chars_are_slashes_without_column = TRUE; - } else if (*temp == '/' && previous_char_is_column) { - previous_chars_are_slashes_without_column = FALSE; - previous_char_is_column = TRUE; - previous_chars_are_slashes_with_column = TRUE; - } else { - previous_chars_are_slashes_without_column = FALSE; - previous_char_is_column = FALSE; - previous_chars_are_slashes_with_column = FALSE; - } - - if (*temp == ':') { - previous_char_is_column = TRUE; - } - } - - if (*temp == '\0' && previous_chars_are_slashes_without_column) { - if (is_local_scheme) { - /* go back till you remove them all. */ - for (temp--; *(temp) == '/'; temp--) { - *temp = '\0'; - } - } else { - /* go back till you remove them all but one. */ - for (temp--; *(temp - 1) == '/'; temp--) { - *temp = '\0'; - } - } - } - - if (*temp == '\0' && previous_chars_are_slashes_with_column) { - /* go back till you remove them all but three. */ - for (temp--; *(temp - 3) != ':' && *(temp - 2) != ':' && *(temp - 1) != ':'; temp--) { - *temp = '\0'; - } - } - - - return uri_copy; -} - -char * -nautilus_make_uri_canonical (const char *uri) -{ - char *canonical_uri, *old_uri, *p; - gboolean relative_uri; - - relative_uri = FALSE; - - if (uri == NULL) { - return NULL; - } - - /* Convert "gnome-trash:<anything>" and "trash:<anything>" to - * "trash:". - */ - if (nautilus_uri_is_trash (uri)) { - return g_strdup (NAUTILUS_TRASH_URI); - } - - /* FIXME bugzilla.eazel.com 648: - * This currently ignores the issue of two uris that are not identical but point - * to the same data except for the specific cases of trailing '/' characters, - * file:/ and file:///, and "lack of file:". - */ - - canonical_uri = nautilus_handle_trailing_slashes (uri); - - /* Note: In some cases, a trailing slash means nothing, and can - * be considered equivalent to no trailing slash. But this is - * not true in every case; specifically not for web addresses passed - * to a web-browser. So we don't have the trailing-slash-equivalence - * logic here, but we do use that logic in NautilusDirectory where - * the rules are more strict. - */ - - /* Add file: if there is no scheme. */ - if (strchr (canonical_uri, ':') == NULL) { - old_uri = canonical_uri; - - if (old_uri[0] != '/') { - /* FIXME bugzilla.eazel.com 5069: - * bandaid alert. Is this really the right thing to do? - * - * We got what really is a relative path. We do a little bit of - * a stretch here and assume it was meant to be a cryptic absolute path, - * and convert it to one. Since we can't call gnome_vfs_uri_new and - * gnome_vfs_uri_to_string to do the right make-canonical conversion, - * we have to do it ourselves. - */ - relative_uri = TRUE; - canonical_uri = gnome_vfs_make_path_name_canonical (old_uri); - g_free (old_uri); - old_uri = canonical_uri; - canonical_uri = g_strconcat ("file:///", old_uri, NULL); - } else { - canonical_uri = g_strconcat ("file:", old_uri, NULL); - } - g_free (old_uri); - } - - /* Lower-case the scheme. */ - for (p = canonical_uri; *p != ':'; p++) { - g_assert (*p != '\0'); - if (isupper (*p)) { - *p = tolower (*p); - } - } - - if (!relative_uri) { - old_uri = canonical_uri; - canonical_uri = gnome_vfs_make_uri_canonical (canonical_uri); - if (canonical_uri != NULL) { - g_free (old_uri); - } else { - canonical_uri = old_uri; - } - } - - /* FIXME bugzilla.eazel.com 2802: - * Work around gnome-vfs's desire to convert file:foo into file://foo - * by converting to file:///foo here. When you remove this, check that - * typing "foo" into location bar does not crash and returns an error - * rather than displaying the contents of / - */ - if (eel_str_has_prefix (canonical_uri, "file://") - && !eel_str_has_prefix (canonical_uri, "file:///")) { - old_uri = canonical_uri; - canonical_uri = g_strconcat ("file:/", old_uri + 5, NULL); - g_free (old_uri); - } - - return canonical_uri; -} - -char * -nautilus_make_uri_canonical_strip_fragment (const char *uri) -{ - const char *fragment; - char *without_fragment, *canonical; - - fragment = strchr (uri, '#'); - if (fragment == NULL) { - return nautilus_make_uri_canonical (uri); - } - - without_fragment = g_strndup (uri, fragment - uri); - canonical = nautilus_make_uri_canonical (without_fragment); - g_free (without_fragment); - return canonical; -} - -static gboolean -uris_match (const char *uri_1, const char *uri_2, gboolean ignore_fragments) -{ - char *canonical_1, *canonical_2; - gboolean result; - - if (ignore_fragments) { - canonical_1 = nautilus_make_uri_canonical_strip_fragment (uri_1); - canonical_2 = nautilus_make_uri_canonical_strip_fragment (uri_2); - } else { - canonical_1 = nautilus_make_uri_canonical (uri_1); - canonical_2 = nautilus_make_uri_canonical (uri_2); - } - - result = eel_str_is_equal (canonical_1, canonical_2); - - g_free (canonical_1); - g_free (canonical_2); - - return result; -} - -gboolean -nautilus_uris_match (const char *uri_1, const char *uri_2) -{ - return uris_match (uri_1, uri_2, FALSE); -} - -gboolean -nautilus_uris_match_ignore_fragments (const char *uri_1, const char *uri_2) -{ - return uris_match (uri_1, uri_2, TRUE); -} - gboolean nautilus_file_name_matches_hidden_pattern (const char *name_or_relative_uri) { @@ -1046,20 +258,6 @@ nautilus_get_pixmap_directory (void) return g_strdup (DATADIR "/pixmaps/nautilus"); } -/* convenience routine to use gnome-vfs to test if a string is a remote uri */ -gboolean -nautilus_is_remote_uri (const char *uri) -{ - gboolean is_local; - GnomeVFSURI *vfs_uri; - - vfs_uri = gnome_vfs_uri_new (uri); - is_local = gnome_vfs_uri_is_local (vfs_uri); - gnome_vfs_uri_unref(vfs_uri); - return !is_local; -} - - /* FIXME bugzilla.eazel.com 2423: * Callers just use this and dereference so we core dump if * pixmaps are missing. That is lame. @@ -1086,571 +284,6 @@ nautilus_pixmap_file (const char *partial_path) return NULL; } -GnomeVFSResult -nautilus_read_entire_file (const char *uri, - int *file_size, - char **file_contents) -{ - GnomeVFSResult result; - GnomeVFSHandle *handle; - char *buffer; - GnomeVFSFileSize total_bytes_read; - GnomeVFSFileSize bytes_read; - - *file_size = 0; - *file_contents = NULL; - - /* Open the file. */ - result = gnome_vfs_open (&handle, uri, GNOME_VFS_OPEN_READ); - if (result != GNOME_VFS_OK) { - return result; - } - - /* Read the whole thing. */ - buffer = NULL; - total_bytes_read = 0; - do { - buffer = g_realloc (buffer, total_bytes_read + READ_CHUNK_SIZE); - result = gnome_vfs_read (handle, - buffer + total_bytes_read, - READ_CHUNK_SIZE, - &bytes_read); - if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { - g_free (buffer); - gnome_vfs_close (handle); - return result; - } - - /* Check for overflow. */ - if (total_bytes_read + bytes_read < total_bytes_read) { - g_free (buffer); - gnome_vfs_close (handle); - return GNOME_VFS_ERROR_TOO_BIG; - } - - total_bytes_read += bytes_read; - } while (result == GNOME_VFS_OK); - - /* Close the file. */ - result = gnome_vfs_close (handle); - if (result != GNOME_VFS_OK) { - g_free (buffer); - return result; - } - - /* Return the file. */ - *file_size = total_bytes_read; - *file_contents = g_realloc (buffer, total_bytes_read); - return GNOME_VFS_OK; -} - -#ifndef PTHREAD_ASYNC_READ -/* When close is complete, there's no more work to do. */ -static void -read_file_close_callback (GnomeVFSAsyncHandle *handle, - GnomeVFSResult result, - gpointer callback_data) -{ -} - -/* Do a close if it's needed. - * Be sure to get this right, or we have extra threads hanging around. - */ -static void -read_file_close (NautilusReadFileHandle *read_handle) -{ - if (read_handle->is_open) { - gnome_vfs_async_close (read_handle->handle, - read_file_close_callback, - NULL); - read_handle->is_open = FALSE; - } -} - -/* Close the file and then tell the caller we succeeded, handing off - * the buffer to the caller. - */ -static void -read_file_succeeded (NautilusReadFileHandle *read_handle) -{ - read_file_close (read_handle); - - /* Reallocate the buffer to the exact size since it might be - * around for a while. - */ - (* read_handle->callback) (GNOME_VFS_OK, - read_handle->bytes_read, - g_realloc (read_handle->buffer, - read_handle->bytes_read), - read_handle->callback_data); - - g_free (read_handle); -} - -/* Tell the caller we failed. */ -static void -read_file_failed (NautilusReadFileHandle *read_handle, GnomeVFSResult result) -{ - read_file_close (read_handle); - g_free (read_handle->buffer); - - (* read_handle->callback) (result, 0, NULL, read_handle->callback_data); - g_free (read_handle); -} - -/* A read is complete, so we might or might not be done. */ -static void -read_file_read_callback (GnomeVFSAsyncHandle *handle, - GnomeVFSResult result, - gpointer buffer, - GnomeVFSFileSize bytes_requested, - GnomeVFSFileSize bytes_read, - gpointer callback_data) -{ - NautilusReadFileHandle *read_handle; - gboolean read_more; - - /* Do a few reality checks. */ - g_assert (bytes_requested == READ_CHUNK_SIZE); - read_handle = callback_data; - g_assert (read_handle->handle == handle); - g_assert (read_handle->buffer + read_handle->bytes_read == buffer); - g_assert (bytes_read <= bytes_requested); - - /* Check for a failure. */ - if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { - read_file_failed (read_handle, result); - return; - } - - /* Check for the extremely unlikely case where the file size overflows. */ - if (read_handle->bytes_read + bytes_read < read_handle->bytes_read) { - read_file_failed (read_handle, GNOME_VFS_ERROR_TOO_BIG); - return; - } - - /* Bump the size. */ - read_handle->bytes_read += bytes_read; - - /* Read more unless we are at the end of the file. */ - if (bytes_read == 0 || result != GNOME_VFS_OK) { - read_more = FALSE; - } else { - if (read_handle->read_more_callback == NULL) { - read_more = TRUE; - } else { - read_more = (* read_handle->read_more_callback) - (read_handle->bytes_read, - read_handle->buffer, - read_handle->callback_data); - } - } - if (read_more) { - read_file_read_chunk (read_handle); - return; - } - - /* If at the end of the file, we win! */ - read_file_succeeded (read_handle); -} - -/* Start reading a chunk. */ -static void -read_file_read_chunk (NautilusReadFileHandle *handle) -{ - handle->buffer = g_realloc (handle->buffer, handle->bytes_read + READ_CHUNK_SIZE); - gnome_vfs_async_read (handle->handle, - handle->buffer + handle->bytes_read, - READ_CHUNK_SIZE, - read_file_read_callback, - handle); -} - -/* Once the open is finished, read a first chunk. */ -static void -read_file_open_callback (GnomeVFSAsyncHandle *handle, - GnomeVFSResult result, - gpointer callback_data) -{ - NautilusReadFileHandle *read_handle; - - read_handle = callback_data; - g_assert (read_handle->handle == handle); - - /* Handle the failure case. */ - if (result != GNOME_VFS_OK) { - read_file_failed (read_handle, result); - return; - } - - /* Handle success by reading the first chunk. */ - read_handle->is_open = TRUE; - read_file_read_chunk (read_handle); -} - -#else - -typedef struct { - NautilusReadFileCallback callback; - NautilusReadMoreCallback more_callback; - gpointer callback_data; - pthread_mutex_t *callback_result_ready_semaphore; - gboolean synch_callback_result; - - GnomeVFSResult result; - GnomeVFSFileSize file_size; - char *buffer; -} NautilusAsyncReadFileCallbackData; - -static int -pthread_nautilus_read_file_callback_idle_binder (void *cast_to_context) -{ - NautilusAsyncReadFileCallbackData *context; - - context = (NautilusAsyncReadFileCallbackData *)cast_to_context; - - if (context->more_callback) { - g_assert (context->callback_result_ready_semaphore != NULL); - /* Synchronous callback flavor, wait for the return value. */ - context->synch_callback_result = (* context->more_callback) (context->file_size, - context->buffer, context->callback_data); - /* Got the result, release the master thread */ - pthread_mutex_unlock (context->callback_result_ready_semaphore); - } else { - /* Asynchronous callback flavor, don't wait for the result. */ - (* context->callback) (context->result, context->file_size, - context->buffer, context->callback_data); - - /* We assume ownership of data here in the async call and have to - * free it. - */ - g_free (context); - } - - return FALSE; -} - -static gboolean -pthread_nautilus_read_file_callback_common (NautilusReadFileCallback callback, - NautilusReadMoreCallback more_callback, gpointer callback_data, - GnomeVFSResult error, GnomeVFSFileSize file_size, - char *buffer, pthread_mutex_t *callback_result_ready_semaphore) -{ - NautilusAsyncReadFileCallbackData *data; - gboolean result; - - g_assert ((callback == NULL) != (more_callback == NULL)); - g_assert ((more_callback != NULL) == (callback_result_ready_semaphore != NULL)); - - result = FALSE; - data = g_new0 (NautilusAsyncReadFileCallbackData, 1); - data->callback = callback; - data->more_callback = more_callback; - data->callback_data = callback_data; - data->callback_result_ready_semaphore = callback_result_ready_semaphore; - data->result = error; - data->file_size = file_size; - data->buffer = buffer; - - /* Set up the callback to get called in the main thread. */ - g_idle_add (pthread_nautilus_read_file_callback_idle_binder, data); - - if (callback_result_ready_semaphore != NULL) { - /* Block until callback deposits the return value. This is not optimal but we do it - * to emulate the nautilus_read_file_async call behavior. - */ - pthread_mutex_lock (callback_result_ready_semaphore); - result = data->synch_callback_result; - - /* In the synch call we still own data here and need to free it. */ - g_free (data); - - } - - return result; -} - -static gboolean -pthread_nautilus_read_file_synchronous_callback (NautilusReadMoreCallback callback, - gpointer callback_data, GnomeVFSFileSize file_size, - char *buffer, pthread_mutex_t *callback_result_ready_semaphore) -{ - return pthread_nautilus_read_file_callback_common(NULL, callback, - callback_data, GNOME_VFS_OK, file_size, buffer, callback_result_ready_semaphore); -} - -static void -pthread_nautilus_read_file_asynchronous_callback (NautilusReadFileCallback callback, - gpointer callback_data, GnomeVFSResult result, GnomeVFSFileSize file_size, - char *buffer) -{ - pthread_nautilus_read_file_callback_common(callback, NULL, - callback_data, result, file_size, buffer, NULL); -} - -typedef struct { - NautilusReadFileHandle handle; - char *uri; - volatile gboolean cancel_requested; - /* Expose the synch callback semaphore to allow the cancel call to unlock it. */ - pthread_mutex_t *callback_result_ready_semaphore; -} NautilusAsyncReadFileData; - -static void * -pthread_nautilus_read_file_thread_entry (void *cast_to_data) -{ - NautilusAsyncReadFileData *data; - GnomeVFSResult result; - char *buffer; - GnomeVFSFileSize total_bytes_read; - GnomeVFSFileSize bytes_read; - pthread_mutex_t callback_result_ready_semaphore; - - data = (NautilusAsyncReadFileData *)cast_to_data; - buffer = NULL; - total_bytes_read = 0; - - result = gnome_vfs_open ((GnomeVFSHandle **)&data->handle.handle, data->uri, GNOME_VFS_OPEN_READ); - if (result == GNOME_VFS_OK) { - - if (data->handle.read_more_callback != NULL) { - /* read_more_callback is a synchronous callback, allocate a semaphore - * to provide for synchoronization with the callback. - * We are using the default mutex attributes that give us a fast mutex - * that behaves like a semaphore. - */ - pthread_mutex_init (&callback_result_ready_semaphore, NULL); - /* Grab the semaphore -- the next lock will block us and - * we will need the callback to unblock the semaphore. - */ - pthread_mutex_lock (&callback_result_ready_semaphore); - data->callback_result_ready_semaphore = &callback_result_ready_semaphore; - } - for (;;) { - if (data->cancel_requested) { - /* Cancelled by the master. */ - result = GNOME_VFS_ERROR_INTERRUPTED; - break; - } - - buffer = g_realloc (buffer, total_bytes_read + READ_CHUNK_SIZE); - /* FIXME bugzilla.eazel.com 5070: - * For a better cancellation granularity we should use gnome_vfs_read_cancellable - * here, adding a GnomeVFSContext to NautilusAsyncReadFileData. - */ - result = gnome_vfs_read ((GnomeVFSHandle *)data->handle.handle, buffer + total_bytes_read, - READ_CHUNK_SIZE, &bytes_read); - - total_bytes_read += bytes_read; - - if (data->cancel_requested) { - /* Cancelled by the master. */ - result = GNOME_VFS_ERROR_INTERRUPTED; - break; - } - - if (result != GNOME_VFS_OK) { - if (result == GNOME_VFS_ERROR_EOF) { - /* not really an error, just done reading */ - result = GNOME_VFS_OK; - } - break; - } - - if (data->handle.read_more_callback != NULL - && !pthread_nautilus_read_file_synchronous_callback (data->handle.read_more_callback, - data->handle.callback_data, total_bytes_read, buffer, - &callback_result_ready_semaphore)) { - /* callback doesn't want any more data */ - break; - } - - } - gnome_vfs_close ((GnomeVFSHandle *)data->handle.handle); - } - - if (result != GNOME_VFS_OK) { - /* Because of the error or cancellation, nobody will take the data we read, - * delete the buffer here instead. - */ - g_free (buffer); - buffer = NULL; - total_bytes_read = 0; - } - - /* Call the final callback. - * If everything is OK, pass in the data read. - * We are handing off the read buffer -- trim it to the actual size we need first - * so that it doesn't take up more space than needed. - */ - pthread_nautilus_read_file_asynchronous_callback(data->handle.callback, - data->handle.callback_data, result, total_bytes_read, - g_realloc (buffer, total_bytes_read)); - - if (data->handle.read_more_callback != NULL) { - pthread_mutex_destroy (&callback_result_ready_semaphore); - } - - g_free (data->uri); - g_free (data); - - return NULL; -} - -static NautilusReadFileHandle * -pthread_nautilus_read_file_async(const char *uri, NautilusReadFileCallback callback, - NautilusReadMoreCallback read_more_callback, gpointer callback_data) -{ - NautilusAsyncReadFileData *data; - pthread_attr_t thread_attr; - pthread_t thread; - - data = g_new0 (NautilusAsyncReadFileData, 1); - - data->handle.callback = callback; - data->handle.read_more_callback = read_more_callback; - data->handle.callback_data = callback_data; - data->cancel_requested = FALSE; - data->uri = g_strdup (uri); - - pthread_attr_init (&thread_attr); - pthread_attr_setdetachstate (&thread_attr, PTHREAD_CREATE_DETACHED); - if (pthread_create (&thread, &thread_attr, pthread_nautilus_read_file_thread_entry, data) != 0) { - /* FIXME bugzilla.eazel.com 5071: - * Would be cleaner to call through an idle callback here. - */ - (*callback) (GNOME_VFS_ERROR_INTERNAL, 0, NULL, NULL); - g_free (data); - return NULL; - } - - return (NautilusReadFileHandle *)data; -} - -static void -pthread_nautilus_read_file_async_cancel (NautilusReadFileHandle *handle) -{ - /* Must call this before the final callback kicks in. */ - NautilusAsyncReadFileData *data; - - data = (NautilusAsyncReadFileData *)handle; - data->cancel_requested = TRUE; - if (data->callback_result_ready_semaphore != NULL) { - pthread_mutex_unlock (data->callback_result_ready_semaphore); - } - - /* now the thread will die on it's own and clean up after itself */ -} - -#endif - -/* Set up the read handle and start reading. */ -NautilusReadFileHandle * -nautilus_read_file_async (const char *uri, - NautilusReadFileCallback callback, - NautilusReadMoreCallback read_more_callback, - gpointer callback_data) -{ -#ifndef PTHREAD_ASYNC_READ - NautilusReadFileHandle *handle; - - handle = g_new0 (NautilusReadFileHandle, 1); - - handle->callback = callback; - handle->read_more_callback = read_more_callback; - handle->callback_data = callback_data; - - gnome_vfs_async_open (&handle->handle, - uri, - GNOME_VFS_OPEN_READ, - read_file_open_callback, - handle); - return handle; -#else - return pthread_nautilus_read_file_async(uri, callback, - read_more_callback, callback_data); -#endif -} - -/* Set up the read handle and start reading. */ -NautilusReadFileHandle * -nautilus_read_entire_file_async (const char *uri, - NautilusReadFileCallback callback, - gpointer callback_data) -{ - return nautilus_read_file_async (uri, callback, NULL, callback_data); -} - -/* Stop the presses! */ -void -nautilus_read_file_cancel (NautilusReadFileHandle *handle) -{ -#ifndef PTHREAD_ASYNC_READ - gnome_vfs_async_cancel (handle->handle); - read_file_close (handle); - g_free (handle->buffer); - g_free (handle); -#else - - pthread_nautilus_read_file_async_cancel (handle); -#endif -} - -GnomeVFSResult -nautilus_make_directory_and_parents (GnomeVFSURI *uri, guint permissions) -{ - GnomeVFSResult result; - GnomeVFSURI *parent_uri; - - /* Make the directory, and return right away unless there's - a possible problem with the parent. - */ - result = gnome_vfs_make_directory_for_uri (uri, permissions); - if (result != GNOME_VFS_ERROR_NOT_FOUND) { - return result; - } - - /* If we can't get a parent, we are done. */ - parent_uri = gnome_vfs_uri_get_parent (uri); - if (parent_uri == NULL) { - return result; - } - - /* If we can get a parent, use a recursive call to create - the parent and its parents. - */ - result = nautilus_make_directory_and_parents (parent_uri, permissions); - gnome_vfs_uri_unref (parent_uri); - if (result != GNOME_VFS_OK) { - return result; - } - - /* A second try at making the directory after the parents - have all been created. - */ - result = gnome_vfs_make_directory_for_uri (uri, permissions); - return result; -} - -GnomeVFSResult -nautilus_copy_uri_simple ( const char *source_uri, const char *dest_uri) -{ - GnomeVFSResult result; - GnomeVFSURI *real_source_uri, *real_dest_uri; - real_source_uri = gnome_vfs_uri_new (source_uri); - real_dest_uri = gnome_vfs_uri_new (dest_uri); - - result = gnome_vfs_xfer_uri (real_source_uri, real_dest_uri, - GNOME_VFS_XFER_RECURSIVE, GNOME_VFS_XFER_ERROR_MODE_ABORT, - GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE, - NULL, NULL); - - gnome_vfs_uri_unref (real_source_uri); - gnome_vfs_uri_unref (real_dest_uri); - - return result; -} - char * nautilus_unique_temporary_file_name (void) { @@ -1693,262 +326,6 @@ nautilus_get_build_message (void) void nautilus_self_check_file_utilities (void) { - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (""), ""); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" "), ""); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" / "), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" /"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" /home\n\n"), "file:///home"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" \n\t"), ""); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("!"), "http://!"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("#"), "http://#"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/ "), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/!"), "file:///!"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/#"), "file:///%23"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/%20"), "file:///%2520"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/%25"), "file:///%2525"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/:"), "file:///%3A"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/home"), "file:///home"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/home/darin"), "file:///home/darin"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (":"), "http://:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("::"), "http://::"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (":://:://:::::::::::::::::"), "http://:://:://:::::::::::::::::"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:"), "file:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///%20"), "file:///%20"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///%3F"), "file:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///:"), "file:///:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///?"), "file:///?"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///home/joe/some file"), "file:///home/joe/some file"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file://home/joe/some file"), "file://home/joe/some file"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:::::////"), "file:::::////"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("foo://foobar.txt"), "foo://foobar.txt"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("home"), "http://home"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://null.stanford.edu"), "http://null.stanford.edu"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://null.stanford.edu:80"), "http://null.stanford.edu:80"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://seth@null.stanford.edu:80"), "http://seth@null.stanford.edu:80"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http:::::::::"), "http:::::::::"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("www.eazel.com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://null.stanford.edu/some file"), "http://null.stanford.edu/some file"); - - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme ("file:///var/tmp"), "file"); - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme (""), NULL); - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme ("file:///var/tmp::"), "file"); - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme ("man:ls"), "man"); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uri_is_local_scheme ("file:///var/tmp"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uri_is_local_scheme ("http://www.yahoo.com"), FALSE); - - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file:///////"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file://foo/"), "file://foo"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file://foo"), "file://foo"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file://"), "file://"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file:/"), "file:/"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("http://le-hacker.org"), "http://le-hacker.org"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("http://le-hacker.org/dir//////"), "http://le-hacker.org/dir/"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("http://le-hacker.org/////"), "http://le-hacker.org/"); - - /* nautilus_make_uri_canonical */ - - /* FIXME bugzilla.eazel.com 5072: this is a bizarre result from an empty string */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (""), "file:///"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:/"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///home/mathieu/"), "file:///home/mathieu"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///home/mathieu"), "file:///home/mathieu"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://mathieu:password@le-hackeur.org"), "ftp://mathieu:password@le-hackeur.org"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://mathieu:password@le-hackeur.org/"), "ftp://mathieu:password@le-hackeur.org/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org"), "http://le-hackeur.org"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org/"), "http://le-hackeur.org/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org/dir"), "http://le-hackeur.org/dir"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org/dir/"), "http://le-hackeur.org/dir/"); - - /* FIXME bugzilla.eazel.com 5068: the "nested" URI loses some characters here. Maybe that's OK because we escape them in practice? */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("search://[file://]file_name contains stuff"), "search://[file/]file_name contains stuff"); -#ifdef EAZEL_SERVICES - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("eazel-services:/~turtle"), "eazel-services:///~turtle"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("eazel-services:///~turtle"), "eazel-services:///~turtle"); -#endif - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/./."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/.//."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/.///."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a"), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a///"), "file:///a/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a"), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("../a"), "file:///../a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("..//a"), "file:///../a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a//."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (".//a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a//."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a//.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (".//a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a//.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (".//a//.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/./a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/./b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/b/./.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/b/../."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/../.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/b/../.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("././a/b/../.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/c/../.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/c/../../d"), "file:///a/d"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/../../d"), "file:///d"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/../../d"), "file:///../d"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/.././.././c"), "file:///c"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/.././.././b/c"), "file:///../b/c"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com/"), "http://www.eazel.com/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com/dir"), "http://www.eazel.com/dir"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com/dir/"), "http://www.eazel.com/dir/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://yakk:womble@www.eazel.com:42/blah/"), "http://yakk:womble@www.eazel.com:42/blah/"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("FILE:///"), "file:///"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///trash"), "file:///trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///Users/mikef"), "file:///Users/mikef"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/trash"), "file:///trash"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("//root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("///root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("////root"), "file:///root"); - - /* Test cases related to escaping. */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///%3F"), "file:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///%78"), "file:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///?"), "file:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///x"), "file:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///%3F"), "glorb:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///%78"), "glorb:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///?"), "glorb:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///x"), "glorb:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///%3F"), "http:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///%78"), "http:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///?"), "http:///?"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///x"), "http:///x"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.Eazel.Com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.Eazel.Com/xXx"), "http://www.eazel.com/xXx"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://Darin@www.Eazel.Com/xXx"), "ftp://Darin@www.eazel.com/xXx"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.Eazel.Com:80/xXx"), "http://www.eazel.com:80/xXx"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://Darin@www.Eazel.Com:80/xXx"), "ftp://Darin@www.eazel.com:80/xXx"); - - /* FIXME bugzilla.eazel.com 4101: Why append a slash in this case, but not in the http://www.eazel.com case? */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com:80"), "http://www.eazel.com:80/"); - - /* Note: these cases behave differently here than in - * gnome-vfs. In some cases because of bugs in gnome-vfs, but - * in other cases because we just want them handled - * differently. - */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:trash"), "file:trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("//trash"), "file:///trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:"), "file:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("trash"), "file:///trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorp:"), "glorp:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("trash:xxx"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("GNOME-TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("gnome-trash:xxx"), NAUTILUS_TRASH_URI); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("pipe:gnome-info2html2 as"), "pipe:gnome-info2html2 as"); - - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative (NULL, NULL), NULL); - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative ("http://a/b/c/d;p?q", NULL), "http://a/b/c/d;p?q"); - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative (NULL, "http://a/b/c/d;p?q"), "http://a/b/c/d;p?q"); - - /* These test cases are from RFC 2396. */ -#define TEST_PARTIAL(partial, result) \ - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative \ - ("http://a/b/c/d;p?q", partial), result) - - TEST_PARTIAL ("g", "http://a/b/c/g"); - TEST_PARTIAL ("./g", "http://a/b/c/g"); - TEST_PARTIAL ("g/", "http://a/b/c/g/"); - TEST_PARTIAL ("/g", "http://a/g"); - - TEST_PARTIAL ("//g", "http://g"); - - TEST_PARTIAL ("?y", "http://a/b/c/?y"); - TEST_PARTIAL ("g?y", "http://a/b/c/g?y"); - TEST_PARTIAL ("#s", "http://a/b/c/d;p#s"); - TEST_PARTIAL ("g#s", "http://a/b/c/g#s"); - TEST_PARTIAL ("g?y#s", "http://a/b/c/g?y#s"); - TEST_PARTIAL (";x", "http://a/b/c/;x"); - TEST_PARTIAL ("g;x", "http://a/b/c/g;x"); - TEST_PARTIAL ("g;x?y#s", "http://a/b/c/g;x?y#s"); - - TEST_PARTIAL (".", "http://a/b/c/"); - TEST_PARTIAL ("./", "http://a/b/c/"); - - TEST_PARTIAL ("..", "http://a/b/"); - TEST_PARTIAL ("../g", "http://a/b/g"); - TEST_PARTIAL ("../..", "http://a/"); - TEST_PARTIAL ("../../", "http://a/"); - TEST_PARTIAL ("../../g", "http://a/g"); - - /* Others */ - TEST_PARTIAL ("g/..", "http://a/b/c/"); - TEST_PARTIAL ("g/../", "http://a/b/c/"); - TEST_PARTIAL ("g/../g", "http://a/b/c/g"); - -#undef TEST_PARTIAL - - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display (""), "/"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display (":"), ":"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///h/user"), "/h/user"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///%68/user/foo%2ehtml"), "/h/user/foo.html"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///h/user/foo.html#fragment"), "file:///h/user/foo.html#fragment"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("http://www.eazel.com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("http://www.eazel.com/jobs#Engineering"), "http://www.eazel.com/jobs#Engineering"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file"), "/file"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///#"), "file:///#"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///"), "/"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///%20%23"), "/ #"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///%20%23#"), "file:///%20%23#"); - - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("", ""), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match (":", ":"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("file:///h/user/file#gunzip:///", "file:///h/user/file#gunzip:///"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("file:///h/user/file#gunzip:///", "file:///h/user/file#gzip:///"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("http://www.Eazel.Com", "http://www.eazel.com"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("http://www.Eazel.Com:80", "http://www.eazel.com:80"), TRUE); - - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("", ""), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments (":", ":"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file#gunzip:///"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file#gzip:///"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("http://www.Eazel.Com", "http://www.eazel.com"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("http://www.Eazel.Com:80", "http://www.eazel.com:80"), TRUE); - - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user", "file:///h/user"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user#frag", "file:///h/user"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user#frag", "file:///h/user/"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user#frag", "file:///h/user%23frag"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/", "file:///h/user"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/", "http:///h/user"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/", "http://www.eazel.com"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file.html.gz#gunzip:///#fragment", "file:///h/user/file.html.gz"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/#frag", "file:///h/user/"), TRUE); - - /* Since it's illegal to have a # in a scheme name, it doesn't really matter what these cases do */ - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("fi#le:///h/user/file", "fi"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("fi#le:///h/user/file", "fi#le:"), TRUE); } #endif /* !NAUTILUS_OMIT_SELF_CHECK */ diff --git a/libnautilus-extensions/nautilus-file-utilities.h b/libnautilus-extensions/nautilus-file-utilities.h index 37149623e..79e39a295 100644 --- a/libnautilus-extensions/nautilus-file-utilities.h +++ b/libnautilus-extensions/nautilus-file-utilities.h @@ -27,71 +27,30 @@ #include <libgnomevfs/gnome-vfs-types.h> -#define NAUTILUS_TRASH_URI "trash:" - -typedef void (* NautilusReadFileCallback) (GnomeVFSResult result, - GnomeVFSFileSize file_size, - char *file_contents, - gpointer callback_data); -typedef gboolean (* NautilusReadMoreCallback) (GnomeVFSFileSize file_size, - const char *file_contents, - gpointer callback_data); - -typedef struct NautilusReadFileHandle NautilusReadFileHandle; - -char * nautilus_format_uri_for_display (const char *uri); -char * nautilus_make_uri_from_input (const char *location); -char * nautilus_make_uri_from_shell_arg (const char *location); -gboolean nautilus_uri_is_trash (const char *uri); -gboolean nautilus_uri_is_trash_folder (const char *uri); -gboolean nautilus_uri_is_in_trash (const char *uri); -char * nautilus_make_uri_canonical (const char *uri); -char * nautilus_make_uri_canonical_strip_fragment (const char *uri); -gboolean nautilus_uris_match (const char *uri_1, - const char *uri_2); -gboolean nautilus_uris_match_ignore_fragments (const char *uri_1, - const char *uri_2); -char * nautilus_uri_get_basename (const char *uri); -char * nautilus_uri_get_scheme (const char *uri); -char * nautilus_uri_make_full_from_relative (const char *base_uri, - const char *uri); - /* Recognizing special file names. */ -gboolean nautilus_file_name_matches_hidden_pattern (const char *name_or_relative_uri); -gboolean nautilus_file_name_matches_backup_pattern (const char *name_or_relative_uri); -gboolean nautilus_file_name_matches_metafile_pattern(const char *name_or_relative_uri); - +gboolean nautilus_file_name_matches_hidden_pattern (const char *name_or_relative_uri); +gboolean nautilus_file_name_matches_backup_pattern (const char *name_or_relative_uri); +gboolean nautilus_file_name_matches_metafile_pattern (const char *name_or_relative_uri); /* FIXME bugzilla.eazel.com 2424: * This is the same as gnome-libs g_concat_dir_and_file except * for handling path == NULL. */ -char * nautilus_make_path (const char *path, - const char *name); - - - +char * nautilus_make_path (const char *path, + const char *name); /* These functions all return something something that needs to be * freed with g_free, is not NULL, and is guaranteed to exist. */ -char * nautilus_get_user_directory (void); -char * nautilus_get_user_main_directory (void); -char * nautilus_get_desktop_directory (void); -char * nautilus_get_pixmap_directory (void); - +char * nautilus_get_user_directory (void); +char * nautilus_get_user_main_directory (void); +char * nautilus_get_desktop_directory (void); +char * nautilus_get_pixmap_directory (void); /* See if the user_main_directory exists. This should be called before * nautilus_get_user_main_directory, which creates the directory. */ -gboolean nautilus_user_main_directory_exists (void); - - - -/* Convenience routine to test if a string is a remote URI. */ -gboolean nautilus_is_remote_uri (const char *uri); - - +gboolean nautilus_user_main_directory_exists (void); /* A version of gnome's gnome_pixmap_file that works for the nautilus prefix. * Otherwise similar to gnome_pixmap_file in that it checks to see if the file @@ -101,49 +60,22 @@ gboolean nautilus_is_remote_uri (const char * We might not need this once we get on gnome-libs 2.0 which handles * gnome_pixmap_file better, using GNOME_PATH. */ -char * nautilus_pixmap_file (const char *partial_path); - - - -/* Read an entire file at once with gnome-vfs. */ -GnomeVFSResult nautilus_read_entire_file (const char *uri, - int *file_size, - char **file_contents); -NautilusReadFileHandle *nautilus_read_entire_file_async (const char *uri, - NautilusReadFileCallback callback, - gpointer callback_data); -NautilusReadFileHandle *nautilus_read_file_async (const char *uri, - NautilusReadFileCallback callback, - NautilusReadMoreCallback read_more_callback, - gpointer callback_data); -void nautilus_read_file_cancel (NautilusReadFileHandle *handle); - - - -/* Convenience routine for simple file copying using text-based uris */ -GnomeVFSResult nautilus_copy_uri_simple (const char *source_uri, - const char *dest_uri); - - - -/* gnome-vfs cover to make a directory and parents */ -GnomeVFSResult nautilus_make_directory_and_parents (GnomeVFSURI *uri, - guint permissions); +char * nautilus_pixmap_file (const char *partial_path); /* Returns the build time stamp the Nautilus binary. * This is useful to be able to tell builds apart. * A return value of NULL means unknown time stamp. */ -char * nautilus_get_build_time_stamp (void); +char * nautilus_get_build_time_stamp (void); /* Returns the "build message", which provides some information on build * context. May return NULL. */ -char * nautilus_get_build_message (void); +char * nautilus_get_build_message (void); /* Return an allocated file name that is guranteed to be unique. */ -char * nautilus_unique_temporary_file_name (void); -char * nautilus_find_file_in_gnome_path (char *file); -GList * nautilus_find_all_files_in_gnome_path (char *file); +char * nautilus_unique_temporary_file_name (void); +char * nautilus_find_file_in_gnome_path (char *file); +GList * nautilus_find_all_files_in_gnome_path (char *file); #endif /* NAUTILUS_FILE_UTILITIES_H */ diff --git a/libnautilus-extensions/nautilus-file.c b/libnautilus-extensions/nautilus-file.c index baadf21aa..c4c469110 100644 --- a/libnautilus-extensions/nautilus-file.c +++ b/libnautilus-extensions/nautilus-file.c @@ -36,6 +36,7 @@ #include "nautilus-trash-directory.h" #include "nautilus-trash-file.h" #include "nautilus-vfs-file.h" +#include "nautilus-file-utilities.h" #include <ctype.h> #include <eel/eel-glib-extensions.h> #include <eel/eel-gtk-extensions.h> @@ -302,7 +303,7 @@ nautilus_file_get_internal (const char *uri, gboolean create) /* Maybe we wouldn't need this if the gnome-vfs canonical * stuff was strong enough. */ - canonical_uri = nautilus_make_uri_canonical (uri); + canonical_uri = eel_make_uri_canonical (uri); /* Make VFS version of URI. */ vfs_uri = gnome_vfs_uri_new (canonical_uri); @@ -497,7 +498,7 @@ nautilus_file_get_parent_uri_for_display (NautilusFile *file) g_assert (NAUTILUS_IS_FILE (file)); raw_uri = nautilus_file_get_parent_uri (file); - result = nautilus_format_uri_for_display (raw_uri); + result = eel_format_uri_for_display (raw_uri); g_free (raw_uri); return result; @@ -754,7 +755,7 @@ nautilus_file_can_rename (NautilusFile *file) } /* Nautilus trash directories cannot be renamed */ - if (nautilus_uri_is_trash_folder (uri)) { + if (eel_uri_is_trash_folder (uri)) { can_rename = FALSE; } @@ -2175,7 +2176,7 @@ nautilus_file_get_uri_scheme (NautilusFile *file) return NULL; } - return nautilus_uri_get_scheme (file->details->directory->details->uri); + return eel_uri_get_scheme (file->details->directory->details->uri); } gboolean @@ -4121,7 +4122,7 @@ nautilus_file_is_in_trash (NautilusFile *file) { g_return_val_if_fail (NAUTILUS_IS_FILE (file), FALSE); - return nautilus_uri_is_in_trash (file->details->directory->details->uri); + return eel_uri_is_in_trash (file->details->directory->details->uri); } GnomeVFSResult @@ -4830,7 +4831,7 @@ nautilus_self_check_file (void) EEL_CHECK_STRING_RESULT (nautilus_file_get_name (file_1), "eazel"); nautilus_file_unref (file_1); - file_1 = nautilus_file_get (NAUTILUS_TRASH_URI); + file_1 = nautilus_file_get (EEL_TRASH_URI); EEL_CHECK_STRING_RESULT (nautilus_file_get_name (file_1), _("Trash")); nautilus_file_unref (file_1); diff --git a/libnautilus-extensions/nautilus-icon-dnd.c b/libnautilus-extensions/nautilus-icon-dnd.c index e09d50a31..61265e19b 100644 --- a/libnautilus-extensions/nautilus-icon-dnd.c +++ b/libnautilus-extensions/nautilus-icon-dnd.c @@ -31,13 +31,13 @@ #include "nautilus-icon-dnd.h" #include <eel/eel-background.h> -#include "nautilus-file-utilities.h" #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> #include <eel/eel-gnome-extensions.h> #include <eel/eel-graphic-effects.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-macros.h> +#include <eel/eel-vfs-extensions.h> #include "nautilus-icon-private.h" #include "nautilus-link.h" #include <eel/eel-stock-dialogs.h> @@ -586,7 +586,7 @@ nautilus_icon_container_selection_items_local (const NautilusIconContainer *cont /* get the URI associated with the container */ container_uri_string = get_container_uri (container); - if (nautilus_uri_is_trash (container_uri_string)) { + if (eel_uri_is_trash (container_uri_string)) { /* Special-case "trash:" because the nautilus_drag_items_local * would not work for it. */ diff --git a/libnautilus-extensions/nautilus-icon-factory.c b/libnautilus-extensions/nautilus-icon-factory.c index 38ce60f79..abc1d247e 100644 --- a/libnautilus-extensions/nautilus-icon-factory.c +++ b/libnautilus-extensions/nautilus-icon-factory.c @@ -48,6 +48,7 @@ #include <eel/eel-smooth-text-layout.h> #include <eel/eel-string.h> #include <eel/eel-xml-extensions.h> +#include <eel/eel-vfs-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtksignal.h> @@ -807,7 +808,7 @@ nautilus_icon_factory_get_icon_name_for_file (NautilusFile *file) char *uri; uri = nautilus_file_get_uri (file); - if (strcmp (uri, NAUTILUS_TRASH_URI) == 0) { + if (strcmp (uri, EEL_TRASH_URI) == 0) { g_free (uri); return nautilus_trash_monitor_is_empty () ? ICON_NAME_TRASH_EMPTY : ICON_NAME_TRASH_NOT_EMPTY; @@ -1547,7 +1548,7 @@ nautilus_icon_factory_get_emblem_icons_for_file (NautilusFile *file, * lily. */ uri = nautilus_file_get_uri (file); - file_is_trash = strcmp (uri, NAUTILUS_TRASH_URI) == 0; + file_is_trash = strcmp (uri, EEL_TRASH_URI) == 0; g_free (uri); icons = NULL; diff --git a/libnautilus-extensions/nautilus-link.c b/libnautilus-extensions/nautilus-link.c index 5dfb1278f..8fd7fcaba 100644 --- a/libnautilus-extensions/nautilus-link.c +++ b/libnautilus-extensions/nautilus-link.c @@ -27,15 +27,14 @@ #include "nautilus-directory-notify.h" #include "nautilus-directory.h" -#include "nautilus-file-utilities.h" -#include "nautilus-file.h" #include "nautilus-file-attributes.h" -#include "nautilus-global-preferences.h" -#include <eel/eel-gnome-extensions.h> +#include "nautilus-file.h" #include "nautilus-metadata.h" -#include "nautilus-preferences.h" +#include "nautilus-file-utilities.h" +#include <eel/eel-gnome-extensions.h> #include <eel/eel-stock-dialogs.h> #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> @@ -418,7 +417,7 @@ nautilus_link_local_get_image_uri (const char *path) } /* if the image is remote, see if we can find it in our local cache */ - if (nautilus_is_remote_uri (icon_uri)) { + if (eel_is_remote_uri (icon_uri)) { local_path = make_local_path (icon_uri); if (local_path == NULL) { g_free (icon_uri); @@ -435,7 +434,7 @@ nautilus_link_local_get_image_uri (const char *path) info = g_new0 (NautilusLinkIconNotificationInfo, 1); info->link_uri = gnome_vfs_get_uri_from_local_path (path); info->file_path = g_strdup (local_path); - nautilus_read_entire_file_async (icon_uri, icon_read_done_callback, info); + eel_read_entire_file_async (icon_uri, icon_read_done_callback, info); g_free (icon_uri); g_free (local_path); diff --git a/libnautilus-extensions/nautilus-metafile.c b/libnautilus-extensions/nautilus-metafile.c index c16926d43..eac730a09 100644 --- a/libnautilus-extensions/nautilus-metafile.c +++ b/libnautilus-extensions/nautilus-metafile.c @@ -1,4 +1,4 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-*/ /* nautilus-metafile.c - server side of Nautilus::Metafile * @@ -23,29 +23,27 @@ #include <config.h> #include "nautilus-metafile.h" -#include <eel/eel-gtk-macros.h> -#include <libnautilus-extensions/nautilus-directory.h> -#include <libnautilus-extensions/nautilus-bonobo-extensions.h> -#include <libnautilus/nautilus-bonobo-workarounds.h> - -#include <libgnomevfs/gnome-vfs-types.h> -#include <libgnomevfs/gnome-vfs-uri.h> -#include <libgnomevfs/gnome-vfs-file-info.h> - -#include <eel/eel-string.h> -#include "nautilus-metadata.h" -#include "nautilus-thumbnails.h" -#include <eel/eel-xml-extensions.h> -#include <eel/eel-glib-extensions.h> +#include "nautilus-bonobo-extensions.h" +#include "nautilus-directory.h" #include "nautilus-directory.h" -#include "nautilus-global-preferences.h" #include "nautilus-file-private.h" +#include "nautilus-global-preferences.h" +#include "nautilus-metadata.h" #include "nautilus-search-uri.h" - -#include <stdlib.h> +#include "nautilus-thumbnails.h" +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtkmain.h> +#include <libgnomevfs/gnome-vfs-file-info.h> +#include <libgnomevfs/gnome-vfs-types.h> +#include <libgnomevfs/gnome-vfs-uri.h> +#include <libnautilus/nautilus-bonobo-workarounds.h> +#include <stdlib.h> #define METAFILE_XML_VERSION "1.0" @@ -162,7 +160,7 @@ NAUTILUS_BONOBO_X_BOILERPLATE (NautilusMetafile, Nautilus_Metafile, BONOBO_X_OBJ typedef struct MetafileReadState { gboolean use_public_metafile; - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; GnomeVFSAsyncHandle *get_file_info_handle; } MetafileReadState; @@ -270,7 +268,7 @@ construct_private_metafile_vfs_uri (const char *uri) metafiles_directory_uri = gnome_vfs_uri_append_file_name (user_directory_uri, METAFILES_DIRECTORY_NAME); gnome_vfs_uri_unref (user_directory_uri); - result = nautilus_make_directory_and_parents (metafiles_directory_uri, + result = eel_make_directory_and_parents (metafiles_directory_uri, METAFILES_DIRECTORY_PERMISSIONS); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_FILE_EXISTS) { gnome_vfs_uri_unref (metafiles_directory_uri); @@ -1658,7 +1656,7 @@ metafile_read_cancel (NautilusMetafile *metafile) { if (metafile->details->read_state != NULL) { if (metafile->details->read_state->handle != NULL) { - nautilus_read_file_cancel (metafile->details->read_state->handle); + eel_read_file_cancel (metafile->details->read_state->handle); } if (metafile->details->read_state->get_file_info_handle != NULL) { gnome_vfs_async_cancel (metafile->details->read_state->get_file_info_handle); @@ -1869,7 +1867,7 @@ metafile_read_restart (NautilusMetafile *metafile) : metafile->details->private_vfs_uri, GNOME_VFS_URI_HIDE_NONE); - metafile->details->read_state->handle = nautilus_read_entire_file_async + metafile->details->read_state->handle = eel_read_entire_file_async (text_uri, metafile_read_done_callback, metafile); g_free (text_uri); diff --git a/libnautilus-extensions/nautilus-tabs.c b/libnautilus-extensions/nautilus-tabs.c index a1a16b3f7..e708e4c0d 100644 --- a/libnautilus-extensions/nautilus-tabs.c +++ b/libnautilus-extensions/nautilus-tabs.c @@ -33,7 +33,6 @@ #include <eel/eel-gdk-extensions.h> #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> -#include <libnautilus-extensions/nautilus-global-preferences.h> #include <eel/eel-gnome-extensions.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-macros.h> diff --git a/libnautilus-extensions/nautilus-theme.c b/libnautilus-extensions/nautilus-theme.c index 0fb37d839..c236bd8c9 100644 --- a/libnautilus-extensions/nautilus-theme.c +++ b/libnautilus-extensions/nautilus-theme.c @@ -31,6 +31,7 @@ #include "nautilus-metadata.h" #include "nautilus-preferences.h" #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <eel/eel-xml-extensions.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gnome-xml/parser.h> diff --git a/libnautilus-extensions/nautilus-thumbnails.c b/libnautilus-extensions/nautilus-thumbnails.c index 00b464a51..3ae99e7aa 100644 --- a/libnautilus-extensions/nautilus-thumbnails.c +++ b/libnautilus-extensions/nautilus-thumbnails.c @@ -25,20 +25,20 @@ #include <config.h> #include "nautilus-thumbnails.h" -#include <libgnomevfs/gnome-vfs-file-info.h> -#include <string.h> -#include "nautilus-file-utilities.h" -#include <eel/eel-string.h> -#include <gtk/gtkmain.h> -#include "nautilus-icon-factory-private.h" #include "nautilus-directory-notify.h" +#include "nautilus-icon-factory-private.h" #include "nautilus-theme.h" -#include <stdio.h> #include <eel/eel-gdk-pixbuf-extensions.h> -#include <unistd.h> -#include <sys/wait.h> -#include <librsvg/rsvg.h> #include <eel/eel-graphic-effects.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <gtk/gtkmain.h> +#include <libgnomevfs/gnome-vfs-file-info.h> +#include <librsvg/rsvg.h> +#include <stdio.h> +#include <string.h> +#include <sys/wait.h> +#include <unistd.h> /* permissions for thumbnail directory */ #define THUMBNAIL_DIR_PERMISSIONS (GNOME_VFS_PERM_USER_ALL \ @@ -128,7 +128,7 @@ make_thumbnail_uri (const char *image_uri, gboolean directory_only, gboolean use looks like the URI will be local-only, but best to make sure. */ - result = nautilus_make_directory_and_parents (thumbnail_directory_uri, THUMBNAIL_DIR_PERMISSIONS); + result = eel_make_directory_and_parents (thumbnail_directory_uri, THUMBNAIL_DIR_PERMISSIONS); gnome_vfs_uri_unref (thumbnail_directory_uri); } diff --git a/libnautilus-extensions/nautilus-trash-file.c b/libnautilus-extensions/nautilus-trash-file.c index 12aa4fcb6..b4f33a439 100644 --- a/libnautilus-extensions/nautilus-trash-file.c +++ b/libnautilus-extensions/nautilus-trash-file.c @@ -743,7 +743,7 @@ nautilus_trash_file_initialize (gpointer object, gpointer klass) trash_file = NAUTILUS_TRASH_FILE (object); - trash_directory = NAUTILUS_TRASH_DIRECTORY (nautilus_directory_get (NAUTILUS_TRASH_URI)); + trash_directory = NAUTILUS_TRASH_DIRECTORY (nautilus_directory_get (EEL_TRASH_URI)); trash_file->details = g_new0 (NautilusTrashFileDetails, 1); trash_file->details->trash_directory = trash_directory; diff --git a/libnautilus-extensions/nautilus-trash-monitor.c b/libnautilus-extensions/nautilus-trash-monitor.c index 6b6a54abb..f10d7e540 100644 --- a/libnautilus-extensions/nautilus-trash-monitor.c +++ b/libnautilus-extensions/nautilus-trash-monitor.c @@ -26,12 +26,12 @@ #include <config.h> #include "nautilus-trash-monitor.h" -#include "nautilus-directory.h" #include "nautilus-directory-notify.h" +#include "nautilus-directory.h" #include "nautilus-file-attributes.h" -#include "nautilus-file-utilities.h" -#include <eel/eel-gtk-macros.h> #include "nautilus-volume-monitor.h" +#include <eel/eel-gtk-macros.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtksignal.h> #include <libgnomevfs/gnome-vfs-find-directory.h> #include <libgnomevfs/gnome-vfs-types.h> @@ -97,7 +97,7 @@ nautilus_trash_files_changed_callback (NautilusDirectory *directory, GList *file trash_monitor->details->empty = !nautilus_directory_is_not_empty (directory); if (old_empty_state != trash_monitor->details->empty) { - file = nautilus_file_get (NAUTILUS_TRASH_URI); + file = nautilus_file_get (EEL_TRASH_URI); nautilus_file_changed (file); nautilus_file_unref (file); @@ -119,7 +119,7 @@ nautilus_trash_monitor_initialize (gpointer object, gpointer klass) /* set up a NautilusDirectory for the Trash directory to monitor */ - trash_directory = nautilus_directory_get (NAUTILUS_TRASH_URI); + trash_directory = nautilus_directory_get (EEL_TRASH_URI); trash_monitor->details = g_new0 (NautilusTrashMonitorDetails, 1); trash_monitor->details->trash_directory = trash_directory; diff --git a/libnautilus-private/nautilus-bookmark.c b/libnautilus-private/nautilus-bookmark.c index 02d69c176..9c383e0ab 100644 --- a/libnautilus-private/nautilus-bookmark.c +++ b/libnautilus-private/nautilus-bookmark.c @@ -25,9 +25,12 @@ #include <config.h> #include "nautilus-bookmark.h" -#include <eel/eel-gtk-macros.h> #include "nautilus-icon-factory.h" +#include <eel/eel-gdk-pixbuf-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtkaccellabel.h> #include <gtk/gtksignal.h> #include <libgnome/gnome-defs.h> @@ -36,9 +39,6 @@ #include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-gdk-pixbuf-extensions.h> -#include <eel/eel-gtk-extensions.h> enum { APPEARANCE_CHANGED, @@ -152,7 +152,7 @@ nautilus_bookmark_compare_with (gconstpointer a, gconstpointer b) return 1; } - if (!nautilus_uris_match (bookmark_a->details->uri, + if (!eel_uris_match (bookmark_a->details->uri, bookmark_b->details->uri)) { return 1; } @@ -182,7 +182,7 @@ nautilus_bookmark_compare_uris (gconstpointer a, gconstpointer b) bookmark_a = NAUTILUS_BOOKMARK (a); bookmark_b = NAUTILUS_BOOKMARK (b); - return !nautilus_uris_match (bookmark_a->details->uri, + return !eel_uris_match (bookmark_a->details->uri, bookmark_b->details->uri); } @@ -380,7 +380,7 @@ bookmark_file_changed_callback (NautilusFile *file, NautilusBookmark *bookmark) should_emit_contents_changed_signal = FALSE; file_uri = nautilus_file_get_uri (file); - if (!nautilus_uris_match (bookmark->details->uri, file_uri)) { + if (!eel_uris_match (bookmark->details->uri, file_uri)) { g_free (bookmark->details->uri); bookmark->details->uri = file_uri; should_emit_contents_changed_signal = TRUE; diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c index 6377e80ca..745d2b48d 100644 --- a/libnautilus-private/nautilus-directory-async.c +++ b/libnautilus-private/nautilus-directory-async.c @@ -65,12 +65,12 @@ struct TopLeftTextReadState { NautilusFile *file; - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; }; struct ActivationURIReadState { NautilusFile *file; - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; }; typedef struct { @@ -367,7 +367,7 @@ static void top_left_cancel (NautilusDirectory *directory) { if (directory->details->top_left_read_state != NULL) { - nautilus_read_file_cancel (directory->details->top_left_read_state->handle); + eel_read_file_cancel (directory->details->top_left_read_state->handle); g_free (directory->details->top_left_read_state); directory->details->top_left_read_state = NULL; @@ -379,7 +379,7 @@ static void activation_uri_cancel (NautilusDirectory *directory) { if (directory->details->activation_uri_read_state != NULL) { - nautilus_read_file_cancel (directory->details->activation_uri_read_state->handle); + eel_read_file_cancel (directory->details->activation_uri_read_state->handle); g_free (directory->details->activation_uri_read_state); directory->details->activation_uri_read_state = NULL; @@ -2467,7 +2467,7 @@ top_left_start (NautilusDirectory *directory) directory->details->top_left_read_state = g_new0 (TopLeftTextReadState, 1); directory->details->top_left_read_state->file = file; uri = nautilus_file_get_uri (file); - directory->details->top_left_read_state->handle = nautilus_read_file_async + directory->details->top_left_read_state->handle = eel_read_file_async (uri, top_left_read_callback, top_left_read_more_callback, @@ -2751,13 +2751,13 @@ activation_uri_start (NautilusDirectory *directory) directory->details->activation_uri_read_state->file = file; uri = nautilus_file_get_uri (file); if (gmc_style_link) { - directory->details->activation_uri_read_state->handle = nautilus_read_file_async + directory->details->activation_uri_read_state->handle = eel_read_file_async (uri, activation_uri_gmc_link_read_callback, activation_uri_gmc_link_read_more_callback, directory); } else { - directory->details->activation_uri_read_state->handle = nautilus_read_entire_file_async + directory->details->activation_uri_read_state->handle = eel_read_entire_file_async (uri, activation_uri_nautilus_link_read_callback, directory); diff --git a/libnautilus-private/nautilus-directory-private.h b/libnautilus-private/nautilus-directory-private.h index 68e239869..d11030d15 100644 --- a/libnautilus-private/nautilus-directory-private.h +++ b/libnautilus-private/nautilus-directory-private.h @@ -31,7 +31,7 @@ #include <gnome-xml/tree.h> #include "nautilus-file.h" -#include "nautilus-file-utilities.h" +#include <eel/eel-vfs-extensions.h> #include "nautilus-directory-metafile-monitor.h" #include "nautilus-metafile-server.h" #include <libnautilus/nautilus-idle-queue.h> diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c index fe5a3ba9a..9166fa4d9 100644 --- a/libnautilus-private/nautilus-directory.c +++ b/libnautilus-private/nautilus-directory.c @@ -316,7 +316,7 @@ nautilus_directory_make_uri_canonical (const char *uri) char *with_slashes; size_t length; - canonical_maybe_trailing_slash = nautilus_make_uri_canonical (uri); + canonical_maybe_trailing_slash = eel_make_uri_canonical (uri); /* To NautilusDirectory, a uri with or without a trailing * / is equivalent. This is necessary to prevent separate @@ -495,7 +495,7 @@ nautilus_directory_new (const char *uri) g_assert (uri != NULL); - if (nautilus_uri_is_trash (uri)) { + if (eel_uri_is_trash (uri)) { directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_TRASH_DIRECTORY, NULL)); } else { directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_VFS_DIRECTORY, NULL)); @@ -1208,7 +1208,7 @@ nautilus_directory_notify_files_moved (GList *uri_pairs) nautilus_directory_unref (new_directory); /* Update the file's name. */ - name = nautilus_uri_get_basename (pair->to_uri); + name = eel_uri_get_basename (pair->to_uri); nautilus_file_update_name (file, name); g_free (name); @@ -1631,10 +1631,10 @@ nautilus_self_check_directory (void) EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical (""), "file:///"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:/"), "file:///"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:///"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("trash:xxx"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("GNOME-TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("gnome-trash:xxx"), NAUTILUS_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("TRASH:XXX"), EEL_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("trash:xxx"), EEL_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("GNOME-TRASH:XXX"), EEL_TRASH_URI); + EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("gnome-trash:xxx"), EEL_TRASH_URI); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:///home/mathieu/"), "file:///home/mathieu"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("file:///home/mathieu"), "file:///home/mathieu"); EEL_CHECK_STRING_RESULT (nautilus_directory_make_uri_canonical ("ftp://mathieu:password@le-hackeur.org"), "ftp://mathieu:password@le-hackeur.org"); diff --git a/libnautilus-private/nautilus-drag.c b/libnautilus-private/nautilus-drag.c index 5735c1b44..e609993b3 100644 --- a/libnautilus-private/nautilus-drag.c +++ b/libnautilus-private/nautilus-drag.c @@ -27,22 +27,21 @@ #include <config.h> #include "nautilus-drag.h" +#include "nautilus-link.h" +#include <eel/eel-glib-extensions.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <gtk/gtkmain.h> +#include <libgnome/gnome-i18n.h> +#include <libgnomeui/gnome-popup-menu.h> +#include <libgnomeui/gnome-uidefs.h> #include <libgnomevfs/gnome-vfs-find-directory.h> +#include <libgnomevfs/gnome-vfs-ops.h> #include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> -#include <libgnomevfs/gnome-vfs-ops.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <libgnomeui/gnome-uidefs.h> -#include <libgnomeui/gnome-popup-menu.h> -#include <libgnome/gnome-i18n.h> #include <stdio.h> #include <string.h> -#include <gtk/gtkmain.h> - -#include <eel/eel-glib-extensions.h> -#include "nautilus-link.h" -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-string.h> #define NAUTILUS_COMMAND_SPECIFIER "command:" @@ -225,7 +224,7 @@ nautilus_drag_items_in_trash (const GList *selection_list) * we should really test each item but that would be slow for large selections * and currently dropped items can only be from the same container */ - return nautilus_uri_is_in_trash (((DragSelectionItem *)selection_list->data)->uri); + return eel_uri_is_in_trash (((DragSelectionItem *)selection_list->data)->uri); } gboolean @@ -314,7 +313,7 @@ nautilus_drag_default_drop_action_for_icons (GdkDragContext *context, } /* Check for trash URI. We do a find_directory for any Trash directory. */ - if (nautilus_uri_is_trash (target_uri_string)) { + if (eel_uri_is_trash (target_uri_string)) { result = gnome_vfs_find_directory (NULL, GNOME_VFS_DIRECTORY_KIND_TRASH, &target_uri, FALSE, FALSE, 0777); if (result != GNOME_VFS_OK) { diff --git a/libnautilus-private/nautilus-file-operations.c b/libnautilus-private/nautilus-file-operations.c index df0b46da5..3f9afe920 100644 --- a/libnautilus-private/nautilus-file-operations.c +++ b/libnautilus-private/nautilus-file-operations.c @@ -34,6 +34,8 @@ #include <eel/eel-glib-extensions.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-stock-dialogs.h> +#include <eel/eel-vfs-extensions.h> + #include <gnome.h> #include <gtk/gtklabel.h> #include <libgnomevfs/gnome-vfs-async-ops.h> @@ -43,10 +45,9 @@ #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> #include <libnautilus-extensions/nautilus-file-changes-queue.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <libnautilus-extensions/nautilus-global-preferences.h> -#include <libnautilus-extensions/nautilus-link.h> -#include <libnautilus-extensions/nautilus-trash-monitor.h> +#include "nautilus-global-preferences.h" +#include "nautilus-link.h" +#include "nautilus-trash-monitor.h" typedef enum { TRANSFER_MOVE, @@ -247,7 +248,7 @@ format_and_ellipsize_uri_for_dialog (const char *uri) { char *unescaped, *result; - unescaped = nautilus_format_uri_for_display (uri); + unescaped = eel_format_uri_for_display (uri); result = ellipsize_string_for_dialog (unescaped); g_free (unescaped); @@ -1726,7 +1727,7 @@ nautilus_file_operations_copy_move (const GList *item_uris, move_options = GNOME_VFS_XFER_RECURSIVE; if (target_dir != NULL) { - if (nautilus_uri_is_trash (target_dir)) { + if (eel_uri_is_trash (target_dir)) { target_is_trash = TRUE; } else { target_dir_uri = gnome_vfs_uri_new (target_dir); diff --git a/libnautilus-private/nautilus-file-utilities.c b/libnautilus-private/nautilus-file-utilities.c index d93f8a75a..e63df3514 100644 --- a/libnautilus-private/nautilus-file-utilities.c +++ b/libnautilus-private/nautilus-file-utilities.c @@ -56,794 +56,6 @@ #define NAUTILUS_USER_MAIN_DIRECTORY_NAME "Nautilus" -#define READ_CHUNK_SIZE 8192 - -struct NautilusReadFileHandle { - GnomeVFSAsyncHandle *handle; - NautilusReadFileCallback callback; - NautilusReadMoreCallback read_more_callback; - gpointer callback_data; - gboolean is_open; - char *buffer; - GnomeVFSFileSize bytes_read; -}; - -#undef PTHREAD_ASYNC_READ - -#ifndef PTHREAD_ASYNC_READ -static void read_file_read_chunk (NautilusReadFileHandle *handle); -#endif - -/** - * nautilus_format_uri_for_display: - * - * Filter, modify, unescape and change URIs to make them appropriate - * to display to users. - * - * Rules: - * file: URI's without fragments should appear as local paths - * file: URI's with fragments should appear as file: URI's - * All other URI's appear as expected - * - * @uri: a URI - * - * returns a g_malloc'd string - **/ -char * -nautilus_format_uri_for_display (const char *uri) -{ - char *canonical_uri, *path; - - g_return_val_if_fail (uri != NULL, g_strdup ("")); - - canonical_uri = nautilus_make_uri_canonical (uri); - - /* If there's no fragment and it's a local path. */ - path = gnome_vfs_get_local_path_from_uri (canonical_uri); - if (path != NULL) { - g_free (canonical_uri); - return path; - } - - g_free (path); - return canonical_uri; -} - -static gboolean -is_valid_scheme_character (char c) -{ - return isalnum ((guchar) c) || c == '+' || c == '-' || c == '.'; -} - -static gboolean -has_valid_scheme (const char *uri) -{ - const char *p; - - p = uri; - - if (!is_valid_scheme_character (*p)) { - return FALSE; - } - - do { - p++; - } while (is_valid_scheme_character (*p)); - - return *p == ':'; -} - -/** - * nautilus_make_uri_from_input: - * - * Takes a user input path/URI and makes a valid URI - * out of it - * - * @location: a possibly mangled "uri" - * - * returns a newly allocated uri - * - **/ -char * -nautilus_make_uri_from_input (const char *location) -{ - char *stripped, *path, *uri; - - g_return_val_if_fail (location != NULL, g_strdup ("")); - - /* Strip off leading and trailing spaces. - * This makes copy/paste of URIs less error-prone. - */ - stripped = g_strstrip (g_strdup (location)); - - switch (stripped[0]) { - case '\0': - uri = g_strdup (""); - break; - case '/': - uri = gnome_vfs_get_uri_from_local_path (stripped); - break; - case '~': - path = gnome_vfs_expand_initial_tilde (stripped); - /* deliberately falling into default case on fail */ - if (*path == '/') { - uri = gnome_vfs_get_uri_from_local_path (path); - g_free (path); - break; - } - g_free (path); - /* don't insert break here, read above comment */ - default: - if (has_valid_scheme (stripped)) { - uri = g_strdup (stripped); - } else { - uri = g_strconcat ("http://", stripped, NULL); - } - } - - g_free (stripped); - - return uri; -} - -/* Note that NULL's and full paths are also handled by this function. - * A NULL location will return the current working directory - */ -static char * -file_uri_from_local_relative_path (const char *location) -{ - char *current_dir; - char *base_uri, *base_uri_slash; - char *location_escaped; - char *uri; - - current_dir = g_get_current_dir (); - base_uri = gnome_vfs_get_uri_from_local_path (current_dir); - /* g_get_current_dir returns w/o trailing / */ - base_uri_slash = g_strconcat (base_uri, "/", NULL); - - location_escaped = gnome_vfs_escape_path_string (location); - - uri = nautilus_uri_make_full_from_relative (base_uri_slash, location_escaped); - - g_free (location_escaped); - g_free (base_uri_slash); - g_free (base_uri); - g_free (current_dir); - - return uri; -} - -/** - * nautilus_make_uri_from_shell_arg: - * - * Similar to nautilus_make_uri_from_input, except that: - * - * 1) guesses relative paths instead of http domains - * 2) doesn't bother stripping leading/trailing white space - * 3) doesn't bother with ~ expansion--that's done by the shell - * - * @location: a possibly mangled "uri" - * - * returns a newly allocated uri - * - **/ -char * -nautilus_make_uri_from_shell_arg (const char *location) -{ - char *uri; - - g_return_val_if_fail (location != NULL, g_strdup ("")); - - switch (location[0]) { - case '\0': - uri = g_strdup (""); - break; - case '/': - uri = gnome_vfs_get_uri_from_local_path (location); - break; - default: - if (has_valid_scheme (location)) { - uri = g_strdup (location); - } else { - uri = file_uri_from_local_relative_path (location); - } - } - - return uri; -} - -char * -nautilus_uri_get_basename (const char *uri) -{ - GnomeVFSURI *vfs_uri; - char *name; - - /* Make VFS version of URI. */ - vfs_uri = gnome_vfs_uri_new (uri); - if (vfs_uri == NULL) { - return NULL; - } - - /* Extract name part. */ - name = gnome_vfs_uri_extract_short_name (vfs_uri); - gnome_vfs_uri_unref (vfs_uri); - - return name; -} - -char * -nautilus_uri_get_scheme (const char *uri) -{ - char *colon; - - g_return_val_if_fail (uri != NULL, NULL); - - colon = strchr (uri, ':'); - - if (colon == NULL) { - return NULL; - } - - return g_strndup (uri, colon - uri); -} - - -static gboolean -is_uri_partial (const char *uri) -{ - const char *current; - - /* RFC 2396 section 3.1 */ - for (current = uri ; - *current - && ((*current >= 'a' && *current <= 'z') - || (*current >= 'A' && *current <= 'Z') - || (*current >= '0' && *current <= '9') - || ('-' == *current) - || ('+' == *current) - || ('.' == *current)) ; - current++); - - return !(':' == *current); -} - -/* - * Remove "./" segments - * Compact "../" segments inside the URI - * Remove "." at the end of the URL - * Leave any ".."'s at the beginning of the URI - */ - -/* - * FIXME this is not the simplest or most time-efficent way - * to do this. Probably a far more clear way of doing this processing - * is to split the path into segments, rather than doing the processing - * in place. - */ -static void -remove_internal_relative_components (char *uri_current) -{ - char *segment_prev, *segment_cur; - size_t len_prev, len_cur; - - len_prev = len_cur = 0; - segment_prev = NULL; - - g_return_if_fail (uri_current != NULL); - - segment_cur = uri_current; - - while (*segment_cur) { - len_cur = strcspn (segment_cur, "/"); - - if (len_cur == 1 && segment_cur[0] == '.') { - /* Remove "." 's */ - if (segment_cur[1] == '\0') { - segment_cur[0] = '\0'; - break; - } else { - memmove (segment_cur, segment_cur + 2, strlen (segment_cur + 2) + 1); - continue; - } - } else if (len_cur == 2 && segment_cur[0] == '.' && segment_cur[1] == '.' ) { - /* Remove ".."'s (and the component to the left of it) that aren't at the - * beginning or to the right of other ..'s - */ - if (segment_prev) { - if (! (len_prev == 2 - && segment_prev[0] == '.' - && segment_prev[1] == '.')) { - if (segment_cur[2] == '\0') { - segment_prev[0] = '\0'; - break; - } else { - memmove (segment_prev, segment_cur + 3, strlen (segment_cur + 3) + 1); - - segment_cur = segment_prev; - len_cur = len_prev; - - /* now we find the previous segment_prev */ - if (segment_prev == uri_current) { - segment_prev = NULL; - } else if (segment_prev - uri_current >= 2) { - segment_prev -= 2; - for ( ; segment_prev > uri_current && segment_prev[0] != '/' - ; segment_prev-- ); - if (segment_prev[0] == '/') { - segment_prev++; - } - } - continue; - } - } - } - } - - /*Forward to next segment */ - - if (segment_cur [len_cur] == '\0') { - break; - } - - segment_prev = segment_cur; - len_prev = len_cur; - segment_cur += len_cur + 1; - } -} - - -/** - * nautilus_uri_make_full_from_relative: - * - * Returns a full URI given a full base URI, and a secondary URI which may - * be relative. - * - * Return value: the URI (NULL for some bad errors). - * - * FIXME: This code has been copied from nautilus-mozilla-content-view - * because nautilus-mozilla-content-view cannot link with libnautilus-extensions - * due to lame license issues. Really, this belongs in gnome-vfs, but was added - * after the Gnome 1.4 gnome-vfs API freeze - **/ - -char * -nautilus_uri_make_full_from_relative (const char *base_uri, const char *relative_uri) -{ - char *result = NULL; - - /* See section 5.2 in RFC 2396 */ - - if (base_uri == NULL && relative_uri == NULL) { - result = NULL; - } else if (base_uri == NULL) { - result = g_strdup (relative_uri); - } else if (relative_uri == NULL) { - result = g_strdup (base_uri); - } else if (!is_uri_partial (relative_uri)) { - result = g_strdup (relative_uri); - } else { - char *mutable_base_uri; - char *mutable_uri; - - char *uri_current; - size_t base_uri_length; - char *separator; - - mutable_base_uri = g_strdup (base_uri); - uri_current = mutable_uri = g_strdup (relative_uri); - - /* Chew off Fragment and Query from the base_url */ - - separator = strrchr (mutable_base_uri, '#'); - - if (separator) { - *separator = '\0'; - } - - separator = strrchr (mutable_base_uri, '?'); - - if (separator) { - *separator = '\0'; - } - - if ('/' == uri_current[0] && '/' == uri_current [1]) { - /* Relative URI's beginning with the authority - * component inherit only the scheme from their parents - */ - - separator = strchr (mutable_base_uri, ':'); - - if (separator) { - separator[1] = '\0'; - } - } else if ('/' == uri_current[0]) { - /* Relative URI's beginning with '/' absolute-path based - * at the root of the base uri - */ - - separator = strchr (mutable_base_uri, ':'); - - /* g_assert (separator), really */ - if (separator) { - /* If we start with //, skip past the authority section */ - if ('/' == separator[1] && '/' == separator[2]) { - separator = strchr (separator + 3, '/'); - if (separator) { - separator[0] = '\0'; - } - } else { - /* If there's no //, just assume the scheme is the root */ - separator[1] = '\0'; - } - } - } else if ('#' != uri_current[0]) { - /* Handle the ".." convention for relative uri's */ - - /* If there's a trailing '/' on base_url, treat base_url - * as a directory path. - * Otherwise, treat it as a file path, and chop off the filename - */ - - base_uri_length = strlen (mutable_base_uri); - if ('/' == mutable_base_uri[base_uri_length-1]) { - /* Trim off '/' for the operation below */ - mutable_base_uri[base_uri_length-1] = 0; - } else { - separator = strrchr (mutable_base_uri, '/'); - if (separator) { - *separator = '\0'; - } - } - - remove_internal_relative_components (uri_current); - - /* handle the "../"'s at the beginning of the relative URI */ - while (0 == strncmp ("../", uri_current, 3)) { - uri_current += 3; - separator = strrchr (mutable_base_uri, '/'); - if (separator) { - *separator = '\0'; - } else { - /* <shrug> */ - break; - } - } - - /* handle a ".." at the end */ - if (uri_current[0] == '.' && uri_current[1] == '.' - && uri_current[2] == '\0') { - - uri_current += 2; - separator = strrchr (mutable_base_uri, '/'); - if (separator) { - *separator = '\0'; - } - } - - /* Re-append the '/' */ - mutable_base_uri [strlen(mutable_base_uri)+1] = '\0'; - mutable_base_uri [strlen(mutable_base_uri)] = '/'; - } - - result = g_strconcat (mutable_base_uri, uri_current, NULL); - g_free (mutable_base_uri); - g_free (mutable_uri); - } - - return result; -} - - -gboolean -nautilus_uri_is_trash (const char *uri) -{ - return eel_istr_has_prefix (uri, "trash:") - || eel_istr_has_prefix (uri, "gnome-trash:"); -} - -gboolean -nautilus_uri_is_trash_folder (const char *uri) -{ - GnomeVFSURI *vfs_uri, *trash_vfs_uri; - gboolean result; - - /* Use a check for the actual trash first so that the trash - * itself will be "in trash". There are fancier ways to do - * this, but lets start with this. - */ - if (nautilus_uri_is_trash (uri)) { - return TRUE; - } - - vfs_uri = gnome_vfs_uri_new (uri); - if (vfs_uri == NULL) { - return FALSE; - } - - result = gnome_vfs_find_directory - (vfs_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, - &trash_vfs_uri, FALSE, FALSE, 0777) == GNOME_VFS_OK; - - if (result) { - result = gnome_vfs_uri_equal (trash_vfs_uri, vfs_uri); - gnome_vfs_uri_unref (trash_vfs_uri); - } - - gnome_vfs_uri_unref (vfs_uri); - - return result; -} - - -gboolean -nautilus_uri_is_in_trash (const char *uri) -{ - GnomeVFSURI *vfs_uri, *trash_vfs_uri; - gboolean result; - - /* Use a check for the actual trash first so that the trash - * itself will be "in trash". There are fancier ways to do - * this, but lets start with this. - */ - if (nautilus_uri_is_trash (uri)) { - return TRUE; - } - - vfs_uri = gnome_vfs_uri_new (uri); - if (vfs_uri == NULL) { - return FALSE; - } - - result = gnome_vfs_find_directory - (vfs_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, - &trash_vfs_uri, FALSE, FALSE, 0777) == GNOME_VFS_OK; - - if (result) { - result = gnome_vfs_uri_equal (trash_vfs_uri, vfs_uri) - || gnome_vfs_uri_is_parent (trash_vfs_uri, vfs_uri, TRUE); - gnome_vfs_uri_unref (trash_vfs_uri); - } - - gnome_vfs_uri_unref (vfs_uri); - - return result; -} - - -static gboolean -nautilus_uri_is_local_scheme (const char *uri) -{ - gboolean is_local_scheme; - char *temp_scheme; - int i; - char *local_schemes[] = {"file:", "help:", "ghelp:", "gnome-help:", - "trash:", "man:", "info:", - "hardware:", "search:", "pipe:", - "gnome-trash:", NULL}; - - is_local_scheme = FALSE; - for (temp_scheme = *local_schemes, i = 0; temp_scheme != NULL; i++, temp_scheme = local_schemes[i]) { - is_local_scheme = eel_istr_has_prefix (uri, temp_scheme); - if (is_local_scheme) { - break; - } - } - - - return is_local_scheme; -} - -static char * -nautilus_handle_trailing_slashes (const char *uri) -{ - char *temp, *uri_copy; - gboolean previous_char_is_column, previous_chars_are_slashes_without_column; - gboolean previous_chars_are_slashes_with_column; - gboolean is_local_scheme; - - g_assert (uri != NULL); - - uri_copy = g_strdup (uri); - if (strlen (uri_copy) <= 2) { - return uri_copy; - } - - is_local_scheme = nautilus_uri_is_local_scheme (uri); - - previous_char_is_column = FALSE; - previous_chars_are_slashes_without_column = FALSE; - previous_chars_are_slashes_with_column = FALSE; - - /* remove multiple trailing slashes */ - for (temp = uri_copy; *temp != '\0'; temp++) { - if (*temp == '/' && !previous_char_is_column) { - previous_chars_are_slashes_without_column = TRUE; - } else if (*temp == '/' && previous_char_is_column) { - previous_chars_are_slashes_without_column = FALSE; - previous_char_is_column = TRUE; - previous_chars_are_slashes_with_column = TRUE; - } else { - previous_chars_are_slashes_without_column = FALSE; - previous_char_is_column = FALSE; - previous_chars_are_slashes_with_column = FALSE; - } - - if (*temp == ':') { - previous_char_is_column = TRUE; - } - } - - if (*temp == '\0' && previous_chars_are_slashes_without_column) { - if (is_local_scheme) { - /* go back till you remove them all. */ - for (temp--; *(temp) == '/'; temp--) { - *temp = '\0'; - } - } else { - /* go back till you remove them all but one. */ - for (temp--; *(temp - 1) == '/'; temp--) { - *temp = '\0'; - } - } - } - - if (*temp == '\0' && previous_chars_are_slashes_with_column) { - /* go back till you remove them all but three. */ - for (temp--; *(temp - 3) != ':' && *(temp - 2) != ':' && *(temp - 1) != ':'; temp--) { - *temp = '\0'; - } - } - - - return uri_copy; -} - -char * -nautilus_make_uri_canonical (const char *uri) -{ - char *canonical_uri, *old_uri, *p; - gboolean relative_uri; - - relative_uri = FALSE; - - if (uri == NULL) { - return NULL; - } - - /* Convert "gnome-trash:<anything>" and "trash:<anything>" to - * "trash:". - */ - if (nautilus_uri_is_trash (uri)) { - return g_strdup (NAUTILUS_TRASH_URI); - } - - /* FIXME bugzilla.eazel.com 648: - * This currently ignores the issue of two uris that are not identical but point - * to the same data except for the specific cases of trailing '/' characters, - * file:/ and file:///, and "lack of file:". - */ - - canonical_uri = nautilus_handle_trailing_slashes (uri); - - /* Note: In some cases, a trailing slash means nothing, and can - * be considered equivalent to no trailing slash. But this is - * not true in every case; specifically not for web addresses passed - * to a web-browser. So we don't have the trailing-slash-equivalence - * logic here, but we do use that logic in NautilusDirectory where - * the rules are more strict. - */ - - /* Add file: if there is no scheme. */ - if (strchr (canonical_uri, ':') == NULL) { - old_uri = canonical_uri; - - if (old_uri[0] != '/') { - /* FIXME bugzilla.eazel.com 5069: - * bandaid alert. Is this really the right thing to do? - * - * We got what really is a relative path. We do a little bit of - * a stretch here and assume it was meant to be a cryptic absolute path, - * and convert it to one. Since we can't call gnome_vfs_uri_new and - * gnome_vfs_uri_to_string to do the right make-canonical conversion, - * we have to do it ourselves. - */ - relative_uri = TRUE; - canonical_uri = gnome_vfs_make_path_name_canonical (old_uri); - g_free (old_uri); - old_uri = canonical_uri; - canonical_uri = g_strconcat ("file:///", old_uri, NULL); - } else { - canonical_uri = g_strconcat ("file:", old_uri, NULL); - } - g_free (old_uri); - } - - /* Lower-case the scheme. */ - for (p = canonical_uri; *p != ':'; p++) { - g_assert (*p != '\0'); - if (isupper (*p)) { - *p = tolower (*p); - } - } - - if (!relative_uri) { - old_uri = canonical_uri; - canonical_uri = gnome_vfs_make_uri_canonical (canonical_uri); - if (canonical_uri != NULL) { - g_free (old_uri); - } else { - canonical_uri = old_uri; - } - } - - /* FIXME bugzilla.eazel.com 2802: - * Work around gnome-vfs's desire to convert file:foo into file://foo - * by converting to file:///foo here. When you remove this, check that - * typing "foo" into location bar does not crash and returns an error - * rather than displaying the contents of / - */ - if (eel_str_has_prefix (canonical_uri, "file://") - && !eel_str_has_prefix (canonical_uri, "file:///")) { - old_uri = canonical_uri; - canonical_uri = g_strconcat ("file:/", old_uri + 5, NULL); - g_free (old_uri); - } - - return canonical_uri; -} - -char * -nautilus_make_uri_canonical_strip_fragment (const char *uri) -{ - const char *fragment; - char *without_fragment, *canonical; - - fragment = strchr (uri, '#'); - if (fragment == NULL) { - return nautilus_make_uri_canonical (uri); - } - - without_fragment = g_strndup (uri, fragment - uri); - canonical = nautilus_make_uri_canonical (without_fragment); - g_free (without_fragment); - return canonical; -} - -static gboolean -uris_match (const char *uri_1, const char *uri_2, gboolean ignore_fragments) -{ - char *canonical_1, *canonical_2; - gboolean result; - - if (ignore_fragments) { - canonical_1 = nautilus_make_uri_canonical_strip_fragment (uri_1); - canonical_2 = nautilus_make_uri_canonical_strip_fragment (uri_2); - } else { - canonical_1 = nautilus_make_uri_canonical (uri_1); - canonical_2 = nautilus_make_uri_canonical (uri_2); - } - - result = eel_str_is_equal (canonical_1, canonical_2); - - g_free (canonical_1); - g_free (canonical_2); - - return result; -} - -gboolean -nautilus_uris_match (const char *uri_1, const char *uri_2) -{ - return uris_match (uri_1, uri_2, FALSE); -} - -gboolean -nautilus_uris_match_ignore_fragments (const char *uri_1, const char *uri_2) -{ - return uris_match (uri_1, uri_2, TRUE); -} - gboolean nautilus_file_name_matches_hidden_pattern (const char *name_or_relative_uri) { @@ -1046,20 +258,6 @@ nautilus_get_pixmap_directory (void) return g_strdup (DATADIR "/pixmaps/nautilus"); } -/* convenience routine to use gnome-vfs to test if a string is a remote uri */ -gboolean -nautilus_is_remote_uri (const char *uri) -{ - gboolean is_local; - GnomeVFSURI *vfs_uri; - - vfs_uri = gnome_vfs_uri_new (uri); - is_local = gnome_vfs_uri_is_local (vfs_uri); - gnome_vfs_uri_unref(vfs_uri); - return !is_local; -} - - /* FIXME bugzilla.eazel.com 2423: * Callers just use this and dereference so we core dump if * pixmaps are missing. That is lame. @@ -1086,571 +284,6 @@ nautilus_pixmap_file (const char *partial_path) return NULL; } -GnomeVFSResult -nautilus_read_entire_file (const char *uri, - int *file_size, - char **file_contents) -{ - GnomeVFSResult result; - GnomeVFSHandle *handle; - char *buffer; - GnomeVFSFileSize total_bytes_read; - GnomeVFSFileSize bytes_read; - - *file_size = 0; - *file_contents = NULL; - - /* Open the file. */ - result = gnome_vfs_open (&handle, uri, GNOME_VFS_OPEN_READ); - if (result != GNOME_VFS_OK) { - return result; - } - - /* Read the whole thing. */ - buffer = NULL; - total_bytes_read = 0; - do { - buffer = g_realloc (buffer, total_bytes_read + READ_CHUNK_SIZE); - result = gnome_vfs_read (handle, - buffer + total_bytes_read, - READ_CHUNK_SIZE, - &bytes_read); - if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { - g_free (buffer); - gnome_vfs_close (handle); - return result; - } - - /* Check for overflow. */ - if (total_bytes_read + bytes_read < total_bytes_read) { - g_free (buffer); - gnome_vfs_close (handle); - return GNOME_VFS_ERROR_TOO_BIG; - } - - total_bytes_read += bytes_read; - } while (result == GNOME_VFS_OK); - - /* Close the file. */ - result = gnome_vfs_close (handle); - if (result != GNOME_VFS_OK) { - g_free (buffer); - return result; - } - - /* Return the file. */ - *file_size = total_bytes_read; - *file_contents = g_realloc (buffer, total_bytes_read); - return GNOME_VFS_OK; -} - -#ifndef PTHREAD_ASYNC_READ -/* When close is complete, there's no more work to do. */ -static void -read_file_close_callback (GnomeVFSAsyncHandle *handle, - GnomeVFSResult result, - gpointer callback_data) -{ -} - -/* Do a close if it's needed. - * Be sure to get this right, or we have extra threads hanging around. - */ -static void -read_file_close (NautilusReadFileHandle *read_handle) -{ - if (read_handle->is_open) { - gnome_vfs_async_close (read_handle->handle, - read_file_close_callback, - NULL); - read_handle->is_open = FALSE; - } -} - -/* Close the file and then tell the caller we succeeded, handing off - * the buffer to the caller. - */ -static void -read_file_succeeded (NautilusReadFileHandle *read_handle) -{ - read_file_close (read_handle); - - /* Reallocate the buffer to the exact size since it might be - * around for a while. - */ - (* read_handle->callback) (GNOME_VFS_OK, - read_handle->bytes_read, - g_realloc (read_handle->buffer, - read_handle->bytes_read), - read_handle->callback_data); - - g_free (read_handle); -} - -/* Tell the caller we failed. */ -static void -read_file_failed (NautilusReadFileHandle *read_handle, GnomeVFSResult result) -{ - read_file_close (read_handle); - g_free (read_handle->buffer); - - (* read_handle->callback) (result, 0, NULL, read_handle->callback_data); - g_free (read_handle); -} - -/* A read is complete, so we might or might not be done. */ -static void -read_file_read_callback (GnomeVFSAsyncHandle *handle, - GnomeVFSResult result, - gpointer buffer, - GnomeVFSFileSize bytes_requested, - GnomeVFSFileSize bytes_read, - gpointer callback_data) -{ - NautilusReadFileHandle *read_handle; - gboolean read_more; - - /* Do a few reality checks. */ - g_assert (bytes_requested == READ_CHUNK_SIZE); - read_handle = callback_data; - g_assert (read_handle->handle == handle); - g_assert (read_handle->buffer + read_handle->bytes_read == buffer); - g_assert (bytes_read <= bytes_requested); - - /* Check for a failure. */ - if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { - read_file_failed (read_handle, result); - return; - } - - /* Check for the extremely unlikely case where the file size overflows. */ - if (read_handle->bytes_read + bytes_read < read_handle->bytes_read) { - read_file_failed (read_handle, GNOME_VFS_ERROR_TOO_BIG); - return; - } - - /* Bump the size. */ - read_handle->bytes_read += bytes_read; - - /* Read more unless we are at the end of the file. */ - if (bytes_read == 0 || result != GNOME_VFS_OK) { - read_more = FALSE; - } else { - if (read_handle->read_more_callback == NULL) { - read_more = TRUE; - } else { - read_more = (* read_handle->read_more_callback) - (read_handle->bytes_read, - read_handle->buffer, - read_handle->callback_data); - } - } - if (read_more) { - read_file_read_chunk (read_handle); - return; - } - - /* If at the end of the file, we win! */ - read_file_succeeded (read_handle); -} - -/* Start reading a chunk. */ -static void -read_file_read_chunk (NautilusReadFileHandle *handle) -{ - handle->buffer = g_realloc (handle->buffer, handle->bytes_read + READ_CHUNK_SIZE); - gnome_vfs_async_read (handle->handle, - handle->buffer + handle->bytes_read, - READ_CHUNK_SIZE, - read_file_read_callback, - handle); -} - -/* Once the open is finished, read a first chunk. */ -static void -read_file_open_callback (GnomeVFSAsyncHandle *handle, - GnomeVFSResult result, - gpointer callback_data) -{ - NautilusReadFileHandle *read_handle; - - read_handle = callback_data; - g_assert (read_handle->handle == handle); - - /* Handle the failure case. */ - if (result != GNOME_VFS_OK) { - read_file_failed (read_handle, result); - return; - } - - /* Handle success by reading the first chunk. */ - read_handle->is_open = TRUE; - read_file_read_chunk (read_handle); -} - -#else - -typedef struct { - NautilusReadFileCallback callback; - NautilusReadMoreCallback more_callback; - gpointer callback_data; - pthread_mutex_t *callback_result_ready_semaphore; - gboolean synch_callback_result; - - GnomeVFSResult result; - GnomeVFSFileSize file_size; - char *buffer; -} NautilusAsyncReadFileCallbackData; - -static int -pthread_nautilus_read_file_callback_idle_binder (void *cast_to_context) -{ - NautilusAsyncReadFileCallbackData *context; - - context = (NautilusAsyncReadFileCallbackData *)cast_to_context; - - if (context->more_callback) { - g_assert (context->callback_result_ready_semaphore != NULL); - /* Synchronous callback flavor, wait for the return value. */ - context->synch_callback_result = (* context->more_callback) (context->file_size, - context->buffer, context->callback_data); - /* Got the result, release the master thread */ - pthread_mutex_unlock (context->callback_result_ready_semaphore); - } else { - /* Asynchronous callback flavor, don't wait for the result. */ - (* context->callback) (context->result, context->file_size, - context->buffer, context->callback_data); - - /* We assume ownership of data here in the async call and have to - * free it. - */ - g_free (context); - } - - return FALSE; -} - -static gboolean -pthread_nautilus_read_file_callback_common (NautilusReadFileCallback callback, - NautilusReadMoreCallback more_callback, gpointer callback_data, - GnomeVFSResult error, GnomeVFSFileSize file_size, - char *buffer, pthread_mutex_t *callback_result_ready_semaphore) -{ - NautilusAsyncReadFileCallbackData *data; - gboolean result; - - g_assert ((callback == NULL) != (more_callback == NULL)); - g_assert ((more_callback != NULL) == (callback_result_ready_semaphore != NULL)); - - result = FALSE; - data = g_new0 (NautilusAsyncReadFileCallbackData, 1); - data->callback = callback; - data->more_callback = more_callback; - data->callback_data = callback_data; - data->callback_result_ready_semaphore = callback_result_ready_semaphore; - data->result = error; - data->file_size = file_size; - data->buffer = buffer; - - /* Set up the callback to get called in the main thread. */ - g_idle_add (pthread_nautilus_read_file_callback_idle_binder, data); - - if (callback_result_ready_semaphore != NULL) { - /* Block until callback deposits the return value. This is not optimal but we do it - * to emulate the nautilus_read_file_async call behavior. - */ - pthread_mutex_lock (callback_result_ready_semaphore); - result = data->synch_callback_result; - - /* In the synch call we still own data here and need to free it. */ - g_free (data); - - } - - return result; -} - -static gboolean -pthread_nautilus_read_file_synchronous_callback (NautilusReadMoreCallback callback, - gpointer callback_data, GnomeVFSFileSize file_size, - char *buffer, pthread_mutex_t *callback_result_ready_semaphore) -{ - return pthread_nautilus_read_file_callback_common(NULL, callback, - callback_data, GNOME_VFS_OK, file_size, buffer, callback_result_ready_semaphore); -} - -static void -pthread_nautilus_read_file_asynchronous_callback (NautilusReadFileCallback callback, - gpointer callback_data, GnomeVFSResult result, GnomeVFSFileSize file_size, - char *buffer) -{ - pthread_nautilus_read_file_callback_common(callback, NULL, - callback_data, result, file_size, buffer, NULL); -} - -typedef struct { - NautilusReadFileHandle handle; - char *uri; - volatile gboolean cancel_requested; - /* Expose the synch callback semaphore to allow the cancel call to unlock it. */ - pthread_mutex_t *callback_result_ready_semaphore; -} NautilusAsyncReadFileData; - -static void * -pthread_nautilus_read_file_thread_entry (void *cast_to_data) -{ - NautilusAsyncReadFileData *data; - GnomeVFSResult result; - char *buffer; - GnomeVFSFileSize total_bytes_read; - GnomeVFSFileSize bytes_read; - pthread_mutex_t callback_result_ready_semaphore; - - data = (NautilusAsyncReadFileData *)cast_to_data; - buffer = NULL; - total_bytes_read = 0; - - result = gnome_vfs_open ((GnomeVFSHandle **)&data->handle.handle, data->uri, GNOME_VFS_OPEN_READ); - if (result == GNOME_VFS_OK) { - - if (data->handle.read_more_callback != NULL) { - /* read_more_callback is a synchronous callback, allocate a semaphore - * to provide for synchoronization with the callback. - * We are using the default mutex attributes that give us a fast mutex - * that behaves like a semaphore. - */ - pthread_mutex_init (&callback_result_ready_semaphore, NULL); - /* Grab the semaphore -- the next lock will block us and - * we will need the callback to unblock the semaphore. - */ - pthread_mutex_lock (&callback_result_ready_semaphore); - data->callback_result_ready_semaphore = &callback_result_ready_semaphore; - } - for (;;) { - if (data->cancel_requested) { - /* Cancelled by the master. */ - result = GNOME_VFS_ERROR_INTERRUPTED; - break; - } - - buffer = g_realloc (buffer, total_bytes_read + READ_CHUNK_SIZE); - /* FIXME bugzilla.eazel.com 5070: - * For a better cancellation granularity we should use gnome_vfs_read_cancellable - * here, adding a GnomeVFSContext to NautilusAsyncReadFileData. - */ - result = gnome_vfs_read ((GnomeVFSHandle *)data->handle.handle, buffer + total_bytes_read, - READ_CHUNK_SIZE, &bytes_read); - - total_bytes_read += bytes_read; - - if (data->cancel_requested) { - /* Cancelled by the master. */ - result = GNOME_VFS_ERROR_INTERRUPTED; - break; - } - - if (result != GNOME_VFS_OK) { - if (result == GNOME_VFS_ERROR_EOF) { - /* not really an error, just done reading */ - result = GNOME_VFS_OK; - } - break; - } - - if (data->handle.read_more_callback != NULL - && !pthread_nautilus_read_file_synchronous_callback (data->handle.read_more_callback, - data->handle.callback_data, total_bytes_read, buffer, - &callback_result_ready_semaphore)) { - /* callback doesn't want any more data */ - break; - } - - } - gnome_vfs_close ((GnomeVFSHandle *)data->handle.handle); - } - - if (result != GNOME_VFS_OK) { - /* Because of the error or cancellation, nobody will take the data we read, - * delete the buffer here instead. - */ - g_free (buffer); - buffer = NULL; - total_bytes_read = 0; - } - - /* Call the final callback. - * If everything is OK, pass in the data read. - * We are handing off the read buffer -- trim it to the actual size we need first - * so that it doesn't take up more space than needed. - */ - pthread_nautilus_read_file_asynchronous_callback(data->handle.callback, - data->handle.callback_data, result, total_bytes_read, - g_realloc (buffer, total_bytes_read)); - - if (data->handle.read_more_callback != NULL) { - pthread_mutex_destroy (&callback_result_ready_semaphore); - } - - g_free (data->uri); - g_free (data); - - return NULL; -} - -static NautilusReadFileHandle * -pthread_nautilus_read_file_async(const char *uri, NautilusReadFileCallback callback, - NautilusReadMoreCallback read_more_callback, gpointer callback_data) -{ - NautilusAsyncReadFileData *data; - pthread_attr_t thread_attr; - pthread_t thread; - - data = g_new0 (NautilusAsyncReadFileData, 1); - - data->handle.callback = callback; - data->handle.read_more_callback = read_more_callback; - data->handle.callback_data = callback_data; - data->cancel_requested = FALSE; - data->uri = g_strdup (uri); - - pthread_attr_init (&thread_attr); - pthread_attr_setdetachstate (&thread_attr, PTHREAD_CREATE_DETACHED); - if (pthread_create (&thread, &thread_attr, pthread_nautilus_read_file_thread_entry, data) != 0) { - /* FIXME bugzilla.eazel.com 5071: - * Would be cleaner to call through an idle callback here. - */ - (*callback) (GNOME_VFS_ERROR_INTERNAL, 0, NULL, NULL); - g_free (data); - return NULL; - } - - return (NautilusReadFileHandle *)data; -} - -static void -pthread_nautilus_read_file_async_cancel (NautilusReadFileHandle *handle) -{ - /* Must call this before the final callback kicks in. */ - NautilusAsyncReadFileData *data; - - data = (NautilusAsyncReadFileData *)handle; - data->cancel_requested = TRUE; - if (data->callback_result_ready_semaphore != NULL) { - pthread_mutex_unlock (data->callback_result_ready_semaphore); - } - - /* now the thread will die on it's own and clean up after itself */ -} - -#endif - -/* Set up the read handle and start reading. */ -NautilusReadFileHandle * -nautilus_read_file_async (const char *uri, - NautilusReadFileCallback callback, - NautilusReadMoreCallback read_more_callback, - gpointer callback_data) -{ -#ifndef PTHREAD_ASYNC_READ - NautilusReadFileHandle *handle; - - handle = g_new0 (NautilusReadFileHandle, 1); - - handle->callback = callback; - handle->read_more_callback = read_more_callback; - handle->callback_data = callback_data; - - gnome_vfs_async_open (&handle->handle, - uri, - GNOME_VFS_OPEN_READ, - read_file_open_callback, - handle); - return handle; -#else - return pthread_nautilus_read_file_async(uri, callback, - read_more_callback, callback_data); -#endif -} - -/* Set up the read handle and start reading. */ -NautilusReadFileHandle * -nautilus_read_entire_file_async (const char *uri, - NautilusReadFileCallback callback, - gpointer callback_data) -{ - return nautilus_read_file_async (uri, callback, NULL, callback_data); -} - -/* Stop the presses! */ -void -nautilus_read_file_cancel (NautilusReadFileHandle *handle) -{ -#ifndef PTHREAD_ASYNC_READ - gnome_vfs_async_cancel (handle->handle); - read_file_close (handle); - g_free (handle->buffer); - g_free (handle); -#else - - pthread_nautilus_read_file_async_cancel (handle); -#endif -} - -GnomeVFSResult -nautilus_make_directory_and_parents (GnomeVFSURI *uri, guint permissions) -{ - GnomeVFSResult result; - GnomeVFSURI *parent_uri; - - /* Make the directory, and return right away unless there's - a possible problem with the parent. - */ - result = gnome_vfs_make_directory_for_uri (uri, permissions); - if (result != GNOME_VFS_ERROR_NOT_FOUND) { - return result; - } - - /* If we can't get a parent, we are done. */ - parent_uri = gnome_vfs_uri_get_parent (uri); - if (parent_uri == NULL) { - return result; - } - - /* If we can get a parent, use a recursive call to create - the parent and its parents. - */ - result = nautilus_make_directory_and_parents (parent_uri, permissions); - gnome_vfs_uri_unref (parent_uri); - if (result != GNOME_VFS_OK) { - return result; - } - - /* A second try at making the directory after the parents - have all been created. - */ - result = gnome_vfs_make_directory_for_uri (uri, permissions); - return result; -} - -GnomeVFSResult -nautilus_copy_uri_simple ( const char *source_uri, const char *dest_uri) -{ - GnomeVFSResult result; - GnomeVFSURI *real_source_uri, *real_dest_uri; - real_source_uri = gnome_vfs_uri_new (source_uri); - real_dest_uri = gnome_vfs_uri_new (dest_uri); - - result = gnome_vfs_xfer_uri (real_source_uri, real_dest_uri, - GNOME_VFS_XFER_RECURSIVE, GNOME_VFS_XFER_ERROR_MODE_ABORT, - GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE, - NULL, NULL); - - gnome_vfs_uri_unref (real_source_uri); - gnome_vfs_uri_unref (real_dest_uri); - - return result; -} - char * nautilus_unique_temporary_file_name (void) { @@ -1693,262 +326,6 @@ nautilus_get_build_message (void) void nautilus_self_check_file_utilities (void) { - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (""), ""); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" "), ""); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" / "), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" /"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" /home\n\n"), "file:///home"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (" \n\t"), ""); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("!"), "http://!"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("#"), "http://#"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/ "), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/!"), "file:///!"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/#"), "file:///%23"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/%20"), "file:///%2520"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/%25"), "file:///%2525"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/:"), "file:///%3A"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/home"), "file:///home"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("/home/darin"), "file:///home/darin"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (":"), "http://:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("::"), "http://::"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input (":://:://:::::::::::::::::"), "http://:://:://:::::::::::::::::"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:"), "file:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///%20"), "file:///%20"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///%3F"), "file:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///:"), "file:///:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///?"), "file:///?"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:///home/joe/some file"), "file:///home/joe/some file"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file://home/joe/some file"), "file://home/joe/some file"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("file:::::////"), "file:::::////"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("foo://foobar.txt"), "foo://foobar.txt"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("home"), "http://home"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://null.stanford.edu"), "http://null.stanford.edu"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://null.stanford.edu:80"), "http://null.stanford.edu:80"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://seth@null.stanford.edu:80"), "http://seth@null.stanford.edu:80"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http:::::::::"), "http:::::::::"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("www.eazel.com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_from_input ("http://null.stanford.edu/some file"), "http://null.stanford.edu/some file"); - - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme ("file:///var/tmp"), "file"); - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme (""), NULL); - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme ("file:///var/tmp::"), "file"); - EEL_CHECK_STRING_RESULT (nautilus_uri_get_scheme ("man:ls"), "man"); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uri_is_local_scheme ("file:///var/tmp"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uri_is_local_scheme ("http://www.yahoo.com"), FALSE); - - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file:///////"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file://foo/"), "file://foo"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file://foo"), "file://foo"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file://"), "file://"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("file:/"), "file:/"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("http://le-hacker.org"), "http://le-hacker.org"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("http://le-hacker.org/dir//////"), "http://le-hacker.org/dir/"); - EEL_CHECK_STRING_RESULT (nautilus_handle_trailing_slashes ("http://le-hacker.org/////"), "http://le-hacker.org/"); - - /* nautilus_make_uri_canonical */ - - /* FIXME bugzilla.eazel.com 5072: this is a bizarre result from an empty string */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (""), "file:///"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:/"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///home/mathieu/"), "file:///home/mathieu"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///home/mathieu"), "file:///home/mathieu"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://mathieu:password@le-hackeur.org"), "ftp://mathieu:password@le-hackeur.org"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://mathieu:password@le-hackeur.org/"), "ftp://mathieu:password@le-hackeur.org/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org"), "http://le-hackeur.org"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org/"), "http://le-hackeur.org/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org/dir"), "http://le-hackeur.org/dir"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://le-hackeur.org/dir/"), "http://le-hackeur.org/dir/"); - - /* FIXME bugzilla.eazel.com 5068: the "nested" URI loses some characters here. Maybe that's OK because we escape them in practice? */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("search://[file://]file_name contains stuff"), "search://[file/]file_name contains stuff"); -#ifdef EAZEL_SERVICES - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("eazel-services:/~turtle"), "eazel-services:///~turtle"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("eazel-services:///~turtle"), "eazel-services:///~turtle"); -#endif - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/"), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/./."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/.//."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/.///."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a"), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a///"), "file:///a/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a"), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("../a"), "file:///../a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("..//a"), "file:///../a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a//."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (".//a/."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a//."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a//.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (".//a/.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a//.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical (".//a//.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/./a/b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/./b/.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/b/./.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/a/b/../."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/../.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("./a/b/../.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("././a/b/../.."), "file:///"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/c/../.."), "file:///a"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/c/../../d"), "file:///a/d"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/../../d"), "file:///d"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/../../d"), "file:///../d"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/b/.././.././c"), "file:///c"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("a/.././.././b/c"), "file:///../b/c"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com/"), "http://www.eazel.com/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com/dir"), "http://www.eazel.com/dir"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com/dir/"), "http://www.eazel.com/dir/"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://yakk:womble@www.eazel.com:42/blah/"), "http://yakk:womble@www.eazel.com:42/blah/"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("FILE:///"), "file:///"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///trash"), "file:///trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///Users/mikef"), "file:///Users/mikef"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/trash"), "file:///trash"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("/root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("//root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("///root"), "file:///root"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("////root"), "file:///root"); - - /* Test cases related to escaping. */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///%3F"), "file:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///%78"), "file:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///?"), "file:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:///x"), "file:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///%3F"), "glorb:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///%78"), "glorb:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///?"), "glorb:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorb:///x"), "glorb:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///%3F"), "http:///%3F"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///%78"), "http:///x"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///?"), "http:///?"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http:///x"), "http:///x"); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.Eazel.Com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.Eazel.Com/xXx"), "http://www.eazel.com/xXx"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://Darin@www.Eazel.Com/xXx"), "ftp://Darin@www.eazel.com/xXx"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.Eazel.Com:80/xXx"), "http://www.eazel.com:80/xXx"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("ftp://Darin@www.Eazel.Com:80/xXx"), "ftp://Darin@www.eazel.com:80/xXx"); - - /* FIXME bugzilla.eazel.com 4101: Why append a slash in this case, but not in the http://www.eazel.com case? */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("http://www.eazel.com:80"), "http://www.eazel.com:80/"); - - /* Note: these cases behave differently here than in - * gnome-vfs. In some cases because of bugs in gnome-vfs, but - * in other cases because we just want them handled - * differently. - */ - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:trash"), "file:trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("//trash"), "file:///trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("file:"), "file:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("trash"), "file:///trash"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("glorp:"), "glorp:"); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("trash:xxx"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("GNOME-TRASH:XXX"), NAUTILUS_TRASH_URI); - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("gnome-trash:xxx"), NAUTILUS_TRASH_URI); - - EEL_CHECK_STRING_RESULT (nautilus_make_uri_canonical ("pipe:gnome-info2html2 as"), "pipe:gnome-info2html2 as"); - - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative (NULL, NULL), NULL); - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative ("http://a/b/c/d;p?q", NULL), "http://a/b/c/d;p?q"); - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative (NULL, "http://a/b/c/d;p?q"), "http://a/b/c/d;p?q"); - - /* These test cases are from RFC 2396. */ -#define TEST_PARTIAL(partial, result) \ - EEL_CHECK_STRING_RESULT (nautilus_uri_make_full_from_relative \ - ("http://a/b/c/d;p?q", partial), result) - - TEST_PARTIAL ("g", "http://a/b/c/g"); - TEST_PARTIAL ("./g", "http://a/b/c/g"); - TEST_PARTIAL ("g/", "http://a/b/c/g/"); - TEST_PARTIAL ("/g", "http://a/g"); - - TEST_PARTIAL ("//g", "http://g"); - - TEST_PARTIAL ("?y", "http://a/b/c/?y"); - TEST_PARTIAL ("g?y", "http://a/b/c/g?y"); - TEST_PARTIAL ("#s", "http://a/b/c/d;p#s"); - TEST_PARTIAL ("g#s", "http://a/b/c/g#s"); - TEST_PARTIAL ("g?y#s", "http://a/b/c/g?y#s"); - TEST_PARTIAL (";x", "http://a/b/c/;x"); - TEST_PARTIAL ("g;x", "http://a/b/c/g;x"); - TEST_PARTIAL ("g;x?y#s", "http://a/b/c/g;x?y#s"); - - TEST_PARTIAL (".", "http://a/b/c/"); - TEST_PARTIAL ("./", "http://a/b/c/"); - - TEST_PARTIAL ("..", "http://a/b/"); - TEST_PARTIAL ("../g", "http://a/b/g"); - TEST_PARTIAL ("../..", "http://a/"); - TEST_PARTIAL ("../../", "http://a/"); - TEST_PARTIAL ("../../g", "http://a/g"); - - /* Others */ - TEST_PARTIAL ("g/..", "http://a/b/c/"); - TEST_PARTIAL ("g/../", "http://a/b/c/"); - TEST_PARTIAL ("g/../g", "http://a/b/c/g"); - -#undef TEST_PARTIAL - - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display (""), "/"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display (":"), ":"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///h/user"), "/h/user"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///%68/user/foo%2ehtml"), "/h/user/foo.html"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///h/user/foo.html#fragment"), "file:///h/user/foo.html#fragment"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("http://www.eazel.com"), "http://www.eazel.com"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("http://www.eazel.com/jobs#Engineering"), "http://www.eazel.com/jobs#Engineering"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file"), "/file"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///#"), "file:///#"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///"), "/"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///%20%23"), "/ #"); - EEL_CHECK_STRING_RESULT (nautilus_format_uri_for_display ("file:///%20%23#"), "file:///%20%23#"); - - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("", ""), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match (":", ":"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("file:///h/user/file#gunzip:///", "file:///h/user/file#gunzip:///"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("file:///h/user/file#gunzip:///", "file:///h/user/file#gzip:///"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("http://www.Eazel.Com", "http://www.eazel.com"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match ("http://www.Eazel.Com:80", "http://www.eazel.com:80"), TRUE); - - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("", ""), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments (":", ":"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file#gunzip:///"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file#gzip:///"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("http://www.Eazel.Com", "http://www.eazel.com"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("http://www.Eazel.Com:80", "http://www.eazel.com:80"), TRUE); - - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user", "file:///h/user"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user#frag", "file:///h/user"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user#frag", "file:///h/user/"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user#frag", "file:///h/user%23frag"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/", "file:///h/user"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/", "http:///h/user"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/", "http://www.eazel.com"), FALSE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file#gunzip:///", "file:///h/user/file"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/file.html.gz#gunzip:///#fragment", "file:///h/user/file.html.gz"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("file:///h/user/#frag", "file:///h/user/"), TRUE); - - /* Since it's illegal to have a # in a scheme name, it doesn't really matter what these cases do */ - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("fi#le:///h/user/file", "fi"), TRUE); - EEL_CHECK_BOOLEAN_RESULT (nautilus_uris_match_ignore_fragments ("fi#le:///h/user/file", "fi#le:"), TRUE); } #endif /* !NAUTILUS_OMIT_SELF_CHECK */ diff --git a/libnautilus-private/nautilus-file-utilities.h b/libnautilus-private/nautilus-file-utilities.h index 37149623e..79e39a295 100644 --- a/libnautilus-private/nautilus-file-utilities.h +++ b/libnautilus-private/nautilus-file-utilities.h @@ -27,71 +27,30 @@ #include <libgnomevfs/gnome-vfs-types.h> -#define NAUTILUS_TRASH_URI "trash:" - -typedef void (* NautilusReadFileCallback) (GnomeVFSResult result, - GnomeVFSFileSize file_size, - char *file_contents, - gpointer callback_data); -typedef gboolean (* NautilusReadMoreCallback) (GnomeVFSFileSize file_size, - const char *file_contents, - gpointer callback_data); - -typedef struct NautilusReadFileHandle NautilusReadFileHandle; - -char * nautilus_format_uri_for_display (const char *uri); -char * nautilus_make_uri_from_input (const char *location); -char * nautilus_make_uri_from_shell_arg (const char *location); -gboolean nautilus_uri_is_trash (const char *uri); -gboolean nautilus_uri_is_trash_folder (const char *uri); -gboolean nautilus_uri_is_in_trash (const char *uri); -char * nautilus_make_uri_canonical (const char *uri); -char * nautilus_make_uri_canonical_strip_fragment (const char *uri); -gboolean nautilus_uris_match (const char *uri_1, - const char *uri_2); -gboolean nautilus_uris_match_ignore_fragments (const char *uri_1, - const char *uri_2); -char * nautilus_uri_get_basename (const char *uri); -char * nautilus_uri_get_scheme (const char *uri); -char * nautilus_uri_make_full_from_relative (const char *base_uri, - const char *uri); - /* Recognizing special file names. */ -gboolean nautilus_file_name_matches_hidden_pattern (const char *name_or_relative_uri); -gboolean nautilus_file_name_matches_backup_pattern (const char *name_or_relative_uri); -gboolean nautilus_file_name_matches_metafile_pattern(const char *name_or_relative_uri); - +gboolean nautilus_file_name_matches_hidden_pattern (const char *name_or_relative_uri); +gboolean nautilus_file_name_matches_backup_pattern (const char *name_or_relative_uri); +gboolean nautilus_file_name_matches_metafile_pattern (const char *name_or_relative_uri); /* FIXME bugzilla.eazel.com 2424: * This is the same as gnome-libs g_concat_dir_and_file except * for handling path == NULL. */ -char * nautilus_make_path (const char *path, - const char *name); - - - +char * nautilus_make_path (const char *path, + const char *name); /* These functions all return something something that needs to be * freed with g_free, is not NULL, and is guaranteed to exist. */ -char * nautilus_get_user_directory (void); -char * nautilus_get_user_main_directory (void); -char * nautilus_get_desktop_directory (void); -char * nautilus_get_pixmap_directory (void); - +char * nautilus_get_user_directory (void); +char * nautilus_get_user_main_directory (void); +char * nautilus_get_desktop_directory (void); +char * nautilus_get_pixmap_directory (void); /* See if the user_main_directory exists. This should be called before * nautilus_get_user_main_directory, which creates the directory. */ -gboolean nautilus_user_main_directory_exists (void); - - - -/* Convenience routine to test if a string is a remote URI. */ -gboolean nautilus_is_remote_uri (const char *uri); - - +gboolean nautilus_user_main_directory_exists (void); /* A version of gnome's gnome_pixmap_file that works for the nautilus prefix. * Otherwise similar to gnome_pixmap_file in that it checks to see if the file @@ -101,49 +60,22 @@ gboolean nautilus_is_remote_uri (const char * We might not need this once we get on gnome-libs 2.0 which handles * gnome_pixmap_file better, using GNOME_PATH. */ -char * nautilus_pixmap_file (const char *partial_path); - - - -/* Read an entire file at once with gnome-vfs. */ -GnomeVFSResult nautilus_read_entire_file (const char *uri, - int *file_size, - char **file_contents); -NautilusReadFileHandle *nautilus_read_entire_file_async (const char *uri, - NautilusReadFileCallback callback, - gpointer callback_data); -NautilusReadFileHandle *nautilus_read_file_async (const char *uri, - NautilusReadFileCallback callback, - NautilusReadMoreCallback read_more_callback, - gpointer callback_data); -void nautilus_read_file_cancel (NautilusReadFileHandle *handle); - - - -/* Convenience routine for simple file copying using text-based uris */ -GnomeVFSResult nautilus_copy_uri_simple (const char *source_uri, - const char *dest_uri); - - - -/* gnome-vfs cover to make a directory and parents */ -GnomeVFSResult nautilus_make_directory_and_parents (GnomeVFSURI *uri, - guint permissions); +char * nautilus_pixmap_file (const char *partial_path); /* Returns the build time stamp the Nautilus binary. * This is useful to be able to tell builds apart. * A return value of NULL means unknown time stamp. */ -char * nautilus_get_build_time_stamp (void); +char * nautilus_get_build_time_stamp (void); /* Returns the "build message", which provides some information on build * context. May return NULL. */ -char * nautilus_get_build_message (void); +char * nautilus_get_build_message (void); /* Return an allocated file name that is guranteed to be unique. */ -char * nautilus_unique_temporary_file_name (void); -char * nautilus_find_file_in_gnome_path (char *file); -GList * nautilus_find_all_files_in_gnome_path (char *file); +char * nautilus_unique_temporary_file_name (void); +char * nautilus_find_file_in_gnome_path (char *file); +GList * nautilus_find_all_files_in_gnome_path (char *file); #endif /* NAUTILUS_FILE_UTILITIES_H */ diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c index baadf21aa..c4c469110 100644 --- a/libnautilus-private/nautilus-file.c +++ b/libnautilus-private/nautilus-file.c @@ -36,6 +36,7 @@ #include "nautilus-trash-directory.h" #include "nautilus-trash-file.h" #include "nautilus-vfs-file.h" +#include "nautilus-file-utilities.h" #include <ctype.h> #include <eel/eel-glib-extensions.h> #include <eel/eel-gtk-extensions.h> @@ -302,7 +303,7 @@ nautilus_file_get_internal (const char *uri, gboolean create) /* Maybe we wouldn't need this if the gnome-vfs canonical * stuff was strong enough. */ - canonical_uri = nautilus_make_uri_canonical (uri); + canonical_uri = eel_make_uri_canonical (uri); /* Make VFS version of URI. */ vfs_uri = gnome_vfs_uri_new (canonical_uri); @@ -497,7 +498,7 @@ nautilus_file_get_parent_uri_for_display (NautilusFile *file) g_assert (NAUTILUS_IS_FILE (file)); raw_uri = nautilus_file_get_parent_uri (file); - result = nautilus_format_uri_for_display (raw_uri); + result = eel_format_uri_for_display (raw_uri); g_free (raw_uri); return result; @@ -754,7 +755,7 @@ nautilus_file_can_rename (NautilusFile *file) } /* Nautilus trash directories cannot be renamed */ - if (nautilus_uri_is_trash_folder (uri)) { + if (eel_uri_is_trash_folder (uri)) { can_rename = FALSE; } @@ -2175,7 +2176,7 @@ nautilus_file_get_uri_scheme (NautilusFile *file) return NULL; } - return nautilus_uri_get_scheme (file->details->directory->details->uri); + return eel_uri_get_scheme (file->details->directory->details->uri); } gboolean @@ -4121,7 +4122,7 @@ nautilus_file_is_in_trash (NautilusFile *file) { g_return_val_if_fail (NAUTILUS_IS_FILE (file), FALSE); - return nautilus_uri_is_in_trash (file->details->directory->details->uri); + return eel_uri_is_in_trash (file->details->directory->details->uri); } GnomeVFSResult @@ -4830,7 +4831,7 @@ nautilus_self_check_file (void) EEL_CHECK_STRING_RESULT (nautilus_file_get_name (file_1), "eazel"); nautilus_file_unref (file_1); - file_1 = nautilus_file_get (NAUTILUS_TRASH_URI); + file_1 = nautilus_file_get (EEL_TRASH_URI); EEL_CHECK_STRING_RESULT (nautilus_file_get_name (file_1), _("Trash")); nautilus_file_unref (file_1); diff --git a/libnautilus-private/nautilus-icon-dnd.c b/libnautilus-private/nautilus-icon-dnd.c index e09d50a31..61265e19b 100644 --- a/libnautilus-private/nautilus-icon-dnd.c +++ b/libnautilus-private/nautilus-icon-dnd.c @@ -31,13 +31,13 @@ #include "nautilus-icon-dnd.h" #include <eel/eel-background.h> -#include "nautilus-file-utilities.h" #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> #include <eel/eel-gnome-extensions.h> #include <eel/eel-graphic-effects.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-macros.h> +#include <eel/eel-vfs-extensions.h> #include "nautilus-icon-private.h" #include "nautilus-link.h" #include <eel/eel-stock-dialogs.h> @@ -586,7 +586,7 @@ nautilus_icon_container_selection_items_local (const NautilusIconContainer *cont /* get the URI associated with the container */ container_uri_string = get_container_uri (container); - if (nautilus_uri_is_trash (container_uri_string)) { + if (eel_uri_is_trash (container_uri_string)) { /* Special-case "trash:" because the nautilus_drag_items_local * would not work for it. */ diff --git a/libnautilus-private/nautilus-icon-factory.c b/libnautilus-private/nautilus-icon-factory.c index 38ce60f79..abc1d247e 100644 --- a/libnautilus-private/nautilus-icon-factory.c +++ b/libnautilus-private/nautilus-icon-factory.c @@ -48,6 +48,7 @@ #include <eel/eel-smooth-text-layout.h> #include <eel/eel-string.h> #include <eel/eel-xml-extensions.h> +#include <eel/eel-vfs-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtksignal.h> @@ -807,7 +808,7 @@ nautilus_icon_factory_get_icon_name_for_file (NautilusFile *file) char *uri; uri = nautilus_file_get_uri (file); - if (strcmp (uri, NAUTILUS_TRASH_URI) == 0) { + if (strcmp (uri, EEL_TRASH_URI) == 0) { g_free (uri); return nautilus_trash_monitor_is_empty () ? ICON_NAME_TRASH_EMPTY : ICON_NAME_TRASH_NOT_EMPTY; @@ -1547,7 +1548,7 @@ nautilus_icon_factory_get_emblem_icons_for_file (NautilusFile *file, * lily. */ uri = nautilus_file_get_uri (file); - file_is_trash = strcmp (uri, NAUTILUS_TRASH_URI) == 0; + file_is_trash = strcmp (uri, EEL_TRASH_URI) == 0; g_free (uri); icons = NULL; diff --git a/libnautilus-private/nautilus-link.c b/libnautilus-private/nautilus-link.c index 5dfb1278f..8fd7fcaba 100644 --- a/libnautilus-private/nautilus-link.c +++ b/libnautilus-private/nautilus-link.c @@ -27,15 +27,14 @@ #include "nautilus-directory-notify.h" #include "nautilus-directory.h" -#include "nautilus-file-utilities.h" -#include "nautilus-file.h" #include "nautilus-file-attributes.h" -#include "nautilus-global-preferences.h" -#include <eel/eel-gnome-extensions.h> +#include "nautilus-file.h" #include "nautilus-metadata.h" -#include "nautilus-preferences.h" +#include "nautilus-file-utilities.h" +#include <eel/eel-gnome-extensions.h> #include <eel/eel-stock-dialogs.h> #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> @@ -418,7 +417,7 @@ nautilus_link_local_get_image_uri (const char *path) } /* if the image is remote, see if we can find it in our local cache */ - if (nautilus_is_remote_uri (icon_uri)) { + if (eel_is_remote_uri (icon_uri)) { local_path = make_local_path (icon_uri); if (local_path == NULL) { g_free (icon_uri); @@ -435,7 +434,7 @@ nautilus_link_local_get_image_uri (const char *path) info = g_new0 (NautilusLinkIconNotificationInfo, 1); info->link_uri = gnome_vfs_get_uri_from_local_path (path); info->file_path = g_strdup (local_path); - nautilus_read_entire_file_async (icon_uri, icon_read_done_callback, info); + eel_read_entire_file_async (icon_uri, icon_read_done_callback, info); g_free (icon_uri); g_free (local_path); diff --git a/libnautilus-private/nautilus-metafile.c b/libnautilus-private/nautilus-metafile.c index c16926d43..eac730a09 100644 --- a/libnautilus-private/nautilus-metafile.c +++ b/libnautilus-private/nautilus-metafile.c @@ -1,4 +1,4 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-*/ /* nautilus-metafile.c - server side of Nautilus::Metafile * @@ -23,29 +23,27 @@ #include <config.h> #include "nautilus-metafile.h" -#include <eel/eel-gtk-macros.h> -#include <libnautilus-extensions/nautilus-directory.h> -#include <libnautilus-extensions/nautilus-bonobo-extensions.h> -#include <libnautilus/nautilus-bonobo-workarounds.h> - -#include <libgnomevfs/gnome-vfs-types.h> -#include <libgnomevfs/gnome-vfs-uri.h> -#include <libgnomevfs/gnome-vfs-file-info.h> - -#include <eel/eel-string.h> -#include "nautilus-metadata.h" -#include "nautilus-thumbnails.h" -#include <eel/eel-xml-extensions.h> -#include <eel/eel-glib-extensions.h> +#include "nautilus-bonobo-extensions.h" +#include "nautilus-directory.h" #include "nautilus-directory.h" -#include "nautilus-global-preferences.h" #include "nautilus-file-private.h" +#include "nautilus-global-preferences.h" +#include "nautilus-metadata.h" #include "nautilus-search-uri.h" - -#include <stdlib.h> +#include "nautilus-thumbnails.h" +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtkmain.h> +#include <libgnomevfs/gnome-vfs-file-info.h> +#include <libgnomevfs/gnome-vfs-types.h> +#include <libgnomevfs/gnome-vfs-uri.h> +#include <libnautilus/nautilus-bonobo-workarounds.h> +#include <stdlib.h> #define METAFILE_XML_VERSION "1.0" @@ -162,7 +160,7 @@ NAUTILUS_BONOBO_X_BOILERPLATE (NautilusMetafile, Nautilus_Metafile, BONOBO_X_OBJ typedef struct MetafileReadState { gboolean use_public_metafile; - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; GnomeVFSAsyncHandle *get_file_info_handle; } MetafileReadState; @@ -270,7 +268,7 @@ construct_private_metafile_vfs_uri (const char *uri) metafiles_directory_uri = gnome_vfs_uri_append_file_name (user_directory_uri, METAFILES_DIRECTORY_NAME); gnome_vfs_uri_unref (user_directory_uri); - result = nautilus_make_directory_and_parents (metafiles_directory_uri, + result = eel_make_directory_and_parents (metafiles_directory_uri, METAFILES_DIRECTORY_PERMISSIONS); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_FILE_EXISTS) { gnome_vfs_uri_unref (metafiles_directory_uri); @@ -1658,7 +1656,7 @@ metafile_read_cancel (NautilusMetafile *metafile) { if (metafile->details->read_state != NULL) { if (metafile->details->read_state->handle != NULL) { - nautilus_read_file_cancel (metafile->details->read_state->handle); + eel_read_file_cancel (metafile->details->read_state->handle); } if (metafile->details->read_state->get_file_info_handle != NULL) { gnome_vfs_async_cancel (metafile->details->read_state->get_file_info_handle); @@ -1869,7 +1867,7 @@ metafile_read_restart (NautilusMetafile *metafile) : metafile->details->private_vfs_uri, GNOME_VFS_URI_HIDE_NONE); - metafile->details->read_state->handle = nautilus_read_entire_file_async + metafile->details->read_state->handle = eel_read_entire_file_async (text_uri, metafile_read_done_callback, metafile); g_free (text_uri); diff --git a/libnautilus-private/nautilus-tabs.c b/libnautilus-private/nautilus-tabs.c index a1a16b3f7..e708e4c0d 100644 --- a/libnautilus-private/nautilus-tabs.c +++ b/libnautilus-private/nautilus-tabs.c @@ -33,7 +33,6 @@ #include <eel/eel-gdk-extensions.h> #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> -#include <libnautilus-extensions/nautilus-global-preferences.h> #include <eel/eel-gnome-extensions.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-macros.h> diff --git a/libnautilus-private/nautilus-theme.c b/libnautilus-private/nautilus-theme.c index 0fb37d839..c236bd8c9 100644 --- a/libnautilus-private/nautilus-theme.c +++ b/libnautilus-private/nautilus-theme.c @@ -31,6 +31,7 @@ #include "nautilus-metadata.h" #include "nautilus-preferences.h" #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <eel/eel-xml-extensions.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gnome-xml/parser.h> diff --git a/libnautilus-private/nautilus-thumbnails.c b/libnautilus-private/nautilus-thumbnails.c index 00b464a51..3ae99e7aa 100644 --- a/libnautilus-private/nautilus-thumbnails.c +++ b/libnautilus-private/nautilus-thumbnails.c @@ -25,20 +25,20 @@ #include <config.h> #include "nautilus-thumbnails.h" -#include <libgnomevfs/gnome-vfs-file-info.h> -#include <string.h> -#include "nautilus-file-utilities.h" -#include <eel/eel-string.h> -#include <gtk/gtkmain.h> -#include "nautilus-icon-factory-private.h" #include "nautilus-directory-notify.h" +#include "nautilus-icon-factory-private.h" #include "nautilus-theme.h" -#include <stdio.h> #include <eel/eel-gdk-pixbuf-extensions.h> -#include <unistd.h> -#include <sys/wait.h> -#include <librsvg/rsvg.h> #include <eel/eel-graphic-effects.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <gtk/gtkmain.h> +#include <libgnomevfs/gnome-vfs-file-info.h> +#include <librsvg/rsvg.h> +#include <stdio.h> +#include <string.h> +#include <sys/wait.h> +#include <unistd.h> /* permissions for thumbnail directory */ #define THUMBNAIL_DIR_PERMISSIONS (GNOME_VFS_PERM_USER_ALL \ @@ -128,7 +128,7 @@ make_thumbnail_uri (const char *image_uri, gboolean directory_only, gboolean use looks like the URI will be local-only, but best to make sure. */ - result = nautilus_make_directory_and_parents (thumbnail_directory_uri, THUMBNAIL_DIR_PERMISSIONS); + result = eel_make_directory_and_parents (thumbnail_directory_uri, THUMBNAIL_DIR_PERMISSIONS); gnome_vfs_uri_unref (thumbnail_directory_uri); } diff --git a/libnautilus-private/nautilus-trash-file.c b/libnautilus-private/nautilus-trash-file.c index 12aa4fcb6..b4f33a439 100644 --- a/libnautilus-private/nautilus-trash-file.c +++ b/libnautilus-private/nautilus-trash-file.c @@ -743,7 +743,7 @@ nautilus_trash_file_initialize (gpointer object, gpointer klass) trash_file = NAUTILUS_TRASH_FILE (object); - trash_directory = NAUTILUS_TRASH_DIRECTORY (nautilus_directory_get (NAUTILUS_TRASH_URI)); + trash_directory = NAUTILUS_TRASH_DIRECTORY (nautilus_directory_get (EEL_TRASH_URI)); trash_file->details = g_new0 (NautilusTrashFileDetails, 1); trash_file->details->trash_directory = trash_directory; diff --git a/libnautilus-private/nautilus-trash-monitor.c b/libnautilus-private/nautilus-trash-monitor.c index 6b6a54abb..f10d7e540 100644 --- a/libnautilus-private/nautilus-trash-monitor.c +++ b/libnautilus-private/nautilus-trash-monitor.c @@ -26,12 +26,12 @@ #include <config.h> #include "nautilus-trash-monitor.h" -#include "nautilus-directory.h" #include "nautilus-directory-notify.h" +#include "nautilus-directory.h" #include "nautilus-file-attributes.h" -#include "nautilus-file-utilities.h" -#include <eel/eel-gtk-macros.h> #include "nautilus-volume-monitor.h" +#include <eel/eel-gtk-macros.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtksignal.h> #include <libgnomevfs/gnome-vfs-find-directory.h> #include <libgnomevfs/gnome-vfs-types.h> @@ -97,7 +97,7 @@ nautilus_trash_files_changed_callback (NautilusDirectory *directory, GList *file trash_monitor->details->empty = !nautilus_directory_is_not_empty (directory); if (old_empty_state != trash_monitor->details->empty) { - file = nautilus_file_get (NAUTILUS_TRASH_URI); + file = nautilus_file_get (EEL_TRASH_URI); nautilus_file_changed (file); nautilus_file_unref (file); @@ -119,7 +119,7 @@ nautilus_trash_monitor_initialize (gpointer object, gpointer klass) /* set up a NautilusDirectory for the Trash directory to monitor */ - trash_directory = nautilus_directory_get (NAUTILUS_TRASH_URI); + trash_directory = nautilus_directory_get (EEL_TRASH_URI); trash_monitor->details = g_new0 (NautilusTrashMonitorDetails, 1); trash_monitor->details->trash_directory = trash_directory; diff --git a/src/file-manager/fm-desktop-icon-view.c b/src/file-manager/fm-desktop-icon-view.c index a42de2c74..e76a835c9 100644 --- a/src/file-manager/fm-desktop-icon-view.c +++ b/src/file-manager/fm-desktop-icon-view.c @@ -26,12 +26,19 @@ #include <config.h> #include "fm-desktop-icon-view.h" +#include <X11/Xatom.h> +#include <bonobo/bonobo-ui-util.h> #include <ctype.h> #include <dirent.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gnome-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <fcntl.h> -#include <bonobo/bonobo-ui-util.h> #include <gdk/gdkx.h> -#include <X11/Xatom.h> #include <gtk/gtkcheckmenuitem.h> #include <libgnome/gnome-dentry.h> #include <libgnome/gnome-i18n.h> @@ -44,16 +51,10 @@ #include <libnautilus-extensions/nautilus-file-changes-queue.h> #include <libnautilus-extensions/nautilus-file-operations.h> #include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gnome-extensions.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-link.h> #include <libnautilus-extensions/nautilus-metadata.h> #include <libnautilus-extensions/nautilus-program-choosing.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-trash-monitor.h> #include <libnautilus-extensions/nautilus-volume-monitor.h> #include <limits.h> @@ -911,7 +912,7 @@ update_trash_link_and_delete_copies (void) /* Check for trash link */ if (update_link_and_delete_copies (nautilus_link_local_is_trash_link, TRASH_LINK_NAME, - NAUTILUS_TRASH_URI)) { + EEL_TRASH_URI)) { return; } @@ -919,7 +920,7 @@ update_trash_link_and_delete_copies (void) nautilus_link_local_create (desktop_path, TRASH_LINK_NAME, "trash-empty.png", - NAUTILUS_TRASH_URI, + EEL_TRASH_URI, NULL, NAUTILUS_LINK_TRASH); g_free (desktop_path); diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index a9ddfbe03..1a3b1d8e0 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -33,8 +33,16 @@ #include "fm-error-reporting.h" #include "fm-properties-window.h" #include <bonobo/bonobo-control.h> -#include <bonobo/bonobo-zoomable.h> #include <bonobo/bonobo-win.h> +#include <bonobo/bonobo-zoomable.h> +#include <eel/eel-background.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gnome-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtkcheckmenuitem.h> #include <gtk/gtkmain.h> #include <gtk/gtkmenu.h> @@ -49,7 +57,6 @@ #include <libgnomevfs/gnome-vfs-result.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <eel/eel-background.h> #include <libnautilus-extensions/nautilus-bonobo-extensions.h> #include <libnautilus-extensions/nautilus-directory-background.h> #include <libnautilus-extensions/nautilus-directory.h> @@ -57,18 +64,12 @@ #include <libnautilus-extensions/nautilus-file-attributes.h> #include <libnautilus-extensions/nautilus-file-operations.h> #include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gnome-extensions.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-icon-factory.h> #include <libnautilus-extensions/nautilus-link.h> #include <libnautilus-extensions/nautilus-metadata.h> #include <libnautilus-extensions/nautilus-mime-actions.h> #include <libnautilus-extensions/nautilus-program-choosing.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-trash-monitor.h> #include <libnautilus-extensions/nautilus-view-identifier.h> #include <libnautilus/nautilus-bonobo-ui.h> @@ -858,7 +859,7 @@ show_trash_callback (BonoboUIComponent *component, view = FM_DIRECTORY_VIEW (callback_data); - open_location (view, NAUTILUS_TRASH_URI, RESPECT_PREFERENCE); + open_location (view, EEL_TRASH_URI, RESPECT_PREFERENCE); } static void @@ -2849,7 +2850,7 @@ trash_or_delete_files_common (const GList *file_uris, if (fm_directory_view_can_move_uri_to_trash (view, file_uri)) { moveable_uris = g_list_prepend (moveable_uris, g_strdup (file_uri)); - } else if (nautilus_uri_is_in_trash (file_uri)) { + } else if (eel_uri_is_in_trash (file_uri)) { in_trash_uris = g_list_prepend (in_trash_uris, g_strdup (file_uri)); } else { unmoveable_uris = g_list_prepend (unmoveable_uris, g_strdup (file_uri)); @@ -2896,7 +2897,7 @@ fm_directory_view_trash_or_delete_files (const GList *files, } file_uris = g_list_reverse (file_uris); - trash_or_delete_files_common (file_uris, NULL, NAUTILUS_TRASH_URI, + trash_or_delete_files_common (file_uris, NULL, EEL_TRASH_URI, GDK_ACTION_MOVE, view); eel_g_list_free_deep (file_uris); } @@ -5228,7 +5229,7 @@ fm_directory_view_move_copy_items (const GList *item_uris, return; } - if (nautilus_uri_is_trash (target_uri)) { + if (eel_uri_is_trash (target_uri)) { trash_or_delete_files_common (item_uris, relative_item_points, target_uri, copy_action, view); diff --git a/src/file-manager/fm-properties-window.c b/src/file-manager/fm-properties-window.c index 0c25dafe1..4a7e07eb5 100644 --- a/src/file-manager/fm-properties-window.c +++ b/src/file-manager/fm-properties-window.c @@ -26,6 +26,19 @@ #include "fm-properties-window.h" #include "fm-error-reporting.h" +#include <eel/eel-ellipsizing-label.h> +#include <eel/eel-gdk-pixbuf-extensions.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gnome-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-image.h> +#include <eel/eel-labeled-image.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-viewport.h> +#include <eel/eel-wrap-table.h> #include <gtk/gtkcheckbutton.h> #include <gtk/gtkentry.h> #include <gtk/gtkfilesel.h> @@ -46,27 +59,14 @@ #include <libgnomeui/gnome-uidefs.h> #include <libgnomevfs/gnome-vfs.h> #include <libnautilus-extensions/nautilus-customization-data.h> -#include <eel/eel-ellipsizing-label.h> #include <libnautilus-extensions/nautilus-entry.h> #include <libnautilus-extensions/nautilus-file-attributes.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-gdk-pixbuf-extensions.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gnome-extensions.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-icon-factory.h> -#include <eel/eel-image.h> #include <libnautilus-extensions/nautilus-link.h> #include <libnautilus-extensions/nautilus-metadata.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-undo-signal-handlers.h> #include <libnautilus/nautilus-undo.h> -#include <eel/eel-wrap-table.h> -#include <eel/eel-labeled-image.h> -#include <eel/eel-viewport.h> #include <string.h> static GHashTable *windows; @@ -1355,7 +1355,7 @@ is_merged_trash_directory (NautilusFile *file) gboolean result; file_uri = nautilus_file_get_uri (file); - result = nautilus_uris_match (file_uri, NAUTILUS_TRASH_URI); + result = eel_uris_match (file_uri, EEL_TRASH_URI); g_free (file_uri); return result; diff --git a/src/nautilus-application.c b/src/nautilus-application.c index 147bfb889..31d67afba 100644 --- a/src/nautilus-application.c +++ b/src/nautilus-application.c @@ -39,26 +39,27 @@ #include "nautilus-shell.h" #include <bonobo/bonobo-main.h> #include <bonobo/bonobo-object.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string-list.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtksignal.h> #include <libgnome/gnome-config.h> #include <libgnome/gnome-i18n.h> #include <libgnome/gnome-util.h> -#include <libgnomeui/gnome-messagebox.h> #include <libgnomeui/gnome-client.h> +#include <libgnomeui/gnome-messagebox.h> #include <libgnomeui/gnome-stock.h> -#include <libgnomevfs/gnome-vfs-utils.h> #include <libgnomevfs/gnome-vfs-ops.h> +#include <libgnomevfs/gnome-vfs-utils.h> #include <libnautilus-extensions/nautilus-file-utilities.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-icon-factory.h> +#include <libnautilus-extensions/nautilus-metafile-factory.h> #include <libnautilus-extensions/nautilus-sound.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> -#include <eel/eel-string-list.h> #include <libnautilus-extensions/nautilus-undo-manager.h> #include <libnautilus-extensions/nautilus-volume-monitor.h> -#include <libnautilus-extensions/nautilus-metafile-factory.h> #include <liboaf/liboaf.h> #define FACTORY_IID "OAFIID:nautilus_factory:bd1e1862-92d7-4391-963e-37583f0daef3" @@ -323,7 +324,7 @@ nautilus_make_uri_list_from_shell_strv (const char * const *strv) uri_list->_length = length; uri_list->_buffer = CORBA_sequence_Nautilus_URI_allocbuf (length); for (i = 0; i < length; i++) { - translated_uri = nautilus_make_uri_from_shell_arg (strv[i]); + translated_uri = eel_make_uri_from_shell_arg (strv[i]); uri_list->_buffer[i] = CORBA_string_dup (translated_uri); g_free (translated_uri); translated_uri = NULL; diff --git a/src/nautilus-first-time-druid.c b/src/nautilus-first-time-druid.c index da652a59a..93b4f4436 100644 --- a/src/nautilus-first-time-druid.c +++ b/src/nautilus-first-time-druid.c @@ -28,26 +28,26 @@ #include <ctype.h> #include <dirent.h> -#include <gdk-pixbuf/gdk-pixbuf.h> -#include <gnome.h> -#include <libgnomevfs/gnome-vfs.h> #include <eel/eel-background.h> -#include <libnautilus-extensions/nautilus-druid-page-eazel.h> -#include <libnautilus-extensions/nautilus-druid.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> #include <eel/eel-gdk-extensions.h> #include <eel/eel-gdk-pixbuf-extensions.h> #include <eel/eel-glib-extensions.h> #include <eel/eel-gtk-extensions.h> #include <eel/eel-image.h> #include <eel/eel-label.h> -#include <libnautilus-extensions/nautilus-link.h> -#include <libnautilus-extensions/nautilus-medusa-support.h> -#include <libnautilus-extensions/nautilus-preferences.h> #include <eel/eel-radio-button-group.h> +#include <eel/eel-stock-dialogs.h> #include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gnome.h> +#include <libgnomevfs/gnome-vfs.h> +#include <libnautilus-extensions/nautilus-druid-page-eazel.h> +#include <libnautilus-extensions/nautilus-druid.h> +#include <libnautilus-extensions/nautilus-file-utilities.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-stock-dialogs.h> +#include <libnautilus-extensions/nautilus-link.h> +#include <libnautilus-extensions/nautilus-medusa-support.h> #include <nautilus-main.h> #include <netdb.h> #include <signal.h> @@ -1382,16 +1382,16 @@ download_callback (GnomeVFSResult result, static void read_file_handle_cancel_cover (gpointer data) { - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; handle = data; - nautilus_read_file_cancel (handle); + eel_read_file_cancel (handle); } static void initiate_file_download (GnomeDruid *druid) { - NautilusReadFileHandle *handle; + EelReadFileHandle *handle; static gboolean prevent_re_entry = FALSE; /* We exercise the event loop below, so we need to make sure that @@ -1428,7 +1428,7 @@ initiate_file_download (GnomeDruid *druid) if (check_network_connectivity ()) { /* initiate the file transfer */ - handle = nautilus_read_entire_file_async + handle = eel_read_entire_file_async (WELCOME_PACKAGE_URI, download_callback, druid); if (handle != NULL) { /* cancel the transfer if the druid goes away */ diff --git a/src/nautilus-information-panel.c b/src/nautilus-information-panel.c index 0b9b0fea9..ec6396754 100644 --- a/src/nautilus-information-panel.c +++ b/src/nautilus-information-panel.c @@ -33,6 +33,13 @@ #include "nautilus-link-set-window.h" #include "nautilus-sidebar-tabs.h" #include "nautilus-sidebar-title.h" +#include <eel/eel-background.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gnome-xml/parser.h> #include <gtk/gtkcheckmenuitem.h> @@ -46,24 +53,17 @@ #include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <eel/eel-background.h> #include <libnautilus-extensions/nautilus-directory.h> #include <libnautilus-extensions/nautilus-drag.h> -#include <libnautilus-extensions/nautilus-file.h> #include <libnautilus-extensions/nautilus-file-operations.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> +#include <libnautilus-extensions/nautilus-file.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-keep-last-vertical-box.h> #include <libnautilus-extensions/nautilus-metadata.h> #include <libnautilus-extensions/nautilus-mime-actions.h> #include <libnautilus-extensions/nautilus-preferences.h> #include <libnautilus-extensions/nautilus-program-choosing.h> #include <libnautilus-extensions/nautilus-sidebar-functions.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-theme.h> #include <libnautilus-extensions/nautilus-trash-monitor.h> #include <math.h> @@ -710,7 +710,7 @@ receive_dropped_uri_list (NautilusSidebar *sidebar, NULL); } } else { - if (nautilus_is_remote_uri (uris[0])) { + if (eel_is_remote_uri (uris[0])) { eel_show_error_dialog ( _("The file that you dropped is not local. " "You can only use local images as custom icons."), diff --git a/src/nautilus-location-bar.c b/src/nautilus-location-bar.c index f95ac00ea..40c4746bb 100644 --- a/src/nautilus-location-bar.c +++ b/src/nautilus-location-bar.c @@ -34,8 +34,13 @@ #include <config.h> #include "nautilus-location-bar.h" -#include "nautilus-window.h" #include "nautilus-window-private.h" +#include "nautilus-window.h" +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gtk/gtkdnd.h> #include <gtk/gtkeventbox.h> #include <gtk/gtksignal.h> @@ -45,13 +50,8 @@ #include <libgnomeui/gnome-stock.h> #include <libgnomeui/gnome-uidefs.h> #include <libgnomevfs/gnome-vfs.h> -#include <libnautilus/nautilus-clipboard.h> #include <libnautilus-extensions/nautilus-entry.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> -#include <eel/eel-gtk-macros.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> +#include <libnautilus/nautilus-clipboard.h> #include <stdio.h> #include <string.h> @@ -321,7 +321,7 @@ try_to_expand_path (gpointer callback_data) g_free (user_location); return FALSE; } - current_path = nautilus_make_uri_from_input (user_location); + current_path = eel_make_uri_from_input (user_location); if (!eel_istr_has_prefix (current_path, "file://")) { g_free (user_location); @@ -717,7 +717,7 @@ nautilus_location_bar_set_location (NautilusNavigationBar *navigation_bar, /* Note: This is called in reaction to external changes, and * thus should not emit the LOCATION_CHANGED signal.*/ - formatted_location = nautilus_format_uri_for_display (location); + formatted_location = eel_format_uri_for_display (location); nautilus_entry_set_text (NAUTILUS_ENTRY (bar->details->entry), formatted_location); g_free (formatted_location); @@ -748,7 +748,7 @@ nautilus_location_bar_set_location (NautilusNavigationBar *navigation_bar, * @bar: A NautilusLocationBar. * * returns a newly allocated "string" containing the mangled - * (by nautilus_make_uri_from_input) text that the user typed in...maybe a URI + * (by eel_make_uri_from_input) text that the user typed in...maybe a URI * but not guaranteed. * **/ @@ -761,7 +761,7 @@ nautilus_location_bar_get_location (NautilusNavigationBar *navigation_bar) bar = NAUTILUS_LOCATION_BAR (navigation_bar); user_location = gtk_editable_get_chars (GTK_EDITABLE (bar->details->entry), 0, -1); - best_uri = nautilus_make_uri_from_input (user_location); + best_uri = eel_make_uri_from_input (user_location); g_free (user_location); return best_uri; } @@ -778,9 +778,9 @@ nautilus_location_bar_update_label (NautilusLocationBar *bar) char *current_text, *current_location; current_text = gtk_entry_get_text (GTK_ENTRY (bar->details->entry)); - current_location = nautilus_make_uri_from_input (current_text); + current_location = eel_make_uri_from_input (current_text); - if (nautilus_uris_match (bar->details->last_location, current_location)) { + if (eel_uris_match (bar->details->last_location, current_location)) { gtk_label_set_text (GTK_LABEL (bar->details->label), LOCATION_LABEL); } else { gtk_label_set_text (GTK_LABEL (bar->details->label), GO_TO_LABEL); diff --git a/src/nautilus-navigation-window-menus.c b/src/nautilus-navigation-window-menus.c index 5fcddf519..3592a551f 100644 --- a/src/nautilus-navigation-window-menus.c +++ b/src/nautilus-navigation-window-menus.c @@ -39,6 +39,14 @@ #include "nautilus-window-manage-views.h" #include "nautilus-window-private.h" #include <bonobo/bonobo-ui-util.h> +#include <eel/eel-debug.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gnome-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtkmain.h> @@ -48,17 +56,10 @@ #include <libgnomevfs/gnome-vfs-file-info.h> #include <libgnomevfs/gnome-vfs-utils.h> #include <libnautilus-extensions/nautilus-bonobo-extensions.h> -#include <eel/eel-debug.h> #include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gnome-extensions.h> -#include <eel/eel-gtk-extensions.h> #include <libnautilus-extensions/nautilus-icon-factory.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-undo-manager.h> -#include <eel/eel-xml-extensions.h> #include <libnautilus/nautilus-bonobo-ui.h> #ifdef ENABLE_PROFILER @@ -783,7 +784,7 @@ show_bogus_bookmark_window (BookmarkHolder *holder) char *prompt; uri = nautilus_bookmark_get_uri (holder->bookmark); - uri_for_display = nautilus_format_uri_for_display (uri); + uri_for_display = eel_format_uri_for_display (uri); if (holder->prompt_for_removal) { prompt = g_strdup_printf (_("The location \"%s\" does not exist. Do you " diff --git a/src/nautilus-profiler.c b/src/nautilus-profiler.c index b8fed6e67..157bfafcf 100644 --- a/src/nautilus-profiler.c +++ b/src/nautilus-profiler.c @@ -302,7 +302,7 @@ nautilus_profiler_bonobo_ui_report_callback (BonoboUIComponent *component, uri = g_strdup_printf ("file://%s", dump_file_name); - if (nautilus_read_entire_file (uri, &dump_size, &dump_contents) == GNOME_VFS_OK) { + if (eel_read_entire_file (uri, &dump_size, &dump_contents) == GNOME_VFS_OK) { dump_dialog_show (dump_contents, uri); } diff --git a/src/nautilus-property-browser.c b/src/nautilus-property-browser.c index 83da7a345..57274812f 100644 --- a/src/nautilus-property-browser.c +++ b/src/nautilus-property-browser.c @@ -33,6 +33,22 @@ #include "nautilus-signaller.h" #include <ctype.h> +#include <eel/eel-background.h> +#include <eel/eel-gdk-extensions.h> +#include <eel/eel-gdk-pixbuf-extensions.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gnome-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-image-table.h> +#include <eel/eel-image.h> +#include <eel/eel-label.h> +#include <eel/eel-labeled-image.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-viewport.h> +#include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtkcolorsel.h> @@ -57,30 +73,14 @@ #include <libgnomeui/gnome-stock.h> #include <libgnomeui/gnome-uidefs.h> #include <libgnomevfs/gnome-vfs.h> -#include <eel/eel-background.h> #include <libnautilus-extensions/nautilus-customization-data.h> #include <libnautilus-extensions/nautilus-directory.h> #include <libnautilus-extensions/nautilus-drag-window.h> #include <libnautilus-extensions/nautilus-file-utilities.h> #include <libnautilus-extensions/nautilus-file.h> -#include <libnautilus-extensions/nautilus-font-factory.h> -#include <eel/eel-gdk-extensions.h> -#include <eel/eel-gdk-pixbuf-extensions.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gnome-extensions.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> -#include <eel/eel-image.h> -#include <eel/eel-label.h> #include <libnautilus-extensions/nautilus-metadata.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-theme.h> -#include <eel/eel-xml-extensions.h> -#include <eel/eel-labeled-image.h> -#include <eel/eel-image-table.h> -#include <eel/eel-viewport.h> #include <math.h> /* property types */ @@ -1055,7 +1055,7 @@ add_pattern_to_browser (const char *path_name, gpointer *data) path_uri = gnome_vfs_get_uri_from_local_path (path_name); /* don't allow the user to change the reset image */ - basename = nautilus_uri_get_basename (path_uri); + basename = eel_uri_get_basename (path_uri); if (basename && eel_strcmp (basename, RESET_IMAGE_NAME) == 0) { eel_show_error_dialog (_("Sorry, but you can't replace the reset image."), _("Not an Image"), NULL); g_free (path_uri); @@ -1086,7 +1086,7 @@ add_pattern_to_browser (const char *path_name, gpointer *data) g_free (directory_path); - result = nautilus_copy_uri_simple (path_name, destination_name); + result = eel_copy_uri_simple (path_name, destination_name); if (result != GNOME_VFS_OK) { char *message = g_strdup_printf (_("Sorry, but the pattern %s couldn't be installed."), path_name); eel_show_error_dialog (message, _("Couldn't install pattern"), GTK_WINDOW (property_browser)); @@ -1359,7 +1359,7 @@ emblem_dialog_clicked (GtkWidget *dialog, int which_button, NautilusPropertyBrow g_free(directory_path); /* perform the actual copy */ - result = nautilus_copy_uri_simple (property_browser->details->image_path, destination_name); + result = eel_copy_uri_simple (property_browser->details->image_path, destination_name); if (result != GNOME_VFS_OK) { char *message = g_strdup_printf (_("Sorry, but the image at %s couldn't be installed as an emblem."), property_browser->details->image_path); diff --git a/src/nautilus-sidebar.c b/src/nautilus-sidebar.c index 0b9b0fea9..ec6396754 100644 --- a/src/nautilus-sidebar.c +++ b/src/nautilus-sidebar.c @@ -33,6 +33,13 @@ #include "nautilus-link-set-window.h" #include "nautilus-sidebar-tabs.h" #include "nautilus-sidebar-title.h" +#include <eel/eel-background.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gnome-xml/parser.h> #include <gtk/gtkcheckmenuitem.h> @@ -46,24 +53,17 @@ #include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <eel/eel-background.h> #include <libnautilus-extensions/nautilus-directory.h> #include <libnautilus-extensions/nautilus-drag.h> -#include <libnautilus-extensions/nautilus-file.h> #include <libnautilus-extensions/nautilus-file-operations.h> -#include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> +#include <libnautilus-extensions/nautilus-file.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> #include <libnautilus-extensions/nautilus-keep-last-vertical-box.h> #include <libnautilus-extensions/nautilus-metadata.h> #include <libnautilus-extensions/nautilus-mime-actions.h> #include <libnautilus-extensions/nautilus-preferences.h> #include <libnautilus-extensions/nautilus-program-choosing.h> #include <libnautilus-extensions/nautilus-sidebar-functions.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-theme.h> #include <libnautilus-extensions/nautilus-trash-monitor.h> #include <math.h> @@ -710,7 +710,7 @@ receive_dropped_uri_list (NautilusSidebar *sidebar, NULL); } } else { - if (nautilus_is_remote_uri (uris[0])) { + if (eel_is_remote_uri (uris[0])) { eel_show_error_dialog ( _("The file that you dropped is not local. " "You can only use local images as custom icons."), diff --git a/src/nautilus-theme-selector.c b/src/nautilus-theme-selector.c index c623b6b57..262bff1e9 100644 --- a/src/nautilus-theme-selector.c +++ b/src/nautilus-theme-selector.c @@ -31,41 +31,41 @@ #include "nautilus-theme-selector.h" #include <ctype.h> +#include <eel/eel-background.h> +#include <eel/eel-gdk-extensions.h> +#include <eel/eel-gdk-font-extensions.h> +#include <eel/eel-gdk-pixbuf-extensions.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-gtk-macros.h> +#include <eel/eel-label.h> +#include <eel/eel-scalable-font.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-xml-extensions.h> #include <gdk-pixbuf/gdk-pixbuf.h> +#include <gnome-xml/parser.h> +#include <gnome-xml/xmlmemory.h> #include <gtk/gtkeventbox.h> #include <gtk/gtkfilesel.h> #include <gtk/gtkframe.h> #include <gtk/gtkhbox.h> #include <gtk/gtkscrolledwindow.h> #include <gtk/gtkvbox.h> -#include <gnome-xml/parser.h> -#include <gnome-xml/xmlmemory.h> #include <libgnome/gnome-defs.h> #include <libgnome/gnome-i18n.h> #include <libgnome/gnome-util.h> -#include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-file-info.h> +#include <libgnomevfs/gnome-vfs-types.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> -#include <eel/eel-background.h> #include <libnautilus-extensions/nautilus-directory.h> #include <libnautilus-extensions/nautilus-file-utilities.h> #include <libnautilus-extensions/nautilus-file.h> -#include <libnautilus-extensions/nautilus-font-factory.h> -#include <eel/eel-gdk-extensions.h> -#include <eel/eel-gdk-font-extensions.h> -#include <eel/eel-gdk-pixbuf-extensions.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gtk-extensions.h> -#include <eel/eel-gtk-macros.h> -#include <eel/eel-label.h> #include <libnautilus-extensions/nautilus-metadata.h> -#include <eel/eel-scalable-font.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-theme.h> -#include <eel/eel-xml-extensions.h> #include <math.h> struct NautilusThemeSelectorDetails { @@ -390,7 +390,7 @@ add_theme_to_icons (GtkWidget *widget, gpointer *data) theme_selector->details->dialog = NULL; /* make sure it's a valid theme directory - check for xml file */ - theme_name = nautilus_uri_get_basename (theme_path); + theme_name = eel_uri_get_basename (theme_path); temp_path = nautilus_make_path (theme_path, theme_name); xml_path = g_strconcat (temp_path, ".xml", NULL); @@ -420,7 +420,7 @@ add_theme_to_icons (GtkWidget *widget, gpointer *data) /* copy the new theme into the themes directory */ if (result == GNOME_VFS_OK) { - result = nautilus_copy_uri_simple (theme_path, theme_destination_path); + result = eel_copy_uri_simple (theme_path, theme_destination_path); } g_free (theme_destination_path); diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c index 4dce98425..f4c9a07f4 100644 --- a/src/nautilus-window-manage-views.c +++ b/src/nautilus-window-manage-views.c @@ -30,32 +30,33 @@ #include "nautilus-applicable-views.h" #include "nautilus-application.h" -#include "nautilus-main.h" #include "nautilus-location-bar.h" +#include "nautilus-main.h" #include "nautilus-window-private.h" #include "nautilus-zoom-control.h" -#include <gtk/gtksignal.h> -#include <gtk/gtkmain.h> #include <bonobo/bonobo-ui-util.h> +#include <eel/eel-debug.h> +#include <eel/eel-gdk-extensions.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <gtk/gtkmain.h> +#include <gtk/gtksignal.h> #include <libgnome/gnome-i18n.h> #include <libgnomeui/gnome-dialog-util.h> #include <libgnomevfs/gnome-vfs-async-ops.h> #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> #include <libnautilus-extensions/nautilus-bonobo-extensions.h> -#include <eel/eel-debug.h> -#include <libnautilus-extensions/nautilus-file.h> #include <libnautilus-extensions/nautilus-file-attributes.h> #include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-gdk-extensions.h> -#include <eel/eel-glib-extensions.h> +#include <libnautilus-extensions/nautilus-file.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gtk-extensions.h> #include <libnautilus-extensions/nautilus-metadata.h> #include <libnautilus-extensions/nautilus-mime-actions.h> #include <libnautilus-extensions/nautilus-search-uri.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> /* FIXME bugzilla.eazel.com 1243: * We should use inheritance instead of these special cases @@ -298,7 +299,7 @@ set_displayed_location (NautilusWindow *window, const char *location) recreate = TRUE; } else { bookmark_uri = nautilus_bookmark_get_uri (window->current_location_bookmark); - recreate = !nautilus_uris_match (bookmark_uri, location); + recreate = !eel_uris_match (bookmark_uri, location); g_free (bookmark_uri); } @@ -321,7 +322,7 @@ check_bookmark_location_matches (NautilusBookmark *bookmark, const char *uri) char *bookmark_uri; bookmark_uri = nautilus_bookmark_get_uri (bookmark); - if (!nautilus_uris_match (uri, bookmark_uri)) { + if (!eel_uris_match (uri, bookmark_uri)) { g_warning ("bookmark uri is %s, but expected %s", bookmark_uri, uri); } g_free (bookmark_uri); @@ -423,7 +424,7 @@ handle_go_elsewhere (NautilusWindow *window, const char *location) * This also avoids a problem where set_displayed_location * didn't update last_location_bookmark since the uri didn't change. */ - if (!nautilus_uris_match (window->details->location, location)) { + if (!eel_uris_match (window->details->location, location)) { /* Store bookmark for current location in back list, unless there is no current location */ check_last_bookmark_location_matches_window (window); @@ -506,7 +507,7 @@ viewed_file_changed_callback (NautilusFile *file, * title. Ignore fragments in this comparison, because * NautilusFile omits the fragment part. */ - if (!nautilus_uris_match_ignore_fragments (new_location, + if (!eel_uris_match_ignore_fragments (new_location, window->details->location)) { g_free (window->details->location); window->details->location = new_location; @@ -1207,7 +1208,7 @@ determined_initial_view_callback (NautilusDetermineViewHandle *handle, } /* Some sort of failure occurred. How 'bout we tell the user? */ - full_uri_for_display = nautilus_format_uri_for_display (location); + full_uri_for_display = eel_format_uri_for_display (location); /* Truncate the URI so it doesn't get insanely wide. Note that even * though the dialog uses wrapped text, if the URI doesn't contain * white space then the text-wrapping code is too stupid to wrap it. @@ -1334,7 +1335,7 @@ determined_initial_view_callback (NautilusDetermineViewHandle *handle, better test for that */ home_uri = nautilus_preferences_get (NAUTILUS_PREFERENCES_HOME_URI); - if (!nautilus_uris_match (home_uri, location)) { + if (!eel_uris_match (home_uri, location)) { nautilus_window_go_home (NAUTILUS_WINDOW (window)); } else { /* the last fallback is to go to a known place that can't be deleted! */ @@ -1800,7 +1801,7 @@ open_location_prefer_existing_window_callback (NautilusViewFrame *view, if (existing_location == NULL) { existing_location = existing_window->details->location; } - if (nautilus_uris_match (existing_location, location)) { + if (eel_uris_match (existing_location, location)) { eel_gtk_window_present (GTK_WINDOW (existing_window)); return; } @@ -1870,7 +1871,7 @@ report_redirect_callback (NautilusViewFrame *view, existing_location = window->details->location; } if (existing_location == NULL - || !nautilus_uris_match (existing_location, from_location)) { + || !eel_uris_match (existing_location, from_location)) { return; } diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c index 5fcddf519..3592a551f 100644 --- a/src/nautilus-window-menus.c +++ b/src/nautilus-window-menus.c @@ -39,6 +39,14 @@ #include "nautilus-window-manage-views.h" #include "nautilus-window-private.h" #include <bonobo/bonobo-ui-util.h> +#include <eel/eel-debug.h> +#include <eel/eel-glib-extensions.h> +#include <eel/eel-gnome-extensions.h> +#include <eel/eel-gtk-extensions.h> +#include <eel/eel-stock-dialogs.h> +#include <eel/eel-string.h> +#include <eel/eel-vfs-extensions.h> +#include <eel/eel-xml-extensions.h> #include <gnome-xml/parser.h> #include <gnome-xml/xmlmemory.h> #include <gtk/gtkmain.h> @@ -48,17 +56,10 @@ #include <libgnomevfs/gnome-vfs-file-info.h> #include <libgnomevfs/gnome-vfs-utils.h> #include <libnautilus-extensions/nautilus-bonobo-extensions.h> -#include <eel/eel-debug.h> #include <libnautilus-extensions/nautilus-file-utilities.h> -#include <eel/eel-glib-extensions.h> #include <libnautilus-extensions/nautilus-global-preferences.h> -#include <eel/eel-gnome-extensions.h> -#include <eel/eel-gtk-extensions.h> #include <libnautilus-extensions/nautilus-icon-factory.h> -#include <eel/eel-stock-dialogs.h> -#include <eel/eel-string.h> #include <libnautilus-extensions/nautilus-undo-manager.h> -#include <eel/eel-xml-extensions.h> #include <libnautilus/nautilus-bonobo-ui.h> #ifdef ENABLE_PROFILER @@ -783,7 +784,7 @@ show_bogus_bookmark_window (BookmarkHolder *holder) char *prompt; uri = nautilus_bookmark_get_uri (holder->bookmark); - uri_for_display = nautilus_format_uri_for_display (uri); + uri_for_display = eel_format_uri_for_display (uri); if (holder->prompt_for_removal) { prompt = g_strdup_printf (_("The location \"%s\" does not exist. Do you " |