]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lilypond-version.cc
* make/mutopia-vars.make:
[lilypond.git] / lily / lilypond-version.cc
index ca293c9a784276c6cafb0ae08aa93ac5876ceaa7..6479f0a91cfd70ce4d2cbcf83e2c75c91963871d 100644 (file)
@@ -3,10 +3,11 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1998--2003 Jan Nieuwenhuizen <janneke@gnu.org>
-
+  (c) 1998--2005 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
+#include <ctype.h>
+
 #include "lilypond-input-version.hh"
 #include "string-convert.hh"
 #include "array.hh"
@@ -20,13 +21,21 @@ Lilypond_version::Lilypond_version (int major, int minor, int patch)
 
 Lilypond_version::Lilypond_version (String str)
 {
+  major_ = 0; 
+  minor_ = 0;
+  patch_ = 0;
+  
   Array<String> version;
   version = String_convert::split (str, '.');
+
+  if (version.size () > 0 && isdigit (version[0][0]))
+    major_ = version[0].to_int ();
+  if (version.size () > 1 && isdigit (version[1][0]))
+    minor_ = version[1].to_int ();
   
-  major_ = version[0].to_int ();
-  minor_ = version[1].to_int ();
   patch_ = 0;
-  if (version.size () >= 3)
+  if (version.size () >= 3
+      && isdigit (version[2][0]))
     patch_ = version[2].to_int ();
 
   if (version.size () >= 4)
@@ -41,7 +50,7 @@ Lilypond_version::to_string () const
 
 Lilypond_version::operator int () const
 {
-    // ugh
+  // ugh
   return 100000 * major_ + 1000 * minor_ + patch_;
 }