Patrick Pelissier
37b2f4d2ac
Update test suite to properly allocation & deallocation
2025-05-07 21:02:23 +02:00
Patrick Pelissier
6d621703eb
Copyright go to 2025 year
2025-03-01 11:03:38 +01:00
Patrick Pelissier
3fd2146bbe
Fix issue in 32 bits mode
2024-05-28 23:31:16 +02:00
Patrick Pelissier
8e70b6175a
Fix clang warning
2024-05-28 23:14:44 +02:00
Patrick Pelissier
67e9c8ff06
New internal string format:
...
* maximum size of a string is 2^32-1 now by default on a 64 bits system (can be increased using M_USE_STRING_LARGE_INDEX if needed).
* This reduce consumption of a string_t from 24 bytes to 16 bytes.
* Change the stack representation of a string, so that it lets 15 allocated bytes for the user even in 64 bytes mode. For 32 bits system, it increases to 15 allocated byte for stack representation.
* synthetic performance benchmark shows a little bit of decrease of performance. But performance in real application shows a significant increase (probably due to the reduced size of the type).
*Augment test suite to be sure to test all corner cases of the new representaiton.
2024-05-28 23:05:54 +02:00
Patrick Pelissier
52b58c5a51
Happy new year 2024
2024-01-19 21:37:47 +01:00
Patrick Pelissier
2628536d20
Add +m_string_it_set_ref
2023-06-10 01:50:14 +02:00
Patrick Pelissier
ecfa4a9152
Add new function string_pop_u
...
to pop the last unicode code point
of a string.
2023-06-03 00:59:34 +02:00
kitterion
6a9ee17eca
Add tests
2023-05-08 23:17:19 +03:00
Patrick Pelissier
ad023bb09d
Improve coverage of the test suite
2023-04-13 23:27:01 +02:00
Patrick Pelissier
aebe1308fc
Improve coverage computation
2023-04-03 00:23:05 +02:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +01:00
Patrick Pelissier
3aa3e95e4c
Remove constraint of calling string_end_p
...
before string_next or string_get_cref
This generates slighty more code but it is much saner
from user point of view.
2022-09-13 00:18:15 +02:00
Patrick Pelissier
d7b45cc220
Fix issue in string_previous
2022-09-11 23:14:52 +02:00
Patrick Pelissier
cbb2b452bb
Add string_previous function
...
to iterate on the previous UTF8 code point.
2022-09-10 16:30:45 +02:00
Patrick Pelissier
6e947c6262
Add more corner cases.
2022-09-10 16:21:19 +02:00
Patrick Pelissier
18f04da4ec
Robustness/fix:
...
string_next won't advance if the end of string is reached.
2022-09-10 16:19:58 +02:00
Patrick Pelissier
41c4f5fe5c
Add string functions :
...
* string_it_get_pos to return the position in the steam
* string_it_pos to start iterating from a given position.
2022-09-10 16:16:13 +02:00
Patrick Pelissier
cfeedf19f8
Rework to be more compliant (as far as it is possible)
...
to real cases.
2022-09-10 15:56:36 +02:00
Patrick Pelissier
442b0e7cea
Reduce size of struct string_it_t on 64 bits
...
by storing an offset to the next character
instead of a pointer. An offset can be stored as a
BYTE instead of a PTR since UT-8 can use at most
4 characters per code point.
2022-09-10 09:59:06 +02:00
Patrick Pelissier
ad05ae9aa5
Rename the string _suffix for Bounded Strings from _str to _cstr
...
See #99
2022-07-30 12:01:36 +02:00
Patrick Pelissier
e83dea8212
Fix warnings for Visual C++
2022-05-10 23:49:20 +02:00
Patrick Pelissier
c829827f48
Fix warnings for Visual C++
2022-05-10 23:34:48 +02:00
Patrick Pelissier
2c2c3c21ba
Add test for string_search in C11
2022-04-10 23:09:50 +02:00
Patrick Pelissier
de3b8509bf
Add tests for m_string_set_si & m_string_set_ui
2022-03-26 16:08:51 +01:00
Patrick Pelissier
a4d9b8df17
Moving internal types to internal namespace
2022-03-22 23:37:35 +01:00
Patrick Pelissier
02897f982f
Add m_ prefix for the string API
2022-03-15 19:24:14 +01:00
Patrick Pelissier
19b01b404d
Migrate to 2022
2022-03-12 20:25:45 +01:00
Patrick Pelissier
9176953a8e
Rename string_clean in string_reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:27:41 +02:00
Patrick Pelissier
61f8dcdbae
Add string_set_char function
2021-09-22 23:07:35 +02:00
Patrick Pelissier
3d3eb6f1d2
Update tests to new syntax of M_LET.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
7e234cba65
Add test of M_FPRINT using string_t.
2021-06-19 22:46:58 +02:00
Patrick Pelissier
07db846f3b
Rename internal string functions to be compliant with new scheme. Not sure if this scheme will remain however (still searching for a better naming that fits all criteria).
2021-03-01 22:18:32 +01:00
Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
8a9d5f6a00
Add macro string_sets (like string_cats)
2021-01-10 09:51:38 +01:00
Patrick Pelissier
c4f23640d5
Add test for string_cats
2021-01-07 22:13:10 +01:00
Patrick Pelissier
76b9f9a715
Add test cases for M_GET_STRING
2020-12-26 08:58:52 +01:00
Patrick Pelissier
b343d356c3
Add support for empty replaced string
2020-11-22 23:29:38 +01:00
Patrick Pelissier
55e7b3083a
Add function string_replace_all[_str]
...
to replace all occurences of a string by another.
2020-11-22 23:04:32 +01:00
Patrick Pelissier
d898d6d4cc
Remove duplicate function
2020-11-21 10:26:02 +01:00
Patrick Pelissier
45f8b31efc
Add function string_subset
2020-11-19 22:31:33 +01:00
Patrick Pelissier
e77aec4619
Reduce test case for MacOS / MINGW (returning incorrect return value for printf)
2020-11-05 23:33:26 +01:00
Patrick Pelissier
d67e084010
Fix introduced warning
2020-11-05 22:55:03 +01:00
Patrick Pelissier
d92126b97e
Add more tests (improve coverage)
2020-11-05 22:51:02 +01:00
Patrick Pelissier
d169a06f79
Rename STRING_ASSERT_SLOW into M_ASERT_SLOW
2020-10-31 17:30:14 +01:00
Patrick Pelissier
bb9e0e4f6e
Adding test for M_LET for bounded string
2020-10-24 14:03:31 +02:00
Patrick Pelissier
35718ae551
Rename type as internal types
2020-10-03 14:07:14 +02:00
Patrick Pelissier
70de571dc8
Fix warnings in test suite.
2020-06-22 00:14:55 +02:00
Patrick Pelissier
32b6f82249
Add corner case for string_fget_word when it doesn't end with a separator
2020-06-19 21:10:46 +02:00
Patrick Pelissier
45b94c8abc
Add corner cases for string_reserve
2020-06-13 18:57:39 +02:00