diff options
author | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-18 12:47:41 (EST) |
---|---|---|
committer | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-18 12:47:41 (EST) |
commit | 5f550c85c4d2308a15f49f4d2d975b0614867412 (patch) | |
tree | d9773c75c5668858ef7bea507b465ca352624391 /libopkg/opkg_remove.c | |
parent | 2cec79cb14f343d822bb8098b022fe4344261c7f (diff) |
using list_head to handle the list
git-svn-id: http://opkg.googlecode.com/svn/trunk@185 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/opkg_remove.c')
-rw-r--r-- | libopkg/opkg_remove.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/libopkg/opkg_remove.c b/libopkg/opkg_remove.c index 3edb6de..0b913fd 100644 --- a/libopkg/opkg_remove.c +++ b/libopkg/opkg_remove.c @@ -346,8 +346,8 @@ int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg) str_list_init(&installed_dirs); installed_files = pkg_get_installed_files(pkg); - for (iter = installed_files->head; iter; iter = iter->next) { - file_name = iter->data; + for (iter = str_list_first(installed_files); iter; iter = str_list_next(installed_files, iter)) { + file_name = (char *)iter->data; if (file_is_dir(file_name)) { str_list_append(&installed_dirs, strdup(file_name)); @@ -377,8 +377,8 @@ int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg) if (!conf->noaction) { do { removed_a_dir = 0; - for (iter = installed_dirs.head; iter; iter = iter->next) { - file_name = iter->data; + for (iter = str_list_first(&installed_dirs); iter; iter = str_list_next(&installed_dirs, iter)) { + file_name = (char *)iter->data; if (rmdir(file_name) == 0) { opkg_message(conf, OPKG_INFO, " deleting %s\n", file_name); @@ -395,8 +395,8 @@ int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg) pkg_remove_installed_files_list(conf, pkg); /* Don't print warning for dirs that are provided by other packages */ - for (iter = installed_dirs.head; iter; iter = iter->next) { - file_name = iter->data; + for (iter = str_list_first(&installed_dirs); iter; iter = str_list_next(&installed_dirs, iter)) { + file_name = (char *)iter->data; owner = file_hash_get_file_owner(conf, file_name); if (owner) { @@ -407,9 +407,10 @@ int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg) } /* cleanup */ - for (iter = installed_dirs.head; iter; iter = iter->next) { - free(iter->data); - iter->data = NULL; + while (!void_list_empty(&installed_dirs)) { + iter = str_list_pop(&installed_dirs); + free(iter->data); + free(iter); } str_list_deinit(&installed_dirs); |