Author: peter Date: 2007-01-26 23:00:51 +0000 (Fri, 26 Jan 2007) New Revision: 24771
Modified: squeeze/trunk/libsqueeze/archive-support-rar.c squeeze/trunk/libsqueeze/archive.c squeeze/trunk/libsqueeze/archive.h squeeze/trunk/src/archive_store.c Log: bug in rar fixed Modified: squeeze/trunk/libsqueeze/archive-support-rar.c =================================================================== --- squeeze/trunk/libsqueeze/archive-support-rar.c 2007-01-26 19:24:08 UTC (rev 24770) +++ squeeze/trunk/libsqueeze/archive-support-rar.c 2007-01-26 23:00:51 UTC (rev 24771) @@ -438,7 +438,6 @@ if(GPOINTER_TO_INT(g_object_get_data(data, LSQ_ARCHIVE_RAR_STATUS)) == REFRESH_STATUS_FILES) { entry = g_object_get_data(data, LSQ_ARCHIVE_RAR_LAST_ENTRY); - g_object_set_data(data, LSQ_ARCHIVE_RAR_LAST_ENTRY, NULL); for(o = 0; o < 500; o++) { @@ -470,6 +469,10 @@ break; } } + else + { + g_object_set_data(data, LSQ_ARCHIVE_RAR_LAST_ENTRY, NULL); + } /* filename, length, size, ratio, date, time, rights, crc-32, method , version*/ for(n=0; n < linesize && line[n] == ' '; n++); Modified: squeeze/trunk/libsqueeze/archive.c =================================================================== --- squeeze/trunk/libsqueeze/archive.c 2007-01-26 19:24:08 UTC (rev 24770) +++ squeeze/trunk/libsqueeze/archive.c 2007-01-26 23:00:51 UTC (rev 24771) @@ -94,8 +94,6 @@ lsq_archive_iter_get_prop_uint64(const LSQArchive *, const LSQArchiveIter *, guint); static const gchar * -lsq_archive_iter_get_filename(const LSQArchive *, const LSQArchiveIter *); -static const gchar * lsq_archive_iter_get_mimetype(const LSQArchive *, const LSQArchiveIter *); static gchar * @@ -1133,7 +1131,7 @@ * * returns filename */ -static const gchar* +const gchar* lsq_archive_iter_get_filename(const LSQArchive *archive, const LSQArchiveIter *iter) { return ((LSQEntry *)iter)->filename; Modified: squeeze/trunk/libsqueeze/archive.h =================================================================== --- squeeze/trunk/libsqueeze/archive.h 2007-01-26 19:24:08 UTC (rev 24770) +++ squeeze/trunk/libsqueeze/archive.h 2007-01-26 23:00:51 UTC (rev 24771) @@ -135,6 +135,7 @@ gboolean lsq_archive_iter_get_prop_value(const LSQArchive *archive, const LSQArchiveIter *iter, guint n, GValue *value); void lsq_archive_iter_get_icon_name(const LSQArchive *archive, const LSQArchiveIter *iter, GValue *value, GtkIconTheme *icon_theme); +const gchar *lsq_archive_iter_get_filename(const LSQArchive *archive, const LSQArchiveIter *); LSQArchiveIter *lsq_archive_add_file(LSQArchive *archive, const gchar *path) G_GNUC_INTERNAL; gboolean lsq_archive_del_file(LSQArchive *archive, const gchar *path); LSQArchiveIter *lsq_archive_get_iter(const LSQArchive *archive, const gchar *path); Modified: squeeze/trunk/src/archive_store.c =================================================================== --- squeeze/trunk/src/archive_store.c 2007-01-26 19:24:08 UTC (rev 24770) +++ squeeze/trunk/src/archive_store.c 2007-01-26 23:00:51 UTC (rev 24771) @@ -1062,8 +1062,6 @@ gint *indices = gtk_tree_path_get_indices(path); gint depth = gtk_tree_path_get_depth(path) - 1; - GValue value; - memset(&value, 0, sizeof(GValue)); /* only support list: depth is always 0 */ g_return_if_fail(depth == 0); @@ -1096,9 +1094,7 @@ #ifdef DEBUG g_debug("file clicked"); #endif - lsq_archive_iter_get_prop_value(archive, entry, LSQ_ARCHIVE_PROP_FILENAME, &value); - g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_FILE_ACTIVATED], 0, g_value_get_string(&value), NULL); - g_value_unset(&value); + g_signal_emit(store, sq_archive_store_signals[SQ_ARCHIVE_STORE_SIGNAL_FILE_ACTIVATED], 0, lsq_archive_iter_get_filename(archive, entry), NULL); return; } @@ -1256,7 +1252,7 @@ if(!store->navigation.present) return NULL; - GValue basename; + const gchar *basename; gchar *path = NULL; gchar **buf = NULL; GSList *iter = store->navigation.present->data; @@ -1264,8 +1260,6 @@ gchar *lastfile = NULL; gint namelen = 0; - memset(&basename, 0, sizeof(GValue)); - if(i <= 1) return g_strdup(""); @@ -1273,11 +1267,10 @@ i--; buf[i] = NULL; - lsq_archive_iter_get_prop_value(store->archive, (LSQArchiveIter*)iter->data, LSQ_ARCHIVE_PROP_FILENAME, &basename); - namelen = strlen(g_value_get_string(&basename)); + basename = lsq_archive_iter_get_filename(store->archive, (LSQArchiveIter*)iter->data); + namelen = strlen(basename); lastfile = g_new(gchar, namelen+2); - strcpy(lastfile, g_value_get_string(&basename)); - g_value_unset(&basename); + strcpy(lastfile, basename); if(lastfile[namelen-1] != '/') { lastfile[namelen] = '/'; @@ -1293,9 +1286,8 @@ while(iter->next) { --i; - lsq_archive_iter_get_prop_value(store->archive, (LSQArchiveIter*)iter->data, LSQ_ARCHIVE_PROP_FILENAME, &basename); - buf[i] = g_value_dup_string(&basename); - g_value_unset(&basename); + basename = lsq_archive_iter_get_filename(store->archive, (LSQArchiveIter*)iter->data); + buf[i] = g_strdup(basename); iter = iter->next; } } @@ -1324,21 +1316,18 @@ if(!store->navigation.present) return NULL; - GValue basename; + const gchar *basename; GSList *iter = store->navigation.present->data; GSList *path = NULL; if(!iter) return NULL; - memset(&basename, 0, sizeof(GValue)); - /* we don't want to include de archive rootentry */ while(iter->next) { - lsq_archive_iter_get_prop_value(store->archive, (LSQArchiveIter*)iter->data, LSQ_ARCHIVE_PROP_FILENAME, &basename); - path = g_slist_prepend(path, g_value_dup_string(&basename)); - g_value_unset(&basename); + basename = lsq_archive_iter_get_filename(store->archive, (LSQArchiveIter*)iter->data); + path = g_slist_prepend(path, g_strdup(basename)); iter = iter->next; } @@ -1483,15 +1472,14 @@ { LSQArchiveIter *entry = iter->user_data; - GValue value; - memset(&value, 0, sizeof(GValue)); + const gchar *basename; - lsq_archive_iter_get_prop_value(store->archive, entry, LSQ_ARCHIVE_PROP_FILENAME, &value); + basename = lsq_archive_iter_get_filename(store->archive, entry); if(lsq_archive_iter_is_directory(store->archive, entry)) - return g_strconcat(g_value_get_string(&value), "/", NULL); + return g_strconcat(basename, "/", NULL); else - return g_value_dup_string(&value); + return g_strdup(basename); } gboolean _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits