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

Reply via email to