internal: Introduce STRCASESKIP()

There is so far one case where STRCASEPREFIX(a, b) && a +
strlen(b) combo is used (in virVMXConfigScanResultsCollector()),
but there will be more. Do what we do usually: introduce a macro.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
This commit is contained in:
Michal Privoznik 2022-11-10 12:52:56 +01:00
parent af4b994bc4
commit 059e096435
2 changed files with 11 additions and 0 deletions

View File

@ -750,6 +750,15 @@ use one of the following semantically named macros
* use: */
STRSKIP(a, b)
- For skipping prefix case insensitively:
::
/* Instead of:
* STRCASEPREFIX(a, b) ? a + strlen(b) : NULL
* use: */
STRCASESKIP(a, b)
- To avoid having to check if a or b are NULL:
::

View File

@ -87,6 +87,8 @@
#define STRPREFIX(a, b) (strncmp(a, b, strlen(b)) == 0)
#define STRCASEPREFIX(a, b) (g_ascii_strncasecmp(a, b, strlen(b)) == 0)
#define STRSKIP(a, b) (STRPREFIX(a, b) ? (a) + strlen(b) : NULL)
#define STRCASESKIP(a, b) (STRCASEPREFIX(a, b) ? (a) + strlen(b) : NULL)
/**
* STRLIM
* @str: pointer to a string (evaluated once)