]> git.donarmstrong.com Git - lilypond.git/commitdiff
Move UTF-8 char length routine into separate function.
authorPatrick McCarty <pnorcks@gmail.com>
Thu, 29 Oct 2009 22:46:01 +0000 (15:46 -0700)
committerPatrick McCarty <pnorcks@gmail.com>
Fri, 13 Nov 2009 00:37:48 +0000 (16:37 -0800)
lily/include/misc.hh
lily/misc.cc
lily/text-interface.cc

index 12392c0cacd804dcee2db84c0e0aaec93ef0651a..e3dffa49ef5f3023672655bc27f61dd62e45a13b 100644 (file)
@@ -47,6 +47,7 @@ Real directed_round (Real f, Direction d);
 Real peak_around (Real epsilon,  Real threshold, Real x);
 Real convex_amplifier (Real standard_x, Real increase_factor, Real x);
 string camel_case_to_lisp_identifier (string in);
+vsize utf8_char_len (char);
 
 #endif
 
index ee55a00c7ecb2478a04fabdb77682b6ce8689dde..2499a09e371b90662daa22d2d628c5da09b74947 100644 (file)
@@ -9,6 +9,7 @@
 
 
 #include "misc.hh"
+#include "warn.hh"
 
 /*
   Return the 2-log, rounded down
@@ -86,3 +87,22 @@ camel_case_to_lisp_identifier (string in)
   return result;
 }
 
+vsize
+utf8_char_len (char current)
+{
+  vsize char_len = 1;
+
+  // U+10000 - U+10FFFF
+  if ((current & 0xF0) == 0xF0)
+    char_len = 4;
+  // U+0800 - U+FFFF
+  else if ((current & 0xE0) == 0xE0)
+    char_len = 3;
+  // U+0080 - U+07FF
+  else if ((current & 0xC0) == 0xC0)
+    char_len = 2;
+  else if (current & 0x80)
+    programming_error ("invalid UTF-8 string");
+
+  return char_len;
+}
index 8f2f7edc062d2f2a8fb31f2720c38fea0d13d5a8..aba3105a187bf2157cdfa4c9e24e5e5c690007c7 100644 (file)
@@ -9,15 +9,15 @@
 
 #include "text-interface.hh"
 
-
-#include "main.hh"
 #include "config.hh"
-#include "pango-font.hh"
-#include "warn.hh"
-#include "grob.hh"
 #include "font-interface.hh"
-#include "output-def.hh"
+#include "grob.hh"
+#include "main.hh"
+#include "misc.hh"
 #include "modified-font-metric.hh"
+#include "output-def.hh"
+#include "pango-font.hh"
+#include "warn.hh"
 
 static void
 replace_whitespace (string *str)
@@ -27,24 +27,13 @@ replace_whitespace (string *str)
 
   while (i < n)
     {
-      vsize char_len = 1;
       char cur = (*str)[i];
-      
-      // U+10000 - U+10FFFF
-      if ((cur & 0xF0) == 0xF0)
-       char_len = 4;
-      // U+0800 - U+FFFF
-      else if ((cur & 0xE0) == 0xE0)
-       char_len = 3;
-      // U+0080 - U+07FF
-      else if ((cur & 0xC0) == 0xC0)
-       char_len = 2;
-      else if (cur & 0x80)
-       programming_error ("invalid utf-8 string");
-      else
-       // avoid the locale-dependent isspace
-       if (cur == '\n' || cur == '\t' || cur == '\v')
-         (*str)[i] = ' ';
+
+      // avoid the locale-dependent isspace
+      if (cur == '\n' || cur == '\t' || cur == '\v')
+       (*str)[i] = ' ';
+
+      vsize char_len = utf8_char_len (cur);
 
       i += char_len;
     }