diff options
Diffstat (limited to 'libguile/modules.c')
-rw-r--r-- | libguile/modules.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libguile/modules.c b/libguile/modules.c index d99d3e472..92fa4d365 100644 --- a/libguile/modules.c +++ b/libguile/modules.c @@ -620,6 +620,25 @@ SCM_DEFINE (scm_module_import_interface, "module-import-interface", 2, 0, 0, } #undef FUNC_NAME +SCM_SYMBOL (sym_sys_module_public_interface, "%module-public-interface"); + +SCM_DEFINE (scm_module_public_interface, "module-public-interface", 1, 0, 0, + (SCM module), + "Return the public interface of @var{module}.\n\n" + "If @var{module} has no public interface, @code{#f} is returned.") +#define FUNC_NAME s_scm_module_public_interface +{ + SCM var; + + SCM_VALIDATE_MODULE (1, module); + var = scm_module_local_variable (module, sym_sys_module_public_interface); + if (scm_is_true (var)) + return SCM_VARIABLE_REF (var); + else + return SCM_BOOL_F; +} +#undef FUNC_NAME + /* scm_sym2var * * looks up the variable bound to SYM according to PROC. PROC should be |