mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-14 13:04:35 +03:00
XUtils string related updates
- allow count out-parameter of String_split() to be NULL - introduce xStrndup() - do not allow NULL pointers passed to String_eq() it is not used in any code - implement String_startsWith(), String_contains_i() and String_eq() as inline header functions - adjust several conversion issues
This commit is contained in:
23
XUtils.h
23
XUtils.h
@ -9,6 +9,7 @@ in the source distribution for its full text.
|
||||
|
||||
#include "config.h" // IWYU pragma: keep
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h> // IWYU pragma: keep
|
||||
#include <string.h> // IWYU pragma: keep
|
||||
@ -24,25 +25,31 @@ void* xCalloc(size_t nmemb, size_t size);
|
||||
|
||||
void* xRealloc(void* ptr, size_t size);
|
||||
|
||||
#define String_startsWith(s, match) (strncmp((s),(match),strlen(match)) == 0)
|
||||
#define String_contains_i(s1, s2) (strcasestr(s1, s2) != NULL)
|
||||
|
||||
/*
|
||||
* String_startsWith gives better performance if strlen(match) can be computed
|
||||
* at compile time (e.g. when they are immutable string literals). :)
|
||||
*/
|
||||
static inline bool String_startsWith(const char* s, const char* match) {
|
||||
return strncmp(s, match, strlen(match)) == 0;
|
||||
}
|
||||
|
||||
static inline bool String_contains_i(const char* s1, const char* s2) {
|
||||
return strcasestr(s1, s2) != NULL;
|
||||
}
|
||||
|
||||
static inline bool String_eq(const char* s1, const char* s2) {
|
||||
return strcmp(s1, s2) == 0;
|
||||
}
|
||||
|
||||
char* String_cat(const char* s1, const char* s2);
|
||||
|
||||
char* String_trim(const char* in);
|
||||
|
||||
int String_eq(const char* s1, const char* s2);
|
||||
|
||||
char** String_split(const char* s, char sep, int* n);
|
||||
char** String_split(const char* s, char sep, size_t* n);
|
||||
|
||||
void String_freeArray(char** s);
|
||||
|
||||
char* String_getToken(const char* line, const unsigned short int numMatch);
|
||||
char* String_getToken(const char* line, unsigned short int numMatch);
|
||||
|
||||
char* String_readLine(FILE* fd);
|
||||
|
||||
@ -54,4 +61,6 @@ int xSnprintf(char *buf, int len, const char* fmt, ...);
|
||||
|
||||
char* xStrdup(const char* str) ATTR_NONNULL;
|
||||
|
||||
char* xStrndup(const char* str, size_t len) ATTR_NONNULL;
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user