Skip to content

Commit 9f7311d

Browse files
committed
Fixed issue #102 "csview's trim_left and trim_right implicitly assume LTR text":
1. Renamed csview_trim_left() => csview_trim_start(), and csview_trim_right() => csview_trim_end(). 2. Renamed all <str/view>_right() functions => _tail() for the same reason.
1 parent c93a7af commit 9f7311d

File tree

7 files changed

+20
-20
lines changed

7 files changed

+20
-20
lines changed

docs/cstr_api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void cstr_drop(cstr* self); // destr
4141

4242
zsview cstr_zv(const cstr* self); // to zero-terminated string view
4343
csview cstr_sv(const cstr* self); // to csview string view
44-
zsview cstr_right(cstr* self, isize len); // zsview subview of the trailing len bytes
44+
zsview cstr_tail(cstr* self, isize len); // zsview subview of the trailing len bytes
4545
csview cstr_subview(const cstr* self, isize pos, isize len); // csview subview from pos and length len
4646

4747
const char* cstr_str(const cstr* self); // to const char*
@@ -110,7 +110,7 @@ isize cstr_u8_size(const cstr* self); // numbe
110110
isize cstr_u8_to_index(const cstr* self, isize u8pos); // get byte index at rune position
111111
csview cstr_u8_chr(const cstr* self, isize u8pos); // get rune at rune position
112112
csview cstr_u8_subview(const cstr* self, isize u8pos, isize u8len);
113-
zsview cstr_u8_right(cstr* self, isize u8len); // subview of the trailing len runes
113+
zsview cstr_u8_tail(cstr* self, isize u8len); // subview of the trailing len runes
114114
void cstr_u8_insert(cstr* self, isize u8pos, const char* ins);
115115
void cstr_u8_replace(cstr* self, isize u8pos, isize u8len, const char* repl);
116116
void cstr_u8_erase(cstr* self, isize u8pos, isize u8len); // erase u8len runes from u8pos

docs/csview_api.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ bool csview_ends_with(csview sv, const char* str);
5050

5151
csview csview_subview(csview sv, isize pos, isize len);
5252
csview csview_slice(csview sv, isize pos1, isize pos2);
53-
csview csview_right(csview sv, isize len); // substr of the trailing len bytes
54-
csview csview_trim(csview sv); // trim whitespaces from left+right of view
55-
csview csview_trim_left(csview sv);
56-
csview csview_trim_right(csview sv);
53+
csview csview_tail(csview sv, isize len); // subview of the trailing len bytes
54+
csview csview_trim(csview sv); // trim whitespace and ctrl-chars on both ends
55+
csview csview_trim_start(csview sv); // trim from start of view
56+
csview csview_trim_end(csview sv); // trim from end of view
5757
const char* csview_at(csview sv, isize index);
5858

5959
csview csview_subview_ex(csview sv, isize pos, isize len); // negative pos count from end
@@ -67,7 +67,7 @@ csview csview_u8_from(const char* str, isize u8pos, isize u8len); // co
6767
isize csview_u8_size(csview sv); // number of utf8 runes
6868
csview csview_u8_chr(csview sv, isize u8pos); // get rune at rune position
6969
csview csview_u8_subview(csview sv, isize u8pos, isize u8len); // utf8 subview
70-
csview csview_u8_right(csview sv, isize u8len); // substr of the trailing u8len runes.
70+
csview csview_u8_tail(csview sv, isize u8len); // subview of the trailing u8len runes.
7171
bool csview_u8_valid(csview sv); // check utf8 validity of sv
7272
7373
bool csview_iequals(csview sv, const char* str); // utf8 case-insensitive comparison

docs/zsview_api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void zsview_clear(zsview* self);
3131

3232
csview zsview_sv(zsview zv); // convert to csview type
3333
csview zsview_subview(zsview zv, isize pos, isize len); // convert to csview type
34-
zsview zsview_right(zsview zv, isize len); // subview of the trailing n bytes
34+
zsview zsview_tail(zsview zv, isize len); // subview of the trailing n bytes
3535

3636
bool zsview_equals(zsview zv, const char* str);
3737
isize zsview_find(zsview zv, const char* str);
@@ -46,7 +46,7 @@ zsview zsview_u8_from_position(zsview zv, isize u8pos); // subview s
4646
isize zsview_u8_size(zsview zv); // number of utf8 runes
4747
csview zsview_u8_chr(zsview zv, isize u8pos); // get rune at rune position
4848
csview zsview_u8_subview(zsview zs, isize u8pos, isize u8len);
49-
zsview zsview_u8_right(zsview zv, isize u8len); // subview of the last u8len runes
49+
zsview zsview_u8_tail(zsview zv, isize u8len); // subview of the last u8len runes
5050
bool zsview_u8_valid(zsview zv); // check utf8 validity of zv
5151
5252
bool zsview_iequals(zsview zs, const char* str); // utf8 case-insensitive comparison

