diff options
author | Werner Koch <[email protected]> | 2025-04-01 08:26:30 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2025-04-01 08:26:30 +0000 |
commit | 47097806f13d93daffb73b4221f3f18a99f66b2b (patch) | |
tree | f461610d9566dfe2c7b4c7708a4a523022ea8c8e /src/gpgrt-int.h | |
parent | Add source file strlist.c (diff) | |
download | libgpg-error-47097806f13d93daffb73b4221f3f18a99f66b2b.tar.gz libgpg-error-47097806f13d93daffb73b4221f3f18a99f66b2b.zip |
New public API gpgrt_strlist_*
* src/strlist.c: Rename all functions to have a _gpgrt_strlist prefix.
(append_to_strlist2, strlist_length): Remove.
(_gpgrt_strlist_free): rtake care of the wipe flag.
(_gpgrt_strlist_add): Add a flags arg to use it for prepend and
append. Return an error on failure.
(_gpgrt_strlist_tokenize): Ditto.
(_gpgrt_strlist_copy): Chnage to return an error on failure.
(_gpgrt_strlist_pop): Ditto.
* src/Makefile.am (libgpg_error_la_SOURCES): Add strlist.c.
* src/argparse.c (trim_spaces): Move to ...
* src/stringutils.c (_gpgrt_trim_spaces): here and rename.
* src/visibility.c: Add wrappers for all exported functions.
* src/visibility.h: MArk exported functions as visisble.
* src/gpg-error.def.in: Export new functions
* src/gpg-error.vers: Ditto.
* src/gpg-error.h.in (GPGRT_STRLIST_APPEND): New.
(GPGRT_STRLIST_WIPE): New.
(gpgrt_strlist_free): New.
(gpgrt_strlist_add): New.
(gpgrt_strlist_tokenize): New.
(gpgrt_strlist_copy): New.
(gpgrt_strlist_rev): New.
(gpgrt_strlist_prev): New.
(gpgrt_strlist_last): New.
(gpgrt_strlist_pop): New.
(gpgrt_strlist_find): New.
(gpgrt_strlist_count): New inline function.
--
This is a modified set of function as used by gpg for ages. These are
quite useful functions and will be needed internally for some other
planned features. The idea is to make their counterparts in gnupg
wrapper around those new functions.
After we have moved the secure memory stuff from Libgcrypt to here we
can also implement a GPGRT_STRLICT_SECMEM flag to allow allocating
strings here ion secure memory. For now we only have the WIPE flag
which wipes the memory on free.
Diffstat (limited to 'src/gpgrt-int.h')
-rw-r--r-- | src/gpgrt-int.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/gpgrt-int.h b/src/gpgrt-int.h index 5df3a95..279a2e2 100644 --- a/src/gpgrt-int.h +++ b/src/gpgrt-int.h @@ -760,9 +760,33 @@ void _gpgrt_set_confdir (int what, const char *name); int _gpgrt_cmp_version (const char *a, const char *b, int level); +/* + * strlist.c + */ +void _gpgrt_strlist_free (gpgrt_strlist_t sl); +gpgrt_strlist_t _gpgrt_strlist_add (gpgrt_strlist_t *list, + const char *string, unsigned int flags); +gpgrt_strlist_t _gpgrt_strlist_tokenize (gpgrt_strlist_t *list, + const char *string, const char *delim, + unsigned int flags); +gpgrt_strlist_t _gpgrt_strlist_copy (gpgrt_strlist_t list); +gpgrt_strlist_t _gpgrt_strlist_rev (gpgrt_strlist_t *list); +gpgrt_strlist_t _gpgrt_strlist_prev (gpgrt_strlist_t head, + gpgrt_strlist_t node); +gpgrt_strlist_t _gpgrt_strlist_last (gpgrt_strlist_t node); +char *_gpgrt_strlist_pop (gpgrt_strlist_t *list); +gpgrt_strlist_t _gpgrt_strlist_find (gpgrt_strlist_t haystack, + const char *needle); + + + + + + + /* - * Internal platform abstraction functions (sysutils.c) + * Internal platform abstraction functions (sysutils.c and stringutil.c) */ /* Return true if FD is valid. */ @@ -802,6 +826,9 @@ char *_gpgrt_fnameconcat (const char *first_part, char *_gpgrt_absfnameconcat (const char *first_part, ... ) GPGRT_ATTR_SENTINEL(0); +/* What the name says. */ +char *_gpgrt_trim_spaces (char *str); + /* * Platform specific functions (Windows) |