Author: colossus
Date: 2008-08-28 06:17:47 +0000 (Thu, 28 Aug 2008)
New Revision: 27599

Modified:
   xarchiver/trunk/src/string_utils.c
   xarchiver/trunk/src/window.c
Log:
Made the "Allow subdirs with drag and drop" option to work.
Avoid returning an allocated string in xa_strip_current_working_dir_from_path() 
in string_utils.c.


Modified: xarchiver/trunk/src/string_utils.c
===================================================================
--- xarchiver/trunk/src/string_utils.c  2008-08-27 13:20:05 UTC (rev 27598)
+++ xarchiver/trunk/src/string_utils.c  2008-08-28 06:17:47 UTC (rev 27599)
@@ -228,21 +228,20 @@
 
 gchar *xa_escape_filename (gchar *filename,gchar *meta_chars)
 {
-       return xa_escape_common_chars (filename , meta_chars, '\\', 0);
+       return xa_escape_common_chars (filename,meta_chars,'\\',0);
 }
 
 gchar *xa_strip_current_working_dir_from_path(gchar *working_dir,gchar 
*filename)
 {
-       gchar *basename,*slash;
+       gchar *slash;
        int len = 0;
 
        len = strlen(working_dir)+1;
        slash = g_strrstr(filename,"/");
        if (slash == NULL)
-               return g_strdup(filename);
+               return filename;
 
-       basename = g_strndup(filename+len,strlen(filename) - len);
-       return basename;
+       return filename+len;
 }
 
 void xa_cat_filenames (XArchive *archive,GSList *list,GString *data)
@@ -258,7 +257,6 @@
                        {
                                basename = 
xa_strip_current_working_dir_from_path(archive->working_dir,slist->data);
                                name = 
g_strconcat(archive->location_entry_path,basename,NULL);
-                               g_free(basename);
                                e_filename = 
xa_escape_filename(name,"$'`\"\\!?* ()[]&|:;<>#");
                                g_string_prepend (data,e_filename);
                                g_string_prepend_c (data,' ');
@@ -279,7 +277,6 @@
                        {
                                basename = 
xa_strip_current_working_dir_from_path(archive->working_dir,slist->data);
                                e_filename = 
xa_escape_filename(basename,"$'`\"\\!?* ()[]&|:;<>#");
-                               g_free(basename);
                                g_string_prepend (data,e_filename);
                                g_string_prepend_c (data,' ');
                        }

Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c        2008-08-27 13:20:05 UTC (rev 27598)
+++ xarchiver/trunk/src/window.c        2008-08-28 06:17:47 UTC (rev 27599)
@@ -1951,7 +1951,7 @@
                gtk_drag_finish(context,FALSE,FALSE,time);
                return;
        }
-       _current_dir = g_path_get_dirname (array[0]);
+       _current_dir = g_path_get_dirname(array[0]);
        if (archive[idx]->working_dir != NULL)
        {
                g_free(archive[idx]->working_dir);
@@ -1965,8 +1965,8 @@
                list = g_slist_append(list,filename);
                len++;
        }
-       archive[idx]->full_path = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (add_window->store_path));
-       archive[idx]->add_recurse = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (add_window->recurse));
+       archive[idx]->full_path         = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (add_window->store_path));
+       archive[idx]->add_recurse       = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (prefs_window->allow_sub_dir));
        xa_execute_add_commands(archive[idx],list,NULL);
        g_strfreev (array);
 }

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

Reply via email to