# HG changeset patch # User zas_ # Date 1211323633 0 # Node ID 066b90ad99257fdcf0725a9dd1a82a2402ffbf8f # Parent a7009e2c4a0b27ba170e18343c7dfc1d23bd450f cache_find_location(): use g_build_filename() and move redundant code to new functions. diff -r a7009e2c4a0b -r 066b90ad9925 src/cache.c --- a/src/cache.c Tue May 20 22:22:11 2008 +0000 +++ b/src/cache.c Tue May 20 22:47:13 2008 +0000 @@ -679,11 +679,31 @@ return path; } +static gchar *cache_build_path_local(const gchar *source, const gchar *cache_local, const gchar *cache_ext) +{ + gchar *path; + gchar *base = remove_level_from_path(source); + gchar *name = g_strconcat(filename_from_path(source), cache_ext, NULL); + path = g_build_filename(base, cache_local, name, NULL); + g_free(name); + g_free(base); + + return path; +} + +static gchar *cache_build_path_rc(const gchar *source, const gchar *cache_rc, const gchar *cache_ext) +{ + gchar *path; + gchar *name = g_strconcat(source, cache_ext, NULL); + path = g_build_filename(homedir(), cache_rc, name, NULL); + g_free(name); + + return path; +} + gchar *cache_find_location(CacheType type, const gchar *source) { gchar *path; - const gchar *name; - gchar *base; const gchar *cache_rc; const gchar *cache_local; const gchar *cache_ext; @@ -693,9 +713,6 @@ cache_path_parts(type, &cache_rc, &cache_local, &cache_ext); - name = filename_from_path(source); - base = remove_level_from_path(source); - if (type == CACHE_TYPE_METADATA) { prefer_local = options->enable_metadata_dirs; @@ -707,11 +724,11 @@ if (prefer_local) { - path = g_strconcat(base, "/", cache_local, "/", name, cache_ext, NULL); + path = cache_build_path_local(source, cache_local, cache_ext); } else { - path = g_strconcat(homedir(), "/", cache_rc, source, cache_ext, NULL); + path = cache_build_path_rc(source, cache_rc, cache_ext); } if (!isfile(path)) @@ -721,11 +738,11 @@ /* try the opposite method if not found */ if (!prefer_local) { - path = g_strconcat(base, "/", cache_local, "/", name, cache_ext, NULL); + path = cache_build_path_local(source, cache_local, cache_ext); } else { - path = g_strconcat(homedir(), "/", cache_rc, source, cache_ext, NULL); + path = cache_build_path_rc(source, cache_rc, cache_ext); } if (!isfile(path)) @@ -735,8 +752,6 @@ } } - g_free(base); - return path; }