PrestoSoft Blog :: Home

Saturday, December 31, 2016

Better Detection of Programming Languages omments in the next ExamDiff Pro

A much requested improvement that we will be introducing in the next version of ExamDiff Pro is better detection of comments in various programming language to allow for better and precise ignoring of these comments.

In the past, comments would be detected by programming language specific regular expression patterns. Unfortunately, this method is insufficient for detecting comments in several programming languages and use cases. For example, in previous versions of ExamDiff Pro, a URL string that includes "http://" would mark everything after the two slashes as comments in languages that use that character combination to denote single line comments. This problem can be seen below:



In the next ExamDiff Pro, comments for various syntaxes are no longer parsed with regular expressions, but rather using a programming language specific code parser, the same one that used to provide syntax highlighting. As a result, these failures of regular expression matching will be fixed in newer versions of our software. The same case that caused the previous version to fail can be seen working correctly below:



Labels: ,

Friday, November 25, 2016

Improvements to Merge in the next ExamDiff Pro

In the next ExamDiff Pro we will be making a variety of improvements to three-way diff and merge, including the ability to diff without merging, more ignore options, and general improvements to merge performance.

Three-Way Diff Without Merge

One of the new features coming to merge in ExamDiff Pro is the ability to use the three-way diff feature without having to merge to an output file. This can be done by checking the Diff Only checkbox in the comparison dialog, as shown below.



The result of using this option can be seen as follows:



Additional Ignore Options

Another new merge feature is the addition of several new advanced ignore options. These options have existed in 2-way diff for a long time and they can now be used in three-way diff and merge as well. These include case ignore settings and options to ignore parts of lines. These new options can be seen below, in the Text Merge section of the Options dialog.

Below we see the results of having entered "outcome|result" in the Parts matching regular expression text box. As seen below, on lines 8-9-7, the difference between the two lines is ignored as the only difference is the use of the words "outcome" and "result".



Improved Performance

In addition to the above features, several general improvements have been made to the performance of three-way diff and merge operations.

Labels: ,

Sunday, October 30, 2016

Improved Icon Size Customization and High DPI Display Support in the next ExamDiff Pro

In the next edition of ExamDiff Pro we will be introducing two new icon sizes, 32x32 pixels and 48x48 pixels, in addition to the previous 16x16 and 24x24 icons.



Along with introducing new size options for our icons, we have updated many of our older icons that have been around since the earliest editions of ExamDiff Pro. Users can change the sizes of icon sizes for toolbars and menus separately in the Customize menu as seen below.



Below, you can see what the new UI of ExamDiff Pro 9.0 will look like with the new icons set to 32x32 for toolbars and 24x24 for menus. Note that the Options menus use the menu icon size for the options trees and lists.



For comparison, below is the old UI and icons at 24x24.



In addition to giving the user the ability to set the size of icons in toolbars and menus, ExamDiff Pro 9.0 will automatically scale button icons to adapt to users with high DPI display.

Labels: ,

Wednesday, October 05, 2016

Fast Binary Comparison Mode (Byte-By-Byte Comparison) in the next ExamDiff Pro

In the next version of ExamDiff Pro we will be introducing fast binary comparison mode (byte-by-byte comparison). This feature can be turned on in the Options menu, under Binary Compare.



When activated, ExamDiff Pro will simply compare each byte of one file with the corresponding byte of another file, rather than executing the diff algorithm. As such, there will be no offsets for matching blocks of bytes and ExamDiff Pro will only detect changed, rather than added or deleted blocks (except for the last blocks of files - if they have different sizes). As can be seen below, byte-by-byte comparison also shows the hex memory addresses of each row of bytes.



A similar comparison with byte-by-byte disabled is shown below.



Running binary comparisons with fast binary comparison mode will also be much faster and use significantly less memory.

Labels: ,

Thursday, September 15, 2016

Logging in the next ExamDiff Pro

The next version of ExamDiff Pro will introduce logging of actions, errors, results, and other messages. By default, ExamDiff Pro will output the log to the Output Pane at the bottom of the ExamDiff Pro comparison window. This pane is shown below.



As discussed in the previous blog on the updated UI in ExamDiff Pro 9.0, this pane can be adjusted to show it permanently, hide automatically, hide permanently, or floating.

Each of the colors is used to identify a different type of message. Black indicates Results, blue indicates Action, green indicates Message, and red indicates Error.

Additionally, as shown below, right-clicking in the Output Pane shows a context menu that lets you Copy some text, Clear the current output log, Select All the text in the output log, or enable Word Wrap for particularly long strings in the Output Pane.



Users can also change the way ExamDiff Pro handles logging through the Options dialog, that can be reached by navigating to Tools | Options and then selecting Logging under Global.



In the Logging options, the user can choose to Log to file, which will output the actions log to a file in addition to the Output Pane.

There is also an option to either Append or Overwrite the log with each new instance of ExamDiff Pro. Selecting Append results in new records being appended to the bottom of the previous log file, while Overwrite will replace the file created in previous sessions.

The File size limit options allows you to prevent the log file from growing past a user selected limit. If a log file exceeds the limit, a new log file will be created and the old file will be renamed with a timestamp.

Lastly, the Include process ID will include ExamDiff Pro process ID with each line in the log file.

Labels: ,