summaryrefslogtreecommitdiff
path: root/core/src/xmake/utils/bin2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/xmake/utils/bin2c.c')
-rw-r--r--core/src/xmake/utils/bin2c.c88
1 files changed, 41 insertions, 47 deletions
diff --git a/core/src/xmake/utils/bin2c.c b/core/src/xmake/utils/bin2c.c
index aeb80efac..61befeaa9 100644
--- a/core/src/xmake/utils/bin2c.c
+++ b/core/src/xmake/utils/bin2c.c
@@ -22,8 +22,8 @@
/* //////////////////////////////////////////////////////////////////////////////////////
* trace
*/
-#define TB_TRACE_MODULE_NAME "bin2c"
-#define TB_TRACE_MODULE_DEBUG (0)
+#define TB_TRACE_MODULE_NAME "bin2c"
+#define TB_TRACE_MODULE_DEBUG (0)
/* //////////////////////////////////////////////////////////////////////////////////////
* includes
@@ -33,39 +33,37 @@
/* //////////////////////////////////////////////////////////////////////////////////////
* private implementation
*/
-static __tb_inline__ tb_size_t xm_utils_bin2c_hex2str(tb_char_t str[5], tb_byte_t value)
-{
- static tb_char_t const* digits_table = "0123456789ABCDEF";
- str[0] = ' ';
- str[1] = '0';
- str[2] = 'x';
- str[3] = digits_table[(value >> 4) & 15];
- str[4] = digits_table[value & 15];
+static __tb_inline__ tb_size_t xm_utils_bin2c_hex2str(tb_char_t str[5], tb_byte_t value) {
+ static tb_char_t const *digits_table = "0123456789ABCDEF";
+ str[0] = ' ';
+ str[1] = '0';
+ str[2] = 'x';
+ str[3] = digits_table[(value >> 4) & 15];
+ str[4] = digits_table[value & 15];
return 5;
}
-static tb_bool_t xm_utils_bin2c_dump(tb_stream_ref_t istream, tb_stream_ref_t ostream, tb_int_t linewidth, tb_bool_t nozeroend)
-{
+static tb_bool_t xm_utils_bin2c_dump(tb_stream_ref_t istream,
+ tb_stream_ref_t ostream,
+ tb_int_t linewidth,
+ tb_bool_t nozeroend) {
tb_bool_t first = tb_true;
- tb_hong_t i = 0;
- tb_hong_t left = 0;
+ tb_hong_t i = 0;
+ tb_hong_t left = 0;
tb_char_t line[4096];
tb_byte_t data[512];
tb_size_t linesize = 0;
- tb_size_t need = 0;
+ tb_size_t need = 0;
tb_assert_and_check_return_val(linewidth < sizeof(data), tb_false);
- while (!tb_stream_beof(istream))
- {
+ while (!tb_stream_beof(istream)) {
linesize = 0;
- left = tb_stream_left(istream);
- need = (tb_size_t)tb_min(left, linewidth);
- if (need)
- {
+ left = tb_stream_left(istream);
+ need = (tb_size_t)tb_min(left, linewidth);
+ if (need) {
if (!tb_stream_bread(istream, data, need))
break;
- if (!nozeroend && tb_stream_beof(istream))
- {
+ if (!nozeroend && tb_stream_beof(istream)) {
tb_assert_and_check_break(need + 1 < sizeof(data));
data[need++] = '\0';
}
@@ -73,16 +71,15 @@ static tb_bool_t xm_utils_bin2c_dump(tb_stream_ref_t istream, tb_stream_ref_t os
tb_assert_and_check_break(linesize + 6 * need < sizeof(line));
i = 0;
- if (first)
- {
- first = tb_false;
+ if (first) {
+ first = tb_false;
line[linesize++] = ' ';
+ } else {
+ line[linesize++] = ',';
}
- else line[linesize++] = ',';
linesize += xm_utils_bin2c_hex2str(line + linesize, data[i]);
- for (i = 1; i < need; i++)
- {
+ for (i = 1; i < need; i++) {
line[linesize++] = ',';
linesize += xm_utils_bin2c_hex2str(line + linesize, data[i]);
}
@@ -104,17 +101,15 @@ static tb_bool_t xm_utils_bin2c_dump(tb_stream_ref_t istream, tb_stream_ref_t os
*
* local ok, errors = utils.bin2c(binaryfile, outputfile, linewidth, nozeroend)
*/
-tb_int_t xm_utils_bin2c(lua_State* lua)
-{
- // check
+tb_int_t xm_utils_bin2c(lua_State *lua) {
tb_assert_and_check_return_val(lua, 0);
// get the binaryfile
- tb_char_t const* binaryfile = luaL_checkstring(lua, 1);
+ tb_char_t const *binaryfile = luaL_checkstring(lua, 1);
tb_check_return_val(binaryfile, 0);
// get the outputfile
- tb_char_t const* outputfile = luaL_checkstring(lua, 2);
+ tb_char_t const *outputfile = luaL_checkstring(lua, 2);
tb_check_return_val(outputfile, 0);
// get line width
@@ -124,27 +119,24 @@ tb_int_t xm_utils_bin2c(lua_State* lua)
tb_bool_t nozeroend = (tb_bool_t)lua_toboolean(lua, 4);
// do dump
- tb_bool_t ok = tb_false;
+ tb_bool_t ok = tb_false;
tb_stream_ref_t istream = tb_stream_init_from_file(binaryfile, TB_FILE_MODE_RO);
- tb_stream_ref_t ostream = tb_stream_init_from_file(outputfile, TB_FILE_MODE_RW | TB_FILE_MODE_CREAT | TB_FILE_MODE_TRUNC);
- do
- {
- if (!tb_stream_open(istream))
- {
+ tb_stream_ref_t ostream = tb_stream_init_from_file(outputfile,
+ TB_FILE_MODE_RW | TB_FILE_MODE_CREAT | TB_FILE_MODE_TRUNC);
+ do {
+ if (!tb_stream_open(istream)) {
lua_pushboolean(lua, tb_false);
lua_pushfstring(lua, "bin2c: open %s failed", binaryfile);
break;
}
- if (!tb_stream_open(ostream))
- {
+ if (!tb_stream_open(ostream)) {
lua_pushboolean(lua, tb_false);
lua_pushfstring(lua, "bin2c: open %s failed", outputfile);
break;
}
- if (!xm_utils_bin2c_dump(istream, ostream, linewidth, nozeroend))
- {
+ if (!xm_utils_bin2c_dump(istream, ostream, linewidth, nozeroend)) {
lua_pushboolean(lua, tb_false);
lua_pushfstring(lua, "bin2c: dump data failed");
break;
@@ -155,11 +147,13 @@ tb_int_t xm_utils_bin2c(lua_State* lua)
} while (0);
- if (istream) tb_stream_clos(istream);
+ if (istream)
+ tb_stream_clos(istream);
istream = tb_null;
- if (ostream) tb_stream_clos(ostream);
+ if (ostream)
+ tb_stream_clos(ostream);
ostream = tb_null;
- return ok? 1 : 2;
+ return ok ? 1 : 2;
}