diff --git a/libr/anal/hint.c b/libr/anal/hint.c index ac9885061e..91267b2797 100644 --- a/libr/anal/hint.c +++ b/libr/anal/hint.c @@ -49,16 +49,16 @@ R_API void r_anal_hint_set_pointer (RAnal *a, ut64 addr, ut64 ptr) { setHint (a, "ptr:", addr, NULL, ptr); } -R_API void r_anal_hint_set_arch (RAnal *a, ut64 addr, char *arch) { - setHint (a, "arch:", addr, r_str_trim_head (arch), 0); +R_API void r_anal_hint_set_arch (RAnal *a, ut64 addr, const char *arch) { + setHint (a, "arch:", addr, r_str_trim_const (arch), 0); } -R_API void r_anal_hint_set_opcode (RAnal *a, ut64 addr, char *opcode) { - setHint (a, "opcode:", addr, r_str_trim_head (opcode), 0); +R_API void r_anal_hint_set_opcode (RAnal *a, ut64 addr, const char *opcode) { + setHint (a, "opcode:", addr, r_str_trim_const (opcode), 0); } -R_API void r_anal_hint_set_esil (RAnal *a, ut64 addr, char *esil) { - setHint (a, "esil:", addr, r_str_trim_head (esil), 0); +R_API void r_anal_hint_set_esil (RAnal *a, ut64 addr, const char *esil) { + setHint (a, "esil:", addr, r_str_trim_const (esil), 0); } R_API void r_anal_hint_set_bits (RAnal *a, ut64 addr, int bits) { diff --git a/libr/core/cmd_print.c b/libr/core/cmd_print.c index a44e4abd67..401bacc36a 100644 --- a/libr/core/cmd_print.c +++ b/libr/core/cmd_print.c @@ -1162,7 +1162,7 @@ static int cmd_print(void *data, const char *input) { const int bsize = strtol(input+2, NULL, 10); processed_cmd = R_TRUE; if (bsize > core->blocksize) { - char *block = malloc (bsize); + ut8 *block = malloc (bsize); if (block && r_core_read_at (core, core->offset, block, bsize)) r_core_print_disasm_json (core, core->offset, block, bsize); diff --git a/libr/include/r_anal.h b/libr/include/r_anal.h index 40d8ac0890..c0584540e7 100644 --- a/libr/include/r_anal.h +++ b/libr/include/r_anal.h @@ -1195,10 +1195,10 @@ R_API void r_anal_hint_set_jump (RAnal *a, ut64 addr, ut64 ptr); R_API void r_anal_hint_set_fail (RAnal *a, ut64 addr, ut64 ptr); R_API void r_anal_hint_set_length (RAnal *a, ut64 addr, int length); R_API void r_anal_hint_set_bits (RAnal *a, ut64 addr, int bits); -R_API void r_anal_hint_set_arch (RAnal *a, ut64 addr, char *arch); +R_API void r_anal_hint_set_arch (RAnal *a, ut64 addr, const char *arch); R_API void r_anal_hint_set_size (RAnal *a, ut64 addr, int length); -R_API void r_anal_hint_set_opcode (RAnal *a, ut64 addr, char *str); -R_API void r_anal_hint_set_esil (RAnal *a, ut64 addr, char *str); +R_API void r_anal_hint_set_opcode (RAnal *a, ut64 addr, const char *str); +R_API void r_anal_hint_set_esil (RAnal *a, ut64 addr, const char *str); R_API void r_anal_hint_set_pointer (RAnal *a, ut64 addr, ut64 jump); R_API int r_anal_esil_eval(RAnal *anal, const char *str); diff --git a/libr/include/r_core.h b/libr/include/r_core.h index bb37f2c7ea..f2fdb55aaa 100644 --- a/libr/include/r_core.h +++ b/libr/include/r_core.h @@ -447,6 +447,7 @@ typedef struct { R_API RCoreAnalStats* r_core_anal_get_stats (RCore *a, ut64 from, ut64 to, ut64 step); R_API void r_core_anal_stats_free (RCoreAnalStats *s); R_API void r_core_syscmd_ls(const char *input); +R_API void r_core_syscmd_cat(const char *file); /* PLUGINS */ extern RCorePlugin r_core_plugin_java; diff --git a/libr/include/r_util.h b/libr/include/r_util.h index 2fe2a51b26..dd7f083070 100644 --- a/libr/include/r_util.h +++ b/libr/include/r_util.h @@ -398,6 +398,7 @@ R_API char *r_str_chop(char *str); R_API const char *r_str_chop_ro(const char *str); R_API char *r_str_trim(char *str); R_API char *r_str_trim_head(char *str); +R_API const char *r_str_trim_const(const char *str); R_API char *r_str_trim_tail(char *str); R_API char *r_str_trim_head_tail(char *str); R_API ut32 r_str_hash(const char *str); diff --git a/libr/util/str.c b/libr/util/str.c index 0bf67786a9..ec3db150fe 100644 --- a/libr/util/str.c +++ b/libr/util/str.c @@ -445,6 +445,12 @@ R_API char *r_str_chop(char *str) { return str; } +R_API const char *r_str_trim_const(const char *str) { + if (str) + for (; *str && iswhitechar (*str); str++); + return str; +} + R_API char *r_str_trim_head(char *str) { char *p; diff --git a/shlr/www/t/r2.js b/shlr/www/t/r2.js index adefdd1abd..cf2cc353be 100644 --- a/shlr/www/t/r2.js +++ b/shlr/www/t/r2.js @@ -119,16 +119,13 @@ r2.get_disasm = function (offset, length, cb) { r2.cmd ("pD "+length+"@"+offset, cb); } -r2.config_set = function (k, v, fn) { - r2.cmd ("e "+k+"="+v, fn); -} - -r2.config_get = function (k, fn) { - r2.cmd ("e "+k, fn); -} - -r2.set_flag_space = function (ns, fn) { - r2.cmd ("fs "+ns, fn); +r2.Config = function (k, v, fn) { + if (typeof v == 'function' || !v) { // get + r2.cmd ("e "+k, fn || v); + } else { // set + r2.cmd ("e "+k+"="+v, fn); + } + return r2; } r2.set_flag_space = function (ns, fn) { @@ -202,10 +199,10 @@ function _internal_cmd(c, cb) { if (r2cmd) { // TODO: use setTimeout for async? return r2cmd (c, cb); - } else - Ajax ('GET', r2.root+"/cmd/"+encodeURI (c), '', function (x) { - if (cb) cb (x); - }); + } else { + Ajax ('GET', r2.root+"/cmd/"+encodeURI (c), '', + function (x) { if (cb) cb (x); }); + } } r2.cmd = function (c, cb) {