cleaned up code a little
- deleted the QSE_AWK_ARGSTOMAIN option. - enhanced qse_awk_call() a little
This commit is contained in:
		| @ -1465,7 +1465,14 @@ int qse_awk_rtx_call ( | ||||
| 	struct pafv pafv = { args, nargs }; | ||||
| 	qse_awk_nde_call_t call; | ||||
|  | ||||
| 	rtx->exit_level = EXIT_NONE; | ||||
| 	if (rtx->exit_level >= EXIT_NEXT)  | ||||
| 	{ | ||||
| 		/* cannot call the function again when exit() is called | ||||
| 		 * in an AWK program or qse_awk_rtx_stop() is invoked */ | ||||
| 		qse_awk_rtx_seterror (rtx, QSE_AWK_ENOPER, 0, QSE_NULL, 0); | ||||
| 		return -1; | ||||
| 	} | ||||
| 	/*rtx->exit_level = EXIT_NONE;*/ | ||||
|  | ||||
| 	/* forge a fake node containing a function call */ | ||||
| 	QSE_MEMSET (&call, 0, QSE_SIZEOF(call)); | ||||
| @ -2292,7 +2299,9 @@ static int run_return (qse_awk_rtx_t* run, qse_awk_nde_return_t* nde) | ||||
|  | ||||
| 		qse_awk_rtx_refdownval (run, STACK_RETVAL(run)); | ||||
| 		STACK_RETVAL(run) = val; | ||||
| 		qse_awk_rtx_refupval (run, val); /* see eval_call for the trick */ | ||||
|  | ||||
| 		/* NOTE: see eval_call() for the trick */ | ||||
| 		qse_awk_rtx_refupval (run, val);  | ||||
| 	} | ||||
| 	 | ||||
| 	run->exit_level = EXIT_FUNCTION; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user