Mercurial > gftp.yaz
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); }