From bc3fb45db30741a60d4e8904cbd4d6118fb85741 Mon Sep 17 00:00:00 2001 From: Joseph Lansdowne Date: Sun, 31 Mar 2019 19:25:26 +0100 Subject: [PATCH] fix filenames with url-reserved characters --- ChangeLog | 2 +- path_utils.c | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/path_utils.c b/path_utils.c index db3d7e4..4f747bb 100644 --- a/path_utils.c +++ b/path_utils.c @@ -39,9 +39,11 @@ char* get_full_path(const char* path) { path = converted_path; } - ret = g_strdup_printf("%s%s", ftpfs.host, path); + const char *const escaped_path = g_uri_escape_string(path, "/", FALSE); + ret = g_strdup_printf("%s%s", ftpfs.host, escaped_path); free(converted_path); + free((char *) escaped_path); return ret; } @@ -58,9 +60,12 @@ char* get_fulldir_path(const char* path) { path = converted_path; } - ret = g_strdup_printf("%s%s%s", ftpfs.host, path, strlen(path) ? "/" : ""); + const char *const escaped_path = g_uri_escape_string(path, "/", FALSE); + ret = g_strdup_printf( + "%s%s%s", ftpfs.host, escaped_path, strlen(escaped_path) ? "/" : ""); free(converted_path); + free((char *) escaped_path); return ret; } @@ -71,24 +76,25 @@ char* get_dir_path(const char* path) { const char *lastdir; ++path; - - lastdir = strrchr(path, '/'); - if (lastdir == NULL) lastdir = path; - if (ftpfs.codepage && (lastdir - path > 0)) { - converted_path = g_strndup(path, lastdir - path); + if (ftpfs.codepage) { + converted_path = g_strdup(path); convert_charsets(ftpfs.iocharset, ftpfs.codepage, &converted_path); path = converted_path; - lastdir = path + strlen(path); } + const char *const escaped_path = g_uri_escape_string(path, "/", FALSE); + lastdir = strrchr(escaped_path, '/'); + if (lastdir == NULL) lastdir = escaped_path; + ret = g_strdup_printf("%s%.*s%s", ftpfs.host, - lastdir - path, - path, - lastdir - path ? "/" : ""); + lastdir - escaped_path, + escaped_path, + lastdir - escaped_path ? "/" : ""); free(converted_path); + free((char *) escaped_path); return ret; } ookbook.ko.po?id=e041656917de1bfa0855444caf841a582a5e48a5'>guix-cookbook.ko.po
AgeCommit message (Expand)Author
2023-06-30nls: Update translations....* po/packages/ja.po: New file. * po/packages/LINGUAS: Add it. Florian Pelz
2023-05-31nls: Update translations....* doc/guix-cookbook.texi (Top): Mention Slovak. Florian Pelz
2023-03-07nls: Update translations.Julien Lepiller
2022-12-04nls: Update translations....po/packages/vi.po: New file. po/packages/LINGUAS: Add it. Julien Lepiller
2022-11-04nls: Update translations....* po/guix/lt.po: New file. * po/guix/LINGUAS: Add lt. Julien Lepiller
2022-07-09nls: Update translations....po/guix/tr.po: New file. po/guix/LINGUAS: Add it. Julien Lepiller
2022-06-04nls: Update translations....po/packages/tr.po: New file. po/packages/LINGUAS: Add it. Julien Lepiller
2022-05-01nls: Update translations....po/guix/ja.po: New file. po/guix/LINGUAS: Add it. Julien Lepiller
2022-04-02nls: Update translations....* po/packages/fi.po: New file. * po/packages/LINGUAS: Add it. Julien Lepiller
2022-02-04nls: Update translations....* po/doc/guix-cookbook.pt_BR.po: New file. * po/doc/local.mk: Add it. * doc/local.mk: Add pt_BR cookbook. Julien Lepiller
2022-01-09nls: Update translations....* po/doc/guix-cookbook.fi.po: New file. * po/doc/guix-manual.fi.po: New file. * po/doc/local.mk: Add them. * doc/local.mk: Add them. * po/guix/fi.po: New file. * po/guix/LINGUAS: Add it. Julien Lepiller