| IDA SDK

Public Attributes | Public Member Functions | Static Public Member Functions | List of all members
merge_handler_params_t Struct Reference

## Detailed Description

Merge handler parameters.

They describe the handler label, its kind (which is usually automatically allocated by IDA), and various flags. The MH_UI_... flags describe how the merge differences will be displayed to the user. By default they are displayed as a list (using a chooser), and a detail pane at the bottom. Currently the chooser columns are automatically determined based on the diffpos name. A diffpos name is a textual representation of an object that we compare during merging. For example, if 2 IDBs have different imagebases, then the user would see diffpos names like the following: addresses.imagebase: 0x8048000 addresses.imagebase: 0xA000000 Specifying MH_UI_COLONNAME would cause IDA to create a 2-column chooser for this merge handler.

## Public Attributes
merge_data_t & | md
qstring | label
merge_kind_t | kind
| merge handler kind merge_kind_t
merge_kind_t | insert_after
| desired position inside 'handlers' merge_kind_t
uint32 | mh_flags

## Public Member Functions
| merge_handler_params_t (merge_data_t &_md, const qstring &_label, merge_kind_t _kind, merge_kind_t _insert_after, uint32 _mh_flags)
bool | ui_has_details () const
bool | ui_complex_details () const
bool | ui_complex_name () const
char | ui_split_char () const
qstring | ui_split_str () const
bool | ui_dp_shortname () const
bool | ui_linediff () const
bool | ui_indent () const

## Static Public Member Functions
static bool | ui_has_details (uint32 _mh_flags)
| Should IDA display the diffpos detail pane?
static bool | ui_complex_details (uint32 _mh_flags)
| Do not display the diffpos details in the chooser. More...
static bool | ui_complex_name (uint32 _mh_flags)
| It customary to create long diffpos names having many components that are separated by any 7-bit ASCII character (besides of '\0'). More...
static char | ui_split_char (uint32 _mh_flags)
static qstring | ui_split_str (uint32 _mh_flags)
static bool | ui_dp_shortname (uint32 _mh_flags)
| The detail pane shows the diffpos details for the current diffpos range as a tree-like view. More...
static bool | ui_linediff (uint32 _mh_flags)
| In detail pane IDA shows difference between diffpos details. More...
static bool | ui_indent (uint32 _mh_flags)
| In the ordinary situation the spaces from the both sides of diffpos name are trimmed. More...

## Member Function Documentation

## ◆ ui_complex_details()

static bool merge_handler_params_t::ui_complex_details | ( | uint32 | _mh_flags | ) |
| inline static

Do not display the diffpos details in the chooser.

For example, the MERGE_KIND_SCRIPTS handler puts the script body as the diffpos detail. It would not be great to show them as part of the chooser.

## ◆ ui_complex_name()

static bool merge_handler_params_t::ui_complex_name | ( | uint32 | _mh_flags | ) |
| inline static

It customary to create long diffpos names having many components that are separated by any 7-bit ASCII character (besides of '\0').

In this case it is possible to instruct IDA to use this separator to create a multi-column chooser. For example the MERGE_KIND_ENUMS handler has the following diffpos name: enum_1,enum_2 If MH_UI_COMMANAME is specified, IDA will create 2 columns for these names.

## ◆ ui_dp_shortname()

static bool merge_handler_params_t::ui_dp_shortname | ( | uint32 | _mh_flags | ) |
| inline static

The detail pane shows the diffpos details for the current diffpos range as a tree-like view.

In this pane the diffpos names are used as tree node names and the diffpos details as their children. Sometimes, for complex diffpos names, the first part of the name looks better than the entire name. For example, the MERGE_KIND_SEGMENTS handler has the following diffpos name: <range>,<segm1>,<segm2>,<segm3> if MH_UI_DP_SHORTNAME is specified, IDA will use <range> as a tree node name

## ◆ ui_linediff()

static bool merge_handler_params_t::ui_linediff | ( | uint32 | _mh_flags | ) |
| inline static

In detail pane IDA shows difference between diffpos details.

IDA marks added or deleted detail by color. In the modified detail the changes are marked. Use this UI hint if you do not want to show the differences inside detail.

## ◆ ui_indent()

static bool merge_handler_params_t::ui_indent | ( | uint32 | _mh_flags | ) |
| inline static

In the ordinary situation the spaces from the both sides of diffpos name are trimmed.

Use this UI hint to preserve the leading spaces.

The documentation for this struct was generated from the following file:

- merge.hpp