X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Fstring-convert.cc;h=03bb05b319c57b291c11d2146170c630569957fc;hb=d37f78ffdca853280e8dfd7a0c48750b726a60c8;hp=f9449363f04eacea19d94f88ddda8855af5d9400;hpb=8347f6f06cd4c56d7a2d2ec482647afaaade1267;p=lilypond.git diff --git a/flower/string-convert.cc b/flower/string-convert.cc index f9449363f0..03bb05b319 100644 --- a/flower/string-convert.cc +++ b/flower/string-convert.cc @@ -33,6 +33,15 @@ String_convert::bool_string (bool b) return string (b ? "true" : "false"); } +string +String_convert::bin2hex (Byte bin_char) +{ + string str; + str += to_string ((char) nibble2hex_byte (bin_char >> 4)); + str += to_string ((char) nibble2hex_byte (bin_char++)); + return str; +} + string String_convert::bin2hex (string bin_string) { @@ -66,7 +75,6 @@ String_convert::bin2unsigned (string bin_string) return result_u; } -// breendet imp from string int String_convert::dec2int (string dec_string) { @@ -74,9 +82,11 @@ String_convert::dec2int (string dec_string) return 0; long l = 0; - int conv = sscanf (dec_string.c_str (), "%ld", &l); - assert (conv); + if (!sscanf (dec_string.c_str (), "%ld", &l)) + assert (false); + assert (form_string ("%ld", l) == dec_string); + return (int)l; } @@ -94,9 +104,11 @@ String_convert::dec2double (string dec_string) { if (!dec_string.length ()) return 0; - double d = 0; - int conv = sscanf (dec_string.c_str (), "%lf", &d); - assert (conv); + + double d = 0.0; + if (!sscanf (dec_string.c_str (), "%lf", &d)) + assert (false); + return d; } @@ -114,7 +126,7 @@ String_convert::hex2bin (string hex_string, string &bin_string_r) int high_i = hex2nibble (*byte++); int low_i = hex2nibble (*byte++); if (high_i < 0 || low_i < 0) - return 1; // illegal char + return 1; // invalid char bin_string_r += to_string ((char) (high_i << 4 | low_i), 1); i += 2; } @@ -125,10 +137,10 @@ string String_convert::hex2bin (string hex_string) { string str; - // silly, asserts should alway be "on"! - // assert (!hex2bin (hex_string, str) ); - int error_i = hex2bin (hex_string, str); - assert (!error_i); + + if (hex2bin (hex_string, str)) + assert (false); + return str; }