Author: colossus
Date: 2006-08-01 13:21:09 +0000 (Tue, 01 Aug 2006)
New Revision: 22607

Modified:
   xarchiver/trunk/TODO
   xarchiver/trunk/src/callbacks.c
   xarchiver/trunk/src/iso.c
Log:
Fixed extraction of ISO images.


Modified: xarchiver/trunk/TODO
===================================================================
--- xarchiver/trunk/TODO        2006-08-01 12:05:11 UTC (rev 22606)
+++ xarchiver/trunk/TODO        2006-08-01 13:21:09 UTC (rev 22607)
@@ -1,8 +1,7 @@
 + iso
   - add display of ID's inside the ISO plus image type [PARTIALLY DONE].
-  - fix the extraction of single files with full path.
 
-- to fix bugs #1736.
+- fix bug #1736.
 - switching by right clicking on the toolbar to icons with text/ no text/ 
small icons.
 - create a routine for handling the sensitiveness of the buttons, window title 
[MAYBE ??]
 - add a small progress window when using Xarchiver cmd-line switches.

Modified: xarchiver/trunk/src/callbacks.c
===================================================================
--- xarchiver/trunk/src/callbacks.c     2006-08-01 12:05:11 UTC (rev 22606)
+++ xarchiver/trunk/src/callbacks.c     2006-08-01 13:21:09 UTC (rev 22607)
@@ -1452,6 +1452,7 @@
        {
         if (is_escaped_char(*p))
                        escapechars++;
+               /* The following is mine */
                else if ( doublesquare && (*p == '[' || *p == ']') )
                        escapechars += 2;
                p++;
@@ -1468,6 +1469,7 @@
        {
         if (is_escaped_char(*p))
                        *q++ = '\\';
+               /* The following is mine */
                else if ( doublesquare && (*p == '[' || *p == ']') )
                {
                        *q++ = '\\';

Modified: xarchiver/trunk/src/iso.c
===================================================================
--- xarchiver/trunk/src/iso.c   2006-08-01 12:05:11 UTC (rev 22606)
+++ xarchiver/trunk/src/iso.c   2006-08-01 13:21:09 UTC (rev 22607)
@@ -503,18 +503,18 @@
                        multiple_directories = remove_level_from_path ( 
_filename );
                        final_path = g_strconcat (destination_path, 
multiple_directories,NULL);
                        g_free (multiple_directories);
-                       if (xa_create_directory_for_iso_extraction ( archive , 
final_path ))
+                       if ( ! xa_create_directory_for_iso_extraction ( archive 
, final_path ))
                        {
                                g_free (final_path);
                                return FALSE;
                        }
                        g_free (final_path);
                }
-               final_path = g_strconcat (destination_path, _filename, NULL);
-               result = xa_write_file_to_disk ( archive->path, final_path, 
file_size, file_offset );
-               g_free (final_path);
-               return result;
        }
+       final_path = g_strconcat (destination_path, _filename, NULL);
+       result = xa_write_file_to_disk ( archive->path, final_path, file_size, 
file_offset );
+       g_free (final_path);
+       return result;
 }
 
 gboolean xa_extract_iso_file (XArchive *archive, gchar *permission, gchar 
*destination_path, gchar *_filename , unsigned long long int file_size, 
unsigned long long file_offset )
@@ -536,15 +536,11 @@
                {
                        if ( g_file_test ( filename , G_FILE_TEST_EXISTS) == 
FALSE )
                        {
-                               if (xa_create_directory_for_iso_extraction 
(archive,filename) )
+                               if ( ! xa_create_directory_for_iso_extraction 
(archive,filename) )
                                {
                                        g_free (filename);
                                        return FALSE;
                                }
-                               if (archive->child_pid == 0)
-                                       return FALSE;
-                               else
-                                       return TRUE;
                        }
                        return TRUE;
                }
@@ -571,10 +567,9 @@
                return FALSE;
        if ((fdest = fopen (dest, "w")) == NULL)
        {
-               //gchar *msg = g_strdup_printf (_("Can't write file \"%s\":"), 
dest);
-               response = ShowGtkMessageDialog (GTK_WINDOW 
(MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't write 
file:"),g_strerror(errno) );
-               //response = ShowGtkMessageDialog (GTK_WINDOW 
(MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,msg,g_strerror(errno)
 );
-               //g_free (msg);
+               gchar *msg = g_strdup_printf (_("Can't write file \"%s\":"), 
dest);
+               response = ShowGtkMessageDialog (GTK_WINDOW 
(MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,msg,g_strerror(errno)
 );
+               g_free (msg);
         return FALSE;
        }
 

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to