diff src/gtk/delete_dialog.c @ 182:33b394ebba68

2003-6-15 Brian Masney <masneyb@gftp.org> * lib/cache.c lib/gftp.h - added gftp_generate_cache_description(). * lib/cache.c lib/gftp.h src/text/gftp-text.c src/gtk/delete-dialog.c src/gtk/menu-items.c src/gtk/misc-gtk.c src/gtk/mkdir-dialog.c - Added description parameter to gftp_delete_cache_entry(). * lib/protocols.c lib/gftp.h - added gftp_fd_open(). It will call open() and then set the socket option close on exec * lib/cache.c lib/local.c lib/misc.c - use gftp_fd_open() instead of open() * lib/rfc959.c lib/protocols.c - on newly created sockets, make sure the close on exec socket option is set * lib/options.h src/text/gftp-text.c src/gtk/transfer.c - added preserve_permissions option * lib/protocols.c (gftp_parse_url) - allow an @ to be in the username * src/text/gftp-text.c - after transfering a file, honor preserve_permissions if it is set * src/gtk/delete-dialog.c - improvments to clearing the expired cache entries
author masneyb
date Sun, 15 Jun 2003 21:28:02 +0000
parents 2f15b3000dbc
children 13ca1defdc75
line wrap: on
line diff
--- a/src/gtk/delete_dialog.c	Sun Jun 15 13:22:09 2003 +0000
+++ b/src/gtk/delete_dialog.c	Sun Jun 15 21:28:02 2003 +0000
@@ -23,14 +23,7 @@
 static void
 delete_purge_cache (gpointer key, gpointer value, gpointer user_data)
 {
-  gftp_request * request;
-  char *olddir;
-
-  request = user_data;
-  olddir = request->directory;
-  request->directory = key;
-  gftp_delete_cache_entry (request, 0);
-  request->directory = olddir;
+  gftp_delete_cache_entry (NULL, key, 0);
   g_free (key);
 }
 
@@ -38,8 +31,8 @@
 static void *
 do_delete_thread (void *data)
 {
+  char *tempstr, description[BUFSIZ];
   gftp_transfer * transfer;
-  char *pos, *tempstr;
   gftp_file * tempfle;
   GHashTable * rmhash;
   GList * templist;
@@ -69,15 +62,15 @@
           else
             success = gftp_remove_file (transfer->fromreq, tempfle->file);
 
-          if (success == 0 && (pos = strrchr (tempfle->file, '/')))
+          if (success == 0)
             {
-              *pos = '\0';
-              if (g_hash_table_lookup (rmhash, tempfle->file) == NULL)
+              gftp_generate_cache_description (transfer->fromreq, description, 
+                                               sizeof (description), 0);
+              if (g_hash_table_lookup (rmhash, description) == NULL)
                 {
-                  tempstr = g_strconcat (tempfle->file, NULL);
+                  tempstr = g_strdup (description);
                   g_hash_table_insert (rmhash, tempstr, NULL);
                 }
-              *pos = '/';
             }
 
           if (templist == transfer->files || 
@@ -86,7 +79,7 @@
           templist = templist->prev;
         }
 
-      g_hash_table_foreach (rmhash, delete_purge_cache, transfer->fromreq);
+      g_hash_table_foreach (rmhash, delete_purge_cache, NULL);
       g_hash_table_destroy (rmhash);
     }
   else