diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index a150db5..8855c28 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -355,6 +355,11 @@ duk_ret_t ILibDuktape_Polyfills_Buffer_from(duk_context *ctx) } else if (strcmp(encoding, "hex") == 0) { + if (ILibString_StartsWith(str, (int)strlength, "0x", 2) != 0) + { + str += 2; + strlength -= 2; + } buffer = duk_push_fixed_buffer(ctx, strlength / 2); bufferLen = util_hexToBuf(str, (int)strlength, buffer); duk_push_buffer_object(ctx, -1, 0, bufferLen, DUK_BUFOBJ_NODEJS_BUFFER); diff --git a/modules/dbTool.js b/modules/dbTool.js index 1464114..0e0a3ba 100644 --- a/modules/dbTool.js +++ b/modules/dbTool.js @@ -40,6 +40,11 @@ if (process.argv.length > 1) db.Put(process.argv[2], process.argv[3]); process.exit(); break; + case 'putx': + console.log('PUTX ' + process.argv[2] + ' = ' + process.argv[3]); + db.Put(process.argv[2], Buffer.from(process.argv[3], 'hex')); + process.exit(); + break; case 'get': console.log('GET ' + process.argv[2] + ' = '); var val = db.Get(process.argv[2]); @@ -48,7 +53,7 @@ if (process.argv.length > 1) process.exit(); break; case 'getx': - console.log('GET ' + process.argv[2] + ' = '); + console.log('GETX ' + process.argv[2] + ' = '); var val = db.GetBuffer(process.argv[2]); console.log('len = ' + val.length); console.log(val==null?'0x00':('0x' + val.toString('hex')));