#include "file-name.hh"
#include "string-convert.hh"
+LY_DEFINE (ly_start_environment, "ly:start-environment",
+ 0, 0, 0, (),
+ "Return the environment, a list of strings, that was in effect at program start")
+{
+ SCM l = SCM_EOL;
+ SCM *tail = &l;
+
+ for (vsize i = 0; i < start_environment_global.size (); i++)
+ {
+ *tail = scm_cons (ly_string2scm (start_environment_global[i]),
+ SCM_EOL);
+ tail = SCM_CDRLOC(*tail);
+ }
+
+ return l;
+}
+
+
LY_DEFINE (ly_find_file, "ly:find-file",
1, 0, 0, (SCM name),
"Return the absolute file name of @var{name}, "
int sz = INT_MAX;
if (size != SCM_UNDEFINED)
{
- LY_ASSERT_TYPE(scm_is_number,size, 2);
+ LY_ASSERT_TYPE (scm_is_number, size, 2);
sz = scm_to_int (size);
}
"Return value if KEY in ALIST, else DEFAULT-VALUE "
"(or #f if not specified).")
{
+ LY_ASSERT_TYPE(ly_cheap_is_list, alist, 2);
+
SCM handle = scm_assoc (key, alist);
if (scm_is_pair (handle))
return scm_cdr (handle);
LY_DEFINE (ly_string_substitute, "ly:string-substitute",
3, 0, 0, (SCM a, SCM b, SCM s),
- "Replace @var{a} by @var{b} in @var{s}.")
+ "Replace string @var{a} by string @var{b} in string @var{s}.")
{
LY_ASSERT_TYPE (scm_is_string, s, 1);
- LY_ASSERT_TYPE(scm_is_string,b, 2);
- LY_ASSERT_TYPE(scm_is_string,s, 3);
+ LY_ASSERT_TYPE (scm_is_string, b, 2);
+ LY_ASSERT_TYPE (scm_is_string, s, 3);
string ss = ly_scm2string (s);
replace_all (ss, string (scm_i_string_chars (a)),
return ly_string2scm (_ (scm_i_string_chars (string)));
}
-LY_DEFINE (ly_output_backend, "ly:output-backend",
- 0, 0, 0, (),
- "Return name of output backend.")
-{
- return ly_string2scm (output_backend_global);
-}
-
LY_DEFINE (ly_output_formats, "ly:output-formats",
0, 0, 0, (),
"Formats passed to --format as a list of strings, "
0, 0, 0, (),
"Return effective prefix.")
{
- return ly_string2scm (prefix_directory);
+ return ly_string2scm (lilypond_datadir);
}
LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get",
return scm_cons (key, result);
}
-LY_DEFINE(ly_hash_table_keys, "ly:hash-table-keys",
+LY_DEFINE (ly_hash_table_keys, "ly:hash-table-keys",
1,0,0, (SCM tab),
"return a list of keys in @var{tab}")
{
warning (_ ("Found infinity or nan in output. Substituting 0.0"));
return ("0.0");
if (strict_infinity_checking)
- abort();
+ abort ();
}
else
return (String_convert::form_string ("%.*lf", precision, val));
vector<string> results;
vsize i = 0;
- while (i < format.size())
+ while (i < format.size ())
{
vsize tilde = format.find ('~', i);
+ ": too many arguments");
vsize len = 0;
- for (vsize i = 0; i < results.size(); i++)
- len += results[i].size();
+ for (vsize i = 0; i < results.size (); i++)
+ len += results[i].size ();
char *result = (char*) scm_malloc (len + 1);
char *ptr = result;
- for (vsize i = 0; i < results.size(); i++)
+ for (vsize i = 0; i < results.size (); i++)
{
- strncpy (ptr, results[i].c_str (), results[i].size());
- ptr += results[i].size();
+ strncpy (ptr, results[i].c_str (), results[i].size ());
+ ptr += results[i].size ();
}
*ptr = '\0';