# Version Tracking Options

> The actions taken when accepting match or applying its markup are defined as options, which can be changed by the user. The sections below describe the various options available and list the default values. To access the options you can click the icon on the Matches Table.

> ## Accept Match Options

> Below is a image of the Accept Match Options:

> The following items will happen when a match is accepted:

> Name | Description | Default Value
> --- | --- | ---
> Auto Create Implied Matches | When true, an implied match will be created. | `True`
> Automatically Apply Function Name on Accept | When true, the function name of the function in the source program will be applied to the matched function in the destination program. | `True`

> ## Apply Markup Options

> Below is a image of the Apply Markup Options:

> The table below contains the markup items and their default actions taken when Apply Markup is executed on a match. Each type of markup has different available actions. These are:

> - Data Match Data Type Markup:
>   - Do Not Apply - Do not apply markup to the destination program.
>   - Replace First Data Only - Replace the markup in the destination with that from the source program. The replace will fail if any instructions or defined data, other than a defined data at the destination address, would be overwritten by the replace.
>   - Replace All Data - Replace the markup in the destination with that from the source program. The replace will fail if any instructions would be overwritten by the replace.
>     Important: After doing Replace All Data, the Reset Mark-up action will only be able to restore the single Data item that was originally at the Destination Address. Any other Data items that were replaced by this action will not be restored by Reset Mark-up.
>   - Replace Undefined Data Only - Only replace undefined bytes in the destination with the markup item's data type in the source program. Otherwise, do nothing.
> - Label Markup:
>   - Do Not Apply - Do not apply markup to the destination program
>   - Add - Adds the labels from the source program to those already at the address in the destination program.
>   - Add As Primary - Adds the labels from the source program to those already at the address in the destination program. Sets the primary label in the destination program to whatever label was the primary one in the source program.
>   - Replace All - Replaces all the labels at the address in the destination program with those from the source program.
>   - Replace Default Only - Only apply labels from the source program to the destination program when the label in the destination program is a default label.
> - Function Name Markup:
>   - Do Not Apply - Do not apply markup to the destination program
>   - Add - Adds the function name from the source program to the one already at the address in the destination program. If the existing primary symbol is default, then no new label will not be added, but instead the existing label will be replaced with the source name.
>   - Add As Primary - Adds the function name from the source program to the one already at the address in the destination program. Sets the primary label in the destination program to whatever label was the primary one in the source program.
>   - Replace Always - Always use the source symbol name to replace the destination symbol name. The one exception is that if the source symbol is a default symbol, then the destination symbol name will be removed instead of being replaced with the source symbol name.
>   - Replace Default Only - Only apply markup from the source program to the destination program when the label in the destination program is a default label.
> - Function Signature Markup:
>   Applying function signature markup applies the function signature except for the names, which are controlled by the parameter names markup.
>   - Do Not Apply - Do not apply markup to the destination program.
>   - Replace - Always replace the markup in the destination with that from the source program.
>   - Replace When Same Parameter Count - Only replace the function signature in the destination with that from the source program when the number of parameters in the source signature match the number of parameters in the destination signature.
> - Comment Markup:
>   - Do Not Apply - Do not apply markup to the destination program.
>   - Add To Existing - Append the markup from the source program to the destination program.
>   - Replace Existing - Replace the markup in the destination program with the markup from the source program.

> Function Signature Details

> > - Return Type:
> >   The function return type is applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the function REturn type in the destination program.
> >   - Replace Undefined Data Types Only - Replace the function return type in the destination with that from the source program when replacing the function signature only if the source return type is an undefined data type.
> >   - Replace - Replace the function return type in the destination with that from the source program when replacing the function signature.
> > - Inline:
> >   The function inline flag is applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the function inline flag in the destination program.
> >   - Replace - Replace the function inline flag in the destination with that from the source program when replacing the function signature.
> > - No Return:
> >   The function "No Return" flag is applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the "No Return" flag to the destination program.
> >   - Replace - Replace the "No Return" flag in the destination with that from the source program when replacing the function signature.
> > - Calling Convention:
> >   The calling convention is applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the calling convention to the destination program.
> >   - Replace If Same Language - Replace the calling convention in the destination with that from the source program when replacing the function signature if the source and destination programs are the same language.
> >   - Replace If Has Named Convention - Replace the calling convention in the destination with that from the source program when replacing the function signature if the destination program has a calling convention with the same name as the one in the source program.
> > - Call Fixup:
> >   The function call fixup is applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the function call fixup to the destination program.
> >   - Replace - Replace the function call fixup in the destination with that from the source program when replacing the function signature.
> > - Var Args:
> >   The function var args flag is applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the function var args flag in the destination program.
> >   - Replace - Replace the function var args flag in the destination with that from the source program when replacing the function signature.

> Parameter Details

