Mercurial > geeqie
changeset 576:9dc0513837b5
dropped path_list functions, use filelist functions everywhere
author | nadvornik |
---|---|
date | Sun, 04 May 2008 21:54:20 +0000 |
parents | b941403a4cd9 |
children | 5ded871a0968 |
files | src/bar_sort.c src/cache_maint.c src/collect-io.c src/collect-table.c src/filelist.c src/filelist.h src/info.c src/main.c src/ui_fileops.c src/ui_fileops.h src/ui_pathsel.c |
diffstat | 11 files changed, 126 insertions(+), 323 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bar_sort.c Sun May 04 19:00:39 2008 +0000 +++ b/src/bar_sort.c Sun May 04 21:54:20 2008 +0000 @@ -95,33 +95,33 @@ bookmark_list_set_key(bookmarks, SORT_KEY_COLLECTIONS); collect_path = g_strconcat(homedir(), "/", GQ_RC_DIR_COLLECTIONS, NULL); - path_list(collect_path, &list, NULL); + filelist_read(collect_path, &list, NULL); g_free(collect_path); - list = path_list_sort(list); + list = filelist_sort_path(list); work = list; while (work) { - const gchar *path; + FileData *fd; gchar *name; - path = work->data; + fd = work->data; work = work->next; - if (file_extension_match(path, ".gqv")) + if (file_extension_match(fd->path, ".gqv")) { - name = remove_extension_from_path(filename_from_path(path)); + name = remove_extension_from_path(fd->name); } else { - name = g_strdup(filename_from_path(path)); + name = g_strdup(fd->name); } - bookmark_list_add(bookmarks, name, path); + bookmark_list_add(bookmarks, name, fd->path); g_free(name); } - string_list_free(list); + filelist_free(list); } static void bar_sort_mode_sync(SortData *sd, SortModeType mode)
--- a/src/cache_maint.c Sun May 04 19:00:39 2008 +0000 +++ b/src/cache_maint.c Sun May 04 21:54:20 2008 +0000 @@ -111,7 +111,7 @@ { if (cm->idle_id != -1) g_source_remove(cm->idle_id); if (cm->gd) generic_dialog_close(cm->gd); - path_list_free(cm->list); + filelist_free(cm->list); g_list_free(cm->done_list); g_free(cm); } @@ -136,7 +136,7 @@ CMData *cm = data; GList *dlist = NULL; GList *list = NULL; - gchar *path; + FileData *fd; gint just_done = FALSE; gint still_have_a_file = TRUE; gint base_length; @@ -161,15 +161,15 @@ return FALSE; } - path = cm->list->data; + fd = cm->list->data; - DEBUG_1("purge chk (%d) \"%s\"", (cm->clear && !cm->metadata), path); + DEBUG_1("purge chk (%d) \"%s\"", (cm->clear && !cm->metadata), fd->path); - if (g_list_find(cm->done_list, path) == NULL) + if (g_list_find(cm->done_list, fd) == NULL) { - cm->done_list = g_list_prepend(cm->done_list, path); + cm->done_list = g_list_prepend(cm->done_list, fd); - if (path_list(path, &list, &dlist)) + if (filelist_read(fd->path, &list, &dlist)) { GList *work; @@ -179,7 +179,8 @@ work = list; while (work) { - gchar *path_buf = work->data; + FileData *fd_list = work->data; + gchar *path_buf = strdup(fd_list->path); gchar *dot; dot = extension_find_dot(path_buf); @@ -195,11 +196,12 @@ { still_have_a_file = TRUE; } + g_free(path_buf); work = work->next; } } } - path_list_free(list); + filelist_free(list); cm->list = g_list_concat(dlist, cm->list); @@ -207,36 +209,36 @@ { /* check if the dir is empty */ - if (cm->list->data == path && just_done) + if (cm->list->data == fd && just_done) { - if (!still_have_a_file && !dlist && cm->list->next && !rmdir_utf8(path)) + if (!still_have_a_file && !dlist && cm->list->next && !rmdir_utf8(fd->path)) { - printf("Unable to delete dir: %s\n", path); + printf("Unable to delete dir: %s\n", fd->path); } } else { /* must re-check for an empty dir */ - if (isempty(path) && cm->list->next && !rmdir_utf8(path)) + if (isempty(fd->path) && cm->list->next && !rmdir_utf8(fd->path)) { - printf("Unable to delete dir: %s\n", path); + printf("Unable to delete dir: %s\n", fd->path); } } - path = cm->list->data; - cm->done_list = g_list_remove(cm->done_list, path); - cm->list = g_list_remove(cm->list, path); - g_free(path); + fd = cm->list->data; + cm->done_list = g_list_remove(cm->done_list, fd); + cm->list = g_list_remove(cm->list, fd); + file_data_unref(fd); } if (cm->list) { const gchar *buf; - path = cm->list->data; - if (strlen(path) > base_length) + fd = cm->list->data; + if (strlen(fd->path) > base_length) { - buf = path + base_length; + buf = fd->path + base_length; } else { @@ -285,13 +287,13 @@ base = g_strconcat(homedir(), "/", cache_folder, NULL); - if (!path_list(base, NULL, &dlist)) + if (!filelist_read(base, NULL, &dlist)) { g_free(base); return; } - dlist = g_list_append(dlist, base); + dlist = g_list_append(dlist, file_data_new_simple(base)); cm = g_new0(CMData, 1); cm->list = dlist; @@ -362,21 +364,21 @@ base_length = strlen(homedir()) + strlen("/") + strlen(GQ_CACHE_RC_THUMB); base = g_strconcat(homedir(), "/", GQ_CACHE_RC_THUMB, dir, NULL); - if (path_list(base, &flist, &dlist)) + if (filelist_read(base, &flist, &dlist)) { GList *work; work = dlist; while (work) { - gchar *path = work->data; - if (recursive && strlen(path) > base_length && - !cache_maintain_home_dir(path + base_length, recursive, clear)) + FileData *fd = work->data; + if (recursive && strlen(fd->path) > base_length && + !cache_maintain_home_dir(fd->path + base_length, recursive, clear)) { - DEBUG_1("Deleting thumb dir: %s", path); - if (!rmdir_utf8(path)) + DEBUG_1("Deleting thumb dir: %s", fd->path); + if (!rmdir_utf8(fd->path)) { - printf("Unable to delete dir: %s\n", path); + printf("Unable to delete dir: %s\n", fd->path); } } else @@ -389,7 +391,8 @@ work = flist; while (work) { - gchar *path = work->data; + FileData *fd = work->data; + gchar *path = g_strdup(fd->path); gchar *dot; dot = extension_find_dot(path); @@ -405,13 +408,14 @@ { still_have_a_file = TRUE; } + g_free(path); work = work->next; } } - path_list_free(dlist); - path_list_free(flist); + filelist_free(dlist); + filelist_free(flist); g_free(base); return still_have_a_file; @@ -429,18 +433,18 @@ cachedir = g_strconcat(dir, "/", GQ_CACHE_LOCAL_THUMB, NULL); - path_list(cachedir, &list, NULL); + filelist_read(cachedir, &list, NULL); work = list; while (work) { - const gchar *path; + FileData *fd; gchar *source; - path = work->data; + fd = work->data; work = work->next; - source = g_strconcat(dir, "/", filename_from_path(path), NULL); + source = g_strconcat(dir, "/", fd->name, NULL); if (clear || extension_truncate(source, GQ_CACHE_EXT_THUMB) || @@ -452,9 +456,9 @@ } else { - if (!unlink_file(path)) + if (!unlink_file(fd->path)) { - DEBUG_1("Failed to remove cache file %s", path); + DEBUG_1("Failed to remove cache file %s", fd->path); still_have_a_file = TRUE; } } @@ -466,24 +470,24 @@ g_free(source); } - path_list_free(list); + filelist_free(list); g_free(cachedir); if (recursive) { list = NULL; - path_list(dir, NULL, &list); + filelist_read(dir, NULL, &list); work = list; while (work) { - const gchar *path = work->data; + FileData *fd = work->data; work = work->next; - still_have_a_file |= cache_maintain_dir(path, recursive, clear); + still_have_a_file |= cache_maintain_dir(fd->path, recursive, clear); } - path_list_free(list); + filelist_free(list); } return still_have_a_file; @@ -657,10 +661,10 @@ static void cache_manager_render_reset(CleanData *cd) { - path_list_free(cd->list); + filelist_free(cd->list); cd->list = NULL; - path_list_free(cd->list_dir); + filelist_free(cd->list_dir); cd->list_dir = NULL; thumb_loader_free((ThumbLoader *)cd->tl); @@ -705,15 +709,15 @@ if (cd->recurse) { - path_list(path, &list_f, &list_d); + filelist_read(path, &list_f, &list_d); } else { - path_list(path, &list_f, NULL); + filelist_read(path, &list_f, NULL); } - list_f = path_list_filter(list_f, FALSE); - list_d = path_list_filter(list_d, TRUE); + list_f = filelist_filter(list_f, FALSE); + list_d = filelist_filter(list_d, TRUE); cd->list = g_list_concat(list_f, cd->list); cd->list_dir = g_list_concat(list_d, cd->list_dir); @@ -735,11 +739,11 @@ { if (cd->list) { - gchar *path; + FileData *fd; gint success; - path = cd->list->data; - cd->list = g_list_remove(cd->list, path); + fd = cd->list->data; + cd->list = g_list_remove(cd->list, fd); cd->tl = (ThumbLoaderStd *)thumb_loader_new(options->thumbnails.max_width, options->thumbnails.max_height); thumb_loader_set_callbacks((ThumbLoader *)cd->tl, @@ -747,10 +751,10 @@ cache_manager_render_thumb_done_cb, NULL, cd); thumb_loader_set_cache((ThumbLoader *)cd->tl, TRUE, cd->local, TRUE); - success = thumb_loader_start((ThumbLoader *)cd->tl, path); + success = thumb_loader_start((ThumbLoader *)cd->tl, fd->path); if (success) { - gtk_entry_set_text(GTK_ENTRY(cd->progress), path); + gtk_entry_set_text(GTK_ENTRY(cd->progress), fd->path); } else { @@ -758,20 +762,20 @@ cd->tl = NULL; } - g_free(path); + file_data_unref(fd); return (!success); } else if (cd->list_dir) { - gchar *path; + FileData *fd; - path = cd->list_dir->data; - cd->list_dir = g_list_remove(cd->list_dir, path); + fd = cd->list_dir->data; + cd->list_dir = g_list_remove(cd->list_dir, fd); - cache_manager_render_folder(cd, path); + cache_manager_render_folder(cd, fd->path); - g_free(path); + file_data_unref(fd); return TRUE; } @@ -885,7 +889,7 @@ generic_dialog_close(cd->gd); thumb_loader_std_thumb_file_validate_cancel(cd->tl); - path_list_free(cd->list); + filelist_free(cd->list); g_free(cd); } @@ -906,7 +910,7 @@ thumb_loader_std_thumb_file_validate_cancel(cd->tl); cd->tl = NULL; - path_list_free(cd->list); + filelist_free(cd->list); cd->list = NULL; } @@ -923,15 +927,15 @@ if (cd->list) { - gchar *next_path; + FileData *next_fd; - next_path = cd->list->data; - cd->list = g_list_remove(cd->list, next_path); + next_fd = cd->list->data; + cd->list = g_list_remove(cd->list, next_fd); - DEBUG_1("thumb removed: %s", next_path); + DEBUG_1("thumb removed: %s", next_fd->path); - unlink_file(next_path); - g_free(next_path); + unlink_file(next_fd->path); + file_data_unref(next_fd); cd->count_done++; if (cd->count_total != 0) @@ -971,14 +975,14 @@ cd->tl = NULL; if (cd->list) { - gchar *next_path; + FileData *next_fd; - next_path = cd->list->data; - cd->list = g_list_remove(cd->list, next_path); + next_fd = cd->list->data; + cd->list = g_list_remove(cd->list, next_fd); - cd->tl = thumb_loader_std_thumb_file_validate(next_path, cd->days, + cd->tl = thumb_loader_std_thumb_file_validate(next_fd->path, cd->days, cache_manager_standard_clean_valid_cb, cd); - g_free(next_path); + file_data_unref(next_fd); } else { @@ -1002,19 +1006,19 @@ path = g_strconcat(homedir(), "/", THUMB_FOLDER_GLOBAL, "/", THUMB_FOLDER_NORMAL, NULL); list = NULL; - path_list(path, &list, NULL); + filelist_read(path, &list, NULL); cd->list = list; g_free(path); path = g_strconcat(homedir(), "/", THUMB_FOLDER_GLOBAL, "/", THUMB_FOLDER_LARGE, NULL); list = NULL; - path_list(path, &list, NULL); + filelist_read(path, &list, NULL); cd->list = g_list_concat(cd->list, list); g_free(path); path = g_strconcat(homedir(), "/", THUMB_FOLDER_GLOBAL, "/", THUMB_FOLDER_FAIL, NULL); list = NULL; - path_list(path, &list, NULL); + filelist_read(path, &list, NULL); cd->list = g_list_concat(cd->list, list); g_free(path);
--- a/src/collect-io.c Sun May 04 19:00:39 2008 +0000 +++ b/src/collect-io.c Sun May 04 21:54:20 2008 +0000 @@ -671,7 +671,7 @@ gchar *base; base = g_strconcat(homedir(), "/", GQ_RC_DIR_COLLECTIONS, NULL); - path_list(base, &list, NULL); + filelist_read(base, &list, NULL); g_free(base); work = collection_manager_entry_list; @@ -686,15 +686,15 @@ list_step = list; while (list_step && entry) { - gchar *path; + FileData *fd; - path = list_step->data; + fd = list_step->data; list_step = list_step->next; - if (strcmp(path, entry->path) == 0) + if (strcmp(fd->path, entry->path) == 0) { - list = g_list_remove(list, path); - g_free(path); + list = g_list_remove(list, fd); + file_data_unref(fd); entry = NULL; } @@ -708,16 +708,15 @@ work = list; while (work) { - gchar *path; + FileData *fd; - path = work->data; + fd = work->data; work = work->next; - collect_manager_entry_new(path); - g_free(path); + collect_manager_entry_new(fd->path); } - g_list_free(list); + filelist_free(list); } static void collect_manager_process_actions(gint max)
--- a/src/collect-table.c Sun May 04 19:00:39 2008 +0000 +++ b/src/collect-table.c Sun May 04 21:54:20 2008 +0000 @@ -758,7 +758,7 @@ ct->click_info = NULL; ct->popup = NULL; - path_list_free(ct->drop_list); + filelist_free(ct->drop_list); ct->drop_list = NULL; ct->drop_info = NULL; }
--- a/src/filelist.c Sun May 04 19:00:39 2008 +0000 +++ b/src/filelist.c Sun May 04 21:54:20 2008 +0000 @@ -426,41 +426,6 @@ g_free(desc); } -GList *path_list_filter(GList *list, gint is_dir_list) -{ - GList *work; - - if (!is_dir_list && options->file_filter.disable && options->file_filter.show_hidden_files) return list; - - work = list; - while (work) - { - gchar *name = work->data; - const gchar *base; - - base = filename_from_path(name); - - if ((!options->file_filter.show_hidden_files && ishidden(base)) || - (!is_dir_list && !filter_name_exists(base)) || - (is_dir_list && base[0] == '.' && (strcmp(base, GQ_CACHE_LOCAL_THUMB) == 0 || - strcmp(base, GQ_CACHE_LOCAL_METADATA) == 0)) ) - { - GList *link = work; - work = work->next; - list = g_list_remove_link(list, link); - g_free(name); - g_list_free(link); - } - else - { - work = work->next; - } - } - - return list; -} - - /* *----------------------------------------------------------------------------- * sidecar extension list @@ -527,66 +492,6 @@ /* *----------------------------------------------------------------------------- - * path list recursive - *----------------------------------------------------------------------------- - */ - -static gint path_list_sort_cb(gconstpointer a, gconstpointer b) -{ - return CASE_SORT((gchar *)a, (gchar *)b); -} - -GList *path_list_sort(GList *list) -{ - return g_list_sort(list, path_list_sort_cb); -} - -static void path_list_recursive_append(GList **list, GList *dirs) -{ - GList *work; - - work = dirs; - while (work) - { - const gchar *path = work->data; - GList *f = NULL; - GList *d = NULL; - - if (path_list(path, &f, &d)) - { - f = path_list_filter(f, FALSE); - f = path_list_sort(f); - *list = g_list_concat(*list, f); - - d = path_list_filter(d, TRUE); - d = path_list_sort(d); - path_list_recursive_append(list, d); - path_list_free(d); - } - - work = work->next; - } -} - -GList *path_list_recursive(const gchar *path) -{ - GList *list = NULL; - GList *d = NULL; - - if (!path_list(path, &list, &d)) return NULL; - list = path_list_filter(list, FALSE); - list = path_list_sort(list); - - d = path_list_filter(d, TRUE); - d = path_list_sort(d); - path_list_recursive_append(&list, d); - path_list_free(d); - - return list; -} - -/* - *----------------------------------------------------------------------------- * text conversion utils *----------------------------------------------------------------------------- */
--- a/src/filelist.h Sun May 04 19:00:39 2008 +0000 +++ b/src/filelist.h Sun May 04 21:54:20 2008 +0000 @@ -49,11 +49,6 @@ gint ishidden(const gchar *name); -GList *path_list_filter(GList *list, gint is_dir_list); - -GList *path_list_sort(GList *list); -GList *path_list_recursive(const gchar *path); - gchar *text_from_size(gint64 size); gchar *text_from_size_abrev(gint64 size); const gchar *text_from_time(time_t t);
--- a/src/info.c Sun May 04 19:00:39 2008 +0000 +++ b/src/info.c Sun May 04 21:54:20 2008 +0000 @@ -168,7 +168,7 @@ { InfoData *id = data; - return path_list_copy(id->list); + return filelist_copy(id->list); } static TabData *info_tab_meta_new(InfoData *id)
--- a/src/main.c Sun May 04 19:00:39 2008 +0000 +++ b/src/main.c Sun May 04 21:54:20 2008 +0000 @@ -369,7 +369,7 @@ { GList *list; - list = path_list_recursive(text); + list = filelist_recursive(text); if (!list) return; //printf("length: %d\n", g_list_length(list)); layout_image_slideshow_stop(NULL); @@ -751,13 +751,13 @@ work = cmd_list; while (work) { - const gchar *name; + FileData *fd; gchar *text; - name = work->data; + fd = work->data; work = work->next; - text = g_strconcat(prefix, name, NULL); + text = g_strconcat(prefix, fd->path, NULL); remote_client_send(rc, text); g_free(text); @@ -832,7 +832,7 @@ { if (!*path) *path = remove_level_from_path(path_parsed); if (!*file) *file = g_strdup(path_parsed); - *list = g_list_prepend(*list, path_parsed); + *list = g_list_prepend(*list, file_data_new_simple(path_parsed)); } } @@ -845,22 +845,20 @@ path_parsed = g_strdup(dir); parse_out_relatives(path_parsed); - if (path_list(path_parsed, &files, NULL)) + if (filelist_read(path_parsed, &files, NULL)) { GList *work; - files = path_list_filter(files, FALSE); - files = path_list_sort(files); + files = filelist_filter(files, FALSE); + files = filelist_sort_path(files); work = files; while (work) { - gchar *p; - - p = work->data; - if (!*path) *path = remove_level_from_path(p); - if (!*file) *file = g_strdup(p); - *list = g_list_prepend(*list, p); + FileData *fd = work->data; + if (!*path) *path = remove_level_from_path(fd->path); + if (!*file) *file = g_strdup(fd->path); + *list = g_list_prepend(*list, fd); work = work->next; } @@ -1074,7 +1072,7 @@ } else { - path_list_free(list); + filelist_free(list); *cmd_list = NULL; } } @@ -1374,9 +1372,9 @@ cmd_path = NULL; g_free(cmd_file); cmd_file = NULL; - path_list_free(cmd_list); + filelist_free(cmd_list); cmd_list = NULL; - path_list_free(collection_list); + string_list_free(collection_list); collection_list = NULL; path = NULL; @@ -1485,8 +1483,8 @@ g_free(geometry); g_free(cmd_path); g_free(cmd_file); - path_list_free(cmd_list); - path_list_free(collection_list); + filelist_free(cmd_list); + string_list_free(collection_list); g_free(path); if (startup_full_screen) layout_image_full_screen_start(lw);
--- a/src/ui_fileops.c Sun May 04 19:00:39 2008 +0000 +++ b/src/ui_fileops.c Sun May 04 21:54:20 2008 +0000 @@ -505,106 +505,13 @@ return path8; } -static gint path_list_real(const gchar *path, GList **files, GList **dirs, - gint follow_links) -{ - DIR *dp; - struct dirent *dir; - GList *f_list = NULL; - GList *d_list = NULL; - gchar *pathl; - - if (!path) return FALSE; - - pathl = path_from_utf8(path); - dp = opendir(pathl); - if (!dp) - { - /* dir not found */ - g_free(pathl); - return FALSE; - } - - /* root dir fix */ - if (pathl[0] == '/' && pathl[1] == '\0') - { - g_free(pathl); - pathl = g_strdup(""); - } - - while ((dir = readdir(dp)) != NULL) - { - struct stat st_buf; - gchar *name; - gchar *filepath; - gint result; - - name = dir->d_name; - filepath = g_strconcat(pathl, "/", name, NULL); - - if (follow_links) - { - result = stat(filepath, &st_buf); - } - else - { - result = lstat(filepath, &st_buf); - } - - if (result == 0) - { - gchar *path8; - gchar *name8; - - name8 = path_to_utf8(name); - path8 = g_strconcat(path, "/", name8, NULL); - g_free(name8); - - if (dirs && S_ISDIR(st_buf.st_mode) && - !(name[0] == '.' && (name[1] == '\0' || (name[1] == '.' && name[2] == '\0'))) ) - { - d_list = g_list_prepend(d_list, path8); - path8 = NULL; - } - else if (files && - (S_ISREG(st_buf.st_mode) || (!follow_links && S_ISLNK(st_buf.st_mode))) ) - { - f_list = g_list_prepend(f_list, path8); - path8 = NULL; - } - g_free(path8); - } - - g_free(filepath); - } - - closedir(dp); - - g_free(pathl); - - if (dirs) *dirs = g_list_reverse(d_list); - if (files) *files = g_list_reverse(f_list); - - return TRUE; -} - -gint path_list(const gchar *path, GList **files, GList **dirs) -{ - return path_list_real(path, files, dirs, TRUE); -} - -gint path_list_lstat(const gchar *path, GList **files, GList **dirs) -{ - return path_list_real(path, files, dirs, FALSE); -} - -void path_list_free(GList *list) +void string_list_free(GList *list) { g_list_foreach(list, (GFunc)g_free, NULL); g_list_free(list); } -GList *path_list_copy(GList *list) +GList *string_list_copy(GList *list) { GList *new_list = NULL; GList *work;
--- a/src/ui_fileops.h Sun May 04 19:00:39 2008 +0000 +++ b/src/ui_fileops.h Sun May 04 21:54:20 2008 +0000 @@ -58,13 +58,8 @@ /* return True on success, it is up to you to free * the lists with string_list_free() */ -gint path_list(const gchar *path, GList **files, GList **dirs); -gint path_list_lstat(const gchar *path, GList **files, GList **dirs); void string_list_free(GList *list); -#define path_list_free string_list_free GList *string_list_copy(GList *list); -#define path_list_copy string_list_copy - gchar *unique_filename(const gchar *path, const gchar *ext, const gchar *divider, gint pad); gchar *unique_filename_simple(const gchar *path);
--- a/src/ui_pathsel.c Sun May 04 19:00:39 2008 +0000 +++ b/src/ui_pathsel.c Sun May 04 21:54:20 2008 +0000 @@ -240,7 +240,7 @@ list = list->next; } - path_list_free(path_list); + string_list_free(path_list); if (dd->f_view) @@ -264,7 +264,7 @@ list = list->next; } - path_list_free(file_list); + string_list_free(file_list); } g_free(dd->path); @@ -355,7 +355,7 @@ break; } - path_list_free(list); + string_list_free(list); if (!uri_text) return; @@ -970,10 +970,10 @@ static void dest_filter_clear(Dest_Data *dd) { - path_list_free(dd->filter_list); + string_list_free(dd->filter_list); dd->filter_list = NULL; - path_list_free(dd->filter_text_list); + string_list_free(dd->filter_text_list); dd->filter_text_list = NULL; dest_filter_add(dd, "*", _("All Files"), TRUE);