diff options
| author | Werner Koch <[email protected]> | 2025-12-09 12:06:35 +0100 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2025-12-09 12:12:30 +0100 |
| commit | 6fe7cf710254d78ada27fbf63747ab0e97bc6979 (patch) | |
| tree | f851a0f20db33c6314582eb0f925cb5128d2c73e /src | |
| parent | New function gpgrt_fconcat. (diff) | |
| download | libgpg-error-6fe7cf710254d78ada27fbf63747ab0e97bc6979.tar.gz libgpg-error-6fe7cf710254d78ada27fbf63747ab0e97bc6979.zip | |
argparse: gpgrt_fconcat to get the SYSCONFDIR.
* src/stringutils.c (_gpgrt_fconcat): New internal function.
* src/argparse.c (_gpgrt_argparser): Use it.
--
This fixes the conf files default also for Windows.
Updates-commmit: a9fc729253eec88f56d810bd2a8edd327267c5b4
GnuPG-bug-id: 7894
Diffstat (limited to 'src')
| -rw-r--r-- | src/argparse.c | 8 | ||||
| -rw-r--r-- | src/gpgrt-int.h | 2 | ||||
| -rw-r--r-- | src/stringutils.c | 13 |
3 files changed, 21 insertions, 2 deletions
diff --git a/src/argparse.c b/src/argparse.c index c669a3f..9868fa7 100644 --- a/src/argparse.c +++ b/src/argparse.c @@ -2380,8 +2380,12 @@ _gpgrt_argparser (gpgrt_argparse_t *arg, gpgrt_opt_t *opts, else s = confname; xfree (arg->internal->confname); - arg->internal->confname = _gpgrt_fnameconcat - (confdir.sys? confdir.sys : SYSCONFDIR, s, NULL); + if (confdir.sys) + arg->internal->confname = _gpgrt_fconcat (GPGRT_FCONCAT_TILDE, + confdir.sys, s, NULL); + else + arg->internal->confname = _gpgrt_fconcat (GPGRT_FCONCAT_SYSCONF, + s, NULL); _gpgrt_free (tmpname); if (!arg->internal->confname) return (arg->r_opt = ARGPARSE_OUT_OF_CORE); diff --git a/src/gpgrt-int.h b/src/gpgrt-int.h index b805eed..f67eec7 100644 --- a/src/gpgrt-int.h +++ b/src/gpgrt-int.h @@ -842,6 +842,8 @@ char *_gpgrt_getusername (void); /* Expand and concat file name parts. */ char *_gpgrt_vfnameconcat (unsigned int flags, const char *first_part, va_list arg_ptr); +char *_gpgrt_fconcat (unsigned int flags, const char *first_part, + ... ) GPGRT_ATTR_SENTINEL(0); char *_gpgrt_fnameconcat (const char *first_part, ... ) GPGRT_ATTR_SENTINEL(0); char *_gpgrt_absfnameconcat (const char *first_part, diff --git a/src/stringutils.c b/src/stringutils.c index f153be1..1d3b920 100644 --- a/src/stringutils.c +++ b/src/stringutils.c @@ -278,6 +278,19 @@ _gpgrt_vfnameconcat (unsigned int flags, } +char * +_gpgrt_fconcat (unsigned int flags, const char *first_part, ... ) +{ + va_list arg_ptr; + char *result; + + va_start (arg_ptr, first_part); + result = _gpgrt_vfnameconcat (flags, first_part, arg_ptr); + va_end (arg_ptr); + return result; +} + + /* Construct a filename from the NULL terminated list of parts. Tilde * expansion is done for the first argument. The caller must release * the result using gpgrt_free; on error ERRNO is set and NULL |
