From a42f9fd4e2ccb164c0634571da9903e6a2aa507a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 29 Jan 2013 21:11:04 +0100 Subject: ArchivePlugin: scan_next() returns const string --- src/ArchivePlugin.cxx | 2 +- src/ArchivePlugin.hxx | 4 ++-- src/UpdateArchive.cxx | 12 +++++++----- src/archive/Bzip2ArchivePlugin.cxx | 4 ++-- src/archive/Iso9660ArchivePlugin.cxx | 6 +++--- src/archive/ZzipArchivePlugin.cxx | 6 +++--- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/ArchivePlugin.cxx b/src/ArchivePlugin.cxx index 42c90eec..55721efc 100644 --- a/src/ArchivePlugin.cxx +++ b/src/ArchivePlugin.cxx @@ -70,7 +70,7 @@ archive_file_scan_reset(struct archive_file *file) file->plugin->scan_reset(file); } -char * +const char * archive_file_scan_next(struct archive_file *file) { assert(file != NULL); diff --git a/src/ArchivePlugin.hxx b/src/ArchivePlugin.hxx index 66ec6d83..448a1941 100644 --- a/src/ArchivePlugin.hxx +++ b/src/ArchivePlugin.hxx @@ -62,7 +62,7 @@ struct archive_plugin { * (as pathnames) and move read index to next file. When there is no * next file it return NULL. */ - char *(*scan_next)(struct archive_file *); + const char *(*scan_next)(struct archive_file *); /** * Opens an input_stream of a file within the archive. @@ -98,7 +98,7 @@ archive_file_close(struct archive_file *file); void archive_file_scan_reset(struct archive_file *file); -char * +const char * archive_file_scan_next(struct archive_file *file); struct input_stream * diff --git a/src/UpdateArchive.cxx b/src/UpdateArchive.cxx index 3088e942..5da212e9 100644 --- a/src/UpdateArchive.cxx +++ b/src/UpdateArchive.cxx @@ -33,17 +33,19 @@ #include static void -update_archive_tree(Directory *directory, char *name) +update_archive_tree(Directory *directory, const char *name) { - char *tmp = strchr(name, '/'); + const char *tmp = strchr(name, '/'); if (tmp) { - *tmp = 0; + char *child_name = g_strndup(name, tmp - name); //add dir is not there already db_lock(); Directory *subdir = - directory->MakeChild(name); + directory->MakeChild(child_name); subdir->device = DEVICE_INARCHIVE; db_unlock(); + g_free(child_name); + //create directories first update_archive_tree(subdir, tmp+1); } else { @@ -122,7 +124,7 @@ update_archive_file2(Directory *parent, const char *name, archive_file_scan_reset(file); - char *filepath; + const char *filepath; while ((filepath = archive_file_scan_next(file)) != NULL) { /* split name into directory and file */ g_debug("adding archive file: %s", filepath); diff --git a/src/archive/Bzip2ArchivePlugin.cxx b/src/archive/Bzip2ArchivePlugin.cxx index b344f118..4b0d5223 100644 --- a/src/archive/Bzip2ArchivePlugin.cxx +++ b/src/archive/Bzip2ArchivePlugin.cxx @@ -158,11 +158,11 @@ bz2_scan_reset(struct archive_file *file) context->reset = true; } -static char * +static const char * bz2_scan_next(struct archive_file *file) { Bzip2ArchiveFile *context = (Bzip2ArchiveFile *) file; - char *name = NULL; + const char *name = NULL; if (context->reset) { name = context->name; diff --git a/src/archive/Iso9660ArchivePlugin.cxx b/src/archive/Iso9660ArchivePlugin.cxx index f92895b7..fe752ff3 100644 --- a/src/archive/Iso9660ArchivePlugin.cxx +++ b/src/archive/Iso9660ArchivePlugin.cxx @@ -141,16 +141,16 @@ iso9660_archive_scan_reset(struct archive_file *file) context->iter = context->list; } -static char * +static const char * iso9660_archive_scan_next(struct archive_file *file) { Iso9660ArchiveFile *context = (Iso9660ArchiveFile *)file; - char *data = NULL; + const char *data = NULL; if (context->iter != NULL) { ///fetch data and goto next - data = (char *)context->iter->data; + data = (const char *)context->iter->data; context->iter = g_slist_next(context->iter); } return data; diff --git a/src/archive/ZzipArchivePlugin.cxx b/src/archive/ZzipArchivePlugin.cxx index dabdd41d..81bf91f0 100644 --- a/src/archive/ZzipArchivePlugin.cxx +++ b/src/archive/ZzipArchivePlugin.cxx @@ -109,14 +109,14 @@ zzip_archive_scan_reset(struct archive_file *file) context->iter = context->list; } -static char * +static const char * zzip_archive_scan_next(struct archive_file *file) { ZzipArchiveFile *context = (ZzipArchiveFile *) file; - char *data = NULL; + const char *data = NULL; if (context->iter != NULL) { ///fetch data and goto next - data = (char *)context->iter->data; + data = (const char *)context->iter->data; context->iter = g_slist_next(context->iter); } return data; -- cgit v1.2.3