diff options
author | Werner Koch <wk@gnupg.org> | 2022-03-04 13:41:19 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2022-03-04 13:58:09 +0100 |
commit | 32dad4e4135f0bdc436ed684da753d4b0cdb0ea1 (patch) | |
tree | 4ca66f52c77467d7ff932b9440c06e1352032977 /src/visibility.c | |
parent | 666d64d2bc6539d0ca03dea69abc5a8ccdf37be5 (diff) | |
download | libgpg-error-32dad4e4135f0bdc436ed684da753d4b0cdb0ea1.tar.gz |
w32: Support file names longer than MAX_PATH.
* src/sysutils.c (any8bitchar): Remove.
(_gpgrt_fname_to_wchar): New.
(_gpgrt_mkdir): Use instead of plain utf8 conversion.
(_gpgrt_access): Reimplement using GetFileAttributesW so that long
files names are supported.
* src/estream.c (_gpgrt_w32_get_last_err_code): New.
(func_file_create_w32): New.
(_gpgrt_fopen): Handle the "sysopen" mode flag. Support mapping of
/dev/null.
(_gpgrt_freopen): Support mapping of /dev/null.
* src/w32-gettext.c (load_domain): Allow long file names.
* src/visibility.c (gpgrt_free_wchar): Make function public.
(gpgrt_fname_to_wchar): Ditto.
(gpgrt_utf8_to_wchar): Ditto.
(gpgrt_wchar_to_utf8): Ditto.
* src/w32-add.h (gpgrt_free_wchar): New prototype.
(gpgrt_fname_to_wchar): Ditto.
(gpgrt_utf8_to_wchar): Ditto.
(gpgrt_wchar_to_utf8): Ditto.
* src/gpg-error.def.in: Add them here too.
Diffstat (limited to 'src/visibility.c')
-rw-r--r-- | src/visibility.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/visibility.c b/src/visibility.c index 03a6c45..fdf4805 100644 --- a/src/visibility.c +++ b/src/visibility.c @@ -1241,6 +1241,31 @@ gpgrt_absfnameconcat (const char *first, ... ) * specific function despite that they are technically not needed. */ #ifdef HAVE_W32_SYSTEM +void +gpgrt_free_wchar (wchar_t *wstring) +{ + if (wstring) + _gpgrt_free_wchar (wstring); +} + +wchar_t * +gpgrt_fname_to_wchar (const char *fname) +{ + return _gpgrt_fname_to_wchar (fname); +} + +wchar_t * +gpgrt_utf8_to_wchar (const char *string) +{ + return _gpgrt_utf8_to_wchar (string); +} + +char * +gpgrt_wchar_to_utf8 (const wchar_t *string) +{ + return _gpgrt_wchar_to_utf8 (string, (size_t)(-1)); +} + char * gpgrt_w32_reg_query_string (const char *root, const char *dir, const char *name) { |