summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bx/tools
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bx/tools')
-rw-r--r--3rdparty/bx/tools/bin/darwin/bin2cbin113544 -> 127496 bytes
-rwxr-xr-x3rdparty/bx/tools/bin/darwin/geniebin548784 -> 561360 bytes
-rw-r--r--3rdparty/bx/tools/bin/darwin/lemonbin95148 -> 95148 bytes
-rw-r--r--3rdparty/bx/tools/bin/linux/bin2cbin68272 -> 84448 bytes
-rwxr-xr-x3rdparty/bx/tools/bin/linux/geniebin519776 -> 547592 bytes
-rw-r--r--3rdparty/bx/tools/bin/linux/lemonbin80952 -> 80864 bytes
-rw-r--r--3rdparty/bx/tools/bin/windows/bin2c.exebin859136 -> 163328 bytes
-rw-r--r--3rdparty/bx/tools/bin/windows/genie.exebin525824 -> 559616 bytes
-rw-r--r--3rdparty/bx/tools/bin/windows/lemon.exebin99840 -> 104448 bytes
-rw-r--r--3rdparty/bx/tools/bin2c/bin2c.cpp98
10 files changed, 90 insertions, 8 deletions
diff --git a/3rdparty/bx/tools/bin/darwin/bin2c b/3rdparty/bx/tools/bin/darwin/bin2c
index cb1acca8021..7aa45d00061 100644
--- a/3rdparty/bx/tools/bin/darwin/bin2c
+++ b/3rdparty/bx/tools/bin/darwin/bin2c
Binary files differ
diff --git a/3rdparty/bx/tools/bin/darwin/genie b/3rdparty/bx/tools/bin/darwin/genie
index fd3624037ce..7ebe0a3cf11 100755
--- a/3rdparty/bx/tools/bin/darwin/genie
+++ b/3rdparty/bx/tools/bin/darwin/genie
Binary files differ
diff --git a/3rdparty/bx/tools/bin/darwin/lemon b/3rdparty/bx/tools/bin/darwin/lemon
index f8cfcebbc1b..c00a276b405 100644
--- a/3rdparty/bx/tools/bin/darwin/lemon
+++ b/3rdparty/bx/tools/bin/darwin/lemon
Binary files differ
diff --git a/3rdparty/bx/tools/bin/linux/bin2c b/3rdparty/bx/tools/bin/linux/bin2c
index ca595d9f82a..d825698d97a 100644
--- a/3rdparty/bx/tools/bin/linux/bin2c
+++ b/3rdparty/bx/tools/bin/linux/bin2c
Binary files differ
diff --git a/3rdparty/bx/tools/bin/linux/genie b/3rdparty/bx/tools/bin/linux/genie
index 6c662eada50..f61c3ee0039 100755
--- a/3rdparty/bx/tools/bin/linux/genie
+++ b/3rdparty/bx/tools/bin/linux/genie
Binary files differ
diff --git a/3rdparty/bx/tools/bin/linux/lemon b/3rdparty/bx/tools/bin/linux/lemon
index 64d24ce47ab..79e1aa9213d 100644
--- a/3rdparty/bx/tools/bin/linux/lemon
+++ b/3rdparty/bx/tools/bin/linux/lemon
Binary files differ
diff --git a/3rdparty/bx/tools/bin/windows/bin2c.exe b/3rdparty/bx/tools/bin/windows/bin2c.exe
index 2c01cdd8065..d93eff18e60 100644
--- a/3rdparty/bx/tools/bin/windows/bin2c.exe
+++ b/3rdparty/bx/tools/bin/windows/bin2c.exe
Binary files differ
diff --git a/3rdparty/bx/tools/bin/windows/genie.exe b/3rdparty/bx/tools/bin/windows/genie.exe
index 4b0426c3ddb..c8cecc1559c 100644
--- a/3rdparty/bx/tools/bin/windows/genie.exe
+++ b/3rdparty/bx/tools/bin/windows/genie.exe
Binary files differ
diff --git a/3rdparty/bx/tools/bin/windows/lemon.exe b/3rdparty/bx/tools/bin/windows/lemon.exe
index 5de0c8d6fda..ea46fecf996 100644
--- a/3rdparty/bx/tools/bin/windows/lemon.exe
+++ b/3rdparty/bx/tools/bin/windows/lemon.exe
Binary files differ
diff --git a/3rdparty/bx/tools/bin2c/bin2c.cpp b/3rdparty/bx/tools/bin2c/bin2c.cpp
index 2c7f48d1de0..afc64385be9 100644
--- a/3rdparty/bx/tools/bin2c/bin2c.cpp
+++ b/3rdparty/bx/tools/bin2c/bin2c.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
+ * Copyright 2011-2019 Branimir Karadzic. All rights reserved.
* License: https://github.com/bkaradzic/bx#license-bsd-2-clause
*/
@@ -8,6 +8,8 @@
#include <bx/file.h>
#include <bx/string.h>
+#include <bx/debug.h>
+
class Bin2cWriter : public bx::WriterI
{
public:
@@ -15,6 +17,7 @@ public:
: m_mb(_allocator)
, m_mw(&m_mb)
, m_name(_name)
+ , m_outputAsCStr(false)
{
}
@@ -24,10 +27,88 @@ public:
virtual int32_t write(const void* _data, int32_t _size, bx::Error* _err) override
{
+ m_outputAsCStr = true;
+
+ const char* data = (const char*)_data;
+ for (int32_t ii = 0; ii < _size; ++ii)
+ {
+ char ch = data[ii];
+ if (!bx::isPrint(ch)
+ && !bx::isSpace(ch) )
+ {
+ m_outputAsCStr = false;
+ break;
+ }
+ }
+
return bx::write(&m_mw, _data, _size, _err);
}
- void output(bx::WriterI* m_writer)
+ void output(bx::WriterI* _writer)
+ {
+ if (m_outputAsCStr)
+ {
+ outputString(_writer);
+ }
+ else
+ {
+ outputHex(_writer);
+ }
+ }
+
+ void outputString(bx::WriterI* _writer)
+ {
+ const char* data = (const char*)m_mb.more(0);
+ uint32_t size = uint32_t(bx::seek(&m_mw) );
+
+ bx::Error err;
+
+ bx::write(
+ _writer
+ , &err
+ , "static const char* %.*s = /* Generated with bin2c. */\n\t\""
+ , m_name.getLength()
+ , m_name.getPtr()
+ );
+
+ if (NULL != data)
+ {
+ bool escaped = false;
+
+ for (uint32_t ii = 0; ii < size; ++ii)
+ {
+ char ch = data[ii];
+
+ if (!escaped)
+ {
+ switch (ch)
+ {
+ case '\"': bx::write(_writer, "\\\"", &err); break;
+ case '\n': bx::write(_writer, "\\n\"\n\t\"", &err); break;
+ case '\r': bx::write(_writer, "\\r", &err); break;
+ case '\\': escaped = true; BX_FALLTHROUGH;
+ default: bx::write(_writer, ch, &err); break;
+ }
+ }
+ else
+ {
+ 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;
+ }
+ }
+ }
+
+ bx::write(_writer, &err, "\"\n\t;\n");
+ }
+
+ void outputHex(bx::WriterI* _writer)
{
#define HEX_DUMP_WIDTH 16
#define HEX_DUMP_SPACE_WIDTH 96
@@ -38,9 +119,9 @@ public:
bx::Error err;
bx::write(
- m_writer
+ _writer
, &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.getPtr()
, size
@@ -63,7 +144,7 @@ public:
if (HEX_DUMP_WIDTH == asciiPos)
{
ascii[asciiPos] = '\0';
- bx::write(m_writer, &err, "\t" HEX_DUMP_FORMAT "// %s\n", hex, ascii);
+ bx::write(_writer, &err, "\t" HEX_DUMP_FORMAT "// %s\n", hex, ascii);
data += asciiPos;
hexPos = 0;
asciiPos = 0;
@@ -73,11 +154,11 @@ public:
if (0 != asciiPos)
{
ascii[asciiPos] = '\0';
- bx::write(m_writer, &err, "\t" HEX_DUMP_FORMAT "// %s\n", hex, ascii);
+ bx::write(_writer, &err, "\t" HEX_DUMP_FORMAT "// %s\n", hex, ascii);
}
}
- bx::write(m_writer, &err, "};\n");
+ bx::write(_writer, &err, "};\n");
#undef HEX_DUMP_WIDTH
#undef HEX_DUMP_SPACE_WIDTH
#undef HEX_DUMP_FORMAT
@@ -86,6 +167,7 @@ public:
bx::MemoryBlock m_mb;
bx::MemoryWriter m_mw;
bx::StringView m_name;
+ bool m_outputAsCStr;
};
void help(const char* _error = NULL)
@@ -100,7 +182,7 @@ void help(const char* _error = NULL)
bx::write(stdOut, &err
, "bin2c, binary to C\n"
- "Copyright 2011-2018 Branimir Karadzic. All rights reserved.\n"
+ "Copyright 2011-2019 Branimir Karadzic. All rights reserved.\n"
"License: https://github.com/bkaradzic/bx#license-bsd-2-clause\n\n"
);