#ifndef LILY_GUILE_HH
#define LILY_GUILE_HH
-#include <guile/gh.h>
#include <libguile.h>
+
+/*
+ TODO: the GH interface is deprecated as of GUILE 1.6
+
+ Remove all gh_XXX functions.
+ */
+#include <guile/gh.h>
+
#include "config.h"
/* Guile 1.3.4 compatibility */
#if GUILE_MINOR_VERSION < 4
+
+#define scm_bits_t SCM
+
#define fix_guile_1_3_4_scm_puts(scm_data, port) scm_puts ((char*)scm_data, port)
#define scm_puts(scm_data, port) fix_guile_1_3_4_scm_puts (scm_data, port)
#endif
#define scm_primitive_eval(form) fix_guile_1_4_scm_primitive_eval (form)
#define scm_c_define_gsubr scm_make_gsubr
+#define scm_c_eval_string(str) gh_eval_str ((char*)str)
#define scm_c_memq scm_sloppy_memq
#define scm_gc_protect_object scm_protect_object
#define scm_gc_unprotect_object scm_unprotect_object
bool type_check_assignment (SCM val, SCM sym, SCM type_symbol) ;
SCM ly_number2string (SCM s);
+SCM parse_symbol_list (char const *);
+
+inline SCM ly_cdr (SCM x) { return SCM_CDR (x); }
+inline SCM ly_car (SCM x) { return SCM_CAR (x); }
+inline SCM ly_caar (SCM x) { return SCM_CAAR (x); }
+inline SCM ly_cdar (SCM x) { return SCM_CDAR (x); }
+inline SCM ly_cadr (SCM x) { return SCM_CADR (x); }
+inline SCM ly_cddr (SCM x) { return SCM_CDDR (x); }
+inline SCM ly_caddr (SCM x) { return SCM_CADDR (x); }
+inline SCM ly_cdadr (SCM x) { return SCM_CDADR (x); }
+inline SCM ly_caadr (SCM x) { return SCM_CAADR (x); }
+inline bool ly_pair_p (SCM x) { return SCM_NFALSEP (scm_pair_p (x)); }
+inline bool ly_symbol_p (SCM x) { return SCM_SYMBOLP (x); }
+inline bool ly_number_p (SCM x) { return SCM_NUMBERP (x); }
+inline bool ly_procedure_p (SCM x) { return SCM_NFALSEP (scm_procedure_p(x)); }
+
/*
display and print newline.
*/