X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgdummyfile.c;h=4ac3bd9b36ef7382a04cd9a81e45e1e8e1167a9f;hb=c8d10470939847069b1a346d4c44f2adde3469f6;hp=57abd278e985c47a302dd0368226851e0fa3bb1f;hpb=09471fec46619a62fbe9b6e7a7b67c9a421f919e;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gdummyfile.c b/gio/gdummyfile.c index 57abd27..4ac3bd9 100644 --- a/gio/gdummyfile.c +++ b/gio/gdummyfile.c @@ -13,26 +13,23 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. + * Public License along with this library; if not, see . * * Author: Alexander Larsson */ -#include +#include "config.h" #include #include #include #include #include -#include #include #include "gdummyfile.h" +#include "gfile.h" -#include "gioalias.h" static void g_dummy_file_file_iface_init (GFileIface *iface); @@ -85,9 +82,8 @@ g_dummy_file_finalize (GObject *object) _g_decoded_uri_free (dummy->decoded_uri); g_free (dummy->text_uri); - - if (G_OBJECT_CLASS (g_dummy_file_parent_class)->finalize) - (*G_OBJECT_CLASS (g_dummy_file_parent_class)->finalize) (object); + + G_OBJECT_CLASS (g_dummy_file_parent_class)->finalize (object); } static void @@ -103,12 +99,6 @@ g_dummy_file_init (GDummyFile *dummy) { } -/** - * g_dummy_file_new: - * @uri: Universal Resource Identifier for the dummy file object. - * - * Returns: a new #GFile. - **/ GFile * _g_dummy_file_new (const char *uri) { @@ -142,10 +132,6 @@ g_dummy_file_get_basename (GFile *file) static char * g_dummy_file_get_path (GFile *file) { - GDummyFile *dummy = G_DUMMY_FILE (file); - - if (dummy->decoded_uri) - return g_strdup (dummy->decoded_uri->path); return NULL; } @@ -170,7 +156,8 @@ g_dummy_file_get_parent (GFile *file) char *uri; GDecodedUri new_decoded_uri; - if (dummy->decoded_uri == NULL) + if (dummy->decoded_uri == NULL || + g_strcmp0 (dummy->decoded_uri->path, "/") == 0) return NULL; dirname = g_path_get_dirname (dummy->decoded_uri->path); @@ -259,8 +246,7 @@ match_prefix (const char *path, } static gboolean -g_dummy_file_contains_file (GFile *parent, - GFile *descendant) +g_dummy_file_prefix_matches (GFile *parent, GFile *descendant) { GDummyFile *parent_dummy = G_DUMMY_FILE (parent); GDummyFile *descendant_dummy = G_DUMMY_FILE (descendant); @@ -270,17 +256,18 @@ g_dummy_file_contains_file (GFile *parent, descendant_dummy->decoded_uri != NULL) { if (uri_same_except_path (parent_dummy->decoded_uri, - descendant_dummy->decoded_uri)) { - remainder = match_prefix (descendant_dummy->decoded_uri->path, - parent_dummy->decoded_uri->path); - if (remainder != NULL && *remainder == '/') - { - while (*remainder == '/') - remainder++; - if (*remainder != 0) - return TRUE; - } - } + descendant_dummy->decoded_uri)) + { + remainder = match_prefix (descendant_dummy->decoded_uri->path, + parent_dummy->decoded_uri->path); + if (remainder != NULL && *remainder == '/') + { + while (*remainder == '/') + remainder++; + if (*remainder != 0) + return TRUE; + } + } } else { @@ -310,17 +297,18 @@ g_dummy_file_get_relative_path (GFile *parent, descendant_dummy->decoded_uri != NULL) { if (uri_same_except_path (parent_dummy->decoded_uri, - descendant_dummy->decoded_uri)) { - remainder = match_prefix (descendant_dummy->decoded_uri->path, - parent_dummy->decoded_uri->path); - if (remainder != NULL && *remainder == '/') - { - while (*remainder == '/') - remainder++; - if (*remainder != 0) - return g_strdup (remainder); - } - } + descendant_dummy->decoded_uri)) + { + remainder = match_prefix (descendant_dummy->decoded_uri->path, + parent_dummy->decoded_uri->path); + if (remainder != NULL && *remainder == '/') + { + while (*remainder == '/') + remainder++; + if (*remainder != 0) + return g_strdup (remainder); + } + } } else { @@ -340,7 +328,7 @@ g_dummy_file_get_relative_path (GFile *parent, static GFile * -g_dummy_file_resolve_relative_path (GFile *file, +g_dummy_file_resolve_relative_path (GFile *file, const char *relative_path) { GDummyFile *dummy = G_DUMMY_FILE (file); @@ -421,10 +409,12 @@ g_dummy_file_file_iface_init (GFileIface *iface) iface->get_uri = g_dummy_file_get_uri; iface->get_parse_name = g_dummy_file_get_parse_name; iface->get_parent = g_dummy_file_get_parent; - iface->contains_file = g_dummy_file_contains_file; + iface->prefix_matches = g_dummy_file_prefix_matches; iface->get_relative_path = g_dummy_file_get_relative_path; iface->resolve_relative_path = g_dummy_file_resolve_relative_path; iface->get_child_for_display_name = g_dummy_file_get_child_for_display_name; + + iface->supports_thread_contexts = TRUE; } /* Uri handling helper functions: */ @@ -464,33 +454,35 @@ unescape_string (const gchar *escaped_string, result = g_malloc (escaped_string_end - escaped_string + 1); out = result; - for (in = escaped_string; in < escaped_string_end; in++) { - character = *in; - if (*in == '%') { - in++; - if (escaped_string_end - in < 2) - { - g_free (result); - return NULL; - } + for (in = escaped_string; in < escaped_string_end; in++) + { + character = *in; + if (*in == '%') + { + in++; + if (escaped_string_end - in < 2) + { + g_free (result); + return NULL; + } - character = unescape_character (in); + character = unescape_character (in); - /* Check for an illegal character. We consider '\0' illegal here. */ - if (character <= 0 || - (illegal_characters != NULL && - strchr (illegal_characters, (char)character) != NULL)) - { - g_free (result); - return NULL; - } - in++; /* The other char will be eaten in the loop header */ + /* Check for an illegal character. We consider '\0' illegal here. */ + if (character <= 0 || + (illegal_characters != NULL && + strchr (illegal_characters, (char)character) != NULL)) + { + g_free (result); + return NULL; + } + in++; /* The other char will be eaten in the loop header */ + } + *out++ = (char)character; } - *out++ = (char)character; - } *out = '\0'; - g_assert (out - result <= strlen (escaped_string)); + g_warn_if_fail (out - result <= strlen (escaped_string)); return result; } @@ -686,16 +678,13 @@ is_valid (char c, const char *reserved_chars_allowed) } static void -g_string_append_encoded (GString *string, +g_string_append_encoded (GString *string, const char *encoded, const char *reserved_chars_allowed) { unsigned char c; - const char *end; static const gchar hex[16] = "0123456789ABCDEF"; - end = encoded + strlen (encoded); - while ((c = *encoded) != 0) { if (is_valid (c, reserved_chars_allowed))