diff options
author | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2024-06-17 00:03:18 +0200 |
---|---|---|
committer | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2024-06-17 00:03:18 +0200 |
commit | 6543fecd7b45cc0232aa4148d0a7be125f4c49ea (patch) | |
tree | a35a4a20f7d7a091169b3927846bcdf317887b28 /str.h | |
parent | 79b3a25865a1ee444fa32698670320f87dbc45a7 (diff) | |
download | silly_game-6543fecd7b45cc0232aa4148d0a7be125f4c49ea.tar.xz |
*: restructure into subdirectoires and add REUSE
Diffstat (limited to 'str.h')
-rw-r--r-- | str.h | 53 |
1 files changed, 0 insertions, 53 deletions
@@ -1,53 +0,0 @@ -#ifndef STR_H -#define STR_H - -#include <stddef.h> -#include <stdbool.h> - -// string library taken from cuddlesOS: -// https://github.com/cuddlesOS/cuddles/blob/master/stage3/string.c - -// arr -#define len(X) (sizeof X / sizeof *X) -#define array(T) struct { size_t len; T *data; } - -typedef array(char) str; -#define S(X) ((str) { len(X)-1, X }) -#define NILS ((str) { 0, NULL }) - -// compares two strings by length and ASCII values. return value: -// < 0 if s1 < s2 -// = 0 if s1 = s2 -// > 0 if s1 > s2 -int str_cmp(str s1, str s2); - -// returns index of first of occurrence in s of any of the chars in tokens -// returns length of s if not found -size_t str_find(str s, str tokens); - -// this is a splitting function -// returns the next non-empty substring of *s that is delimited by the tokens in sep -// the returned string does not contain any of the separators -// returns an emtpy string when end is reached -// advances s to after the substring plus first delimiting token -str str_walk(str *s, str sep); - -// advances the string while its first token matches any of the chars in tokens -// this can be used to consume whitespace, for example -str str_eat(str s, str tokens); - -// advances the string s by x chars, increasing the data pointer and decreasing the length -// note: this is not bounds checked -str str_advance(str s, size_t x); - -// returns true if s starts with start -bool str_start(str s, str start); - -// construct a str from a \0 terminated string at runtime -// avoid this for literals: use the S macro instead without a runtime cost -str str_intro(char *c); - -// copy a string to the heap -str str_clone(str s); - -#endif |