TOOLS: Update Metadata generation code to output metadata on multiple lines. Patch...
authorjia.shao.peng <jia.shao.peng@ee073f10-1060-11df-b6a4-87a95322a99c>
Tue, 3 May 2011 06:13:21 +0000 (06:13 +0000)
committerjia.shao.peng <jia.shao.peng@ee073f10-1060-11df-b6a4-87a95322a99c>
Tue, 3 May 2011 06:13:21 +0000 (06:13 +0000)
git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@189 ee073f10-1060-11df-b6a4-87a95322a99c

tools/java/cpp-build/src/com/google/i18n/phonenumbers/tools/BuildMetadataCppFromXml.java
tools/java/cpp-build/test/com/google/i18n/phonenumbers/tools/BuildMetadataCppFromXmlTest.java

index 6c5bb21..873a404 100644 (file)
@@ -152,9 +152,9 @@ public class BuildMetadataCppFromXml extends Command {
     pw.write(CopyrightNotice.TEXT);
     pw.println(String.format("#include \"%s.h\"", baseFilename));
     pw.println();
-    pw.print(String.format("static const unsigned char %s_data[] = { ", baseFilename));
+    pw.print(String.format("static const unsigned char %s_data[] = {", baseFilename));
     emitStaticArrayCode(pw);
-    pw.println(" };");
+    pw.println("};");
 
     pw.println();
     pw.println(String.format("int %s_size() {", baseFilename));
@@ -174,9 +174,19 @@ public class BuildMetadataCppFromXml extends Command {
    */
   void emitStaticArrayCode(PrintWriter pw) throws IOException {
     byte[] buf = binaryStream.toByteArray();
+    pw.print("\n  ");
 
     for (int i = 0; i < buf.length; i++) {
-      pw.printf("0x%02X, ", buf[i]);
+      String format = "0x%02X";
+
+      if (i == buf.length - 1) {
+        format += "\n";
+      } else if ((i + 1) % 13 == 0) {  // 13 bytes per line to have lines of 79 characters.
+        format += ",\n  ";
+      } else {
+        format += ", ";
+      }
+      pw.printf(format, buf[i]);
     }
     pw.flush();
     binaryStream.flush();
index 658b390..e096ee0 100644 (file)
@@ -49,7 +49,7 @@ public class BuildMetadataCppFromXmlTest {
       buildMetadataCppFromXml.setBinaryStream(stream);
       buildMetadataCppFromXml.emitStaticArrayCode(printWriter);
 
-      assertEquals("0xCA, 0xFE, 0xBA, 0xBE, ", result.toString());
+      assertEquals("\n  0xCA, 0xFE, 0xBA, 0xBE\n", result.toString());
     } catch (IOException e) {
       fail(e.getMessage());
     }