Browse Source

bin2c: Fixed escaping for string output.

Бранимир Караџић 6 years ago
parent
commit
4cfc6eba92
1 changed files with 10 additions and 3 deletions
  1. 10 3
      tools/bin2c/bin2c.cpp

+ 10 - 3
tools/bin2c/bin2c.cpp

@@ -66,7 +66,7 @@ public:
 		bx::write(
 		bx::write(
 			  _writer
 			  _writer
 			, &err
 			, &err
-			, "static const char* %.*s =\n\t\""
+			, "static const char* %.*s = /* Generated with bin2c. */\n\t\""
 			, m_name.getLength()
 			, m_name.getLength()
 			, m_name.getPtr()
 			, m_name.getPtr()
 			);
 			);
@@ -92,7 +92,14 @@ public:
 				}
 				}
 				else
 				else
 				{
 				{
-					bx::write(_writer, ch, &err);
+					switch (ch)
+					{
+					case '\n': bx::write(_writer, "\\\"\n\t\"", &err);  break;
+					case '\r':                                 BX_FALLTHROUGH;
+					case '\t': bx::write(_writer, "\\", &err); BX_FALLTHROUGH;
+					default  : bx::write(_writer, ch,   &err);          break;
+					}
+
 					escaped = false;
 					escaped = false;
 				}
 				}
 			}
 			}
@@ -114,7 +121,7 @@ public:
 		bx::write(
 		bx::write(
 			  _writer
 			  _writer
 			, &err
 			, &err
-			, "static const uint8_t %.*s[%d] =\n{\n"
+			, "static const uint8_t %.*s[%d] = /* Generated with bin2c. */\n{\n"
 			, m_name.getLength()
 			, m_name.getLength()
 			, m_name.getPtr()
 			, m_name.getPtr()
 			, size
 			, size