]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lilypond-version.cc
Run `make grand-replace'.
[lilypond.git] / lily / lilypond-version.cc
index d1bddc5cf796c60eafe13839d8ee274919cc21a1..35c2afb1d2fccafe30cd54047f9c52306e90ab48 100644 (file)
@@ -3,40 +3,56 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2001 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_;
 }