diff options
| author | Tyge Løvset <[email protected]> | 2022-09-21 19:28:23 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-09-21 19:28:23 +0200 |
| commit | c3cefd740a90378a53698df639d7889c6baffcb8 (patch) | |
| tree | 06abef793b8f9eabed59000596c4fe78601c3edc /include/stc/cstr.h | |
| parent | 307c0a111c8f063032ba90b2a7ae07122e2a2b1a (diff) | |
| download | STC-modified-c3cefd740a90378a53698df639d7889c6baffcb8.tar.gz STC-modified-c3cefd740a90378a53698df639d7889c6baffcb8.zip | |
Added cstr_push(), cstr_pop() - push/pop one utf8 char.
Renamed c_forpred() to c_forloop() - used by c_forfiltered().
Diffstat (limited to 'include/stc/cstr.h')
| -rw-r--r-- | include/stc/cstr.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/stc/cstr.h b/include/stc/cstr.h index 983c3d4b..1e7a351f 100644 --- a/include/stc/cstr.h +++ b/include/stc/cstr.h @@ -349,6 +349,16 @@ STC_INLINE char* cstr_copy(cstr* self, cstr s) { } +STC_INLINE char* cstr_push(cstr* self, const char* chr) + { return cstr_append_n(self, chr, utf8_chr_size(chr)); } + +STC_INLINE void cstr_pop(cstr* self) { + csview sv = cstr_sv(self); + const char* s = sv.str + sv.size; + while ((*--s & 0xC0) == 0x80) ; + _cstr_set_size(self, s - sv.str); +} + STC_INLINE char* cstr_append(cstr* self, const char* str) { return cstr_append_n(self, str, strlen(str)); } |
