X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flilypond-version.cc;h=9c0e938547d6d4c0381a50272e29bb60ca1acdbf;hb=87eedcd59f4082cb0841528ad5bc82cb1d1191e3;hp=e252710185780974efb8ff5674519082041053ce;hpb=f579726b1c1fe56fe74a913a4438d11f283462b7;p=lilypond.git diff --git a/lily/lilypond-version.cc b/lily/lilypond-version.cc index e252710185..9c0e938547 100644 --- a/lily/lilypond-version.cc +++ b/lily/lilypond-version.cc @@ -3,40 +3,56 @@ source file of the GNU LilyPond music typesetter - (c) 1998--2000 Jan Nieuwenhuizen - + (c) 1998--2007 Jan Nieuwenhuizen */ -#include "lilypond-input-version.hh" +#include + +#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 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 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_; }