diff lib/rfc2068.c @ 204:9b2de8d3fafe

2003-6-25 Brian Masney <masneyb@gftp.org> * lib/misc.c (expand_path) - small improvements * lib/rfc2068.c src/text/gftp-gtk.c - fixes for path handling, namely when changing directories to the parent (..)
author masneyb
date Thu, 26 Jun 2003 02:14:24 +0000
parents 0098dae654a5
children cf4098008615
line wrap: on
line diff
--- a/lib/rfc2068.c	Thu Jun 26 01:40:24 2003 +0000
+++ b/lib/rfc2068.c	Thu Jun 26 02:14:24 2003 +0000
@@ -643,15 +643,27 @@
 static int
 rfc2068_chdir (gftp_request * request, const char *directory)
 {
+  char *tempstr, *olddir;
+
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
   g_return_val_if_fail (request->protonum == GFTP_HTTP_NUM, GFTP_EFATAL);
   g_return_val_if_fail (directory != NULL, GFTP_EFATAL);
 
   if (request->directory != directory)
     {
-      if (request->directory)
-        g_free (request->directory);
-      request->directory = g_strdup (directory);
+      olddir = request->directory;
+
+      if (*directory != '/')
+        {
+          tempstr = g_strconcat (request->directory, "/", directory, NULL);
+          request->directory = expand_path (tempstr);
+          g_free (tempstr);
+        }
+      else
+        request->directory = expand_path (directory);
+
+      if (olddir != NULL)
+        g_free (olddir);
     }
   return (0);
 }