migrated cmgr functions from utl-str.c to utl-cmgr.c
This commit is contained in:
		| @ -124,6 +124,7 @@ libhawk_la_SOURCES = \ | |||||||
| 	utf16.c \ | 	utf16.c \ | ||||||
| 	utf8.c \ | 	utf8.c \ | ||||||
| 	utl-ass.c \ | 	utl-ass.c \ | ||||||
|  | 	utl-cmgr.c \ | ||||||
| 	utl-rnd.c\ | 	utl-rnd.c\ | ||||||
| 	utl-sort.c \ | 	utl-sort.c \ | ||||||
| 	utl-str.c \ | 	utl-str.c \ | ||||||
|  | |||||||
| @ -241,13 +241,13 @@ am__libhawk_la_SOURCES_DIST = hawk.h hawk-arr.h hawk-chr.h hawk-cmn.h \ | |||||||
| 	tre-compile.c tre-compile.h tre-match-bt.c tre-match-pa.c \ | 	tre-compile.c tre-compile.h tre-match-bt.c tre-match-pa.c \ | ||||||
| 	tre-match-ut.h tre-mem.c tre-mem.h tre-parse.c tre-parse.h \ | 	tre-match-ut.h tre-mem.c tre-mem.h tre-parse.c tre-parse.h \ | ||||||
| 	tre-stack.h tre-stack.c tre.c tree-prv.h tree.c uch-prop.h \ | 	tre-stack.h tre-stack.c tre.c tree-prv.h tree.c uch-prop.h \ | ||||||
| 	uch-case.h utf16.c utf8.c utl-ass.c utl-rnd.c utl-sort.c \ | 	uch-case.h utf16.c utf8.c utl-ass.c utl-cmgr.c utl-rnd.c \ | ||||||
| 	utl-str.c utl-sys.c utl.c val-prv.h val.c xma.c hawk-cli.h \ | 	utl-sort.c utl-str.c utl-sys.c utl.c val-prv.h val.c xma.c \ | ||||||
| 	hawk-fio.h hawk-mtx.h hawk-pio.h hawk-sio.h hawk-tio.h \ | 	hawk-cli.h hawk-fio.h hawk-mtx.h hawk-pio.h hawk-sio.h \ | ||||||
| 	cli-imp.h cli.c fio.c mtx.c pio.c sio.c syscall.h tio.c std.c \ | 	hawk-tio.h cli-imp.h cli.c fio.c mtx.c pio.c sio.c syscall.h \ | ||||||
| 	std-sed.c Hawk.cpp Std.cpp Sed.cpp Std-Sed.cpp mod-hawk.c \ | 	tio.c std.c std-sed.c Hawk.cpp Std.cpp Sed.cpp Std-Sed.cpp \ | ||||||
| 	mod-hawk.h mod-math.c mod-math.h mod-str.c mod-str.h mod-sys.c \ | 	mod-hawk.c mod-hawk.h mod-math.c mod-math.h mod-str.c \ | ||||||
| 	mod-sys.h | 	mod-str.h mod-sys.c mod-sys.h | ||||||
| am__objects_1 = | am__objects_1 = | ||||||
| am__objects_2 = $(am__objects_1) | am__objects_2 = $(am__objects_1) | ||||||
| @ENABLE_CXX_TRUE@am__objects_3 = libhawk_la-Hawk.lo libhawk_la-Std.lo \ | @ENABLE_CXX_TRUE@am__objects_3 = libhawk_la-Hawk.lo libhawk_la-Std.lo \ | ||||||
| @ -269,7 +269,8 @@ am_libhawk_la_OBJECTS = $(am__objects_2) libhawk_la-arr.lo \ | |||||||
| 	libhawk_la-tre-match-pa.lo libhawk_la-tre-mem.lo \ | 	libhawk_la-tre-match-pa.lo libhawk_la-tre-mem.lo \ | ||||||
| 	libhawk_la-tre-parse.lo libhawk_la-tre-stack.lo \ | 	libhawk_la-tre-parse.lo libhawk_la-tre-stack.lo \ | ||||||
| 	libhawk_la-tre.lo libhawk_la-tree.lo libhawk_la-utf16.lo \ | 	libhawk_la-tre.lo libhawk_la-tree.lo libhawk_la-utf16.lo \ | ||||||
| 	libhawk_la-utf8.lo libhawk_la-utl-ass.lo libhawk_la-utl-rnd.lo \ | 	libhawk_la-utf8.lo libhawk_la-utl-ass.lo \ | ||||||
|  | 	libhawk_la-utl-cmgr.lo libhawk_la-utl-rnd.lo \ | ||||||
| 	libhawk_la-utl-sort.lo libhawk_la-utl-str.lo \ | 	libhawk_la-utl-sort.lo libhawk_la-utl-str.lo \ | ||||||
| 	libhawk_la-utl-sys.lo libhawk_la-utl.lo libhawk_la-val.lo \ | 	libhawk_la-utl-sys.lo libhawk_la-utl.lo libhawk_la-val.lo \ | ||||||
| 	libhawk_la-xma.lo libhawk_la-cli.lo libhawk_la-fio.lo \ | 	libhawk_la-xma.lo libhawk_la-cli.lo libhawk_la-fio.lo \ | ||||||
| @ -329,6 +330,7 @@ am__depfiles_remade = ./$(DEPDIR)/libhawk_hawk_la-mod-hawk.Plo \ | |||||||
| 	./$(DEPDIR)/libhawk_la-utf16.Plo \ | 	./$(DEPDIR)/libhawk_la-utf16.Plo \ | ||||||
| 	./$(DEPDIR)/libhawk_la-utf8.Plo \ | 	./$(DEPDIR)/libhawk_la-utf8.Plo \ | ||||||
| 	./$(DEPDIR)/libhawk_la-utl-ass.Plo \ | 	./$(DEPDIR)/libhawk_la-utl-ass.Plo \ | ||||||
|  | 	./$(DEPDIR)/libhawk_la-utl-cmgr.Plo \ | ||||||
| 	./$(DEPDIR)/libhawk_la-utl-rnd.Plo \ | 	./$(DEPDIR)/libhawk_la-utl-rnd.Plo \ | ||||||
| 	./$(DEPDIR)/libhawk_la-utl-sort.Plo \ | 	./$(DEPDIR)/libhawk_la-utl-sort.Plo \ | ||||||
| 	./$(DEPDIR)/libhawk_la-utl-str.Plo \ | 	./$(DEPDIR)/libhawk_la-utl-str.Plo \ | ||||||
| @ -614,11 +616,11 @@ libhawk_la_SOURCES = $(pkginclude_HEADERS) arr.c chr.c dir.c ecs-imp.h \ | |||||||
| 	tre-compile.c tre-compile.h tre-match-bt.c tre-match-pa.c \ | 	tre-compile.c tre-compile.h tre-match-bt.c tre-match-pa.c \ | ||||||
| 	tre-match-ut.h tre-mem.c tre-mem.h tre-parse.c tre-parse.h \ | 	tre-match-ut.h tre-mem.c tre-mem.h tre-parse.c tre-parse.h \ | ||||||
| 	tre-stack.h tre-stack.c tre.c tree-prv.h tree.c uch-prop.h \ | 	tre-stack.h tre-stack.c tre.c tree-prv.h tree.c uch-prop.h \ | ||||||
| 	uch-case.h utf16.c utf8.c utl-ass.c utl-rnd.c utl-sort.c \ | 	uch-case.h utf16.c utf8.c utl-ass.c utl-cmgr.c utl-rnd.c \ | ||||||
| 	utl-str.c utl-sys.c utl.c val-prv.h val.c xma.c hawk-cli.h \ | 	utl-sort.c utl-str.c utl-sys.c utl.c val-prv.h val.c xma.c \ | ||||||
| 	hawk-fio.h hawk-mtx.h hawk-pio.h hawk-sio.h hawk-tio.h \ | 	hawk-cli.h hawk-fio.h hawk-mtx.h hawk-pio.h hawk-sio.h \ | ||||||
| 	cli-imp.h cli.c fio.c mtx.c pio.c sio.c syscall.h tio.c std.c \ | 	hawk-tio.h cli-imp.h cli.c fio.c mtx.c pio.c sio.c syscall.h \ | ||||||
| 	std-sed.c $(am__append_8) $(am__append_9) | 	tio.c std.c std-sed.c $(am__append_8) $(am__append_9) | ||||||
| libhawk_la_CPPFLAGS = $(CPPFLAGS_ALL_COMMON) $(CPPFLAGS_PFMOD) \ | libhawk_la_CPPFLAGS = $(CPPFLAGS_ALL_COMMON) $(CPPFLAGS_PFMOD) \ | ||||||
| 	$(am__append_3) | 	$(am__append_3) | ||||||
| libhawk_la_CFLAGS = $(CFLAGS_ALL_COMMON) | libhawk_la_CFLAGS = $(CFLAGS_ALL_COMMON) | ||||||
| @ -828,6 +830,7 @@ distclean-compile: | |||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utf16.Plo@am__quote@ # am--include-marker | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utf16.Plo@am__quote@ # am--include-marker | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utf8.Plo@am__quote@ # am--include-marker | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utf8.Plo@am__quote@ # am--include-marker | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-ass.Plo@am__quote@ # am--include-marker | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-ass.Plo@am__quote@ # am--include-marker | ||||||
|  | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-cmgr.Plo@am__quote@ # am--include-marker | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-rnd.Plo@am__quote@ # am--include-marker | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-rnd.Plo@am__quote@ # am--include-marker | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-sort.Plo@am__quote@ # am--include-marker | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-sort.Plo@am__quote@ # am--include-marker | ||||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-str.Plo@am__quote@ # am--include-marker | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_la-utl-str.Plo@am__quote@ # am--include-marker | ||||||
| @ -1135,6 +1138,13 @@ libhawk_la-utl-ass.lo: utl-ass.c | |||||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||||
| @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_la_CFLAGS) $(CFLAGS) -c -o libhawk_la-utl-ass.lo `test -f 'utl-ass.c' || echo '$(srcdir)/'`utl-ass.c | @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_la_CFLAGS) $(CFLAGS) -c -o libhawk_la-utl-ass.lo `test -f 'utl-ass.c' || echo '$(srcdir)/'`utl-ass.c | ||||||
|  |  | ||||||
|  | libhawk_la-utl-cmgr.lo: utl-cmgr.c | ||||||
|  | @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_la_CFLAGS) $(CFLAGS) -MT libhawk_la-utl-cmgr.lo -MD -MP -MF $(DEPDIR)/libhawk_la-utl-cmgr.Tpo -c -o libhawk_la-utl-cmgr.lo `test -f 'utl-cmgr.c' || echo '$(srcdir)/'`utl-cmgr.c | ||||||
|  | @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libhawk_la-utl-cmgr.Tpo $(DEPDIR)/libhawk_la-utl-cmgr.Plo | ||||||
|  | @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='utl-cmgr.c' object='libhawk_la-utl-cmgr.lo' libtool=yes @AMDEPBACKSLASH@ | ||||||
|  | @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||||
|  | @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_la_CFLAGS) $(CFLAGS) -c -o libhawk_la-utl-cmgr.lo `test -f 'utl-cmgr.c' || echo '$(srcdir)/'`utl-cmgr.c | ||||||
|  |  | ||||||
| libhawk_la-utl-rnd.lo: utl-rnd.c | libhawk_la-utl-rnd.lo: utl-rnd.c | ||||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_la_CFLAGS) $(CFLAGS) -MT libhawk_la-utl-rnd.lo -MD -MP -MF $(DEPDIR)/libhawk_la-utl-rnd.Tpo -c -o libhawk_la-utl-rnd.lo `test -f 'utl-rnd.c' || echo '$(srcdir)/'`utl-rnd.c | @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_la_CFLAGS) $(CFLAGS) -MT libhawk_la-utl-rnd.lo -MD -MP -MF $(DEPDIR)/libhawk_la-utl-rnd.Tpo -c -o libhawk_la-utl-rnd.lo `test -f 'utl-rnd.c' || echo '$(srcdir)/'`utl-rnd.c | ||||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libhawk_la-utl-rnd.Tpo $(DEPDIR)/libhawk_la-utl-rnd.Plo | @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libhawk_la-utl-rnd.Tpo $(DEPDIR)/libhawk_la-utl-rnd.Plo | ||||||
| @ -1526,6 +1536,7 @@ distclean: distclean-am | |||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utf16.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utf16.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utf8.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utf8.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-ass.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-ass.Plo | ||||||
|  | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-cmgr.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-rnd.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-rnd.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-sort.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-sort.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-str.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-str.Plo | ||||||
| @ -1633,6 +1644,7 @@ maintainer-clean: maintainer-clean-am | |||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utf16.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utf16.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utf8.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utf8.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-ass.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-ass.Plo | ||||||
|  | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-cmgr.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-rnd.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-rnd.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-sort.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-sort.Plo | ||||||
| 	-rm -f ./$(DEPDIR)/libhawk_la-utl-str.Plo | 	-rm -f ./$(DEPDIR)/libhawk_la-utl-str.Plo | ||||||
|  | |||||||
							
								
								
									
										168
									
								
								hawk/lib/utl-cmgr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								hawk/lib/utl-cmgr.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,168 @@ | |||||||
