From 463e7bae5faa755dc23092736cb7886442acf998 Mon Sep 17 00:00:00 2001 From: Soikk Date: Thu, 2 Oct 2025 17:38:16 +0200 Subject: Added dsstr dsnstr and streqn --- str/str.h | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) (limited to 'str/str.h') diff --git a/str/str.h b/str/str.h index c81771b..9c68595 100755 --- a/str/str.h +++ b/str/str.h @@ -25,24 +25,21 @@ typedef struct str { bool charisalpha(char c); - bool charisnum(char c); - bool charisblank(char c); - bool charislinebreak(char c); - bool charisspace(char c); char lowerchar(char c); - u32 lowers(char *s); u32 len(const char *s); +// reorder? str dstr(char *s); - str dnstr(u32 cap); +str dsstr(char *s); +str dsnstr(char *s, u32 len); #define slen(s) (sizeof(s)-1) @@ -61,6 +58,7 @@ str utostr(u64 n, int b); u64 strtou(str s); int streq(str s1, str s2); +int streqn(str s1, str s2, u32 n); #define NUMSTRS(...) (sizeof((str[]){{0}, ##__VA_ARGS__})/sizeof(str)-1) @@ -86,36 +84,26 @@ u64 vlen_nstrs(u64 n, va_list args); } void copy_nstrs(str dst, u64 n, ...); - void vcopy_nstrs(str dst, u64 n, va_list args); - void move_nstrs(str dst, u64 n, ...); - void vmove_nstrs(str dst, u64 n, va_list args); - str dup_nstrs(u64 n, ...); - str vdup_nstrs(u64 n, va_list args); - #define copy_strs(d, ...) \ copy_nstrs(d, NUMSTRS(__VA_ARGS__), __VA_ARGS__); \ (d).len += len_nstrs(NUMSTRS(__VA_ARGS__), __VA_ARGS__) - #define move_strs(d, ...) \ move_nstrs(d, NUMSTRS(__VA_ARGS__), __VA_ARGS__); \ (d).len += len_nstrs(NUMSTRS(__VA_ARGS__), __VA_ARGS__) - #define dup_strs(...) \ dup_nstrs(NUMSTRS(__VA_ARGS__), __VA_ARGS__); str read_delim(char *buf, char d); - str sread_delim(char *buf, char d); - str read_delim_f(char *buf, bool (*func)(char), bool func_cond); - str sread_delim_f(char *buf, bool (*func)(char), bool func_cond); +// probably do away with this u32 get_line_len(char *buf); str fd_to_str(int fd); @@ -129,6 +117,8 @@ str map_file(char *filename); str map_file_at(char *filename, int len, int at); void unmap_file(str *s); +#define read_str(max) fread_str(STDIN_FILENO, max) +str fread_str(int fd, int max); void print_str(str s); void free_str(str *s); -- cgit v1.2.3