NetworkManager/shared
Thomas Haller 5b2b0dcadf shared: add NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP to nm_utils_strsplit_set_full()
This will essentially call g_strstrip() on each token.

There are some specialties:

 - if the resulting word is empty after stripping, then according to
   %NM_UTILS_STRSPLIT_SET_FLAGS_PRESERVE_EMPTY, the empty token will be
   removed. If that results in an empty string array, %NULL will be
   returned.

 - if %NM_UTILS_STRSPLIT_SET_FLAGS_ALLOW_ESCAPING is set, then
   whitespace that is backslash escaped is not removed.

Since this is a post-operation that happens after tokeninzing, it
could be done as a separate function. And we already have this function:
_nm_utils_unescape_plain() and _nm_utils_unescape_spaces().
However, that is ugly for several reasons:

 - the stripping should be part of the tokenizing, you shouldn't need
   several steps.

 - nm_utils_strsplit_set_full() returns a "const char **" which
   indicates the strings must not be freed. However, it is perfectly
   valid to modify the string inplace. Hence, the post-op function
   would need to cast the strings to "char *", which seems ugly
   (although we do that on many places, and it's guaranteed to work).

 - _nm_utils_unescape_plain()/_nm_utils_unescape_spaces() is indeed
   already used together with nm_utils_strsplit_set_full(). However,
   it requires to initialize the cb_lookup buffer twice. I would expect
   that initializing the cb_lookup buffer is a large portion of what
   the function does already (for short strings).
   This issue will be solved in the next commit by adding yet another flag
   which allows to unescape.
2019-04-17 11:10:11 +02:00
..
c-list shared/c-list: reimport 2019-04-14 17:22:04 +02:00
c-rbtree shared/c-rbtree: reimport 2019-04-14 17:23:01 +02:00
c-siphash shared/c-siphash: reimport 2019-04-14 17:23:25 +02:00
c-stdaux shared: patch c-stdaux.h to not include <stdatomic.h> 2019-04-14 17:17:52 +02:00
n-acd shared/n-acd: reimport 2019-04-14 17:23:50 +02:00
nm-utils shared: add NM_UTILS_STRSPLIT_SET_FLAGS_STRSTRIP to nm_utils_strsplit_set_full() 2019-04-17 11:10:11 +02:00
systemd libnm,shared: bzero secrets on failure in nm_utils_base64secret_decode() 2019-04-12 07:39:50 +02:00
meson.build build: include c-stdaux in c-util and nettools tools 2019-04-14 12:59:48 +02:00
nm-common-macros.h Add polkit action for Wi-Fi scans 2019-02-21 13:49:17 +01:00
nm-dbus-compat.h build: rename directory "include" to "shared" 2015-12-24 11:42:37 +01:00
nm-default.h all: goodbye libnm-glib 2019-04-16 15:52:27 +02:00
nm-dispatcher-api.h build: cleanup src/Makefile.am 2016-08-11 11:54:18 +02:00
nm-ethtool-utils.c shared: fix static array declaration for _by_name in "nm-ethtool-utils.c" 2019-02-08 20:14:50 +01:00
nm-ethtool-utils.h all/ethtool: add support for all currently supported kernel features 2018-08-10 10:38:19 +02:00
nm-libnm-core-utils.c libnm: move parsing VLAN priority mapping to "shared/nm-libnm-core-utils.h" 2019-03-25 09:12:32 +01:00
nm-libnm-core-utils.h libnm/infiniband: lift restriction of MTU to 2044 for IPoIB in "datagram" mode 2019-04-05 16:27:17 +02:00
nm-meta-setting.c shared: add set function to nm_setting_8021x_scheme_vtable 2019-03-25 09:12:32 +01:00
nm-meta-setting.h shared: add set function to nm_setting_8021x_scheme_vtable 2019-03-25 09:12:32 +01:00
nm-test-libnm-utils.h all: goodbye libnm-glib 2019-04-16 15:52:27 +02:00
nm-test-utils-impl.c all: goodbye libnm-glib 2019-04-16 15:52:27 +02:00
nm-version-macros.h.in release: bump version to 1.19.0 (development) 2019-04-13 18:54:31 +02:00