206 if (strstr(
type,
"opc")) {
213 }
else if (strstr(
type,
"fun")) {
220 }
else if (strstr(
type,
"hit")) {
244 if (strstr(
type,
"opc")) {
245 eprintf(
"TODO: rz_core_seek_prev (opc)\n");
246 }
else if (strstr(
type,
"fun")) {
253 }
else if (strstr(
type,
"hit")) {
278 int diff = core->
offset % align;
364 }
else if (
idx < 0) {
461 index = bb->
ninstr + index;
463 if (!(index >= 0 && index < bb->ninstr)) {
RZ_API RzBinFile * rz_bin_file_at(RzBin *bin, ut64 at)
RZ_API bool rz_bin_select_bfid(RzBin *bin, ut32 bf_id)
RZ_API ut64 rz_analysis_block_get_op_addr(RzAnalysisBlock *block, size_t i)
RZ_API RzAnalysisBlock * rz_analysis_find_most_relevant_block_in(RzAnalysis *analysis, ut64 off)
RZ_API int rz_core_block_read(RzCore *core)
RZ_API ut64 rz_config_get_i(RzConfig *cfg, RZ_NONNULL const char *name)
RZ_API RZ_BORROW const char * rz_config_get(RzConfig *cfg, RZ_NONNULL const char *name)
RZ_API void rz_flag_foreach_prefix(RzFlag *f, const char *pfx, int pfx_len, RzFlagItemCb cb, void *user)
RZ_API void rz_flag_foreach(RzFlag *f, RzFlagItemCb cb, void *user)
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
RZ_API RZ_BORROW RzListIter * rz_list_append(RZ_NONNULL RzList *list, void *data)
Appends at the end of the list a new element.
RZ_API void rz_list_free(RZ_NONNULL RzList *list)
Empties the list and frees the list pointer.
static static fork const void static count static fd const char const char static newpath char char char static envp time_t static t const char static mode static whence const char static dir time_t static t unsigned static seconds const char struct utimbuf static buf static inc static sig const char static mode dup
RZ_API int rz_analysis_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, const ut8 *data, int len, RzAnalysisOpMask mask)
RZ_API int rz_print_get_cursor(RzPrint *p)
static const char hex[16]
@ RZ_ANALYSIS_OP_MASK_BASIC
RZ_API ut64 rz_io_seek(RzIO *io, ut64 offset, int whence)
void(* RzListFree)(void *ptr)
#define RZ_LOG_ERROR(fmtstr,...)
RZ_API ut64 rz_num_tail(RzNum *num, ut64 addr, const char *hex)
#define UT64_ADD_OVFCHK(x, y)
RZ_API void rz_vector_pop(RzVector *vec, void *into)
static void * rz_vector_index_ptr(RzVector *vec, size_t index)
RZ_API void rz_vector_remove_at(RzVector *vec, size_t index, void *into)
RZ_API void * rz_vector_push(RzVector *vec, void *x)
#define rz_vector_foreach(vec, it)
RZ_API void rz_vector_fini(RzVector *vec)
RZ_API void rz_vector_clear(RzVector *vec)
#define rz_vector_foreach_prev(vec, it)
static size_t rz_vector_len(const RzVector *vec)
RZ_API void rz_vector_init(RzVector *vec, size_t elem_size, RzVectorFree free, void *free_user)
static bool rz_vector_empty(const RzVector *vec)
RZ_API bool rz_core_seek_redo(RzCore *core)
static bool seek_save(RzCore *core, ut64 addr)
RZ_API RzList * rz_core_seek_list(RzCore *core)
Return the seek history.
RZ_API RzCoreSeekItem * rz_core_seek_peek(RzCore *core, int idx)
Return a element in the undo/redo list.
static void set_current_seek_state(RzCore *core, RzCoreSeekItem *elem)
RZ_API bool rz_core_seek_delta(RzCore *core, st64 delta, bool save)
Seek relative to current offset and optionally save the current offset in seek history.
static RzCoreSeekItem * dup_seek_history_item(RzCoreSeekItem *item, int i)
RZ_API bool rz_core_seek_and_save(RzCore *core, ut64 addr, bool rb)
Save currently marked state in seek history and seek to addr .
RZ_API bool rz_core_seek_mark(RzCore *core)
Mark current state (offset+cursor) as the next state to save in history.
static bool need_add2history(RzCore *core, ut64 addr)
RZ_API bool rz_core_seek_next(RzCore *core, const char *type, bool save)
Seek to the next type of item from current offset.
static void get_current_seek_state(RzCore *core, RzCoreSeekItem *elem)
RZ_API int rz_core_seek_base(RzCore *core, const char *hex, bool save)
Seek to a new address composed of current offset with last hex digits replaced with those of hex.
RZ_API void rz_core_seek_reset(RzCore *core)
RZ_IPI bool rz_core_seek_bb_instruction(RzCore *core, int index)
RZ_API bool rz_core_seek_prev(RzCore *core, const char *type, bool save)
Seek to the previous type of item from current offset.
static bool seek_check_save(RzCore *core, ut64 addr, bool rb, bool save)
RZ_API bool rz_core_seek_undo(RzCore *core)
RZ_API void rz_core_seek_free(RzCore *core)
RZ_API bool rz_core_seek_opt(RzCore *core, ut64 addr, bool rb, bool save)
Seek to addr and optionally save the current offset in seek history.
RZ_API void rz_core_seek_item_free(RzCoreSeekItem *item)
RZ_API bool rz_core_seek_align(RzCore *core, ut64 align, bool save)
Seek to current offset aligned to align.
RZ_API bool rz_core_seek_save(RzCore *core)
Save last marked position, if any, in the seek history.
RZ_API bool rz_core_seek_analysis_bb(RzCore *core, ut64 addr, bool save)
Seek to basic block that contains address addr.
static void add_seek_history(RzCore *core)
RZ_API bool rz_core_seek(RzCore *core, ut64 addr, bool rb)
Seek to addr.
static RzCoreSeekItem * get_current_item(RzCore *core)
static bool seek_flag_offset(RzFlagItem *fi, void *user)
XX curplugin == o->plugin.
RZ_DEPRECATE RzBinFile * cur
never use this in new code! Get a file from the binfiles list or track it yourself.
RzCoreSeekItem saved_item
Position to save in history.
RzVector undos
Stack of RzCoreSeekItems, allowing to "go back in time".
RzVector redos
Stack of RzCoreSeekItems, allowing to re-do an action that was undone.
bool saved_set
When true, the saved field is set.
int idx
Position of the item relative to the current seek item (0 current seek, < 0 for undos,...
ut64 offset
Value of core->offset at the given time in history.
bool is_current
True if this is the current seek value.
int cursor
Position of the cursor at the given time in history.
RzCoreSeekHistory seek_history
ut64(WINAPI *w32_GetEnabledXStateFeatures)()