]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/string-convert.cc
* scm/framework-ps.scm (page-header): add version number to
[lilypond.git] / flower / string-convert.cc
index 6981551d30677077c409656e2a5a3c22149a99d2..af4d9931bdb027acea187ba446e2ab6953913ac3 100644 (file)
@@ -2,15 +2,14 @@
   PROJECT: FlowerSoft C++ library
   FILE   : string-convert.cc
 
   PROJECT: FlowerSoft C++ library
   FILE   : string-convert.cc
 
---*/
+  --*/
 
 
-#include <string.h>
-#include <stdio.h>
-#include <assert.h>
-#include <limits.h>
-#include "libc-extension.hh"
-#include "string.hh"
 #include "string-convert.hh"
 #include "string-convert.hh"
+
+#include <cstring>
+#include <cstdio>
+
+#include "libc-extension.hh"
 #include "rational.hh"
 #include "array.hh"
 
 #include "rational.hh"
 #include "array.hh"
 
    2e318, this number would have approx 318 zero's in its string.
 
    Should enlarge buff dynamically.
    2e318, this number would have approx 318 zero's in its string.
 
    Should enlarge buff dynamically.
-   
+
    @see
    man 3 snprintf
    @see
    man 3 snprintf
-   */
-static const int STRING_BUFFER_LEN=1024;
+*/
+static const int STRING_BUFFER_LEN = 1024;
 
 String
 String_convert::bool_string (bool b)
 
 String
 String_convert::bool_string (bool b)