> > - Parameter Data Types:
> >   The parameter data types are applied as part of the function signature markup based on this option setting.
> >   Undefined parameter data types will not replace any defined parameter data types. A default data type won't replace another undefined data type or a defined data type.
> >   - Do Not Apply - Do not apply parameter data types to the destination program.
> >   - Replace Undefined Data Types Only - Only replace undefined bytes in the destination with the parameter data type in the source program. Otherwise, do nothing.
> >   - Replace - Replace the markup in the destination with that from the source program. The replace will fail if any instructions or defined data, other than a defined data at the destination address, would be overwritten by the replace.
> > - Parameter Names:
> >   The parameter names are applied as part of the function signature markup based on this option setting.
> >   Default parameter names will not replace any defined parameter names.
> >   Whenever parameter names are replaced in the function signature using one of the source type priorities, an additional option controls whether a name in the destination function should be replaced by the one from the source function if the source types are the same.
> >   - Do Not Apply - Do not apply the parameter names to the function signature of the destination program.
> >   - Replace Default Only - Replace only default parameter names in the destination with those from the source program.
> >   - Replace - Replace the parameter names in the destination with those from the source program. Default parameter names from the source will not replace defined names in the destination.
> >   - Priority Replace - Only replace the parameter names in the destination with one that has a higher priority source type from the source program. This option applies names based on the source types from highest to lowest in the following order: User Defined, Imported, Analysis, Default.
> >   - Import Priority Replace - Only replace the parameter names in the destination with one that has a higher priority source type from the source program. This option applies names based on the source types from highest to lowest in the following order: Imported, User Defined, Analysis, Default.
> > - Parameter Names Highest Name Priority:
> >   Whenever the Function Parameter Names option is set to Priority Replace, this option determines the order of the source type priorities. Whenever parameter names are replaced in the function signature using one of the source type priorities, this option controls whether a name in the destination function should be replaced by the one from the source function if the source types are the same. Only replace the parameter names in the destination with one that has a higher priority source type from the source program.
> >   - User - This option applies names based on the source types from highest to lowest in the following order: User Defined, Imported, Analysis, Default.
> >   - Import - This option applies names based on the source types from highest to lowest in the following order: Imported, User Defined, Analysis, Default.
> > - Parameter Names Replace If Same Priority:
> >   This option determines whether or not to replace the destination parameter name with the source parameter name whenever their source types are the same and the Function Parameter Names option is set to either "User Priority Replace" or "Import Priority Replace". Checking this option's box prevents causes the source parameter name to replace the destination name when they are the same source type.
> > - Parameter Comments:
> >   The parameter comments are applied as part of the function signature markup based on this option setting.
> >   - Do Not Apply - Do not apply the parameter comments to the destination program even if the parameter names are applied.
> >   - Append To Existing - Append the parameter comments from the source program to the destination program whenever parameter names are applied.
> >   - Replace Existing - Overwrite the parameter comments in the destination program with the parameter comments from the source program whenever parameter names are applied.

> Name & Description | Default Value
> --- | ---
> Calling Convention : Specifies the default action to take for applying the function's calling convention when applying the function signature markup of a match. | `Replace If Same Language`
> Call Fixup : Specifies the default action to take for applying the function's call fixup when applying the function signature markup of a match. | `Replace`
> Data Match Data Type : Specifies the default action to take when applying the data type markup of a data match. | `Replace Undefined Data Only`
> End of Line Comment : Specifies the default action to take when applying EOL comment markup of a match. | `Add To Existing`
> Function Name : Specifies the default action to take when applying the function name of a match. | `Add As Primary`
> Function Signature : Specifies the default action to take when applying the function signature of a match. | `Replace When Same Parameter Count`
> Replace Namespace : Specifies whether to apply the source function's namespace when applying the function name. Note: If the source uses the Global namespace, then the destination will not be updated when this option is on. The Global namespace is considered the default namesapce. The assumption is that if the destination program has a non-Global namespace, then the existing destination namespace is preferred over the Global namespace. | `True`
> Use Empty Composite Types : Specifies whether to create empty composite types when the destination does not already contain the type being applied to the destination signature. | `False`
> Inline : Specifies the action to take for applying the inline flag when applying a function signature markup of a match. | `Replace`
> No Return : Specifies the default action to take when applying the no return flag when applying a function signature markup of a match. | `Replace`
> Parameter Comments : Specifies the default action to take when applying the parameter comments when applying a function signature markup of a match. | `Add To Existing`
> Parameter Data Types : Specifies the default action to take when applying the parameter data types when applying a function signature markup of a match. | `Replace Undefined Data Types Only`
> Parameter Names : Specifies the default action to take when applying the parameter names when applying a function signature markup of a match. | `Priority Replace`
> Parameter Names Highest Name Priority : Specifies the highest to lowest priority order of the source types that are used when performing a Priority Replace for Function Parameter Names. | `User`
> Parameter Names Replace If Same Priority : When true, if Function Signatures are being replaced and Function Parameter Names are doing a User Priority Replace or an Import Priority Replace and the Source Types are the same for the source and destination parameters, the source parameter will replace the destination parameter. | `False`
> Labels : Specifies the default action to take when applying the label of a match. | `Add`
> Plate Comment : Specifies the default action to take when applying Plate Comment markup of a match. | `Add To Existing`
> Post Comment : Specifies the default action to take when applying Post Comment markup of a match. | `Add To Existing`
> Pre Comment : Specifies the default action to take when applying Pre Comment markup of a match. | `Add To Existing`
> Repeatable Comment : Specifies the default action to take when applying Repeatable Comment markup of a match. | `Add To Existing`
> Return Type : Specifies the action to take for applying the return type when applying a function signature markup of a match. | `Replace Undefined Data Types Only`
> Set Excluded Markup Items To Ignored : When true, any markup items marked as Do Not Apply via these options will have their status marked as ignored, with a status of Don't Care. | `False`
> Set Incomplete Markup Items To Ignored : When true, any markup item that could not be applied (such as when it has no destination address set) will have their status marked as ignored, with a status of Don't Care. | `False`
> Var Args : Specifies the action to take for applying the var args flag when applying a function signature markup of a match. | `Replace`

Provided by: Version Tracking Plugin

Related Topics:

- Version Tracking Matches Table
- Version Tracking Markup Table
- Version Tracking Introduction
- Code Browser