aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gpgtar-create.c
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2016-01-26 08:53:42 +0000
committerWerner Koch <[email protected]>2016-01-26 08:53:42 +0000
commit3e50236d4ecc3601b2641bf4273a0ff64bb5fdc4 (patch)
tree6eb1cf224143969a5b60e622a0fd7e1479ee6b51 /tools/gpgtar-create.c
parentg10: Fix segfault on unsupported curve. (diff)
downloadgnupg-3e50236d4ecc3601b2641bf4273a0ff64bb5fdc4.tar.gz
gnupg-3e50236d4ecc3601b2641bf4273a0ff64bb5fdc4.zip
gpgtar,w32: Fix gpgtar 8 bit encoding handling on W32
* common/utf8conv.c (wchar_to_utf8): Factor code out to ... (wchar_to_cp): new. (utf8_to_wchar): Factor code out to ... (cp_to_wchar): new. (wchar_to_native): New. (native_to_wchar): New. * tools/gpgtar-create.c (fillup_entry_w32): Use native_to_wchar. (scan_directory): Use wchar_to_native. -- Gpgtar needs to handle filenames in the local 8 bit encoding on Windows as it uses the 8 bit file io functions. GnuPG-bug-id: 1624, 1746 Patch from bug 1624 modified to fit into GnuPG 2.1 by wk. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tools/gpgtar-create.c')
-rw-r--r--tools/gpgtar-create.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c
index 2fd70190c..968dca695 100644
--- a/tools/gpgtar-create.c
+++ b/tools/gpgtar-create.c
@@ -72,13 +72,13 @@ fillup_entry_w32 (tar_header_t hdr)
for (p=hdr->name; *p; p++)
if (*p == '/')
*p = '\\';
- wfname = utf8_to_wchar (hdr->name);
+ wfname = native_to_wchar (hdr->name);
for (p=hdr->name; *p; p++)
if (*p == '\\')
*p = '/';
if (!wfname)
{
- log_error ("error utf8-ing '%s': %s\n", hdr->name, w32_strerror (-1));
+ log_error ("error converting '%s': %s\n", hdr->name, w32_strerror (-1));
return gpg_error_from_syserror ();
}
if (!GetFileAttributesExW (wfname, GetFileExInfoStandard, &fad))
@@ -299,7 +299,7 @@ scan_directory (const char *dname, scanctrl_t scanctrl)
for (p=fname; *p; p++)
if (*p == '/')
*p = '\\';
- wfname = utf8_to_wchar (fname);
+ wfname = native_to_wchar (fname);
xfree (fname);
if (!wfname)
{
@@ -322,11 +322,11 @@ scan_directory (const char *dname, scanctrl_t scanctrl)
do
{
- char *fname = wchar_to_utf8 (fi.cFileName);
+ char *fname = wchar_to_native (fi.cFileName);
if (!fname)
{
err = gpg_error_from_syserror ();
- log_error ("error utf8-ing filename: %s\n", w32_strerror (-1));
+ log_error ("error converting filename: %s\n", w32_strerror (-1));
break;
}
for (p=fname; *p; p++)