added some more string functions
This commit is contained in:
		| @ -446,6 +446,34 @@ HIO_EXPORT hio_oow_t hio_copy_bcstr_unlimited ( | ||||
| 	const hio_bch_t* src | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_ucstrs_to_ucstr ( | ||||
| 	hio_uch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_uch_t* fmt, | ||||
| 	const hio_uch_t* str[] | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_bcstrs_to_bcstr ( | ||||
| 	hio_bch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_bch_t* fmt, | ||||
| 	const hio_bch_t* str[] | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_ucses_to_ucstr ( | ||||
| 	hio_uch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_uch_t* fmt, | ||||
| 	const hio_ucs_t  str[] | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_bcses_to_bcstr ( | ||||
| 	hio_bch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_bch_t* fmt, | ||||
| 	const hio_bcs_t  str[] | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_count_ucstr ( | ||||
| @ -456,6 +484,16 @@ HIO_EXPORT hio_oow_t hio_count_bcstr ( | ||||
| 	const hio_bch_t* str | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_count_ucstr_limited ( | ||||
| 	const hio_uch_t* str, | ||||
| 	hio_oow_t        maxlen | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_count_bcstr_limited ( | ||||
| 	const hio_bch_t* str, | ||||
| 	hio_oow_t        maxlen | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| /** | ||||
| @ -489,6 +527,8 @@ HIO_EXPORT void hio_fill_bchars ( | ||||
| 	hio_oow_t        len | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| HIO_EXPORT const hio_bch_t* hio_find_bcstr_word_in_bcstr ( | ||||
| 	const hio_bch_t* str, | ||||
| 	const hio_bch_t* word, | ||||
| @ -503,25 +543,25 @@ HIO_EXPORT const hio_uch_t* hio_find_ucstr_word_in_ucstr ( | ||||
| 	int              ignorecase | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_uch_t* hio_find_uchar ( | ||||
| HIO_EXPORT hio_uch_t* hio_find_uchar_in_chars ( | ||||
| 	const hio_uch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_uch_t        c | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_bch_t* hio_find_bchar ( | ||||
| HIO_EXPORT hio_bch_t* hio_find_bchar_in_chars ( | ||||
| 	const hio_bch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_bch_t        c | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_uch_t* hio_rfind_uchar ( | ||||
| HIO_EXPORT hio_uch_t* hio_rfind_uchar_in_chars ( | ||||
| 	const hio_uch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_uch_t        c | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_bch_t* hio_rfind_bchar ( | ||||
| HIO_EXPORT hio_bch_t* hio_rfind_bchar_in_chars ( | ||||
| 	const hio_bch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_bch_t        c | ||||
| @ -537,6 +577,8 @@ HIO_EXPORT hio_bch_t* hio_find_bchar_in_bcstr ( | ||||
| 	hio_bch_t        c | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_rotate_uchars ( | ||||
| 	hio_uch_t*       str, | ||||
| 	hio_oow_t        len, | ||||
| @ -583,6 +625,8 @@ HIO_EXPORT int hio_split_bcstr ( | ||||
|  | ||||
| #if defined(HIO_OOCH_IS_UCH) | ||||
| #	define hio_count_oocstr hio_count_ucstr | ||||
| #	define hio_count_oocstr_limited hio_count_ucstr_limited | ||||
|  | ||||
| #	define hio_equal_oochars hio_equal_uchars | ||||
| #	define hio_comp_oochars hio_comp_uchars | ||||
| #	define hio_comp_oocstr_bcstr hio_comp_ucstr_bcstr | ||||
| @ -601,20 +645,24 @@ HIO_EXPORT int hio_split_bcstr ( | ||||
| #	define hio_copy_oochars_to_oocstr_unlimited hio_copy_uchars_to_ucstr_unlimited | ||||
| #	define hio_copy_oocstr hio_copy_ucstr | ||||
| #	define hio_copy_oocstr_unlimited hio_copy_ucstr_unlimited | ||||
| #	define hio_copy_fmt_oocses_to_oocstr hio_copy_fmt_ucses_to_ucstr | ||||
| #	define hio_copy_fmt_oocstr_to_oocstr hio_copy_fmt_ucstr_to_ucstr | ||||
|  | ||||
| #	define hio_concat_oochars_to_ucstr hio_concat_uchars_to_ucstr | ||||
| #	define hio_concat_oocstr hio_concat_ucstr | ||||
|  | ||||
| #	define hio_fill_oochars hio_fill_uchars | ||||
| #	define hio_find_oocstr_word_in_oocstr hio_find_ucstr_word_in_ucstr | ||||
| #	define hio_find_oochar hio_find_uchar | ||||
| #	define hio_rfind_oochar hio_rfind_uchar | ||||
| #	define hio_find_oochar_in_oochars hio_find_uchar_in_uchars | ||||
| #	define hio_rfind_oochar_in_oochars hio_rfind_uchar_in_uchars | ||||
| #	define hio_find_oochar_in_oocstr hio_find_uchar_in_ucstr | ||||
|  | ||||
| #	define hio_trim_oochars hio_trim_uchars | ||||
| #	define hio_split_oocstr hio_split_ucstr | ||||
| #else | ||||
| #	define hio_count_oocstr hio_count_bcstr | ||||
| #	define hio_count_oocstr_limited hio_count_bcstr_limited | ||||
|  | ||||
| #	define hio_equal_oochars hio_equal_bchars | ||||
| #	define hio_comp_oochars hio_comp_bchars | ||||
| #	define hio_comp_oocstr_bcstr hio_comp_bcstr | ||||
| @ -633,14 +681,16 @@ HIO_EXPORT int hio_split_bcstr ( | ||||
| #	define hio_copy_oochars_to_oocstr_unlimited hio_copy_bchars_to_bcstr_unlimited | ||||
| #	define hio_copy_oocstr hio_copy_bcstr | ||||
| #	define hio_copy_oocstr_unlimited hio_copy_bcstr_unlimited | ||||
| #	define hio_copy_fmt_oocses_to_oocstr hio_copy_fmt_bcses_to_bcstr | ||||
| #	define hio_copy_fmt_oocstr_to_oocstr hio_copy_fmt_bcstr_to_bcstr | ||||
|  | ||||
| #	define hio_concat_oochars_to_bcstr hio_concat_bchars_to_bcstr | ||||
| #	define hio_concat_oocstr hio_concat_bcstr | ||||
|  | ||||
| #	define hio_fill_oochars hio_fill_bchars | ||||
| #	define hio_find_oocstr_word_in_oocstr hio_find_bcstr_word_in_bcstr | ||||
| #	define hio_find_oochar hio_find_bchar | ||||
| #	define hio_rfind_oochar hio_rfind_bchar | ||||
| #	define hio_find_oochar_in_oochars hio_find_bchar_in_bchars | ||||
| #	define hio_rfind_oochar_in_oochars hio_rfind_bchar_in_bchars | ||||
| #	define hio_find_oochar_in_oocstr hio_find_bchar_in_bcstr | ||||
|  | ||||
| #	define hio_trim_oochars hio_trim_bchars | ||||
|  | ||||
| @ -447,6 +447,34 @@ HIO_EXPORT hio_oow_t hio_copy_bcstr_unlimited ( | ||||
| 	const hio_bch_t* src | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_ucstrs_to_ucstr ( | ||||
| 	hio_uch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_uch_t* fmt, | ||||
| 	const hio_uch_t* str[] | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_bcstrs_to_bcstr ( | ||||
| 	hio_bch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_bch_t* fmt, | ||||
| 	const hio_bch_t* str[] | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_ucses_to_ucstr ( | ||||
| 	hio_uch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_uch_t* fmt, | ||||
| 	const hio_ucs_t  str[] | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_copy_fmt_bcses_to_bcstr ( | ||||
| 	hio_bch_t*       buf, | ||||
| 	hio_oow_t        bsz, | ||||
| 	const hio_bch_t* fmt, | ||||
| 	const hio_bcs_t  str[] | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_count_ucstr ( | ||||
| @ -457,6 +485,16 @@ HIO_EXPORT hio_oow_t hio_count_bcstr ( | ||||
| 	const hio_bch_t* str | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_count_ucstr_limited ( | ||||
| 	const hio_uch_t* str, | ||||
| 	hio_oow_t        maxlen | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_count_bcstr_limited ( | ||||
| 	const hio_bch_t* str, | ||||
| 	hio_oow_t        maxlen | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| /** | ||||
| @ -490,6 +528,8 @@ HIO_EXPORT void hio_fill_bchars ( | ||||
| 	hio_oow_t        len | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| HIO_EXPORT const hio_bch_t* hio_find_bcstr_word_in_bcstr ( | ||||
| 	const hio_bch_t* str, | ||||
| 	const hio_bch_t* word, | ||||
| @ -504,25 +544,25 @@ HIO_EXPORT const hio_uch_t* hio_find_ucstr_word_in_ucstr ( | ||||
| 	int              ignorecase | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_uch_t* hio_find_uchar ( | ||||
| HIO_EXPORT hio_uch_t* hio_find_uchar_in_chars ( | ||||
| 	const hio_uch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_uch_t        c | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_bch_t* hio_find_bchar ( | ||||
| HIO_EXPORT hio_bch_t* hio_find_bchar_in_chars ( | ||||
| 	const hio_bch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_bch_t        c | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_uch_t* hio_rfind_uchar ( | ||||
| HIO_EXPORT hio_uch_t* hio_rfind_uchar_in_chars ( | ||||
| 	const hio_uch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_uch_t        c | ||||
| ); | ||||
|  | ||||
| HIO_EXPORT hio_bch_t* hio_rfind_bchar ( | ||||
| HIO_EXPORT hio_bch_t* hio_rfind_bchar_in_chars ( | ||||
| 	const hio_bch_t* ptr, | ||||
| 	hio_oow_t        len, | ||||
| 	hio_bch_t        c | ||||
| @ -538,6 +578,8 @@ HIO_EXPORT hio_bch_t* hio_find_bchar_in_bcstr ( | ||||
| 	hio_bch_t        c | ||||
| ); | ||||
|  | ||||
| /* ------------------------------------ */ | ||||
|  | ||||
| HIO_EXPORT hio_oow_t hio_rotate_uchars ( | ||||
| 	hio_uch_t*       str, | ||||
| 	hio_oow_t        len, | ||||
| @ -584,6 +626,8 @@ HIO_EXPORT int hio_split_bcstr ( | ||||
|  | ||||
| #if defined(HIO_OOCH_IS_UCH) | ||||
| #	define hio_count_oocstr hio_count_ucstr | ||||
| #	define hio_count_oocstr_limited hio_count_ucstr_limited | ||||
|  | ||||
| #	define hio_equal_oochars hio_equal_uchars | ||||
| #	define hio_comp_oochars hio_comp_uchars | ||||
| #	define hio_comp_oocstr_bcstr hio_comp_ucstr_bcstr | ||||
| @ -602,20 +646,24 @@ HIO_EXPORT int hio_split_bcstr ( | ||||
| #	define hio_copy_oochars_to_oocstr_unlimited hio_copy_uchars_to_ucstr_unlimited | ||||
| #	define hio_copy_oocstr hio_copy_ucstr | ||||
| #	define hio_copy_oocstr_unlimited hio_copy_ucstr_unlimited | ||||
| #	define hio_copy_fmt_oocses_to_oocstr hio_copy_fmt_ucses_to_ucstr | ||||
| #	define hio_copy_fmt_oocstr_to_oocstr hio_copy_fmt_ucstr_to_ucstr | ||||
|  | ||||
| #	define hio_concat_oochars_to_ucstr hio_concat_uchars_to_ucstr | ||||
| #	define hio_concat_oocstr hio_concat_ucstr | ||||
|  | ||||
| #	define hio_fill_oochars hio_fill_uchars | ||||
| #	define hio_find_oocstr_word_in_oocstr hio_find_ucstr_word_in_ucstr | ||||
| #	define hio_find_oochar hio_find_uchar | ||||
| #	define hio_rfind_oochar hio_rfind_uchar | ||||
| #	define hio_find_oochar_in_oochars hio_find_uchar_in_uchars | ||||
| #	define hio_rfind_oochar_in_oochars hio_rfind_uchar_in_uchars | ||||
| #	define hio_find_oochar_in_oocstr hio_find_uchar_in_ucstr | ||||
|  | ||||
| #	define hio_trim_oochars hio_trim_uchars | ||||
| #	define hio_split_oocstr hio_split_ucstr | ||||
| #else | ||||
| #	define hio_count_oocstr hio_count_bcstr | ||||
| #	define hio_count_oocstr_limited hio_count_bcstr_limited | ||||
|  | ||||
| #	define hio_equal_oochars hio_equal_bchars | ||||
| #	define hio_comp_oochars hio_comp_bchars | ||||
| #	define hio_comp_oocstr_bcstr hio_comp_bcstr | ||||
| @ -634,14 +682,16 @@ HIO_EXPORT int hio_split_bcstr ( | ||||
| #	define hio_copy_oochars_to_oocstr_unlimited hio_copy_bchars_to_bcstr_unlimited | ||||
| #	define hio_copy_oocstr hio_copy_bcstr | ||||
| #	define hio_copy_oocstr_unlimited hio_copy_bcstr_unlimited | ||||
| #	define hio_copy_fmt_oocses_to_oocstr hio_copy_fmt_bcses_to_bcstr | ||||
| #	define hio_copy_fmt_oocstr_to_oocstr hio_copy_fmt_bcstr_to_bcstr | ||||
|  | ||||
| #	define hio_concat_oochars_to_bcstr hio_concat_bchars_to_bcstr | ||||
| #	define hio_concat_oocstr hio_concat_bcstr | ||||
|  | ||||
| #	define hio_fill_oochars hio_fill_bchars | ||||
| #	define hio_find_oocstr_word_in_oocstr hio_find_bcstr_word_in_bcstr | ||||
| #	define hio_find_oochar hio_find_bchar | ||||
| #	define hio_rfind_oochar hio_rfind_bchar | ||||
| #	define hio_find_oochar_in_oochars hio_find_bchar_in_bchars | ||||
| #	define hio_rfind_oochar_in_oochars hio_rfind_bchar_in_bchars | ||||
| #	define hio_find_oochar_in_oocstr hio_find_bchar_in_bcstr | ||||
|  | ||||
| #	define hio_trim_oochars hio_trim_bchars | ||||
|  | ||||
| @ -759,7 +759,7 @@ hio_oow_t hio_count_ucstr_limited (const hio_uch_t* str, hio_oow_t maxlen) | ||||
| 	return i; | ||||
| } | ||||
|  | ||||
| hio_oow_t hio_count_bcstr_limited (const hio_uch_t* str, hio_oow_t maxlen) | ||||
| hio_oow_t hio_count_bcstr_limited (const hio_bch_t* str, hio_oow_t maxlen) | ||||
| { | ||||
| 	hio_oow_t i; | ||||
| 	for (i = 0; i < maxlen; i++) | ||||
| @ -811,7 +811,7 @@ void hio_fill_bchars (hio_bch_t* dst, hio_bch_t ch, hio_oow_t len) | ||||
|         for (i = 0; i < len; i++) dst[i] = ch; | ||||
| } | ||||
|  | ||||
| hio_uch_t* hio_find_uchar (const hio_uch_t* ptr, hio_oow_t len, hio_uch_t c) | ||||
| hio_uch_t* hio_find_uchar_in_uchars (const hio_uch_t* ptr, hio_oow_t len, hio_uch_t c) | ||||
| { | ||||
| 	const hio_uch_t* end; | ||||
|  | ||||
| @ -825,7 +825,7 @@ hio_uch_t* hio_find_uchar (const hio_uch_t* ptr, hio_oow_t len, hio_uch_t c) | ||||
| 	return HIO_NULL; | ||||
| } | ||||
|  | ||||
| hio_bch_t* hio_find_bchar (const hio_bch_t* ptr, hio_oow_t len, hio_bch_t c) | ||||
| hio_bch_t* hio_find_bchar_in_bchars (const hio_bch_t* ptr, hio_oow_t len, hio_bch_t c) | ||||
| { | ||||
| 	const hio_bch_t* end; | ||||
|  | ||||
| @ -839,7 +839,7 @@ hio_bch_t* hio_find_bchar (const hio_bch_t* ptr, hio_oow_t len, hio_bch_t c) | ||||
| 	return HIO_NULL; | ||||
| } | ||||
|  | ||||
| hio_uch_t* hio_rfind_uchar (const hio_uch_t* ptr, hio_oow_t len, hio_uch_t c) | ||||
| hio_uch_t* hio_rfind_uchar_in_uchars (const hio_uch_t* ptr, hio_oow_t len, hio_uch_t c) | ||||
| { | ||||
| 	const hio_uch_t* cur; | ||||
|  | ||||
| @ -853,7 +853,7 @@ hio_uch_t* hio_rfind_uchar (const hio_uch_t* ptr, hio_oow_t len, hio_uch_t c) | ||||
| 	return HIO_NULL; | ||||
| } | ||||
|  | ||||
| hio_bch_t* hio_rfind_bchar (const hio_bch_t* ptr, hio_oow_t len, hio_bch_t c) | ||||
| hio_bch_t* hio_rfind_bchar_in_bchars (const hio_bch_t* ptr, hio_oow_t len, hio_bch_t c) | ||||
| { | ||||
| 	const hio_bch_t* cur; | ||||
|  | ||||
|  | ||||
| @ -90,11 +90,11 @@ dnl -- | ||||
| fn_fill_chars(hio_fill_uchars, hio_uch_t) | ||||
| fn_fill_chars(hio_fill_bchars, hio_bch_t) | ||||
| dnl -- | ||||
| fn_find_char_in_chars(hio_find_uchar, hio_uch_t) | ||||
| fn_find_char_in_chars(hio_find_bchar, hio_bch_t) | ||||
| fn_find_char_in_chars(hio_find_uchar_in_uchars, hio_uch_t) | ||||
| fn_find_char_in_chars(hio_find_bchar_in_bchars, hio_bch_t) | ||||
| dnl -- | ||||
| fn_rfind_char_in_chars(hio_rfind_uchar, hio_uch_t) | ||||
| fn_rfind_char_in_chars(hio_rfind_bchar, hio_bch_t) | ||||
| fn_rfind_char_in_chars(hio_rfind_uchar_in_uchars, hio_uch_t) | ||||
| fn_rfind_char_in_chars(hio_rfind_bchar_in_bchars, hio_bch_t) | ||||
| dnl -- | ||||
| fn_find_char_in_cstr(hio_find_uchar_in_ucstr, hio_uch_t) | ||||
| fn_find_char_in_cstr(hio_find_bchar_in_bcstr, hio_bch_t) | ||||
|  | ||||
| @ -406,7 +406,7 @@ popdef([[_fn_name_]])popdef([[_char_type_]])dnl | ||||
| ]])dnl | ||||
| dnl --------------------------------------------------------------------------- | ||||
| define([[fn_count_cstr_limited]], [[pushdef([[_fn_name_]], $1)pushdef([[_char_type_]], $2)dnl | ||||
| hio_oow_t _fn_name_ (const hio_uch_t* str, hio_oow_t maxlen) | ||||
| hio_oow_t _fn_name_ (const _char_type_* str, hio_oow_t maxlen) | ||||
| { | ||||
| 	hio_oow_t i; | ||||
| 	for (i = 0; i < maxlen; i++) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user