diff options
author | Werner Koch <wk@gnupg.org> | 2020-02-18 08:53:30 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2020-02-18 08:56:33 +0100 |
commit | 5742b8eaf3fa9cda3dfb6b3ad0fea7485fff1a12 (patch) | |
tree | 7bb1347295569e10184f65ccfb3aea8e44495275 /src/visibility.c | |
parent | a6ab8e3a710b899ecfb2ff518725314a1e0e64ff (diff) | |
download | libgpg-error-5742b8eaf3fa9cda3dfb6b3ad0fea7485fff1a12.tar.gz |
core: Add gpgrt_fnameconcat and gpgrt_absfnameconcat.
* src/gpg-error.h.in (gpgrt_fnameconcat): New.
(gpgrt_absfnameconcat): New.
* src/visibility.c (gpgrt_fnameconcat, gpgrt_absfnameconcat): New.
* src/stringutils.c: New file.
(_gpgrt_vfnameconcat): New.
(_gpgrt_fnameconcat, _gpgrt_absfnameconcat): New.
* src/gpg-error.def.in: Add new functions.
* src/gpg-error.vers: Ditto.
* src/sysutils.c: Include pwd.h.
(_gpgrt_getpwdir): New.
* configure.ac: Test for pwd.h, getpwnam, getpwuid, and their _r
variants.
* src/Makefile.am (libgpg_error_la_SOURCES): Add new file.
* tests/t-stringutils.c: New.
* tests/t-common.h (xmalloc, xstrdup, xfree): New.
(die): Kludge to avoid compiler warnings.
--
The new functions are based on the code of make_filename from GnuPG.
They have been written by me ages ago with only minor modifications by
David Shaw. I re-license them from LGPL-3.0+ OR GPL-2.0+ to
LGPL-2.1-or-later.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src/visibility.c')
-rw-r--r-- | src/visibility.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/visibility.c b/src/visibility.c index d754032..5f88aad 100644 --- a/src/visibility.c +++ b/src/visibility.c @@ -1180,6 +1180,33 @@ gpgrt_cmp_version (const char *a, const char *b, int level) +/* String utilities. */ +char * +gpgrt_fnameconcat (const char *first, ... ) +{ + va_list arg_ptr; + char *result; + + va_start (arg_ptr, first); + result = _gpgrt_vfnameconcat (0, first, arg_ptr); + va_end (arg_ptr); + return result; +} + +char * +gpgrt_absfnameconcat (const char *first, ... ) +{ + va_list arg_ptr; + char *result; + + va_start (arg_ptr, first); + result = _gpgrt_vfnameconcat (1, first, arg_ptr); + va_end (arg_ptr); + return result; +} + + + /* For consistency reasons we use function wrappers also for Windows * specific function despite that they are technically not needed. */ #ifdef HAVE_W32_SYSTEM |