gpgscm: Make the compile-hook configurable.

* tests/gpgscm/scheme-private.h (struct scheme): Make field
'COMPILE_HOOK' optional.
* tests/gpgscm/scheme.c (opexe_0): Fix guard.
(scheme_init_custom_alloc): Conditionally initialize 'COMPILE_HOOK'.
* tests/gpgscm/scheme.h (USE_COMPILE_HOOK): Define to 1 by default.

Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
Justus Winter 2016-11-09 13:34:54 +01:00
parent 9ee184bc0a
commit 568cfcde45
3 changed files with 12 additions and 1 deletions

View File

@ -115,7 +115,9 @@ pointer FEED_TO; /* => */
pointer COLON_HOOK; /* *colon-hook* */
pointer ERROR_HOOK; /* *error-hook* */
pointer SHARP_HOOK; /* *sharp-hook* */
#if USE_COMPILE_HOOK
pointer COMPILE_HOOK; /* *compile-hook* */
#endif
pointer free_cell; /* pointer to top of free cells */
long fcells; /* # of free cells */

View File

@ -2688,7 +2688,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
sc->code = sc->value;
s_goto(sc,OP_EVAL);
#if 1
#if USE_COMPILE_HOOK
case OP_LAMBDA: /* lambda */
/* If the hook is defined, apply it to sc->code, otherwise
set sc->value fall through */
@ -4737,7 +4737,9 @@ int scheme_init_custom_alloc(scheme *sc, func_alloc malloc, func_dealloc free) {
sc->COLON_HOOK = mk_symbol(sc,"*colon-hook*");
sc->ERROR_HOOK = mk_symbol(sc, "*error-hook*");
sc->SHARP_HOOK = mk_symbol(sc, "*sharp-hook*");
#if USE_COMPILE_HOOK
sc->COMPILE_HOOK = mk_symbol(sc, "*compile-hook*");
#endif
return !sc->no_memory;
}

View File

@ -40,6 +40,7 @@ extern "C" {
# define USE_ERROR_HOOK 0
# define USE_TRACING 0
# define USE_COLON_HOOK 0
# define USE_COMPILE_HOOK 0
# define USE_DL 0
# define USE_PLIST 0
#endif
@ -83,6 +84,12 @@ extern "C" {
# define USE_COLON_HOOK 1
#endif
/* Compile functions using *compile-hook*. The default hook expands
* macros. */
#ifndef USE_COMPILE_HOOK
# define USE_COMPILE_HOOK 1
#endif
#ifndef USE_STRCASECMP /* stricmp for Unix */
# define USE_STRCASECMP 0
#endif