diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_string.h b/src/plugins/e-acsl/share/e-acsl/e_acsl_string.h index de31ec5b93c80d271035d86ec7a9ee306210d345..13fb29acc28268abf3d518e6048f9c295875c793 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl_string.h +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl_string.h @@ -40,13 +40,18 @@ #define E_ACSL_STD_STRING_H #ifndef E_ACSL_NO_COMPILER_BUILTINS -# define memset __builtin_memset -# define memcmp __builtin_memcmp -# define memcpy __builtin_memcpy -# define memmove __builtin_memmove -# define strlen __builtin_strlen -# define strcmp __builtin_strcmp -# define strncmp __builtin_strncmp +# define memset __builtin_memset +# define memcmp __builtin_memcmp +# define memcpy __builtin_memcpy +# define memmove __builtin_memmove +# define strncat __builtin_strncat +# define strcat __builtin_strcat +# define strlen __builtin_strlen +# define strcmp __builtin_strcmp +# define strncmp __builtin_strncmp +# define strcpy __builtin_strcpy +# define strncpy __builtin_strncpy +# define strchr __builtin_strchr #else # include <string.h> #endif @@ -128,4 +133,14 @@ static int zeroed_out(const void *p, size_t size) { } return !memcmp(pc, &zeroblock, rem); } + +/** \brief Count the number of occurrences of char `c` in a string `s` */ +static int charcount(const char *s, char c) { + int count = 0; + while ((s = strchr(s,c)) != NULL) { + count++; + s++; + } + return count; +} #endif