1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#pragma once
typedef char* string;
/* basic c string (nul terminated) functions */
intptr str·len(char *s);
char *str·findc(char *s, int c);
char *str·nfindc(char *s, intptr n, int c);
char *str·efindc(char *s, char *e, int c);
char *str·find(char *s, char *sub);
char *str·nfind(char *s, intptr n, char *sub);
char *str·efind(char *s, char *e, char *sub);
char *str·copy(char *dst, char *src);
char *str·ncopy(char *dst, intptr n, char *src);
char *str·ecopy(char *dst, char *end, char *src);
char *str·append(char *dst, char *src);
char *str·nappend(char *dst, intptr n, char *src);
char *str·eappend(char *dst, char *end, char *src);
int str·compare(char *, char *);
int str·ncompare(char *, intptr len, char *);
int str·ecompare(char *, char *end, char *);
int str·atoi(char *s);
char *str·itoa(char *s, int x);
/* augmented string functions */
string string·makecap(char *s, vlong len, vlong cap);
string string·makelen(char *s, vlong len);
string string·make(char *s);
string string·makef(char *fmt, ...);
void string·free(string s);
int string·len(string s);
int string·cap(string s);
void string·clear(string *s);
void string·grow(string *s, vlong delta);
void string·fit(string *s);
int string·appendlen(string *s, vlong len, char *b);
int string·append(string *s, char *b);
int string·appendf(string *s, char *fmt, ...);
int string·appendbyte(string *s, char b);
bool string·equals(string s, string t);
int string·find(string s, char *substr);
void string·lower(string s);
void string·upper(string s);
int string·read(string s, int size, int n, void *buf);
void string·replace(string s, byte* from, byte* to);
string* string·split(string s, byte* tok);
string string·join(vlong len, byte** fields, byte* sep);
|