@@ -37,8 +36,8 @@ String
 String_convert::bin2hex (String bin_string)
 {
   String str;
 String_convert::bin2hex (String bin_string)
 {
   String str;
-  Byte constbyte = bin_string.to_bytes ();
-  for (int i = 0; i < bin_string.length (); i++) 
+  Byte const *byte = bin_string.to_bytes ();
+  for (int i = 0; i < bin_string.length (); i++)
     {
       str += to_string ((char)nibble2hex_byte (*byte >> 4));
       str += to_string ((char)nibble2hex_byte (*byte++));
     {
       str += to_string ((char)nibble2hex_byte (*byte >> 4));
       str += to_string ((char)nibble2hex_byte (*byte++));
@@ -58,7 +57,7 @@ String_convert::bin2unsigned (String bin_string)
   assert (bin_string.length () <= (int)sizeof (unsigned));
 
   unsigned result_u = 0;
   assert (bin_string.length () <= (int)sizeof (unsigned));
 
   unsigned result_u = 0;
-  for (int i = 0; i < bin_string.length (); i++) 
+  for (int i = 0; i < bin_string.length (); i++)
     {
       result_u <<= 8;
       result_u += (Byte)bin_string[ i ];
     {
       result_u <<= 8;
       result_u += (Byte)bin_string[ i ];
@@ -81,13 +80,12 @@ String_convert::dec2int (String dec_string)
 }
 
 String
 }
 
 String
-String_convert::i64_string (I64 i64, char constfmt)
+String_convert::i64_string (I64 i64, char const *fmt)
 {
   char buffer[STRING_BUFFER_LEN];
   snprintf (buffer, STRING_BUFFER_LEN,
 {
   char buffer[STRING_BUFFER_LEN];
   snprintf (buffer, STRING_BUFFER_LEN,
(fmt ? fmt : "%Ld"), i64);     // assume radix 10
          (fmt ? fmt : "%Ld"), i64); // assume radix 10
   return String (buffer);
   return String (buffer);
-
 }
 // breendet imp from String
 double
 }
 // breendet imp from String
 double
@@ -102,27 +100,27 @@ String_convert::dec2double (String dec_string)
 }
 
 int
 }
 
 int
-String_convert::hex2bin (String hex_string, Stringbin_string_r)
+String_convert::hex2bin (String hex_string, String &bin_string_r)
 {
   if (hex_string.length () % 2)
     hex_string = "0" + hex_string;
 
   bin_string_r = "";
 {
   if (hex_string.length () % 2)
     hex_string = "0" + hex_string;
 
   bin_string_r = "";
-  Byte const* byte= hex_string.to_bytes ();
+  Byte const *byte = hex_string.to_bytes ();
   int i = 0;
   int i = 0;
-  while (i < hex_string.length ()) 
+  while (i < hex_string.length ())
     {
       int high_i = hex2nibble (*byte++);
       int low_i = hex2nibble (*byte++);
       if (high_i < 0 || low_i < 0)
        return 1; // illegal char
     {
       int high_i = hex2nibble (*byte++);
       int low_i = hex2nibble (*byte++);
       if (high_i < 0 || low_i < 0)
        return 1; // illegal char
-      bin_string_r += to_string ((char) (high_i << 4 | low_i), 1 );
+      bin_string_r += to_string ((char) (high_i << 4 | low_i), 1);
       i += 2;
     }
   return 0;
 }
 
       i += 2;
     }
   return 0;
 }
 
-String 
+String
 String_convert::hex2bin (String hex_string)
 {
   String str;
 String_convert::hex2bin (String hex_string)
 {
   String str;
@@ -133,7 +131,7 @@ String_convert::hex2bin (String hex_string)
   return str;
 }
 
   return str;
 }
 
-int 
+int
 String_convert::hex2nibble (Byte byte)
 {
   if (byte >= '0' && byte <= '9')
 String_convert::hex2nibble (Byte byte)
 {
   if (byte >= '0' && byte <= '9')
@@ -146,7 +144,7 @@ String_convert::hex2nibble (Byte byte)
 }
 
 // stupido.  Should use int_string ()
 }
 
 // stupido.  Should use int_string ()
-String 
+String
 String_convert::int2dec (int i, int length_i, char ch)
 {
   char fill_char = ch;
 String_convert::int2dec (int i, int length_i, char ch)
 {
   char fill_char = ch;
@@ -155,14 +153,13 @@ String_convert::int2dec (int i, int length_i, char ch)
 
   // ugh
   String dec_string = to_string (i);
 
   // ugh
   String dec_string = to_string (i);
-  
+
   // ugh
   return to_string (fill_char, length_i - dec_string.length ()) + dec_string;
 }
 
   // ugh
   return to_string (fill_char, length_i - dec_string.length ()) + dec_string;
 }
 
-
 // stupido.  Should use int_string ()
 // stupido.  Should use int_string ()
-String 
+String
 String_convert::unsigned2hex (unsigned u, int length_i, char fill_char)
 {
   String str;
 String_convert::unsigned2hex (unsigned u, int length_i, char fill_char)
 {
   String str;
@@ -170,9 +167,9 @@ String_convert::unsigned2hex (unsigned u, int length_i, char fill_char)
     str = "0";
 
 #if 1 // both go...
     str = "0";
 
 #if 1 // both go...
-  while (u) 
+  while (u)
     {
     {
-      str = to_string ((char) ((u % 16)["0123456789abcdef"] ) ) + str;
+      str = to_string ((char) ((u % 16)["0123456789abcdef"])) + str;
       u /= 16;
     }
 #else
       u /= 16;
     }
 #else
@@ -180,13 +177,13 @@ String_convert::unsigned2hex (unsigned u, int length_i, char fill_char)
 #endif
 
   str = to_string (fill_char, length_i - str.length ()) + str;
 #endif
 
   str = to_string (fill_char, length_i - str.length ()) + str;
-  while ((str.length () > length_i) && (str[ 0 ] == 'f' ) )
+  while ((str.length () > length_i) && (str[ 0 ] == 'f'))
     str = str.cut_string (2, INT_MAX);
 
   return str;
 }
 
     str = str.cut_string (2, INT_MAX);
 
   return str;
 }
 
-String 
+String
 String_convert::int2hex (int i, int length_i, char fill_char)
 {
   return unsigned2hex ((unsigned)i, length_i, fill_char);
 String_convert::int2hex (int i, int length_i, char fill_char)
 {
   return unsigned2hex ((unsigned)i, length_i, fill_char);
@@ -195,28 +192,28 @@ String_convert::int2hex (int i, int length_i, char fill_char)
 Byte
 String_convert::nibble2hex_byte (Byte byte)
 {
 Byte
 String_convert::nibble2hex_byte (Byte byte)
 {
-  if ((byte & 0x0f) <= 9 )
+  if ((byte & 0x0f) <= 9)
     return (byte & 0x0f) + '0';
   else
     return (byte & 0x0f) - 10 + 'a';
 }
 /**
     return (byte & 0x0f) + '0';
   else
     return (byte & 0x0f) - 10 + 'a';
 }
 /**
-  Convert an integer to a string
+   Convert an integer to a string
 
 
-  @param
-  #fmt# is a printf style format, default assumes "%d" as format. 
-  */
+   @param
+   #fmt# is a printf style format, default assumes "%d" as format.
+*/
 String
 String
-String_convert::int_string (int i, char constfmt)
+String_convert::int_string (int i, char const *fmt)
 {
   char buffer[STRING_BUFFER_LEN];
   snprintf (buffer, STRING_BUFFER_LEN,
 {
   char buffer[STRING_BUFFER_LEN];
   snprintf (buffer, STRING_BUFFER_LEN,
(fmt ? fmt : "%d"), i);     // assume radix 10
          (fmt ? fmt : "%d"), i); // assume radix 10
   return String (buffer);
 }
 
 String
   return String (buffer);
 }
 
 String
-String_convert::form_string (char constformat, ...)
+String_convert::form_string (char const *format, ...)
 {
   va_list args;
   va_start (args, format);
 {
   va_list args;
   va_start (args, format);
@@ -226,8 +223,8 @@ String_convert::form_string (char const* format, ...)
   return String (buffer);
 }
 
   return String (buffer);
 }
 
-String 
-String_convert::vform_string (char constformat, va_list args)
+String
+String_convert::vform_string (char const *format, va_list args)
 {
   char buffer[STRING_BUFFER_LEN];
   vsnprintf (buffer, STRING_BUFFER_LEN, format, args);
 {
   char buffer[STRING_BUFFER_LEN];
   vsnprintf (buffer, STRING_BUFFER_LEN, format, args);
@@ -235,32 +232,32 @@ String_convert::vform_string (char const* format, va_list args)
 }
 
 /**
 }
 
 /**
-  Convert a double to a string.
+   Convert a double to a string.
 
 
-  @param #fmt# is a printf style format, default assumes "%lf" as format
- */
+   @param #fmt# is a printf style format, default assumes "%lf" as format
+*/
 String
 String
-String_convert::double_string (double f, char constfmt)
+String_convert::double_string (double f, char const *fmt)
 {
 {
-  char buf[STRING_BUFFER_LEN]; 
+  char buf[STRING_BUFFER_LEN];
 
   snprintf (buf, STRING_BUFFER_LEN, fmt ? fmt : "%f", f);
   return String (buf);
 }
 
 /**
 
   snprintf (buf, STRING_BUFFER_LEN, fmt ? fmt : "%f", f);
   return String (buf);
 }
 
 /**
-Make a string from a single character.
+   Make a string from a single character.
 
 
-  @param
-  #n# is a repetition count, default value is 1
- */
+   @param
+   #n# is a repetition count, default value is 1
+*/
 String
 String_convert::char_string (char c, int n)
 {
   n = n >= 0 ? n : 0;
 String
 String_convert::char_string (char c, int n)
 {
   n = n >= 0 ? n : 0;
-  charch = new char[ n ];
+  char *ch = new char[ n ];
   memset (ch, c, n);
   memset (ch, c, n);
-  String s ((Byte*)ch, n);
+  String s ((Byte *)ch, n);
   delete[] ch;
   return s;
 }
   delete[] ch;
   return s;
 }
@@ -268,27 +265,27 @@ String_convert::char_string (char c, int n)
 String
 String_convert::rational_string (Rational r)
 {
 String
 String_convert::rational_string (Rational r)
 {
-       return r.string ();
+  return r.to_string ();
 }
 
 String
 String_convert::pointer_string (void const *l)
 {
   char buffer[STRING_BUFFER_LEN];
 }
 
 String
 String_convert::pointer_string (void const *l)
 {
   char buffer[STRING_BUFFER_LEN];
-  snprintf (buffer, STRING_BUFFER_LEN, "%p", l);     // assume radix 10
+  snprintf (buffer, STRING_BUFFER_LEN, "%p", l); // assume radix 10
   return String (buffer);
 }
 
 /**
   return String (buffer);
 }
 
 /**
-  Convert a double to a string.
+   Convert a double to a string.
 
 
-  @param
-  #n# is the number of nonzero digits
- */
+   @param
+   #n# is the number of nonzero digits
+*/
 String
 String_convert::precision_string (double x, int n)
 {
 String
 String_convert::precision_string (double x, int n)
 {
-  String format = "%." + to_string (0 >? n - 1) + "e";
+  String format = "%." + to_string (max (0, n - 1)) + "e";
   String str = double_string (abs (x), format.to_str0 ());
 
   int exp = str.right_string (3).to_int ();
   String str = double_string (abs (x), format.to_str0 ());
 
   int exp = str.right_string (3).to_int ();
@@ -308,7 +305,7 @@ String_convert::precision_string (double x, int n)
     str = "0." + to_string ('0', -dot) + str;
   else if (dot >= str.length ())
     str += to_string ('0', dot - str.length ());
     str = "0." + to_string ('0', -dot) + str;
   else if (dot >= str.length ())
     str += to_string ('0', dot - str.length ());
-  else if (( dot > 0) && (dot < str.length ()))
+  else if ((dot > 0) && (dot < str.length ()))
     str = str.left_string (dot) + "." + str.cut_string (dot, INT_MAX);
   else
     assert (0);
     str = str.left_string (dot) + "." + str.cut_string (dot, INT_MAX);
   else
     assert (0);
@@ -321,7 +318,7 @@ String_convert::split (String str, char c)
 {
   Array<String> a;
   int i = str.index (c);
 {
   Array<String> a;
   int i = str.index (c);
-  while (i >=0)
+  while (i >= 0)
     {
       String s = str.left_string (i);
       a.push (s);
     {
       String s = str.left_string (i);
       a.push (s);
@@ -335,17 +332,16 @@ String_convert::split (String str, char c)
   return a;
 }
 
   return a;
 }
 
-
 String
 String_convert::long_string (long l)
 {
   char s[STRING_BUFFER_LEN];
 String
 String_convert::long_string (long l)
 {
   char s[STRING_BUFFER_LEN];
-  sprintf (s,"%ld", l);
+  sprintf (s, "%ld", l);
   return s;
 }
 
 String
 String_convert::pad_to (String s, int n)
 {
   return s;
 }
 
 String
 String_convert::pad_to (String s, int n)
 {
-  return s + to_string (' ' , (n - s.length ()) >? 0);
+  return s + to_string (' ', max (n - s.length (), 0));
 }
 }