include/stc/csview.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ STC_API csview csview_slice_ex(csview sv, isize p1, isize p2);
4343
STC_API csview csview_subview_ex(csview sv, isize pos, isize n);
4444
STC_API csview csview_token(csview sv, const char* sep, isize* pos);
4545
STC_API csview csview_u8_subview(csview sv, isize u8pos, isize u8len);
46-
STC_API csview csview_u8_right(csview sv, isize u8len);
46+
STC_API csview csview_u8_tail(csview sv, isize u8len);
4747
STC_API csview csview_u8_chr(csview sv, isize u8pos);
4848

4949
STC_INLINE csview csview_from(const char* str)
@@ -90,16 +90,16 @@ STC_INLINE csview csview_slice(csview sv, isize p1, isize p2) {
9090
return sv;
9191
}
9292

93-
STC_INLINE csview csview_trim_left(csview sv)
93+
STC_INLINE csview csview_trim_start(csview sv)
9494
{ while (sv.size && *sv.buf <= ' ') ++sv.buf, --sv.size; return sv; }
9595

96-
STC_INLINE csview csview_trim_right(csview sv)
96+
STC_INLINE csview csview_trim_end(csview sv)
9797
{ while (sv.size && sv.buf[sv.size - 1] <= ' ') --sv.size; return sv; }
9898

9999
STC_INLINE csview csview_trim(csview sv)
100-
{ return csview_trim_right(csview_trim_left(sv)); }
100+
{ return csview_trim_end(csview_trim_start(sv)); }
101101

102-
STC_INLINE csview csview_right(csview sv, isize len)
102+
STC_INLINE csview csview_tail(csview sv, isize len)
103103
{ return csview_subview(sv, sv.size - len, len); }
104104

105105
STC_INLINE const char* csview_at(csview sv, isize idx)
@@ -238,7 +238,7 @@ STC_DEF csview csview_u8_subview(csview sv, isize u8pos, isize u8len) {
238238
sv.size = s - sv.buf; return sv;
239239
}
240240

241-
STC_DEF csview csview_u8_right(csview sv, isize u8len) {
241+
STC_DEF csview csview_u8_tail(csview sv, isize u8len) {
242242
const char* p = &sv.buf[sv.size];
243243
while (u8len && p != sv.buf)
244244
u8len -= (*--p & 0xC0) != 0x80;

include/stc/priv/cstr_prv.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ STC_INLINE csview cstr_subview(const cstr* self, isize pos, isize len) {
182182
return (csview){sv.buf + pos, len};
183183
}
184184

185-
STC_INLINE zsview cstr_right(const cstr* self, isize len) {
185+
STC_INLINE zsview cstr_tail(const cstr* self, isize len) {
186186
c_assert(len >= 0);
187187
csview sv = cstr_sv(self);
188188
if (len > sv.size) len = sv.size;
@@ -200,7 +200,7 @@ STC_INLINE isize cstr_u8_size(const cstr* self)
200200
STC_INLINE isize cstr_u8_to_index(const cstr* self, isize u8pos)
201201
{ return utf8_to_index(cstr_str(self), u8pos); }
202202

203-
STC_INLINE zsview cstr_u8_right(const cstr* self, isize u8len) {
203+
STC_INLINE zsview cstr_u8_tail(const cstr* self, isize u8len) {
204204
csview sv = cstr_sv(self);
205205
const char* p = &sv.buf[sv.size];
206206
while (u8len && p != sv.buf)

include/stc/zsview.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ STC_INLINE csview zsview_subview(const zsview zs, isize pos, isize len) {
7979
return (csview){zs.str + pos, len};
8080
}
8181

82-
STC_INLINE zsview zsview_right(zsview zs, isize len) {
82+
STC_INLINE zsview zsview_tail(zsview zs, isize len) {
8383
c_assert(len >= 0);
8484
if (len > zs.size) len = zs.size;
8585
zs.str += zs.size - len; zs.size = len;
@@ -94,7 +94,7 @@ STC_INLINE const char* zsview_at(zsview zs, isize idx)
9494
STC_INLINE zsview zsview_u8_from_position(zsview zs, isize u8pos)
9595
{ return zsview_from_position(zs, utf8_to_index(zs.str, u8pos)); }
9696

97-
STC_INLINE zsview zsview_u8_right(zsview zs, isize u8len) {
97+
STC_INLINE zsview zsview_u8_tail(zsview zs, isize u8len) {
9898
const char* p = &zs.str[zs.size];
9999
while (u8len && p != zs.str)
100100
u8len -= (*--p & 0xC0) != 0x80;

misc/examples/strings/utf8replace_c.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ int main(void)
66
cstr hello = cstr_lit("hell😀 w😀rld");
77
printf("%s, %d:%d\n", cstr_str(&hello), (int)cstr_u8_size(&hello), (int)cstr_size(&hello));
88

9-
zsview sub5 = cstr_u8_right(&hello, 5);
9+
zsview sub5 = cstr_u8_tail(&hello, 5);
1010
printf("%s, %d:%d\n", sub5.str, (int)zsview_u8_size(sub5), (int)sub5.size);
1111

1212
/* replace second smiley at utf8 codepoint pos 7 */

0 commit comments

Comments
 (0)