diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-04-02 00:39:04 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-04-02 00:39:04 +0300 |
commit | 432dda4caa57295dec86bee860795bd2833dfc47 (patch) | |
tree | 62ef3462031fd192f18082b39f48800657ea4f78 /src/guile.c | |
parent | f731d398434e4d85a7aa0af7c299160f49e92fc9 (diff) | |
download | idest-432dda4caa57295dec86bee860795bd2833dfc47.tar.gz idest-432dda4caa57295dec86bee860795bd2833dfc47.tar.bz2 |
Prepare for Guile 2.0: fix obsolete and deprecated calls in Guile code.
* am/guile.m4: Fix quoting of arguments.
Check for SCM_DEVAL_P et al.
Check for scm_t_off, define it if not found.
* src/guile.c (proc_name): Remove.
(eval_catch_body): Use scm_apply_0 instead of
scm_primitive_eval to avoid evaluating the
arguments.
(load_handler, stringlinst_to_scm)
(field_to_scm, tag_to_scm, scm_to_tag): Fix obsolete
and deprecated calls in Guile code.
(guile_init): Protect calls to SCM_DEVAL_P &c. by
#ifdef GUILE_DEBUG_MACROS.
Diffstat (limited to 'src/guile.c')
-rw-r--r-- | src/guile.c | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/src/guile.c b/src/guile.c index ec19aed..3a0e6b7 100644 --- a/src/guile.c +++ b/src/guile.c @@ -33,17 +33,11 @@ SCM_GLOBAL_VARIABLE_INIT (sym_idest_readonly, "idest-readonly", SCM_BOOL_F); -static char * -proc_name(SCM proc) -{ - return scm_to_locale_string( - scm_symbol_to_string(scm_procedure_name(proc))); -} - static SCM eval_catch_body(void *list) { - return scm_primitive_eval((SCM)list); + SCM pair = (SCM)list; + return scm_apply_0(SCM_CAR(pair), SCM_CDR(pair)); } static SCM @@ -97,7 +91,7 @@ load_handler(void *data) struct load_closure *lp = data; scm_set_program_arguments(lp->argc, lp->argv, lp->filename); - scm_primitive_load(scm_makfrom0str(lp->filename)); + scm_primitive_load(scm_from_locale_string(lp->filename)); return SCM_UNDEFINED; } @@ -137,7 +131,7 @@ stringlinst_to_scm(union id3_field *field, int genre) } obstack_1grow(&stk, 0); str = obstack_finish(&stk); - ret = scm_makfrom0str(str); + ret = scm_from_locale_string(str); obstack_free(&stk, NULL); return ret; } @@ -161,7 +155,7 @@ field_to_scm(union id3_field *field, int genre) case ID3_FIELD_TYPE_STRINGFULL: ucs4 = id3_field_getfullstring(field); str = idest_ucs4_cvt(ucs4); - ret = scm_makfrom0str(str); + ret = scm_from_locale_string(str); free(str); break; @@ -211,7 +205,7 @@ frame_to_scm(struct id3_frame *frame) } if (val != SCM_EOL) - return scm_cons(scm_makfrom0str(frame->id), val); + return scm_cons(scm_from_locale_string(frame->id), val); return SCM_EOL; } @@ -222,7 +216,7 @@ tag_to_scm(struct id3_tag *tag) unsigned i; SCM scm_first = SCM_EOL, scm_last; - for (i = 0; frame = id3_tag_findframe(tag, NULL, i); i++) { + for (i = 0; (frame = id3_tag_findframe(tag, NULL, i)); i++) { SCM new; SCM fcell = frame_to_scm(frame); @@ -257,7 +251,7 @@ scm_to_tag(SCM scm, struct id3_tag *tag) { int modified = 0; - for (; scm != SCM_EOL && scm_is_pair(scm); scm = SCM_CDR(scm)) { + for (; !scm_is_null (scm) && scm_is_pair(scm); scm = SCM_CDR(scm)) { char *id, *value; SCM x; SCM elt = SCM_CAR(scm); @@ -298,9 +292,8 @@ guile_apply_main(const char *file, struct id3_tag *tag) error(1, 0, "idest-main failed"); cell = scm_cons(SCM_VARIABLE_REF(sym_idest_main), - scm_list_2( - scm_cons(SCM_IM_QUOTE, scm_makfrom0str(file)), - scm_cons(SCM_IM_QUOTE, tag_to_scm(tag)))); + scm_list_2(scm_from_locale_string(file), + tag_to_scm(tag))); return scm_internal_lazy_catch(SCM_BOOL_T, eval_catch_body, cell, eval_catch_handler, &jmp_env); @@ -324,8 +317,6 @@ guile_transform(const char *file, struct id3_tag *tag) int guile_list(const char *file, struct id3_tag *tag) { - SCM result; - if (!guile_inited) return 0; @@ -346,10 +337,12 @@ guile_init() #include "guile.x" if (guile_debug) { +#ifdef GUILE_DEBUG_MACROS SCM_DEVAL_P = 1; SCM_BACKTRACE_P = 1; SCM_RECORD_POSITIONS_P = 1; SCM_RESET_DEBUG_MODE; +#endif } if (guile_load(guile_script)) |