X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmisc.cc;h=bb8a05201c103904bd3a3e2aa8900c5db260e855;hb=9602a6de93da3d612b7833fdd56168c3c8d19df1;hp=946e27e4bb4025d8c88fc79da6c77e080cdb978f;hpb=1a66290a98e7de8d6d41485b5b71a9f7e1fe35c7;p=lilypond.git diff --git a/lily/misc.cc b/lily/misc.cc index 946e27e4bb..bb8a05201c 100644 --- a/lily/misc.cc +++ b/lily/misc.cc @@ -3,43 +3,59 @@ source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--2005 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include -#include "item.hh" #include "misc.hh" -#include "moment.hh" +#include "string.hh" +/* + Return the 2-log, rounded down +*/ int -intlog2(int d) { - int i=0; - while (!(d&1)) { - d/= 2; - i++; +intlog2 (int d) +{ + assert (d); + int i = 0; + while ((d != 1)) + { + d /= 2; + i++; } - assert (!(d/2)); - return i; + + assert (! (d / 2)); + return i; } double -log_2(double x) { - return log (x) /log (2.0); +log_2 (double x) +{ + return log (x) / log (2.0); } -#if 1 -Interval -itemlist_width (const Array &its) +Array +split_string (String s, char c) { - Interval iv ; - iv.set_empty(); - - for (int j =0; j < its.size(); j++){ - iv.unite (its[j]->width()); - + Array rv; + while (s.length ()) + { + int i = s.index (c); + + if (i == 0) + { + s = s.nomid_string (0, 1); + continue; + } + + if (i < 0) + i = s.length (); + + rv.push (s.cut_string (0, i)); + s = s.nomid_string (0, i); } - return iv; -} -#endif + return rv; +}