return scm_from_locale_stringn (contents.c_str (), contents.length ());
}
-
LY_DEFINE (ly_dir_p, "ly:dir?",
1, 0, 0, (SCM s),
- "Is @var{s} a direction? Valid directions are @code{-1},"
- " @code{0}, or@tie{}@code{1}, where @code{-1} represents"
+ "Is @var{s} a direction? Valid directions are @w{@code{-1}},"
+ " @code{0}, or@tie{}@code{1}, where @w{@code{-1}} represents"
" left or down, @code{1}@tie{}represents right or up, and @code{0}"
" represents a neutral direction.")
{
- if (scm_is_number (s))
+ if (scm_is_integer (s))
{
int i = scm_to_int (s);
return (i >= -1 && i <= 1) ? SCM_BOOL_T : SCM_BOOL_F;
return SCM_BOOL_F;
}
+LY_DEFINE (ly_vsize_p, "ly:vsize?",
+ 1, 0, 0, (SCM s),
+ "Is @var{s} a vsize?")
+{
+ if (scm_is_integer (s))
+ {
+ int i = scm_to_int (s);
+ return i >= 0 ? SCM_BOOL_T : SCM_BOOL_F;
+ }
+ return SCM_BOOL_F;
+}
+
LY_DEFINE (ly_assoc_get, "ly:assoc-get",
2, 2, 0,
(SCM key, SCM alist, SCM default_value, SCM strict_checking),
1, 0, 0, (SCM str),
"Encode all characters in string @var{str} with hexadecimal"
" percent escape sequences, with the following exceptions:"
- " characters @code{-}, @code{.}, @code{/}, and @code{_}; and"
+ " characters @w{@code{-},} @code{.}, @code{/}, and @code{_}; and"
" characters in ranges @code{0-9}, @code{A-Z}, and @code{a-z}.")
{
LY_ASSERT_TYPE (scm_is_string, str, 1);
Real r (scm_to_double (s));
if (isinf (r) || isnan (r))
{
- programming_error (_ ("infinity or NaN encountered while converting Real number"));
- programming_error (_ ("setting to zero"));
+ programming_error ("infinity or NaN encountered while converting Real number, "
+ "setting to zero");
r = 0.0;
}
LY_ASSERT_TYPE (scm_is_string, file_name, 1);
string m = "w";
+ string f = ly_scm2string (file_name);
FILE *stderrfile;
- if (mode != SCM_UNDEFINED && scm_string_p (mode))
+ if (scm_is_string (mode))
m = ly_scm2string (mode);
/* dup2 and (fileno (current-error-port)) do not work with mingw'c
gcc -mwindows. */
fflush (stderr);
- stderrfile = freopen (ly_scm2string (file_name).c_str (), m.c_str (), stderr);
+ stderrfile = freopen (f.c_str (), m.c_str (), stderr);
+ if (!stderrfile)
+ error (_f ("failed redirecting stderr to `%s'", f.c_str ()));
return SCM_UNSPECIFIED;
}