bool
is_axis (SCM s)
{
- if (scm_is_number (s))
+ if (scm_is_integer (s))
{
int i = scm_to_int (s);
return i == 0 || i == 1;
bool
is_direction (SCM s)
{
- if (scm_is_number (s))
+ if (scm_is_integer (s))
{
int i = scm_to_int (s);
return i >= -1 && i <= 1;
Interval
ly_scm2interval (SCM p)
{
- return Interval (scm_to_double (scm_car (p)), scm_to_double (scm_cdr (p)));
+ return is_number_pair (p) ?
+ Interval (scm_to_double (scm_car (p)),
+ scm_to_double (scm_cdr (p))) :
+ Interval (0, 0);
}
Drul_array<Real>
Offset
ly_scm2offset (SCM s)
{
- return Offset (scm_to_double (scm_car (s)),
- scm_to_double (scm_cdr (s)));
+ return is_number_pair (s) ?
+ Offset (scm_to_double (scm_car (s)),
+ scm_to_double (scm_cdr (s))) :
+ Offset (0, 0);
}
Offset
/*
ALIST
*/
-
+// This one is used nowhere.
bool
-alist_equal_p (SCM a, SCM b)
+ly_is_alist_equal (SCM a, SCM b)
{
- for (SCM s = a;
- scm_is_pair (s); s = scm_cdr (s))
+ if (!scm_is_pair (a) || !scm_is_pair (b))
+ return false;
+ for (SCM s = a; scm_is_pair (s); s = scm_cdr (s))
{
SCM key = scm_caar (s);
SCM val = scm_cdar (s);
SCM l = scm_assoc (key, b);
- if (l == SCM_BOOL_F
- || !ly_is_equal (scm_cdr (l), val))
-
+ if (scm_is_false (l) || !ly_is_equal (scm_cdr (l), val))
return false;
}
return true;