summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2022-06-03 10:54:35 +0200
committerWerner Koch <wk@gnupg.org>2022-06-03 10:54:35 +0200
commit4ee2009083cb6f279c6f8aa4397462e887d5818e (patch)
tree4261606111885061238ca6614ad7bceef505e187
parentRemove remaining support for WindowsCE (diff)
downloadgnupg2-4ee2009083cb6f279c6f8aa4397462e887d5818e.tar.xz
gnupg2-4ee2009083cb6f279c6f8aa4397462e887d5818e.zip
w32: Allow Unicode filenames for iobuf_cancel.
* common/iobuf.c (iobuf_cancel): Use gnupg_remove * common/mischelp.c (same_file_p): Allow for Unicode names. -- Note that the second patch is used to handle Unicode filenames which are symbolic links.
-rw-r--r--common/iobuf.c2
-rw-r--r--common/mischelp.c21
-rw-r--r--doc/scdaemon.texi7
3 files changed, 24 insertions, 6 deletions
diff --git a/common/iobuf.c b/common/iobuf.c
index 2137604a9..c88d67908 100644
--- a/common/iobuf.c
+++ b/common/iobuf.c
@@ -1282,7 +1282,7 @@ iobuf_cancel (iobuf_t a)
{
/* Argg, MSDOS does not allow removing open files. So
* we have to do it here */
- remove (remove_name);
+ gnupg_remove (remove_name);
xfree (remove_name);
}
diff --git a/common/mischelp.c b/common/mischelp.c
index 68fd2bc24..ee8500297 100644
--- a/common/mischelp.c
+++ b/common/mischelp.c
@@ -80,13 +80,30 @@ same_file_p (const char *name1, const char *name2)
#ifdef HAVE_W32_SYSTEM
HANDLE file1, file2;
BY_HANDLE_FILE_INFORMATION info1, info2;
+ wchar_t *wname;
+
+ wname = gpgrt_fname_to_wchar (name1);
+ if (wname)
+ {
+ file1 = CreateFileW (wname, 0, 0, NULL, OPEN_EXISTING, 0, NULL);
+ xfree (wname);
+ }
+ else
+ file1 = INVALID_HANDLE_VALUE;
- file1 = CreateFile (name1, 0, 0, NULL, OPEN_EXISTING, 0, NULL);
if (file1 == INVALID_HANDLE_VALUE)
yes = 0; /* If we can't open the file, it is not the same. */
else
{
- file2 = CreateFile (name2, 0, 0, NULL, OPEN_EXISTING, 0, NULL);
+ wname = gpgrt_fname_to_wchar (name2);
+ if (wname)
+ {
+ file2 = CreateFileW (wname, 0, 0, NULL, OPEN_EXISTING, 0, NULL);
+ xfree (wname);
+ }
+ else
+ file2 = INVALID_HANDLE_VALUE;
+
if (file2 == INVALID_HANDLE_VALUE)
yes = 0; /* If we can't open the file, it is not the same. */
else
diff --git a/doc/scdaemon.texi b/doc/scdaemon.texi
index 7fc32b86f..b7d83aa89 100644
--- a/doc/scdaemon.texi
+++ b/doc/scdaemon.texi
@@ -236,9 +236,10 @@ this option only if you know what you are doing.
@item --pcsc-driver @var{library}
@opindex pcsc-driver
Use @var{library} to access the smartcard reader. The current default
-is @file{libpcsclite.so}. Instead of using this option you might also
-want to install a symbolic link to the default file name
-(e.g. from @file{libpcsclite.so.1}).
+on Unix is @file{libpcsclite.so} and on Windows @file{winscard.dll}.
+Instead of using this option you might also want to install a symbolic
+link to the default file name (e.g. from @file{libpcsclite.so.1}).
+A Unicode file name may not be used on Windows.
@item --ctapi-driver @var{library}
@opindex ctapi-driver