The Explore equal files with external program frame

CloneSpy

The Explore equal files with external program frame


The options in this frame affect the functionality of the Explore buttons in the Result presentation windows. If one of those Explore buttons is pressed then the external program specified in this frame is executed.
  • Program: The executable entered to this edit box is executed in order to explore equal files. You can click the Browse button to select another program.


  • Params: The parameters entered to this edit box are passed to the command line of the executed program. The parameters are optional.


  • Format: The format entered to this edit box is used to complement the command line of the executed program. The format should make use of the patterns described in the Export list properties frame. Those patterns are replaced by the data of the file(s) that should be explored. Please note that the patterns %n, %p, %f, and %t should be put in double quotes (for example: "%p") because they might contain free space characters. When multiple files should be explored at the same time then for every file the patterns in the Format edit box are resolved and appended to the command line.
When multiple files should be explored at the same time then the radio buttons offer two different options to execute the external program.
  • Option 1: Execute the program (including the given parameters) for each file to explore individually. This means, if you explore n files then the external program is called n times:

      <Program> <Parameters> <Format 1>
      <Program> <Parameters> <Format 2>
      ...
      <Program> <Parameters> <Format n>


  • Option 2: Execute the program (including the given parameters) exactly once. The data of all files to explore is appended to the command line of the external program:

      <Program> <Parameters> <Format 1> <Format 2> ... <Format n>
For option 2 you can also tick the check box in order to allow CloneSpy to use the return code (exit code) of the external program to mark equal files in the list of the corresponding Result presentation window. In this case CloneSpy expects that a 32-bit value is returned. This value has to have a specific format: First, the highest bit must not be set and the second highest bit must be set. This means, a return value needs to be between 0x40000000 and 0x7FFFFFFF. Otherwise the exit code is ignored. Second, the rest of the bits has to encode which files should be marked and which should be unmarked. The following table explains how the bits have to be set:

Operation Exit code (Hex) Exit code (Bit mask)
Unmark all files 0x40000000 0100 0000 0000 0000 0000 0000 0000 0000
Only mark the first file 0x40000001 0100 0000 0000 0000 0000 0000 0000 0001
Only mark the second file 0x40000002 0100 0000 0000 0000 0000 0000 0000 0010
Only mark the first and second file 0x40000003 0100 0000 0000 0000 0000 0000 0000 0011
Only mark the third file 0x40000004 0100 0000 0000 0000 0000 0000 0000 0100
... ... ...
Mark the first 30 files 0x7FFFFFFF 0111 1111 1111 1111 1111 1111 1111 1111

In addition, a return code is ignored if it marks more files than have been passed to the external program.

Notes:
  • Files from CSC-files are not passed to the external program.


  • If the external program is used for marking equal files then please take into account that CloneSpy has a timeout of 10 seconds. If the external program runs more than 10 seconds then the exit code will be ignored by CloneSpy.


  • If multiple files are passed to the external program for marking equal files then markings are applied according to the current order in the list of the corresponding Result presentation windows.


  • If you have more than 30 equal files and try to explore them all then only the first 30 files are passed to the external program.
Examples:

Explore equal files with the 64-bit version of Total Commander:

  

Mark equal files by running a Visual Basic script using the Windows-based script host: