/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1998--2012 Jan Nieuwenhuizen <janneke@gnu.org>
+ Copyright (C) 1998--2014 Jan Nieuwenhuizen <janneke@gnu.org>
Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
}
string
-robust_symbol2string (SCM sym, string str)
+robust_symbol2string (SCM sym, const string &str)
{
return scm_is_symbol (sym) ? ly_symbol2string (sym) : str;
}
string
-gulp_file_to_string (string fn, bool must_exist, int size)
+gulp_file_to_string (const string &fn, bool must_exist, int size)
{
string s = global_path.find (fn);
if (s == "")
bool
type_check_assignment (SCM sym, SCM val, SCM type_symbol)
{
- bool ok = true;
-
- /*
- Always succeeds.
-
-
- TODO: should remove #f from allowed vals?
- */
- if (val == SCM_EOL || val == SCM_BOOL_F)
- return ok;
// If undefined, some internal function caused it...should never happen.
assert (val != SCM_UNDEFINED);
scm_throw (ly_symbol2scm ("ly-file-failed"), scm_list_3 (ly_symbol2scm ("typecheck"),
sym, val));
- warning (_ ("doing assignment anyway"));
+ warning (_ ("skipping assignment"));
+ return false;
}
- else
+
+ /*
+ Always succeeds.
+
+
+ TODO: should remove #f from allowed vals?
+ */
+ if (val == SCM_EOL || val == SCM_BOOL_F)
+ return true;
+
+ if (val != SCM_EOL
+ && ly_is_procedure (type)
+ && scm_call_1 (type, val) == SCM_BOOL_F)
{
- if (val != SCM_EOL
- && ly_is_procedure (type)
- && scm_call_1 (type, val) == SCM_BOOL_F)
- {
- ok = false;
- SCM typefunc = ly_lily_module_constant ("type-name");
- SCM type_name = scm_call_1 (typefunc, type);
-
- warning (_f ("type check for `%s' failed; value `%s' must be of type `%s'",
- ly_symbol2string (sym).c_str (),
- print_scm_val (val),
- ly_scm2string (type_name).c_str ()));
- progress_indication ("\n");
- }
+ SCM typefunc = ly_lily_module_constant ("type-name");
+ SCM type_name = scm_call_1 (typefunc, type);
+
+ warning (_f ("type check for `%s' failed; value `%s' must be of type `%s'",
+ ly_symbol2string (sym).c_str (),
+ print_scm_val (val),
+ ly_scm2string (type_name).c_str ()));
+ progress_indication ("\n");
+ return false;
}
- return ok;
+ return true;
}
/* some SCM abbrevs
}
string
-robust_scm2string (SCM k, string s)
+robust_scm2string (SCM k, const string &s)
{
if (scm_is_string (k))
- s = ly_scm2string (k);
+ return ly_scm2string (k);
return s;
}