Home GnuPG
Diffusion GPGME a82e3a0ae57a

core,w32: Improve handling of Unicode paths

Description

core,w32: Improve handling of Unicode paths

* src/dirinfo.c (get_gpgconf_item): Use _gpgme_access.
* src/posix-util.c (_gpgme_access): Add forward to normal access.
* src/sys-util.h (_gpgme_access): New for posix and w32.
* src/w32-io.c (_gpgme_io_spawn): Use _gpgme_crate_process_utf8.
* src/w32-util.c (utf8_to_wchar, utf8_to_wchar0): The usual w32 conv.
(find_program_in_dir): Use _gpgme_access.
(find_program_at_standard_place): Use wchar API and convert to UTF-8.
(_gpgme_access): Convert UTF-8 to wchar and use wchar API.
(_gpgme_create_process_utf8): Convert UTF-8 to wchar and use wchar API.

While we should not say that we have full support for unicode path
installations of GnuPG, this ensures that GPGME works if GPGME
itself is installed in a unicode path. e.g.: Libreoffice supports
this.

Based on a patch provided by Egor Pugin. Thanks.

Details

Provenance
aheineckeAuthored on Apr 9 2019, 1:42 PM
Parents
rM937adfdcbb22: core,w32: Show w32-spawn warning only once
Branches
Unknown
Tags
Unknown
Tasks
T4453: gpgme does not work with unicode path gpg installations