]> git.donarmstrong.com Git - lilypond.git/blob - lily/lilypond-version.cc
release: 1.5.29
[lilypond.git] / lily / lilypond-version.cc
1 /*
2   lilypond-version.cc -- implement Lilypond_version
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1998--2002 Jan Nieuwenhuizen <janneke@gnu.org>
7
8 */
9
10 #include "lilypond-input-version.hh"
11 #include "string-convert.hh"
12 #include "array.hh"
13
14 Lilypond_version::Lilypond_version (int major, int minor, int patch)
15 {
16   major_i_ = major;
17   minor_i_ = minor;
18   patch_i_ = patch;
19 }
20
21 Lilypond_version::Lilypond_version (String str)
22 {
23   Array<String> version;
24   version = String_convert::split_arr (str, '.');
25   
26   major_i_ = version[0].value_i ();
27   minor_i_ = version[1].value_i ();
28   patch_i_ = 0;
29   if (version.size () >= 3)
30     patch_i_ = version[2].value_i ();
31
32   if (version.size () >= 4)
33     extra_patch_str_ = version[3];
34 }
35
36 String
37 Lilypond_version::str () const
38 {
39   return to_str (major_i_) + "." + to_str (minor_i_) + "." + to_str (patch_i_);
40 }
41
42 Lilypond_version::operator int () const
43 {
44     // ugh
45   return 100000 * major_i_ + 1000 * minor_i_ + patch_i_;
46 }
47