R_API void r_core_visual_prompt_input (RCore *core) { int ret; ut64 addr = core->offset; ut64 bsze = core->blocksize; r_cons_reset_colors(); r_cons_printf("\nPress <enter> to return to Visual mode.\n"); r_cons_show_cursor (true); core->vmode = false; ut64 newaddr = addr; if (curset) { if (ocursor != -1) { newaddr = core->offset + ocursor; r_core_block_size (core, cursor-ocursor); } else newaddr = core->offset + cursor; r_core_seek (core, newaddr, 1); } do { ret = r_core_visual_prompt (core); if (core->offset != newaddr) { // do not restore seek anymore newaddr = addr; } } while (ret); if (curset) { if (addr != newaddr) { r_core_seek (core, addr, 1); r_core_block_size (core, bsze); } } r_cons_show_cursor (false); core->vmode = true; }
R_API void r_core_visual_prompt_input (RCore *core) { int ret; eprintf ("Press <enter> to return to Visual mode.\n"); do { ut64 addr = core->offset; ut64 bsze = core->blocksize; if (curset) { if (ocursor != -1) { r_core_block_size (core, cursor-ocursor); r_core_seek (core, core->offset + ocursor, 1); } else r_core_seek (core, core->offset + cursor, 1); } ret = r_core_visual_prompt (core); if (curset) { r_core_seek (core, addr, 1); r_core_block_size (core, bsze); } } while (ret); }