X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fly-module.hh;h=daa99ab6b6d7ac598aec5e7efc6e2d137e8ea1d7;hb=32a34dcef0c0041c6d62677487a380b5c8b85712;hp=c486a4e9271ff3b0696d79294a130262428dcc5a;hpb=25645986aa3e8d999e901426932c539e8de6a1ca;p=lilypond.git diff --git a/lily/include/ly-module.hh b/lily/include/ly-module.hh index c486a4e927..daa99ab6b6 100644 --- a/lily/include/ly-module.hh +++ b/lily/include/ly-module.hh @@ -1,26 +1,43 @@ /* - ly-module.hh -- declare module related helper functions + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2002--2012 Han-Wen Nienhuys - (c) 2002--2004 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - */ + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef LY_MODULE_HH #define LY_MODULE_HH +#include "config.hh" #include "lily-guile.hh" -SCM ly_make_anonymous_module (); -void ly_copy_module_variables (SCM dest, SCM src); -SCM ly_module_to_alist (SCM mod); +SCM ly_make_module (bool safe); +SCM ly_module_copy (SCM dest, SCM src); +SCM ly_module_2_alist (SCM mod); SCM ly_module_lookup (SCM module, SCM sym); -SCM ly_modules_lookup (SCM modules, SCM sym); +SCM ly_modules_lookup (SCM modules, SCM sym, SCM); SCM ly_module_symbols (SCM mod); -void ly_reexport_module (SCM mod); -inline bool ly_module_p (SCM x) { return SCM_MODULEP(x); } -void ly_clear_anonymous_modules (); +void ly_reexport_module (SCM mod); +inline bool ly_is_module (SCM x) { return SCM_MODULEP (x); } + +SCM ly_use_module (SCM mod, SCM used); + +/* For backward compatability with Guile 1.8 */ +#if !HAVE_GUILE_HASH_FUNC +typedef SCM (*scm_t_hash_fold_fn) (GUILE_ELLIPSIS); +typedef SCM (*scm_t_hash_handle_fn) (GUILE_ELLIPSIS); +#endif #endif /* LY_MODULE_HH */