* Add comment
This commit is contained in:
1 parent
933b495ed1
commit
3f2904ab0d
1 file changed
+25
-4
+25
-4
@@ -1558,8 +1558,8 @@ string_utf8_p(string_t str)
|
|||||||
.ptr = s}})
|
.ptr = s}})
|
||||||
which produces faster code.
|
which produces faster code.
|
||||||
Note: This code doesn't work with C++ (use of c99 feature
|
Note: This code doesn't work with C++ (use of c99 feature
|
||||||
of recursive struct definition). As such, there is a separate
|
of recursive struct definition and compound literral).
|
||||||
C++ definition.
|
As such, there is a separate C++ definition.
|
||||||
*/
|
*/
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
/* Initialize a constant string with the given C string */
|
/* Initialize a constant string with the given C string */
|
||||||
@@ -1584,6 +1584,7 @@ namespace m_string {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
/* Initialize a constant string with the given C string (C++ mode) */
|
||||||
#define STRING_CTE(s) \
|
#define STRING_CTE(s) \
|
||||||
m_string::m_aligned_string<sizeof (s)>(s).string
|
m_string::m_aligned_string<sizeof (s)>(s).string
|
||||||
#endif
|
#endif
|
||||||
@@ -1646,27 +1647,36 @@ namespace m_string {
|
|||||||
|
|
||||||
|
|
||||||
/* Macro encapsulation to give a default value of 0 for start offset */
|
/* Macro encapsulation to give a default value of 0 for start offset */
|
||||||
|
|
||||||
|
/* Search for a character in a string (string, character[, start=0]) */
|
||||||
#define string_search_char(v, ...) \
|
#define string_search_char(v, ...) \
|
||||||
M_APPLY(string_search_char, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_search_char, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* Reverse Search for a character in a string (string, character[, start=0]) */
|
||||||
#define string_search_rchar(v, ...) \
|
#define string_search_rchar(v, ...) \
|
||||||
M_APPLY(string_search_rchar, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_search_rchar, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* Search for a C string in a string (string, c_string[, start=0]) */
|
||||||
#define string_search_str(v, ...) \
|
#define string_search_str(v, ...) \
|
||||||
M_APPLY(string_search_str, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_search_str, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* Search for a string in a string (string, string[, start=0]) */
|
||||||
#define string_search(v, ...) \
|
#define string_search(v, ...) \
|
||||||
M_APPLY(string_search, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_search, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* PBRK for a string in a string (string, string[, start=0]) */
|
||||||
#define string_search_pbrk(v, ...) \
|
#define string_search_pbrk(v, ...) \
|
||||||
M_APPLY(string_search_pbrk, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_search_pbrk, v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* Replace a C string to another C string in a string (string, c_src_string, c_dst_string, [, start=0]) */
|
||||||
#define string_replace_str(v, s1, ...) \
|
#define string_replace_str(v, s1, ...) \
|
||||||
M_APPLY(string_replace_str, v, s1, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_replace_str, v, s1, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* Replace a string to another string in a string (string, src_string, dst_string, [, start=0]) */
|
||||||
#define string_replace(v, s1, ...) \
|
#define string_replace(v, s1, ...) \
|
||||||
M_APPLY(string_replace, v, s1, M_IF_DEFAULT1(0, __VA_ARGS__))
|
M_APPLY(string_replace, v, s1, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
|
/* Strim a string from the given set of characters (default is " \n\r\t") */
|
||||||
#define string_strim(...) \
|
#define string_strim(...) \
|
||||||
M_APPLY(string_strim, M_IF_DEFAULT1(" \n\r\t", __VA_ARGS__))
|
M_APPLY(string_strim, M_IF_DEFAULT1(" \n\r\t", __VA_ARGS__))
|
||||||
|
|
||||||
@@ -1689,20 +1699,31 @@ namespace m_string {
|
|||||||
default : func1 \
|
default : func1 \
|
||||||
)(a,b,c)
|
)(a,b,c)
|
||||||
|
|
||||||
#define string_set(a,b) STRINGI_SELECT2(string_set, string_set_str, a, b)
|
/* Init & Set the string a to the string (or C string) b (constructor) */
|
||||||
#define string_init_set(a,b) STRINGI_SELECT2(string_init_set, string_init_set_str, a, b)
|
#define string_init_set(a,b) STRINGI_SELECT2(string_init_set, string_init_set_str, a, b)
|
||||||
|
|
||||||
|
/* Set the string a to the string (or C string) b */
|
||||||
#define string_set(a,b) STRINGI_SELECT2(string_set, string_set_str, a, b)
|
#define string_set(a,b) STRINGI_SELECT2(string_set, string_set_str, a, b)
|
||||||
|
|
||||||
|
/* Concatene the string (or C string) b to the string a */
|
||||||
#define string_cat(a,b) STRINGI_SELECT2(string_cat, string_cat_str, a, b)
|
#define string_cat(a,b) STRINGI_SELECT2(string_cat, string_cat_str, a, b)
|
||||||
|
|
||||||
|
/* Compare the string a to the string (or C string) b and return the sort order */
|
||||||
#define string_cmp(a,b) STRINGI_SELECT2(string_cmp, string_cmp_str, a, b)
|
#define string_cmp(a,b) STRINGI_SELECT2(string_cmp, string_cmp_str, a, b)
|
||||||
|
|
||||||
|
/* Compare for equality the string a to the string (or C string) b */
|
||||||
#define string_equal_p(a,b) STRINGI_SELECT2(string_equal_p, string_equal_str_p, a, b)
|
#define string_equal_p(a,b) STRINGI_SELECT2(string_equal_p, string_equal_str_p, a, b)
|
||||||
|
|
||||||
|
/* strcoll the string a to the string (or C string) b */
|
||||||
#define string_strcoll(a,b) STRINGI_SELECT2(string_strcoll, string_strcoll_str, a, b)
|
#define string_strcoll(a,b) STRINGI_SELECT2(string_strcoll, string_strcoll_str, a, b)
|
||||||
|
|
||||||
#undef string_search
|
#undef string_search
|
||||||
|
/* Search for a string in a string (or C string) (string, string[, start=0]) */
|
||||||
#define string_search(v, ...) \
|
#define string_search(v, ...) \
|
||||||
M_APPLY(STRINGI_SELECT3, string_search, string_search_str, \
|
M_APPLY(STRINGI_SELECT3, string_search, string_search_str, \
|
||||||
v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
v, M_IF_DEFAULT1(0, __VA_ARGS__))
|
||||||
|
|
||||||
/* Provide GET_STR method to default type */
|
/* Internal Macro: Provide GET_STR method to default type */
|
||||||
#undef M_GET_STR_METHOD_FOR_DEFAULT_TYPE
|
#undef M_GET_STR_METHOD_FOR_DEFAULT_TYPE
|
||||||
#define M_GET_STR_METHOD_FOR_DEFAULT_TYPE GET_STR(M_GET_STRING_ARG)
|
#define M_GET_STR_METHOD_FOR_DEFAULT_TYPE GET_STR(M_GET_STRING_ARG)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user