source file of the GNU LilyPond music typesetter
- (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
-
+ (c) 1998--2008 Jan Nieuwenhuizen <janneke@gnu.org>
*/
-#include "lilypond-input-version.hh"
+#include <ctype.h>
+
+#include "lilypond-version.hh"
#include "string-convert.hh"
-#include "array.hh"
+#include "misc.hh"
Lilypond_version::Lilypond_version (int major, int minor, int patch)
{
- major_i_ = major;
- minor_i_ = minor;
- patch_i_ = patch;
+ major_ = major;
+ minor_ = minor;
+ patch_ = patch;
}
-Lilypond_version::Lilypond_version (String str)
+Lilypond_version::Lilypond_version (string str)
{
- Array<String> version;
- version = String_convert::split_arr (str, '.');
- assert (version.size () == 3);
- major_i_ = version[0].value_i ();
- minor_i_ = version[1].value_i ();
- patch_i_ = version[2].value_i ();
+ major_ = 0;
+ minor_ = 0;
+ patch_ = 0;
+
+ vector<string> version;
+ version = string_split (str, '.');
+
+ if (version.size () > 0 && isdigit (version[0][0]))
+ major_ = String_convert::dec2int (version[0]);
+ if (version.size () > 1 && isdigit (version[1][0]))
+ minor_ = String_convert::dec2int (version[1]);
+
+ patch_ = 0;
+ if (version.size () >= 3
+ && isdigit (version[2][0]))
+ patch_ = String_convert::dec2int (version[2]);
+
+ if (version.size () >= 4)
+ extra_patch_string_ = version[3];
}
-String
-Lilypond_version::str () const
+string
+Lilypond_version::to_string () const
{
- return to_str (major_i_) + "." + to_str (minor_i_) + "." + to_str (patch_i_);
+ return ::to_string (major_)
+ + "." + ::to_string (minor_)
+ + "." + ::to_string (patch_);
}
Lilypond_version::operator int () const
{
- // ugh
- return 100000 * major_i_ + 1000 * minor_i_ + patch_i_;
+ // ugh
+ return 100000 * major_ + 1000 * minor_ + patch_;
}