added hcl_prufmtv() and hcl_prbfmtv()
This commit is contained in:
		| @ -166,8 +166,8 @@ am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/ac/ar-lib \ | ||||
| 	$(top_srcdir)/ac/compile $(top_srcdir)/ac/config.guess \ | ||||
| 	$(top_srcdir)/ac/config.sub $(top_srcdir)/ac/install-sh \ | ||||
| 	$(top_srcdir)/ac/ltmain.sh $(top_srcdir)/ac/missing ac/ar-lib \ | ||||
| 	ac/compile ac/config.guess ac/config.sub ac/install-sh \ | ||||
| 	ac/ltmain.sh ac/missing | ||||
| 	ac/compile ac/config.guess ac/config.sub ac/depcomp \ | ||||
| 	ac/install-sh ac/ltmain.sh ac/missing | ||||
| DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||||
| distdir = $(PACKAGE)-$(VERSION) | ||||
| top_distdir = $(distdir) | ||||
|  | ||||
| @ -30,7 +30,7 @@ hcl_LDFLAGS = $(LDFLAGS_ALL_COMMON) | ||||
| hcl_LDADD = $(LIBADD_LIB_COMMON) -lhcl | ||||
| hcl_DEPENDENCIES = ../lib/libhcl.la | ||||
|  | ||||
| if ENABLE_HCLEX | ||||
| if ENABLE_HCLX | ||||
|  | ||||
| ## cb-impl.c is included in libhclx. | ||||
| ## so ../lib/cb-impl.h and ../lib/cb-impl.c are not listed as sources | ||||
|  | ||||
| @ -1150,6 +1150,7 @@ int main (int argc, char* argv[]) | ||||
| 	 * -- instead of returning -1 immediately. --*/ | ||||
| 	set_signal (SIGINT, handle_sigint); | ||||
|  | ||||
| hcl_prbfmt (hcl, "this is good %s %10hs %hs\n", "whole new world. 1234567890 from this point onward, any failure leasd to jumping to oops label",  "as이거 좋은거잖아dkfjsdakfjsadklfjasd", "1111"); | ||||
| 	while (1) | ||||
| 	{ | ||||
| 		hcl_oop_t obj; | ||||
|  | ||||
							
								
								
									
										30
									
								
								hcl/configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								hcl/configure
									
									
									
									
										vendored
									
									
								
							| @ -651,8 +651,8 @@ HCL_SIZEOF_LONG_LONG | ||||
| HCL_SIZEOF_CHAR32_T | ||||
| HCL_SIZEOF_CHAR16_T | ||||
| HCL_SIZEOF_WCHAR_T | ||||
| ENABLE_HCLEX_FALSE | ||||
| ENABLE_HCLEX_TRUE | ||||
| ENABLE_HCLX_FALSE | ||||
| ENABLE_HCLX_TRUE | ||||
| ENABLE_LIBUNWIND_FALSE | ||||
| ENABLE_LIBUNWIND_TRUE | ||||
| ENABLE_LIBLTDL_FALSE | ||||
| @ -824,7 +824,7 @@ enable_dynamic_module | ||||
| enable_static_module | ||||
| enable_libltdl | ||||
| enable_libunwind | ||||
| enable_hclex | ||||
| enable_hclx | ||||
| ' | ||||
|       ac_precious_vars='build_alias | ||||
| host_alias | ||||
| @ -1482,7 +1482,7 @@ Optional Features: | ||||
|                           library(default. no) | ||||
|   --enable-libltdl        use libltdl(default. no) | ||||
|   --enable-libunwind      use libunwind(default. no) | ||||
|   --enable-hclex          build libhclex(default. no) | ||||
|   --enable-hclx           build libhclx(default. no) | ||||
|  | ||||
| Optional Packages: | ||||
|   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes] | ||||
| @ -21256,20 +21256,20 @@ else | ||||
| fi | ||||
|  | ||||
|  | ||||
| # Check whether --enable-hclex was given. | ||||
| if test "${enable_hclex+set}" = set; then : | ||||
|   enableval=$enable_hclex; enable_hclex_is=$enableval | ||||
| # Check whether --enable-hclx was given. | ||||
| if test "${enable_hclx+set}" = set; then : | ||||
|   enableval=$enable_hclx; enable_hclx_is=$enableval | ||||
| else | ||||
|   enable_hclex_is=no | ||||
|   enable_hclx_is=no | ||||
|  | ||||
| fi | ||||
|  | ||||
|  if test "x${enable_hclex_is}" = "xyes"; then | ||||
|   ENABLE_HCLEX_TRUE= | ||||
|   ENABLE_HCLEX_FALSE='#' | ||||
|  if test "x${enable_hclx_is}" = "xyes"; then | ||||
|   ENABLE_HCLX_TRUE= | ||||
|   ENABLE_HCLX_FALSE='#' | ||||
| else | ||||
|   ENABLE_HCLEX_TRUE='#' | ||||
|   ENABLE_HCLEX_FALSE= | ||||
|   ENABLE_HCLX_TRUE='#' | ||||
|   ENABLE_HCLX_FALSE= | ||||
| fi | ||||
|  | ||||
|  | ||||
| @ -21479,8 +21479,8 @@ if test -z "${ENABLE_LIBUNWIND_TRUE}" && test -z "${ENABLE_LIBUNWIND_FALSE}"; th | ||||
|   as_fn_error $? "conditional \"ENABLE_LIBUNWIND\" was never defined. | ||||
| Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||||
| fi | ||||
| if test -z "${ENABLE_HCLEX_TRUE}" && test -z "${ENABLE_HCLEX_FALSE}"; then | ||||
|   as_fn_error $? "conditional \"ENABLE_HCLEX\" was never defined. | ||||
| if test -z "${ENABLE_HCLX_TRUE}" && test -z "${ENABLE_HCLX_FALSE}"; then | ||||
|   as_fn_error $? "conditional \"ENABLE_HCLX\" was never defined. | ||||
| Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||||
| fi | ||||
|  | ||||
|  | ||||
| @ -693,13 +693,13 @@ then | ||||
| fi | ||||
| AM_CONDITIONAL(ENABLE_LIBUNWIND, test "x${enable_libunwind_is}" = "xyes") | ||||
|  | ||||
| dnl ===== enable-hclex ===== | ||||
| AC_ARG_ENABLE([hclex], | ||||
| 	[AS_HELP_STRING([--enable-hclex],[build libhclex(default. no)])], | ||||
| 	enable_hclex_is=$enableval, | ||||
| 	enable_hclex_is=no | ||||
| dnl ===== enable-hclx ===== | ||||
| AC_ARG_ENABLE([hclx], | ||||
| 	[AS_HELP_STRING([--enable-hclx],[build libhclx(default. no)])], | ||||
| 	enable_hclx_is=$enableval, | ||||
| 	enable_hclx_is=no | ||||
| ) | ||||
| AM_CONDITIONAL(ENABLE_HCLEX, test "x${enable_hclex_is}" = "xyes") | ||||
| AM_CONDITIONAL(ENABLE_HCLX, test "x${enable_hclx_is}" = "xyes") | ||||
|  | ||||
| AC_SUBST(HCL_SIZEOF_WCHAR_T, $ac_cv_sizeof_wchar_t) | ||||
| AC_SUBST(HCL_SIZEOF_CHAR16_T, $ac_cv_sizeof_char16_t) | ||||
|  | ||||
| @ -101,7 +101,7 @@ libhcl_la_LIBADD += -lhcl-sys | ||||
| libhcl_la_DEPENDENCIES += $(abs_builddir)/../mod/libhcl-sys.la | ||||
| endif | ||||
|  | ||||
| if ENABLE_HCLEX | ||||
| if ENABLE_HCLX | ||||
| pkglib_LTLIBRARIES += libhclx.la | ||||
| pkginclude_HEADERS += hcl-c.h hcl-s.h hcl-tmr.h hcl-xutl.h hcl-json.h | ||||
| libhclx_la_SOURCES = \ | ||||
|  | ||||
| @ -1646,9 +1646,6 @@ static int print_bcs (hcl_fmtout_t* fmtout, const hcl_bch_t* ptr, hcl_oow_t len) | ||||
| 		ucslen = HCL_COUNTOF(ucsbuf); | ||||
| 		hcl_conv_bchars_to_uchars_with_cmgr(ptr, &bcslen, ucsbuf, &ucslen, hcl->cmgr, 1); | ||||
|  | ||||
| 		hcl->c->outarg.ptr = ucsbuf; | ||||
| 		hcl->c->outarg.len = ucslen; | ||||
|  | ||||
| 		ucsptr = ucsbuf; | ||||
| 		while (ucslen > 0) | ||||
| 		{ | ||||
| @ -1690,9 +1687,11 @@ static int print_bcs (hcl_fmtout_t* fmtout, const hcl_bch_t* ptr, hcl_oow_t len) | ||||
| static int print_ucs (hcl_fmtout_t* fmtout, const hcl_uch_t* ptr, hcl_oow_t len) | ||||
| { | ||||
| 	hcl_t* hcl = (hcl_t*)fmtout->ctx; | ||||
| 	hcl_uch_t* optr; | ||||
| 	 | ||||
|  | ||||
| #if defined(HCL_OOCH_IS_UCH) | ||||
| 	hcl_uch_t* optr; | ||||
|  | ||||
| 	optr = (hcl_uch_t*)ptr; | ||||
| 	while (len > 0) | ||||
| 	{ | ||||
| @ -1707,17 +1706,41 @@ static int print_ucs (hcl_fmtout_t* fmtout, const hcl_uch_t* ptr, hcl_oow_t len) | ||||
| 		len -= hcl->c->outarg.xlen; | ||||
| 	} | ||||
| #else | ||||
| 	/* TODO: */ | ||||
| 	hcl_oow_t bcslen, ucslen; | ||||
| 	hcl_ooch_t bcsbuf[64], * bcsptr; | ||||
|  | ||||
| 	while (len > 0) | ||||
| 	{ | ||||
| 		ucslen = len; | ||||
| 		bcslen = HCL_COUNTOF(bcsbuf); | ||||
| 		hcl_conv_uchars_to_bchars_with_cmgr(ptr, &ucslen, bcsbuf, &bcslen, hcl->cmgr); | ||||
|  | ||||
| 		bcsptr = bcsbuf; | ||||
| 		while (ucslen > 0) | ||||
| 		{ | ||||
| 			hcl->c->outarg.ptr = bcsptr; | ||||
| 			hcl->c->outarg.len = bcslen; | ||||
|  | ||||
| 			if (hcl->c->printer(hcl, HCL_IO_WRITE, &hcl->c->outarg) <= -1) return -1; | ||||
| 			if (hcl->c->outarg.xlen <= 0) return 0; /* end of stream. but not failure */ | ||||
|  | ||||
| 			HCL_ASSERT (hcl, hcl->c->outarg.xlen <= len); | ||||
| 			bcsptr += hcl->c->outarg.xlen; | ||||
| 			bcslen -= hcl->c->outarg.xlen; | ||||
| 		} | ||||
|  | ||||
| 		ptr += ucslen; | ||||
| 		len -= ucslen; | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| 	return 1; /* success */ | ||||
| } | ||||
|  | ||||
|  | ||||
| hcl_ooi_t hcl_prbfmt (hcl_t* hcl, const hcl_bch_t* fmt, ...) | ||||
| hcl_ooi_t hcl_prbfmtv (hcl_t* hcl, const hcl_bch_t* fmt, va_list ap) | ||||
| { | ||||
| 	int x; | ||||
| 	va_list ap; | ||||
| 	hcl_fmtout_t fo; | ||||
|  | ||||
| 	HCL_MEMSET (&fo, 0, HCL_SIZEOF(fo)); | ||||
| @ -1725,21 +1748,31 @@ hcl_ooi_t hcl_prbfmt (hcl_t* hcl, const hcl_bch_t* fmt, ...) | ||||
| 	fo.fmt_str = fmt; | ||||
| 	fo.ctx = hcl; | ||||
| 	fo.mask = 0; | ||||
| 	fo.putbcs = log_bcs; | ||||
| 	fo.putucs = log_ucs; | ||||
| 	fo.putbcs = print_bcs; | ||||
| 	fo.putucs = print_ucs; | ||||
| 	fo.putobj = hcl_fmt_object_; | ||||
|  | ||||
| 	va_start (ap, fmt); | ||||
| 	x = fmt_outv(&fo, ap); | ||||
| 	va_end (ap); | ||||
|  | ||||
| 	return (x <= -1)? -1: fo.count; | ||||
| } | ||||
|  | ||||
| hcl_ooi_t hcl_prufmt (hcl_t* hcl, const hcl_uch_t* fmt, ...) | ||||
| hcl_ooi_t hcl_prbfmt (hcl_t* hcl, const hcl_bch_t* fmt, ...) | ||||
| { | ||||
| 	hcl_ooi_t x; | ||||
| 	va_list ap; | ||||
|  | ||||
| 	va_start (ap, fmt); | ||||
| 	x = hcl_prbfmtv(hcl, fmt, ap); | ||||
| 	va_end (ap); | ||||
|  | ||||
| 	return x; | ||||
| } | ||||
|  | ||||
| hcl_ooi_t hcl_prufmtv (hcl_t* hcl, const hcl_uch_t* fmt, va_list ap) | ||||
| { | ||||
| 	int x; | ||||
| 	va_list ap; | ||||
| 	 | ||||
| 	hcl_fmtout_t fo; | ||||
|  | ||||
| 	HCL_MEMSET (&fo, 0, HCL_SIZEOF(fo)); | ||||
| @ -1747,17 +1780,26 @@ hcl_ooi_t hcl_prufmt (hcl_t* hcl, const hcl_uch_t* fmt, ...) | ||||
| 	fo.fmt_str = fmt; | ||||
| 	fo.ctx = hcl; | ||||
| 	fo.mask = 0; | ||||
| 	fo.putbcs = log_bcs; | ||||
| 	fo.putucs = log_ucs; | ||||
| 	fo.putbcs = print_bcs; | ||||
| 	fo.putucs = print_ucs; | ||||
| 	fo.putobj = hcl_fmt_object_; | ||||
|  | ||||
| 	va_start (ap, fmt); | ||||
| 	x = fmt_outv(&fo, ap); | ||||
| 	va_end (ap); | ||||
|  | ||||
| 	return (x <= -1)? -1: fo.count; | ||||
| } | ||||
|  | ||||
| hcl_ooi_t hcl_prufmt (hcl_t* hcl, const hcl_uch_t* fmt, ...) | ||||
| { | ||||
| 	hcl_ooi_t x; | ||||
| 	va_list ap; | ||||
|  | ||||
| 	va_start (ap, fmt); | ||||
| 	x = hcl_prufmtv(hcl, fmt, ap); | ||||
| 	va_end (ap); | ||||
|  | ||||
| 	return x; | ||||
| } | ||||
|  | ||||
| /* -------------------------------------------------------------------------- | ||||
|  * SUPPORT FOR FORMATTED OUTPUT TO BE USED BY BUILTIN PRIMITIVE FUNCTIONS | ||||
|  | ||||
| @ -1825,12 +1825,31 @@ HCL_EXPORT hcl_ooi_t hcl_prbfmt ( | ||||
| 	... | ||||
| ); | ||||
|  | ||||
| HCL_EXPORT hcl_ooi_t hcl_prbfmtv ( | ||||
| 	hcl_t*           hcl, | ||||
| 	const hcl_bch_t* fmt, | ||||
| 	va_list          ap | ||||
| ); | ||||
|  | ||||
| HCL_EXPORT hcl_ooi_t hcl_prufmt ( | ||||
| 	hcl_t*           hcl, | ||||
| 	const hcl_uch_t* fmt, | ||||
| 	... | ||||
| ); | ||||
|  | ||||
| HCL_EXPORT hcl_ooi_t hcl_prufmtv ( | ||||
| 	hcl_t*           hcl, | ||||
| 	const hcl_uch_t* fmt, | ||||
| 	va_list          ap | ||||
| ); | ||||
|  | ||||
| #if defined(HCL_OOCH_IS_UCH) | ||||
| #	define hcl_proofmt hcl_prufmt | ||||
| #	define hcl_proofmtv hcl_prufmtv | ||||
| #else | ||||
| #	define hcl_proofmt hcl_prbfmt | ||||
| #	define hcl_proofmtv hcl_prbfmtv | ||||
| #endif | ||||
| /* ========================================================================= | ||||
|  * OBJECT MANAGEMENT | ||||
|  * ========================================================================= */ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user