summaryrefslogtreecommitdiffhomepage
path: root/include/stc/cstr.h
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-09-21 19:28:23 +0200
committerTyge Løvset <[email protected]>2022-09-21 19:28:23 +0200
commitc3cefd740a90378a53698df639d7889c6baffcb8 (patch)
tree06abef793b8f9eabed59000596c4fe78601c3edc /include/stc/cstr.h
parent307c0a111c8f063032ba90b2a7ae07122e2a2b1a (diff)
downloadSTC-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.h10
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)); }