From: Shixin Zeng Date: Fri, 14 Aug 2009 20:21:12 +0000 (+0300) Subject: [Win32] Avoid superfluous '/' from g_file_resolve_relative_path() X-Git-Tag: 2.21.5~26 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=406c3aa019a6ce51534f170fd5b82108382a4c6f;p=platform%2Fupstream%2Fglib.git [Win32] Avoid superfluous '/' from g_file_resolve_relative_path() Patch from bug #591532. --- diff --git a/gio/win32/gwinhttpfile.c b/gio/win32/gwinhttpfile.c index 7e72b9f..f47076d 100644 --- a/gio/win32/gwinhttpfile.c +++ b/gio/win32/gwinhttpfile.c @@ -375,9 +375,19 @@ g_winhttp_file_resolve_relative_path (GFile *file, if (*wnew_path != '/') { - wchar_t *tmp = g_new (wchar_t, wcslen (winhttp_file->url.lpszUrlPath) + 1 + wcslen (wnew_path) + 1); - wcscpy (tmp, winhttp_file->url.lpszUrlPath); - wcscat (tmp, L"/"); + wchar_t *tmp = NULL; + int trailing_slash = winhttp_file->url.lpszUrlPath[winhttp_file->url.dwUrlPathLength-1] == L'/'? 1 : 0; + if (trailing_slash) + { + tmp = g_new (wchar_t, wcslen (winhttp_file->url.lpszUrlPath) + wcslen (wnew_path) + 1); + wcscpy (tmp, winhttp_file->url.lpszUrlPath); + } + else + { + tmp = g_new (wchar_t, wcslen (winhttp_file->url.lpszUrlPath) + 1 + wcslen (wnew_path) + 1); + wcscpy (tmp, winhttp_file->url.lpszUrlPath); + wcscat (tmp, L"/"); + } wcscat (tmp, wnew_path); g_free (wnew_path);