mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 09:55:18 +00:00
internal: Add STRLIM macro for checking string length using strnlen()
As a microoprimization when checking whether length of a string fits into a limit we don't necessarily need to calculate the full length but can use strnlen to check only LIMIT+1 chars. Add a macro which will simplify the expressions. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
9220413480
commit
8eb7471eb3
@ -87,6 +87,15 @@
|
|||||||
#define STRPREFIX(a, b) (strncmp(a, b, strlen(b)) == 0)
|
#define STRPREFIX(a, b) (strncmp(a, b, strlen(b)) == 0)
|
||||||
#define STRCASEPREFIX(a, b) (g_ascii_strncasecmp(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 STRSKIP(a, b) (STRPREFIX(a, b) ? (a) + strlen(b) : NULL)
|
||||||
|
/**
|
||||||
|
* STRLIM
|
||||||
|
* @str: pointer to a string (evaluated once)
|
||||||
|
* @lim: length limit (evaluated twice)
|
||||||
|
*
|
||||||
|
* Evaluates as true if length of @str doesn't exceed the limit @lim. Note
|
||||||
|
* that @lim + 1 characters may be accessed.
|
||||||
|
*/
|
||||||
|
#define STRLIM(str, lim) (strnlen((str), (lim) + 1) <= (lim))
|
||||||
|
|
||||||
#define STREQ_NULLABLE(a, b) (g_strcmp0(a, b) == 0)
|
#define STREQ_NULLABLE(a, b) (g_strcmp0(a, b) == 0)
|
||||||
#define STRNEQ_NULLABLE(a, b) (g_strcmp0(a, b) != 0)
|
#define STRNEQ_NULLABLE(a, b) (g_strcmp0(a, b) != 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user