minor touch-up
This commit is contained in:
		| @ -143,9 +143,9 @@ static int fnc_call (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 		/* TODO: this mutex protection is wrong in that if a call to hawk_querymodulewithname() | ||||
| 		 *       is made outside this hawk module, the call is not protected under | ||||
| 		 *       the same mutex. FIX THIS */ | ||||
| 		hawk_mtx_lock (&md->mq_mtx, HAWK_NULL); | ||||
| 		hawk_mtx_lock(&md->mq_mtx, HAWK_NULL); | ||||
| 		fncp = hawk_rtx_valtofnc(rtx, hawk_rtx_getarg(rtx, 0), &fnc); | ||||
| 		hawk_mtx_unlock (&md->mq_mtx); | ||||
| 		hawk_mtx_unlock(&md->mq_mtx); | ||||
| 		if (!fncp) return -1; /* hard failure */ | ||||
|  | ||||
| 		if (f_nargs < fnc.spec.arg.min  || f_nargs > fnc.spec.arg.max) | ||||
| @ -176,7 +176,7 @@ static int fnc_call (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	v = hawk_rtx_evalcall(rtx, &call, fun, push_args_from_stack, (void*)&pafs, HAWK_NULL, HAWK_NULL); | ||||
| 	if (HAWK_UNLIKELY(!v)) return -1; /* hard failure */ | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, v); | ||||
| 	hawk_rtx_setretval(rtx, v); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -211,16 +211,16 @@ static int fnc_function_exists (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 					md = (mod_data_t*)fi->mod->ctx; | ||||
| 					/* hawk_query_module_with_name() may update some shared data under | ||||
| 					 * the hawk object. use a mutex for shared data safety */ | ||||
| 					hawk_mtx_lock (&md->mq_mtx, HAWK_NULL); | ||||
| 					hawk_mtx_lock(&md->mq_mtx, HAWK_NULL); | ||||
| 					rx = (hawk_querymodulewithname(hawk_rtx_gethawk(rtx), name.ptr, &sym) != HAWK_NULL); | ||||
| 					hawk_mtx_unlock (&md->mq_mtx); | ||||
| 					hawk_mtx_unlock(&md->mq_mtx); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		hawk_rtx_freevaloocstr (rtx, a0, name.ptr); | ||||
| 		hawk_rtx_freevaloocstr(rtx, a0, name.ptr); | ||||
| 	} | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, rx)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, rx)); | ||||
| 	return 0; | ||||
| } | ||||
| /* -------------------------------------------------------------------------- */ | ||||
| @ -241,10 +241,10 @@ static int fnc_cmgr_exists (hawk_rtx_t* rtx, const hawk_fnc_info_t*  fi) | ||||
| 	else | ||||
| 	{ | ||||
| 		rx = (hawk_get_cmgr_by_name(str) != HAWK_NULL); | ||||
| 		hawk_rtx_freevaloocstr (rtx, a0, str); | ||||
| 		hawk_rtx_freevaloocstr(rtx, a0, str); | ||||
| 	} | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, rx)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, rx)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -266,8 +266,8 @@ static int fnc_gc (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	gen = hawk_rtx_gc(rtx, gen); | ||||
| #endif | ||||
|  | ||||
| 	HAWK_ASSERT (HAWK_IN_INT_RANGE(gen)); | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, gen)); | ||||
| 	HAWK_ASSERT(HAWK_IN_INT_RANGE(gen)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, gen)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -282,8 +282,8 @@ static int fnc_gc_get_pressure (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
|  | ||||
| 	pressure = rtx->gc.pressure[gen]; | ||||
|  | ||||
| 	HAWK_ASSERT (HAWK_IN_INT_RANGE(pressure)); | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, pressure)); | ||||
| 	HAWK_ASSERT(HAWK_IN_INT_RANGE(pressure)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, pressure)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -298,8 +298,8 @@ static int fnc_gc_get_threshold (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
|  | ||||
| 	threshold = rtx->gc.threshold[gen]; | ||||
|  | ||||
| 	HAWK_ASSERT (HAWK_IN_INT_RANGE(threshold)); | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, threshold)); | ||||
| 	HAWK_ASSERT(HAWK_IN_INT_RANGE(threshold)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, threshold)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -324,8 +324,8 @@ static int fnc_gc_set_threshold (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 		threshold = rtx->gc.threshold[gen]; /* no update. but retrieve the existing value */ | ||||
| 	} | ||||
|  | ||||
| 	HAWK_ASSERT (HAWK_IN_INT_RANGE(threshold)); | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, threshold)); | ||||
| 	HAWK_ASSERT(HAWK_IN_INT_RANGE(threshold)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, threshold)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -333,7 +333,7 @@ static int fnc_gcrefs (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| { | ||||
| 	hawk_val_t* a0; | ||||
| 	a0 = hawk_rtx_getarg(rtx, 0); | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, HAWK_VTR_IS_POINTER(a0)? a0->v_refs: 0)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, HAWK_VTR_IS_POINTER(a0)? a0->v_refs: 0)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -353,12 +353,12 @@ static int fnc_array (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	{ | ||||
| 		if (HAWK_UNLIKELY(hawk_rtx_setarrvalfld(rtx, tmp, i + 1, hawk_rtx_getarg(rtx, i)) == HAWK_NULL)) | ||||
| 		{ | ||||
| 			hawk_rtx_freeval (rtx, tmp, 0); | ||||
| 			hawk_rtx_freeval(rtx, tmp, 0); | ||||
| 			return -1; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, tmp); | ||||
| 	hawk_rtx_setretval(rtx, tmp); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -387,25 +387,25 @@ static int fnc_map (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 			out.type = HAWK_RTX_VALTOSTR_CPLDUP; | ||||
| 			if (hawk_rtx_valtostr(rtx, v, &out) <= -1) | ||||
| 			{ | ||||
| 				hawk_rtx_freeval (rtx, tmp, 0); | ||||
| 				hawk_rtx_freeval(rtx, tmp, 0); | ||||
| 				return -1; | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		v = (++i >= nargs)? hawk_val_nil: hawk_rtx_getarg(rtx, i); | ||||
| 		v = hawk_rtx_setmapvalfld(rtx, tmp, out.u.cpldup.ptr, out.u.cpldup.len, v); | ||||
| 		if (out.u.cpldup.ptr != idxbuf) hawk_rtx_freemem (rtx, out.u.cpldup.ptr); | ||||
| 		if (out.u.cpldup.ptr != idxbuf) hawk_rtx_freemem(rtx, out.u.cpldup.ptr); | ||||
|  | ||||
| 		if (HAWK_UNLIKELY(!v)) | ||||
| 		{ | ||||
| 			hawk_rtx_freeval (rtx, tmp, 0); | ||||
| 			hawk_rtx_freeval(rtx, tmp, 0); | ||||
| 			return -1; | ||||
| 		} | ||||
|  | ||||
| 		/* if (i >= nargs) break;  this check is probably not needed. another i++ in the 3rd segment of the for statement should be mostly harmless. potential overflow issue is not a real issue as the number of arguments can be so high. */ | ||||
| 	} | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, tmp); | ||||
| 	hawk_rtx_setretval(rtx, tmp); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -421,7 +421,7 @@ static int fnc_isnil (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	r = hawk_rtx_makeintval(rtx, HAWK_RTX_GETVALTYPE(rtx, a0) == HAWK_VAL_NIL); | ||||
| 	if (HAWK_UNLIKELY(!r)) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, r); | ||||
| 	hawk_rtx_setretval(rtx, r); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -435,7 +435,7 @@ static int fnc_ismap (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	r = hawk_rtx_makeintval(rtx, HAWK_RTX_GETVALTYPE(rtx, a0) == HAWK_VAL_MAP); | ||||
| 	if (HAWK_UNLIKELY(!r)) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, r); | ||||
| 	hawk_rtx_setretval(rtx, r); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -449,7 +449,7 @@ static int fnc_isarr (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	r = hawk_rtx_makeintval(rtx, HAWK_RTX_GETVALTYPE(rtx, a0) == HAWK_VAL_ARR); | ||||
| 	if (HAWK_UNLIKELY(!r)) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, r); | ||||
| 	hawk_rtx_setretval(rtx, r); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -461,7 +461,7 @@ static int fnc_modlibdirs (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	r = hawk_rtx_makestrvalwithoocstr(rtx, (hawk->opt.mod[0].len > 0)? (const hawk_ooch_t*)hawk->opt.mod[0].ptr: (const hawk_ooch_t*)HAWK_T(HAWK_DEFAULT_MODLIBDIRS)); | ||||
| 	if (HAWK_UNLIKELY(!r)) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, r); | ||||
| 	hawk_rtx_setretval(rtx, r); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -477,7 +477,7 @@ static int fnc_type (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	r = hawk_rtx_makeintval(rtx, _type); | ||||
| 	if (HAWK_UNLIKELY(!r)) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, r); | ||||
| 	hawk_rtx_setretval(rtx, r); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -493,7 +493,7 @@ static int fnc_typename (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	r = hawk_rtx_makestrvalwithoocstr(rtx, name); | ||||
| 	if (HAWK_UNLIKELY(!r)) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, r); | ||||
| 	hawk_rtx_setretval(rtx, r); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -508,7 +508,7 @@ static int fnc_hash (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	a0 = hawk_rtx_getarg(rtx, 0); | ||||
| 	v = hawk_rtx_hashval(rtx, a0); /* ignore v <= -1 which is an error */ | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, v)); | ||||
| 	hawk_rtx_setretval(rtx, hawk_rtx_makeintval(rtx, v)); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -581,8 +581,8 @@ static void unload (hawk_mod_t* mod, hawk_t* hawk) | ||||
| { | ||||
| 	mod_data_t* md = (mod_data_t*)mod->ctx; | ||||
|  | ||||
| 	hawk_mtx_fini (&md->mq_mtx); | ||||
| 	hawk_freemem (hawk, md); | ||||
| 	hawk_mtx_fini(&md->mq_mtx); | ||||
| 	hawk_freemem(hawk, md); | ||||
| } | ||||
|  | ||||
| int hawk_mod_hawk (hawk_mod_t* mod, hawk_t* hawk) | ||||
| @ -592,7 +592,7 @@ int hawk_mod_hawk (hawk_mod_t* mod, hawk_t* hawk) | ||||
| 	md = hawk_allocmem(hawk, HAWK_SIZEOF(*md)); | ||||
| 	if (HAWK_UNLIKELY(!md)) return -1; | ||||
|  | ||||
| 	hawk_mtx_init (&md->mq_mtx, hawk_getgem(hawk)); | ||||
| 	hawk_mtx_init(&md->mq_mtx, hawk_getgem(hawk)); | ||||
|  | ||||
| 	mod->query = query; | ||||
| 	mod->unload = unload; | ||||
|  | ||||
| @ -7714,7 +7714,6 @@ done: | ||||
| 	return &mdp->mod; | ||||
| } | ||||
|  | ||||
|  | ||||
| hawk_mod_t* hawk_querymodulewithname (hawk_t* hawk, hawk_ooch_t* name, hawk_mod_sym_t* sym) | ||||
| { | ||||
| 	const hawk_ooch_t* dc; | ||||
| @ -7724,7 +7723,6 @@ hawk_mod_t* hawk_querymodulewithname (hawk_t* hawk, hawk_ooch_t* name, hawk_mod_ | ||||
| 	hawk_ooch_t tmp; | ||||
|  | ||||
| /*TOOD: non-module builtin function? fnc? */ | ||||
|  | ||||
| 	name_len = hawk_count_oocstr(name); | ||||
| 	dc = hawk_find_oochars_in_oochars(name, name_len, HAWK_T("::"), 2, 0); | ||||
| 	if (!dc) | ||||
|  | ||||
							
								
								
									
										112
									
								
								lib/run.c
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								lib/run.c
									
									
									
									
									
								
							| @ -338,13 +338,13 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t | ||||
| 				if (str.ptr[i] == '\0') | ||||
| 				{ | ||||
| 					/* '\0' is included in the value */ | ||||
| 					hawk_rtx_freemem (rtx, str.ptr); | ||||
| 					hawk_rtx_freemem(rtx, str.ptr); | ||||
| 					hawk_rtx_seterrnum (rtx, HAWK_NULL, HAWK_ECONVFMTCHR); | ||||
| 					return -1; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (rtx->gbl.convfmt.ptr) hawk_rtx_freemem (rtx, rtx->gbl.convfmt.ptr); | ||||
| 			if (rtx->gbl.convfmt.ptr) hawk_rtx_freemem(rtx, rtx->gbl.convfmt.ptr); | ||||
| 			rtx->gbl.convfmt.ptr = str.ptr; | ||||
| 			rtx->gbl.convfmt.len = str.len; | ||||
| 			break; | ||||
| @ -503,13 +503,13 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t | ||||
| 				if (str.ptr[i] == '\0') | ||||
| 				{ | ||||
| 					/* '\0' is included in the value */ | ||||
| 					hawk_rtx_freemem (rtx, str.ptr); | ||||
| 					hawk_rtx_freemem(rtx, str.ptr); | ||||
| 					hawk_rtx_seterrnum (rtx, HAWK_NULL, HAWK_ECONVFMTCHR); | ||||
| 					return -1; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (rtx->gbl.ofmt.ptr) hawk_rtx_freemem (rtx, rtx->gbl.ofmt.ptr); | ||||
| 			if (rtx->gbl.ofmt.ptr) hawk_rtx_freemem(rtx, rtx->gbl.ofmt.ptr); | ||||
| 			rtx->gbl.ofmt.ptr = str.ptr; | ||||
| 			rtx->gbl.ofmt.len = str.len; | ||||
| 		} | ||||
| @ -521,7 +521,7 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t | ||||
| 			str.ptr = hawk_rtx_valtooocstrdup(rtx, val, &str.len); | ||||
| 			if (HAWK_UNLIKELY(!str.ptr)) return -1; | ||||
|  | ||||
| 			if (rtx->gbl.ofs.ptr) hawk_rtx_freemem (rtx, rtx->gbl.ofs.ptr); | ||||
| 			if (rtx->gbl.ofs.ptr) hawk_rtx_freemem(rtx, rtx->gbl.ofs.ptr); | ||||
| 			rtx->gbl.ofs.ptr = str.ptr; | ||||
| 			rtx->gbl.ofs.len = str.len; | ||||
|  | ||||
| @ -535,7 +535,7 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t | ||||
| 			str.ptr = hawk_rtx_valtooocstrdup(rtx, val, &str.len); | ||||
| 			if (HAWK_UNLIKELY(!str.ptr)) return -1; | ||||
|  | ||||
| 			if (rtx->gbl.ors.ptr) hawk_rtx_freemem (rtx, rtx->gbl.ors.ptr); | ||||
| 			if (rtx->gbl.ors.ptr) hawk_rtx_freemem(rtx, rtx->gbl.ors.ptr); | ||||
| 			rtx->gbl.ors.ptr = str.ptr; | ||||
| 			rtx->gbl.ors.len = str.len; | ||||
|  | ||||
| @ -619,7 +619,7 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t | ||||
| 			str.ptr = hawk_rtx_valtooocstrdup(rtx, val, &str.len); | ||||
| 			if (HAWK_UNLIKELY(!str.ptr)) return -1; | ||||
|  | ||||
| 			if (rtx->gbl.subsep.ptr) hawk_rtx_freemem (rtx, rtx->gbl.subsep.ptr); | ||||
| 			if (rtx->gbl.subsep.ptr) hawk_rtx_freemem(rtx, rtx->gbl.subsep.ptr); | ||||
| 			rtx->gbl.subsep.ptr = str.ptr; | ||||
| 			rtx->gbl.subsep.len = str.len; | ||||
|  | ||||
| @ -1142,9 +1142,9 @@ static int init_rtx (hawk_rtx_t* rtx, hawk_t* hawk, hawk_rio_cbs_t* rio) | ||||
| 	return 0; | ||||
|  | ||||
| oops_14: | ||||
| 	hawk_rtx_freemem (rtx, rtx->formatmbs.tmp.ptr); | ||||
| 	hawk_rtx_freemem(rtx, rtx->formatmbs.tmp.ptr); | ||||
| oops_13: | ||||
| 	hawk_rtx_freemem (rtx, rtx->format.tmp.ptr); | ||||
| 	hawk_rtx_freemem(rtx, rtx->format.tmp.ptr); | ||||
| oops_12: | ||||
| 	hawk_htb_close (rtx->named); | ||||
| oops_11: | ||||
| @ -1168,7 +1168,7 @@ oops_3: | ||||
| oops_2: | ||||
| 	hawk_ooecs_fini (&rtx->inrec.line); | ||||
| oops_1: | ||||
| 	hawk_rtx_freemem (rtx, rtx->stack); | ||||
| 	hawk_rtx_freemem(rtx, rtx->stack); | ||||
| oops_0: | ||||
| 	return -1; | ||||
| } | ||||
| @ -1181,13 +1181,13 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 		{ | ||||
| 			hawk_rtx_refdownval(rtx, rtx->forin.ptr[--rtx->forin.size]); | ||||
| 		} | ||||
| 		hawk_rtx_freemem (rtx, rtx->forin.ptr); | ||||
| 		hawk_rtx_freemem(rtx, rtx->forin.ptr); | ||||
| 		rtx->forin.ptr = HAWK_NULL; | ||||
| 		rtx->forin.capa = 0; | ||||
| 	} | ||||
|  | ||||
| 	if (rtx->pattern_range_state) | ||||
| 		hawk_rtx_freemem (rtx, rtx->pattern_range_state); | ||||
| 		hawk_rtx_freemem(rtx, rtx->pattern_range_state); | ||||
|  | ||||
| 	/* close all pending io's */ | ||||
| 	/* TODO: what if this operation fails? */ | ||||
| @ -1210,7 +1210,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	if (rtx->gbl.convfmt.ptr != HAWK_NULL && | ||||
| 	    rtx->gbl.convfmt.ptr != DEFAULT_CONVFMT) | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, rtx->gbl.convfmt.ptr); | ||||
| 		hawk_rtx_freemem(rtx, rtx->gbl.convfmt.ptr); | ||||
| 		rtx->gbl.convfmt.ptr = HAWK_NULL; | ||||
| 		rtx->gbl.convfmt.len = 0; | ||||
| 	} | ||||
| @ -1218,7 +1218,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	if (rtx->gbl.ofmt.ptr != HAWK_NULL && | ||||
| 	    rtx->gbl.ofmt.ptr != DEFAULT_OFMT) | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, rtx->gbl.ofmt.ptr); | ||||
| 		hawk_rtx_freemem(rtx, rtx->gbl.ofmt.ptr); | ||||
| 		rtx->gbl.ofmt.ptr = HAWK_NULL; | ||||
| 		rtx->gbl.ofmt.len = 0; | ||||
| 	} | ||||
| @ -1226,7 +1226,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	if (rtx->gbl.ofs.ptr != HAWK_NULL && | ||||
| 	    rtx->gbl.ofs.ptr != DEFAULT_OFS) | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, rtx->gbl.ofs.ptr); | ||||
| 		hawk_rtx_freemem(rtx, rtx->gbl.ofs.ptr); | ||||
| 		rtx->gbl.ofs.ptr = HAWK_NULL; | ||||
| 		rtx->gbl.ofs.len = 0; | ||||
| 	} | ||||
| @ -1235,7 +1235,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	    rtx->gbl.ors.ptr != DEFAULT_ORS && | ||||
| 	    rtx->gbl.ors.ptr != DEFAULT_ORS_CRLF) | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, rtx->gbl.ors.ptr); | ||||
| 		hawk_rtx_freemem(rtx, rtx->gbl.ors.ptr); | ||||
| 		rtx->gbl.ors.ptr = HAWK_NULL; | ||||
| 		rtx->gbl.ors.len = 0; | ||||
| 	} | ||||
| @ -1243,7 +1243,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	if (rtx->gbl.subsep.ptr != HAWK_NULL && | ||||
| 	    rtx->gbl.subsep.ptr != DEFAULT_SUBSEP) | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, rtx->gbl.subsep.ptr); | ||||
| 		hawk_rtx_freemem(rtx, rtx->gbl.subsep.ptr); | ||||
| 		rtx->gbl.subsep.ptr = HAWK_NULL; | ||||
| 		rtx->gbl.subsep.len = 0; | ||||
| 	} | ||||
| @ -1251,13 +1251,13 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	hawk_ooecs_fini (&rtx->fnc.oout); | ||||
| 	hawk_becs_fini (&rtx->fnc.bout); | ||||
|  | ||||
| 	hawk_rtx_freemem (rtx, rtx->formatmbs.tmp.ptr); | ||||
| 	hawk_rtx_freemem(rtx, rtx->formatmbs.tmp.ptr); | ||||
| 	rtx->formatmbs.tmp.ptr = HAWK_NULL; | ||||
| 	rtx->formatmbs.tmp.len = 0; | ||||
| 	hawk_becs_fini (&rtx->formatmbs.fmt); | ||||
| 	hawk_becs_fini (&rtx->formatmbs.out); | ||||
|  | ||||
| 	hawk_rtx_freemem (rtx, rtx->format.tmp.ptr); | ||||
| 	hawk_rtx_freemem(rtx, rtx->format.tmp.ptr); | ||||
| 	rtx->format.tmp.ptr = HAWK_NULL; | ||||
| 	rtx->format.tmp.len = 0; | ||||
| 	hawk_ooecs_fini (&rtx->format.fmt); | ||||
| @ -1269,7 +1269,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	hawk_rtx_clrrec (rtx, 0); | ||||
| 	if (rtx->inrec.flds) | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, rtx->inrec.flds); | ||||
| 		hawk_rtx_freemem(rtx, rtx->inrec.flds); | ||||
| 		rtx->inrec.flds = HAWK_NULL; | ||||
| 		rtx->inrec.maxflds = 0; | ||||
| 	} | ||||
| @ -1285,7 +1285,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals) | ||||
| 	{ | ||||
| 		HAWK_ASSERT (rtx->stack_top == 0); | ||||
|  | ||||
| 		hawk_rtx_freemem (rtx, rtx->stack); | ||||
| 		hawk_rtx_freemem(rtx, rtx->stack); | ||||
| 		rtx->stack = HAWK_NULL; | ||||
| 		rtx->stack_top = 0; | ||||
| 		rtx->stack_base = 0; | ||||
| @ -1729,7 +1729,7 @@ hawk_fun_t* hawk_rtx_findfunwithbcstr (hawk_rtx_t* rtx, const hawk_bch_t* name) | ||||
| 	wcs.ptr = hawk_rtx_dupbtoucstr(rtx, name, &wcs.len, 0); | ||||
| 	if (!wcs.ptr) return HAWK_NULL; | ||||
| 	fun = find_fun(rtx, wcs.ptr); | ||||
| 	hawk_rtx_freemem (rtx, wcs.ptr); | ||||
| 	hawk_rtx_freemem(rtx, wcs.ptr); | ||||
| 	return fun; | ||||
| #endif | ||||
| } | ||||
| @ -1742,7 +1742,7 @@ hawk_fun_t* hawk_rtx_findfunwithucstr (hawk_rtx_t* rtx, const hawk_uch_t* name) | ||||
| 	mbs.ptr = hawk_rtx_duputobcstr(rtx, name, &mbs.len); | ||||
| 	if (!mbs.ptr) return HAWK_NULL; | ||||
| 	fun = find_fun(rtx, mbs.ptr); | ||||
| 	hawk_rtx_freemem (rtx, mbs.ptr); | ||||
| 	hawk_rtx_freemem(rtx, mbs.ptr); | ||||
| 	return fun; | ||||
| #else | ||||
| 	return find_fun(rtx, name); | ||||
| @ -1878,7 +1878,7 @@ oops: | ||||
| 	{ | ||||
| 		hawk_rtx_refdownval(rtx, v[--i]); | ||||
| 	} | ||||
| 	hawk_rtx_freemem (rtx, v); | ||||
| 	hawk_rtx_freemem(rtx, v); | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| @ -1909,7 +1909,7 @@ oops: | ||||
| 	{ | ||||
| 		hawk_rtx_refdownval(rtx, v[--i]); | ||||
| 	} | ||||
| 	hawk_rtx_freemem (rtx, v); | ||||
| 	hawk_rtx_freemem(rtx, v); | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| @ -1940,7 +1940,7 @@ oops: | ||||
| 	{ | ||||
| 		hawk_rtx_refdownval(rtx, v[--i]); | ||||
| 	} | ||||
| 	hawk_rtx_freemem (rtx, v); | ||||
| 	hawk_rtx_freemem(rtx, v); | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| @ -1971,7 +1971,7 @@ oops: | ||||
| 	{ | ||||
| 		hawk_rtx_refdownval(rtx, v[--i]); | ||||
| 	} | ||||
| 	hawk_rtx_freemem (rtx, v); | ||||
| 	hawk_rtx_freemem(rtx, v); | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| @ -3123,7 +3123,7 @@ static HAWK_INLINE int delete_indexed (hawk_rtx_t* rtx, hawk_val_t* vv, hawk_nde | ||||
| 		{ | ||||
| 			case HAWK_VAL_MAP: | ||||
| 			val_map: | ||||
| 				if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 				if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 				len = HAWK_COUNTOF(idxbuf); | ||||
| 				str = idxnde_to_str(rtx, remidx, idxbuf, &len, &remidx, HAWK_NULL); | ||||
| 				if (HAWK_UNLIKELY(!str)) goto oops; | ||||
| @ -3169,11 +3169,11 @@ static HAWK_INLINE int delete_indexed (hawk_rtx_t* rtx, hawk_val_t* vv, hawk_nde | ||||
| 	else | ||||
| 		hawk_arr_uplete (arr, idx,  1); /* no reindexing by compaction. keep the place unset */ | ||||
|  | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	return 0; | ||||
|  | ||||
| oops: | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	return -1; | ||||
| } | ||||
|  | ||||
| @ -4128,7 +4128,7 @@ static hawk_val_t* do_assignment_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var, | ||||
| 				{ | ||||
| 					case HAWK_VAL_MAP: | ||||
| 					val_map: | ||||
| 						if (str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 						if (str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 						len = HAWK_COUNTOF(idxbuf); | ||||
| 						str = idxnde_to_str(rtx, remidx, idxbuf, &len, &remidx, HAWK_NULL); | ||||
| 						if (HAWK_UNLIKELY(!str)) goto oops; | ||||
| @ -4198,7 +4198,7 @@ static hawk_val_t* do_assignment_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var, | ||||
| 			} | ||||
|  | ||||
| 			hawk_rtx_refupval(rtx, val); | ||||
| 			if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 			if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 			return val; | ||||
| 		} | ||||
|  | ||||
| @ -4222,7 +4222,7 @@ static hawk_val_t* do_assignment_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var, | ||||
| 	} | ||||
|  | ||||
| oops: | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	return HAWK_NULL; | ||||
| } | ||||
|  | ||||
| @ -4280,7 +4280,7 @@ static hawk_val_t* do_assignment_positional (hawk_rtx_t* rtx, hawk_nde_pos_t* po | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		hawk_rtx_freemem (rtx, str.ptr); | ||||
| 		hawk_rtx_freemem(rtx, str.ptr); | ||||
| 	} | ||||
|  | ||||
| 	if (n <= -1) return HAWK_NULL; | ||||
| @ -4536,7 +4536,7 @@ rvalue_ok: | ||||
| 	ropv = eval_expression(rtx, right); | ||||
| 	if (HAWK_UNLIKELY(!ropv)) | ||||
| 	{ | ||||
| 		if (str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 		if (str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 		return HAWK_NULL; | ||||
| 	} | ||||
|  | ||||
| @ -4579,12 +4579,12 @@ rvalue_ok: | ||||
| 			goto oops; | ||||
| 	} | ||||
|  | ||||
| 	if (str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	hawk_rtx_refdownval(rtx, ropv); | ||||
| 	return res; | ||||
|  | ||||
| oops: | ||||
| 	if (str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	hawk_rtx_refdownval(rtx, ropv); | ||||
|  | ||||
| 	return HAWK_NULL; | ||||
| @ -5295,7 +5295,7 @@ static HAWK_INLINE int __cmp_str_mbs (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va | ||||
| 	mbsptr = hawk_rtx_duputobchars(rtx, ls->val.ptr, ls->val.len, &mbslen); | ||||
| 	if (!mbsptr) return CMP_ERROR; | ||||
| 	n = hawk_comp_bchars(mbsptr, mbslen, (const hawk_bch_t*)rs->val.ptr, rs->val.len, rtx->gbl.ignorecase); | ||||
| 	hawk_rtx_freemem (rtx, mbsptr); | ||||
| 	hawk_rtx_freemem(rtx, mbsptr); | ||||
| 	return n; | ||||
| #endif | ||||
| } | ||||
| @ -7332,7 +7332,7 @@ static hawk_val_t** get_reference_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var) | ||||
| 		{ | ||||
| 			case HAWK_VAL_MAP: | ||||
| 			val_map: | ||||
| 				if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 				if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 				len = HAWK_COUNTOF(idxbuf); | ||||
| 				str = idxnde_to_str(rtx, remidx, idxbuf, &len, &remidx, HAWK_NULL); | ||||
| 				if (HAWK_UNLIKELY(!str)) goto oops; | ||||
| @ -7385,12 +7385,12 @@ static hawk_val_t** get_reference_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var) | ||||
| 			hawk_rtx_refupval(rtx, HAWK_MAP_VPTR(pair)); */ | ||||
| 		} | ||||
|  | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 		return (hawk_val_t**)&HAWK_MAP_VPTR(pair); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 		if (idx >= HAWK_ARR_SIZE(arr) || !HAWK_ARR_SLOT(arr, idx)) | ||||
| 		{ | ||||
| 			/* if the value doesn't exist for the given index, insert a nil at that position to create a placeholder for the reference */ | ||||
| @ -7400,7 +7400,7 @@ static hawk_val_t** get_reference_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var) | ||||
| 	} | ||||
|  | ||||
| oops: | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	return HAWK_NULL; | ||||
| } | ||||
|  | ||||
| @ -7645,7 +7645,7 @@ static hawk_val_t* eval_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var) | ||||
| 		{ | ||||
| 			case HAWK_VAL_MAP: | ||||
| 			val_map: | ||||
| 				if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 				if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 				len = HAWK_COUNTOF(idxbuf); | ||||
| 				str = idxnde_to_str(rtx, remidx, idxbuf, &len, &remidx, HAWK_NULL); | ||||
| 				if (HAWK_UNLIKELY(!str)) goto oops; | ||||
| @ -7688,19 +7688,19 @@ static hawk_val_t* eval_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var) | ||||
| 	{ | ||||
| 		hawk_map_pair_t* pair; | ||||
| 		pair = hawk_map_search(map, str, len); | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 		return pair? (hawk_val_t*)HAWK_MAP_VPTR(pair): hawk_val_nil; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		/* return nil if the index is out of range or the element at the index is not set. | ||||
| 		 * no check for a negative index as it's guaranteed to be positive by idxnde_to_int() */ | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 		if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 		return (idx < HAWK_ARR_SIZE(arr) && HAWK_ARR_SLOT(arr, idx))? ((hawk_val_t*)HAWK_ARR_DPTR(arr, idx)): hawk_val_nil; | ||||
| 	} | ||||
|  | ||||
| oops: | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem (rtx, str); | ||||
| 	if (str && str != idxbuf) hawk_rtx_freemem(rtx, str); | ||||
| 	return HAWK_NULL; | ||||
|  | ||||
|  | ||||
| @ -8243,7 +8243,7 @@ hawk_ooch_t* hawk_rtx_format ( | ||||
| #define GROW(buf) do { \ | ||||
| 	if ((buf)->ptr) \ | ||||
| 	{ \ | ||||
| 		hawk_rtx_freemem (rtx, (buf)->ptr); \ | ||||
| 		hawk_rtx_freemem(rtx, (buf)->ptr); \ | ||||
| 		(buf)->ptr = HAWK_NULL; \ | ||||
| 	} \ | ||||
| 	(buf)->len += (buf)->inc; \ | ||||
| @ -8258,7 +8258,7 @@ hawk_ooch_t* hawk_rtx_format ( | ||||
| #define GROW_WITH_INC(buf,incv) do { \ | ||||
| 	if ((buf)->ptr) \ | ||||
| 	{ \ | ||||
| 		hawk_rtx_freemem (rtx, (buf)->ptr); \ | ||||
| 		hawk_rtx_freemem(rtx, (buf)->ptr); \ | ||||
| 		(buf)->ptr = HAWK_NULL; \ | ||||
| 	} \ | ||||
| 	(buf)->len += ((incv) > (buf)->inc)? (incv): (buf)->inc; \ | ||||
| @ -8992,7 +8992,7 @@ wp_mod_main: | ||||
| 					{ | ||||
| 						if (hawk_ooecs_ccat(out, HAWK_T(' ')) == (hawk_oow_t)-1) | ||||
| 						{ | ||||
| 							if (str_free) hawk_rtx_freemem (rtx, str_free); | ||||
| 							if (str_free) hawk_rtx_freemem(rtx, str_free); | ||||
| 							hawk_rtx_refdownval(rtx, v); | ||||
| 							return HAWK_NULL; | ||||
| 						} | ||||
| @ -9051,14 +9051,14 @@ wp_mod_main: | ||||
| 						if (hawk_ooecs_ccat(out, curc) == (hawk_oow_t)-1) | ||||
| 						{ | ||||
| 						s_fail: | ||||
| 							if (str_free) hawk_rtx_freemem (rtx, str_free); | ||||
| 							if (str_free) hawk_rtx_freemem(rtx, str_free); | ||||
| 							hawk_rtx_refdownval(rtx, v); | ||||
| 							return HAWK_NULL; | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				if (str_free) hawk_rtx_freemem (rtx, str_free); | ||||
| 				if (str_free) hawk_rtx_freemem(rtx, str_free); | ||||
|  | ||||
| 				if (flags & FLAG_MINUS) | ||||
| 				{ | ||||
| @ -9119,7 +9119,7 @@ hawk_bch_t* hawk_rtx_formatmbs ( | ||||
| #define GROW_MBSBUF(buf) do { \ | ||||
| 	if ((buf)->ptr) \ | ||||
| 	{ \ | ||||
| 		hawk_rtx_freemem (rtx, (buf)->ptr); \ | ||||
| 		hawk_rtx_freemem(rtx, (buf)->ptr); \ | ||||
| 		(buf)->ptr = HAWK_NULL; \ | ||||
| 	} \ | ||||
| 	(buf)->len += (buf)->inc; \ | ||||
| @ -9134,7 +9134,7 @@ hawk_bch_t* hawk_rtx_formatmbs ( | ||||
| #define GROW_MBSBUF_WITH_INC(buf,incv) do { \ | ||||
| 	if ((buf)->ptr) \ | ||||
| 	{ \ | ||||
| 		hawk_rtx_freemem (rtx, (buf)->ptr); \ | ||||
| 		hawk_rtx_freemem(rtx, (buf)->ptr); \ | ||||
| 		(buf)->ptr = HAWK_NULL; \ | ||||
| 	} \ | ||||
| 	(buf)->len += ((incv) > (buf)->inc)? (incv): (buf)->inc; \ | ||||
| @ -9876,7 +9876,7 @@ wp_mod_main: | ||||
| 					{ | ||||
| 						if (hawk_becs_ccat(out, HAWK_BT(' ')) == (hawk_oow_t)-1) | ||||
| 						{ | ||||
| 							if (str_free) hawk_rtx_freemem (rtx, str_free); | ||||
| 							if (str_free) hawk_rtx_freemem(rtx, str_free); | ||||
| 							hawk_rtx_refdownval(rtx, v); | ||||
| 							return HAWK_NULL; | ||||
| 						} | ||||
| @ -9934,14 +9934,14 @@ wp_mod_main: | ||||
| 						if (hawk_becs_ccat(out, curc) == (hawk_oow_t)-1) | ||||
| 						{ | ||||
| 						s_fail: | ||||
| 							if (str_free) hawk_rtx_freemem (rtx, str_free); | ||||
| 							if (str_free) hawk_rtx_freemem(rtx, str_free); | ||||
| 							hawk_rtx_refdownval(rtx, v); | ||||
| 							return HAWK_NULL; | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				if (str_free) hawk_rtx_freemem (rtx, str_free); | ||||
| 				if (str_free) hawk_rtx_freemem(rtx, str_free); | ||||
|  | ||||
| 				if (flags & FLAG_MINUS) | ||||
| 				{ | ||||
|  | ||||
| @ -38,7 +38,7 @@ static int fnc_errno (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	retv = hawk_rtx_makeintval (rtx, list->errnum); | ||||
| 	if (retv == HAWK_NULL) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, retv); | ||||
| 	hawk_rtx_setretval(rtx, retv); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -78,11 +78,14 @@ static int fnc_errstr (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	retv = hawk_rtx_makestrvalwithstr (rtx, errmsg[errnum]); | ||||
| 	if (retv == HAWK_NULL) return -1; | ||||
|  | ||||
| 	hawk_rtx_setretval (rtx, retv); | ||||
| 	hawk_rtx_setretval(rtx, retv); | ||||
| 	return 0; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * sed::file_to_file("s|root|ROOT|g", "/etc/passwd", "/tmp/x"); | ||||
|  */ | ||||
| static int fnc_file_to_file (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| { | ||||
| 	hawk_sed_t* sed = HAWK_NULL; | ||||
| @ -132,14 +135,18 @@ oops: | ||||
| 	while (i > 0) | ||||
| 	{ | ||||
| 		--i; | ||||
| 		hawk_rtx_freevaloocstr (rtx, a[i], xstr[i].ptr); | ||||
| 		hawk_rtx_freevaloocstr(rtx, a[i], xstr[i].ptr); | ||||
| 	} | ||||
|  | ||||
| 	if (sed) hawk_sed_close (sed); | ||||
| 	hawk_rtx_setretval (rtx, retv); | ||||
| 	hawk_rtx_setretval(rtx, retv); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * sed::str_to_str("s|ab|cd|g", "abcdefg", k); | ||||
|  * print k; | ||||
|  */ | ||||
| static int fnc_str_to_str (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| { | ||||
| 	hawk_sed_t* sed = HAWK_NULL; | ||||
| @ -149,7 +156,7 @@ static int fnc_str_to_str (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 	hawk_oocs_t outstr; | ||||
| 	int i = 0, ret = 0, n; | ||||
|  | ||||
| 	sed = hawk_sed_openstdwithmmgr (hawk_rtx_getmmgr(rtx), 0, hawk_rtx_getcmgr(rtx), HAWK_NULL); | ||||
| 	sed = hawk_sed_openstdwithmmgr(hawk_rtx_getmmgr(rtx), 0, hawk_rtx_getcmgr(rtx), HAWK_NULL); | ||||
| 	if (sed == HAWK_NULL) | ||||
| 	{ | ||||
| 		ret = -2; | ||||
| @ -174,14 +181,14 @@ static int fnc_str_to_str (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 		goto oops; | ||||
| 	} | ||||
|  | ||||
| 	if (hawk_sed_execstdxstr (sed, &xstr[1], &outstr, HAWK_NULL) <= -1) | ||||
| 	if (hawk_sed_execstdxstr(sed, &xstr[1], &outstr, HAWK_NULL) <= -1) | ||||
| 	{ | ||||
| 		ret = -4; | ||||
| 		goto oops; | ||||
| 	} | ||||
|  | ||||
| 	tmp = hawk_rtx_makestrvalwithoocs(rtx, &outstr); | ||||
| 	hawk_sed_freemem (sed, outstr.ptr); | ||||
| 	hawk_sed_freemem(sed, outstr.ptr); | ||||
|  | ||||
| 	if (!tmp) | ||||
| 	{ | ||||
| @ -189,9 +196,9 @@ static int fnc_str_to_str (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi) | ||||
| 		goto oops; | ||||
| 	} | ||||
|  | ||||
| 	hawk_rtx_refupval (rtx, tmp); | ||||
| 	hawk_rtx_refupval(rtx, tmp); | ||||
| 	n = hawk_rtx_setrefval(rtx, (hawk_val_ref_t*)hawk_rtx_getarg(rtx, 2), tmp); | ||||
| 	hawk_rtx_refdownval (rtx, tmp); | ||||
| 	hawk_rtx_refdownval(rtx, tmp); | ||||
| 	if (n <= -1) | ||||
| 	{ | ||||
| 		ret = -5; | ||||
| @ -205,11 +212,11 @@ oops: | ||||
| 	while (i > 0) | ||||
| 	{ | ||||
| 		--i; | ||||
| 		hawk_rtx_freevaloocstr (rtx, a[i], xstr[i].ptr); | ||||
| 		hawk_rtx_freevaloocstr(rtx, a[i], xstr[i].ptr); | ||||
| 	} | ||||
|  | ||||
| 	if (sed) hawk_sed_close (sed); | ||||
| 	hawk_rtx_setretval (rtx, retv); | ||||
| 	hawk_rtx_setretval(rtx, retv); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user