|  | /* | ||||||
|  |     Copyright (c) 2006-2020 Chung, Hyung-Hwan. All rights reserved. | ||||||
|  |  | ||||||
|  |     Redistribution and use in source and binary forms, with or without | ||||||
|  |     modification, are permitted provided that the following conditions | ||||||
|  |     are met: | ||||||
|  |     1. Redistributions of source code must retain the above copyright | ||||||
|  |        notice, this list of conditions and the following disclaimer. | ||||||
|  |     2. Redistributions in binary form must reproduce the above copyright | ||||||
|  |        notice, this list of conditions and the following disclaimer in the | ||||||
|  |        documentation and/or other materials provided with the distribution. | ||||||
|  |  | ||||||
|  |     THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR | ||||||
|  |     IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||||||
|  |     OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||||||
|  |     IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||||
|  |     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||||
|  |     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||||
|  |     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||||
|  |     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||||
|  |     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||||
|  |     THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include <hawk-utl.h> | ||||||
|  | #include <hawk-chr.h> | ||||||
|  |  | ||||||
|  | /* ------------------------------------------------------------------------ */ | ||||||
|  |  | ||||||
|  | static hawk_cmgr_t builtin_cmgr[] = | ||||||
|  | { | ||||||
|  | 	/* keep the order aligned with hawk_cmgr_id_t values in <hawk-utl.h> */ | ||||||
|  | 	{ hawk_utf8_to_uc,  hawk_uc_to_utf8 }, | ||||||
|  | 	{ hawk_utf16_to_uc, hawk_uc_to_utf16 }, | ||||||
|  | 	{ hawk_mb8_to_uc,   hawk_uc_to_mb8 } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | hawk_cmgr_t* hawk_get_cmgr_by_id (hawk_cmgr_id_t id) | ||||||
|  | { | ||||||
|  | 	return &builtin_cmgr[id]; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static struct | ||||||
|  | { | ||||||
|  | 	const hawk_bch_t* name; | ||||||
|  | 	hawk_cmgr_id_t     id; | ||||||
|  | } builtin_cmgr_tab[] = | ||||||
|  | { | ||||||
|  | 	{ "utf8",    HAWK_CMGR_UTF8 }, | ||||||
|  | 	{ "utf16",   HAWK_CMGR_UTF16 }, | ||||||
|  | 	{ "mb8",     HAWK_CMGR_MB8 } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | hawk_cmgr_t* hawk_get_cmgr_by_bcstr (const hawk_bch_t* name) | ||||||
|  | { | ||||||
|  | 	if (name) | ||||||
|  | 	{ | ||||||
|  | 		hawk_oow_t i; | ||||||
|  |  | ||||||
|  | 		for (i = 0; i < HAWK_COUNTOF(builtin_cmgr_tab); i++) | ||||||
|  | 		{ | ||||||
|  | 			if (hawk_comp_bcstr(name, builtin_cmgr_tab[i].name, 0) == 0) | ||||||
|  | 			{ | ||||||
|  | 				return &builtin_cmgr[builtin_cmgr_tab[i].id]; | ||||||
|  | 			} | ||||||
|  | 		 } | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return HAWK_NULL; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | hawk_cmgr_t* hawk_get_cmgr_by_ucstr (const hawk_uch_t* name) | ||||||
|  | { | ||||||
|  | 	if (name) | ||||||
|  | 	{ | ||||||
|  | 		hawk_oow_t i; | ||||||
|  |  | ||||||
|  | 		for (i = 0; i < HAWK_COUNTOF(builtin_cmgr_tab); i++) | ||||||
|  | 		{ | ||||||
|  | 			if (hawk_comp_ucstr_bcstr(name, builtin_cmgr_tab[i].name, 0) == 0) | ||||||
|  | 			{ | ||||||
|  | 				return &builtin_cmgr[builtin_cmgr_tab[i].id]; | ||||||
|  | 			} | ||||||
|  | 		 } | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return HAWK_NULL; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* ------------------------------------------------------------------------ */ | ||||||
|  |  | ||||||
|  | int hawk_conv_utf8_to_uchars (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) | ||||||
|  | { | ||||||
|  | 	/* the source is length bound */ | ||||||
|  | 	return hawk_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF8], 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_uchars_to_utf8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) | ||||||
|  | { | ||||||
|  | 	/* length bound */ | ||||||
|  | 	return hawk_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF8]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_utf8_to_ucstr (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) | ||||||
|  | { | ||||||
|  | 	/* null-terminated. */ | ||||||
|  | 	return hawk_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF8], 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_ucstr_to_utf8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) | ||||||
|  | { | ||||||
|  | 	/* null-terminated */ | ||||||
|  | 	return hawk_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF8]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* ------------------------------------------------------------------------ */ | ||||||
|  |  | ||||||
|  | int hawk_conv_utf16_to_uchars (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) | ||||||
|  | { | ||||||
|  | 	/* the source is length bound */ | ||||||
|  | 	return hawk_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF16], 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_uchars_to_utf16 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) | ||||||
|  | { | ||||||
|  | 	/* length bound */ | ||||||
|  | 	return hawk_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF16]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_utf16_to_ucstr (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) | ||||||
|  | { | ||||||
|  | 	/* null-terminated. */ | ||||||
|  | 	return hawk_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF16], 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_ucstr_to_utf16 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) | ||||||
|  | { | ||||||
|  | 	/* null-terminated */ | ||||||
|  | 	return hawk_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF16]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* ------------------------------------------------------------------------ */ | ||||||
|  |  | ||||||
|  | int hawk_conv_mb8_to_uchars (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) | ||||||
|  | { | ||||||
|  | 	/* the source is length bound */ | ||||||
|  | 	return hawk_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_MB8], 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_uchars_to_mb8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) | ||||||
|  | { | ||||||
|  | 	/* length bound */ | ||||||
|  | 	return hawk_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_MB8]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_mb8_to_ucstr (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) | ||||||
|  | { | ||||||
|  | 	/* null-terminated. */ | ||||||
|  | 	return hawk_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_MB8], 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int hawk_conv_ucstr_to_mb8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) | ||||||
|  | { | ||||||
|  | 	/* null-terminated */ | ||||||
|  | 	return hawk_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_MB8]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* ------------------------------------------------------------------------ */ | ||||||
| @ -3676,144 +3676,3 @@ int hawk_bchars_to_bin (const hawk_bch_t* hex, hawk_oow_t hexlen, hawk_uint8_t* | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| /* ------------------------------------------------------------------------ */ |  | ||||||
|  |  | ||||||
| static hawk_cmgr_t builtin_cmgr[] = |  | ||||||
| { |  | ||||||
| 	/* keep the order aligned with hawk_cmgr_id_t values in <hawk-utl.h> */ |  | ||||||
| 	{ hawk_utf8_to_uc,  hawk_uc_to_utf8 }, |  | ||||||
| 	{ hawk_utf16_to_uc, hawk_uc_to_utf16 }, |  | ||||||
| 	{ hawk_mb8_to_uc,   hawk_uc_to_mb8 } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| hawk_cmgr_t* hawk_get_cmgr_by_id (hawk_cmgr_id_t id) |  | ||||||
| { |  | ||||||
| 	return &builtin_cmgr[id]; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static struct |  | ||||||
| { |  | ||||||
| 	const hawk_bch_t* name; |  | ||||||
| 	hawk_cmgr_id_t     id; |  | ||||||
| } builtin_cmgr_tab[] = |  | ||||||
| { |  | ||||||
| 	{ "utf8",    HAWK_CMGR_UTF8 }, |  | ||||||
| 	{ "utf16",   HAWK_CMGR_UTF16 }, |  | ||||||
| 	{ "mb8",     HAWK_CMGR_MB8 } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| hawk_cmgr_t* hawk_get_cmgr_by_bcstr (const hawk_bch_t* name) |  | ||||||
| { |  | ||||||
| 	if (name) |  | ||||||
| 	{ |  | ||||||
| 		hawk_oow_t i; |  | ||||||
|  |  | ||||||
| 		for (i = 0; i < HAWK_COUNTOF(builtin_cmgr_tab); i++) |  | ||||||
| 		{ |  | ||||||
| 			if (hawk_comp_bcstr(name, builtin_cmgr_tab[i].name, 0) == 0) |  | ||||||
| 			{ |  | ||||||
| 				return &builtin_cmgr[builtin_cmgr_tab[i].id]; |  | ||||||
| 			} |  | ||||||
| 		 } |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return HAWK_NULL; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| hawk_cmgr_t* hawk_get_cmgr_by_ucstr (const hawk_uch_t* name) |  | ||||||
| { |  | ||||||
| 	if (name) |  | ||||||
| 	{ |  | ||||||
| 		hawk_oow_t i; |  | ||||||
|  |  | ||||||
| 		for (i = 0; i < HAWK_COUNTOF(builtin_cmgr_tab); i++) |  | ||||||
| 		{ |  | ||||||
| 			if (hawk_comp_ucstr_bcstr(name, builtin_cmgr_tab[i].name, 0) == 0) |  | ||||||
| 			{ |  | ||||||
| 				return &builtin_cmgr[builtin_cmgr_tab[i].id]; |  | ||||||
| 			} |  | ||||||
| 		 } |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return HAWK_NULL; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* ------------------------------------------------------------------------ */ |  | ||||||
|  |  | ||||||
| int hawk_conv_utf8_to_uchars (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) |  | ||||||
| { |  | ||||||
| 	/* the source is length bound */ |  | ||||||
| 	return hawk_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF8], 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_uchars_to_utf8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) |  | ||||||
| { |  | ||||||
| 	/* length bound */ |  | ||||||
| 	return hawk_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF8]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_utf8_to_ucstr (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) |  | ||||||
| { |  | ||||||
| 	/* null-terminated. */ |  | ||||||
| 	return hawk_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF8], 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_ucstr_to_utf8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) |  | ||||||
| { |  | ||||||
| 	/* null-terminated */ |  | ||||||
| 	return hawk_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF8]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* ------------------------------------------------------------------------ */ |  | ||||||
|  |  | ||||||
| int hawk_conv_utf16_to_uchars (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) |  | ||||||
| { |  | ||||||
| 	/* the source is length bound */ |  | ||||||
| 	return hawk_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF16], 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_uchars_to_utf16 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) |  | ||||||
| { |  | ||||||
| 	/* length bound */ |  | ||||||
| 	return hawk_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF16]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_utf16_to_ucstr (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) |  | ||||||
| { |  | ||||||
| 	/* null-terminated. */ |  | ||||||
| 	return hawk_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_UTF16], 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_ucstr_to_utf16 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) |  | ||||||
| { |  | ||||||
| 	/* null-terminated */ |  | ||||||
| 	return hawk_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_UTF16]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* ------------------------------------------------------------------------ */ |  | ||||||
|  |  | ||||||
| int hawk_conv_mb8_to_uchars (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) |  | ||||||
| { |  | ||||||
| 	/* the source is length bound */ |  | ||||||
| 	return hawk_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_MB8], 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_uchars_to_mb8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) |  | ||||||
| { |  | ||||||
| 	/* length bound */ |  | ||||||
| 	return hawk_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_MB8]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_mb8_to_ucstr (const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen) |  | ||||||
| { |  | ||||||
| 	/* null-terminated. */ |  | ||||||
| 	return hawk_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, &builtin_cmgr[HAWK_CMGR_MB8], 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int hawk_conv_ucstr_to_mb8 (const hawk_uch_t* ucs, hawk_oow_t* ucslen, hawk_bch_t* bcs, hawk_oow_t* bcslen) |  | ||||||
| { |  | ||||||
| 	/* null-terminated */ |  | ||||||
| 	return hawk_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, &builtin_cmgr[HAWK_CMGR_MB8]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* ------------------------------------------------------------------------ */ |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user