Author: colossus
Date: 2007-08-23 12:29:40 +0000 (Thu, 23 Aug 2007)
New Revision: 26004

Modified:
   xarchiver/trunk/src/bzip2.c
   xarchiver/trunk/src/extract_dialog.c
   xarchiver/trunk/src/gzip.c
   xarchiver/trunk/src/window.c
Log:
Applied patch by Edward Tomasz Napierala for fixing relative pathname problem 
in the 
extraction dialog when running 'xarchiver archive.tar.gz'


Modified: xarchiver/trunk/src/bzip2.c
===================================================================
--- xarchiver/trunk/src/bzip2.c 2007-08-23 11:30:28 UTC (rev 26003)
+++ xarchiver/trunk/src/bzip2.c 2007-08-23 12:29:40 UTC (rev 26004)
@@ -35,6 +35,7 @@
 
     if ( g_str_has_suffix ( archive->escaped_path , ".tar.bz2") || 
g_str_has_suffix ( archive->escaped_path , ".tar.bz") || g_str_has_suffix ( 
archive->escaped_path , ".tbz") || g_str_has_suffix ( archive->escaped_path , 
".tbz2" ) )
        {
+               archive->type = XARCHIVETYPE_TAR_BZ2;
                tar = g_find_program_in_path ("gtar");
                if (tar == NULL)
                        tar = g_strdup ("tar");

Modified: xarchiver/trunk/src/extract_dialog.c
===================================================================
--- xarchiver/trunk/src/extract_dialog.c        2007-08-23 11:30:28 UTC (rev 
26003)
+++ xarchiver/trunk/src/extract_dialog.c        2007-08-23 12:29:40 UTC (rev 
26004)
@@ -83,7 +83,7 @@
                        strncpy ( extraction_string, archive->path, x - 5);
                        extraction_string[x-5] = '\0';
                }
-               gtk_entry_set_text 
(GTK_ENTRY(dialog_data->destination_path_entry), extraction_string);
+               gtk_entry_set_text 
(GTK_ENTRY(dialog_data->destination_path_entry), g_strdup(extraction_string));
                g_free (extraction_string);
        }
        else
@@ -319,7 +319,6 @@
                        break;
 
                        case GTK_RESPONSE_OK:
-                       //TODO: apply Edward's patch
                        destination_path = g_strdup (gtk_entry_get_text ( 
GTK_ENTRY (dialog_data->destination_path_entry) ));
                        archive->extraction_path = EscapeBadChars ( 
destination_path , "$\'`\"\\!?* ()&|@#:;" );
 
@@ -328,6 +327,12 @@
                                response = xa_show_message_dialog (GTK_WINDOW 
(MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK, _("You missed 
where to extract the files!"),_("Please enter the extraction path.") );
                                break;
                        }
+                       if (archive->extraction_path[0] != '/')
+                       {
+                               gchar *cur_dir = g_get_current_dir();
+                               archive->extraction_path = g_strconcat(cur_dir, 
"/", archive->extraction_path, NULL);
+                               g_free (cur_dir);
+                       }
                        if (archive->has_passwd)
                                archive->passwd  = g_strdup (gtk_entry_get_text 
( GTK_ENTRY (dialog_data->password_entry) ));
 

Modified: xarchiver/trunk/src/gzip.c
===================================================================
--- xarchiver/trunk/src/gzip.c  2007-08-23 11:30:28 UTC (rev 26003)
+++ xarchiver/trunk/src/gzip.c  2007-08-23 12:29:40 UTC (rev 26004)
@@ -32,6 +32,7 @@
 
        if ( g_str_has_suffix ( archive->escaped_path , ".tar.gz") || 
g_str_has_suffix ( archive->escaped_path , ".tgz") )
        {
+               archive->type = XARCHIVETYPE_TAR_GZ;
            tar = g_find_program_in_path ("gtar");
            if (tar == NULL)
                tar = g_strdup ("tar");

Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c        2007-08-23 11:30:28 UTC (rev 26003)
+++ xarchiver/trunk/src/window.c        2007-08-23 12:29:40 UTC (rev 26004)
@@ -1085,7 +1085,6 @@
                xx = XARCHIVETYPE_LHA;
        else if ( memcmp ( magic,"!<arch>\ndebian", 14 ) == 0 )
                xx = XARCHIVETYPE_DEB;
-       //else if ( memcmp 
(magic,"\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00",12) == 0 ) xx = 
XARCHIVETYPE_BIN;
        fclose ( dummy_ptr );
        return xx;
 }

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to