diff options
Diffstat (limited to 'str/str.h')
| -rwxr-xr-x | str/str.h | 24 |
1 files changed, 7 insertions, 17 deletions
@@ -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); |
