Author: colossus
Date: 2007-07-30 21:17:32 +0000 (Mon, 30 Jul 2007)
New Revision: 25941
Modified:
xarchiver/trunk/src/archive.c
xarchiver/trunk/src/zip.c
Log:
The entry->filename is now freed before converting it to UTF8.
Added counting of number of directories and files to zip.
Modified: xarchiver/trunk/src/archive.c
===================================================================
--- xarchiver/trunk/src/archive.c 2007-07-30 19:22:58 UTC (rev 25940)
+++ xarchiver/trunk/src/archive.c 2007-07-30 21:17:32 UTC (rev 25941)
@@ -345,7 +345,7 @@
child_entry->next = last_entry->child;
last_entry->child = child_entry;
- //thid entry, last_entry->child, contains all
the dirs
+ //this entry, last_entry->child, contains all
the dirs
}
last_entry = child_entry;
p++;
@@ -406,7 +406,7 @@
{
GSList *s = NULL;
XEntry *entry = NULL;
- XEntry *entry2 = NULL;
+
GtkTreeIter iter;
unsigned short int i;
gpointer current_column;
@@ -421,9 +421,12 @@
current_column = entry->columns;
gtk_list_store_append (archive->liststore, &iter);
- //TODO: free the char in g_convert and also at line 445
if(!g_utf8_validate(entry->filename, -1, NULL) )
- gtk_list_store_set
(archive->liststore,&iter,0,GTK_STOCK_DIRECTORY,1,g_convert(entry->filename,
-1, "UTF-8", "WINDOWS-1252", NULL, NULL, NULL),-1);
+ {
+ gchar *dummy = g_convert(entry->filename, -1,
"UTF-8", "WINDOWS-1252", NULL, NULL, NULL);
+ g_free (entry->filename);
+ entry->filename = dummy;
+ }
else
gtk_list_store_set
(archive->liststore,&iter,0,GTK_STOCK_DIRECTORY,1,entry->filename,-1);
@@ -479,6 +482,12 @@
while (entry)
{
+ if(!g_utf8_validate(entry->filename, -1, NULL) )
+ {
+ gchar *dummy = g_convert(entry->filename, -1, "UTF-8",
"WINDOWS-1252", NULL, NULL, NULL);
+ g_free (entry->filename);
+ entry->filename = dummy;
+ }
/* Remove the path from the filename */
gchar *slash = strrchr(entry->filename,'/');
if (slash != NULL)
@@ -492,10 +501,7 @@
current_column = entry->columns;
gtk_list_store_append (archive->liststore, &iter);
- if(!g_utf8_validate(entry->filename, -1, NULL))
- gtk_list_store_set
(archive->liststore,&iter,0,GTK_STOCK_DIRECTORY,1,g_convert(entry->filename,
-1, "UTF-8", "WINDOWS-1252", NULL, NULL, NULL),-1);
- else
- gtk_list_store_set
(archive->liststore,&iter,0,GTK_STOCK_DIRECTORY,1,entry->filename,-1);
+ gtk_list_store_set
(archive->liststore,&iter,0,GTK_STOCK_DIRECTORY,1,entry->filename,-1);
for (i = 0; i < archive->nc; i++)
{
Modified: xarchiver/trunk/src/zip.c
===================================================================
--- xarchiver/trunk/src/zip.c 2007-07-30 19:22:58 UTC (rev 25940)
+++ xarchiver/trunk/src/zip.c 2007-07-30 21:17:32 UTC (rev 25941)
@@ -55,7 +55,6 @@
void xa_get_zip_line_content (gchar *line, gpointer data)
{
XArchive *archive = data;
- XEntry *entry = NULL;
gchar *filename;
gpointer item[8];
unsigned short int i = 0;
@@ -77,7 +76,12 @@
line[n]='\0';
item[i] = line + a;
if ( (line+a)[0] == 'd')
+ {
is_dir = TRUE;
+ archive->nr_of_dirs++;
+ }
+ else
+ archive->nr_of_files++;
i++;
n++;
@@ -166,8 +170,8 @@
filename = line + n;
//item[0] = GTK_STOCK_DIRECTORY;//xa_get_mime_icon (line+a);
- entry = xa_set_archive_entries_for_each_row (archive,filename,item);
- /*if (archive->entry != NULL)
+ archive->entry = xa_set_archive_entries_for_each_row
(archive,filename,item);
+ if (archive->entry != NULL)
{
archive->entry->is_dir = is_dir;
archive->entry->is_encrypted = encrypted;
@@ -176,5 +180,5 @@
{
//TODO: found a way to stop calling this function over and over
again; i.e. kill (archive->child_pid,SIGABRT) ??
g_message ("*** Can't allocate memory for the archive data!");
- }*/
+ }
}
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits