]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/scalar.cc
release: 0.1.61
[lilypond.git] / flower / scalar.cc
index 9d7ef229570c1076470645444e05224af8cdc226..bdd2452ad7b5216ac23afc71f617b621172bb491 100644 (file)
@@ -1,19 +1,19 @@
 /*
-  scalar.cc -- implement 
+  scalar.cc -- implement Scalar
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <assert.h>
 #include <stdio.h>
 #include "scalar.hh"
+#include "rational.hh"
 
 Scalar::Scalar (Rational r)
-  :String (r)
 {
-
+  (*this) = r.str ();
 }
 
 Scalar::operator Rational ()
@@ -22,7 +22,7 @@ Scalar::operator Rational ()
   if (p == -1)
     return int (*this);
   
-  String s2 = right_str (len()-p-1);
+  String s2 = right_str (length_i ()-p-1);
   String s1 = left_str (p);
 
   return Rational (s1.value_i (), s2.value_i ());
@@ -32,12 +32,12 @@ bool
 Scalar::isnum_b () const
 {
   int conv = false;
-  if (len ())
+  if (length_i ())
     {
       long l =0;
       conv = sscanf (strh_.ch_C (), "%ld", &l);
     }
-  return len() && conv;
+  return length_i () && conv;
 }
 
 Scalar::operator Real()
@@ -55,10 +55,15 @@ Scalar::operator int()
   return value_i ();
 }
 
-
 Scalar::operator bool () const
 {
-  if (!len ())
+  return to_bool ();
+}
+
+bool
+Scalar::to_bool () const
+{
+  if (!length_i ())
     return false;
   if (*this == "0")
     return false;