/; cstr_len (~uint8 cstr) [int] int i = 0 /; loop (cstr{i} !== 0) [i++] ;/ return i ;/ /; cstr_eq (~uint8 a, b) [bool] int ln = cstr_len(a) /; if (ln !== cstr_len(b)) return false ;/ /; loop (int i = 0; i < ln) [i++] /; if (a{i} !== b{i}) return false ;/ ;/ return true ;/ {}uint8 csv_pr = "\0\0" /; in_csv ({}uint8 csv, ~uint8 cstr) [bool] int sl = cstr_len(cstr) int cl = len csv int seen = 0 /; loop (int i = 0; i < cl) [i++] /; if (seen < 0) /; if (csv{i} == ',') seen = 0 ;/ continue ;/ /; if (seen !< sl) /; if (csv{i} == ',') return true ;/ seen = -1 ;; else if (cstr{seen} == csv{i}) csv_pr{0} = cstr{seen} # _printf(~csv_pr{0}) seen++ ;; else if (csv{i} == ',') seen = 0 ;; else seen = -1 ;/ ;/ return seen == sl ;/ /; cstr_copy (~uint8 from, to) int ln = cstr_len(from) /; loop (int i = 0; i !> ln) [i++] to{i} = from{i} ;/ ;/ /; contains_char ({}uint8 arr, uint8 c) [bool] /; loop (int i = 0; i < len arr) [i++] /; if (arr{i} == c) return true ;/ ;/ return false ;/ /; write_to_file(~void file, ~uint8 string) int ln = cstr_len(string) /; loop (int i = 0; i < ln) [i++] _write_byte(file, string + i) ;/ ;/