## WinMerge 2.16.4 Release Notes

- About This Release
- What Is New in 2.16.4?
- Known Issues

July 2019

### About This Release

This is a WinMerge 2.16.4 stable release. This release replaces earlier WinMerge stable releases as a recommended release.

Please submit bug reports to our bug-tracker.

### What Is New in 2.16.4?

#### File compare

- Bugfix: coretools.cpp: linelen() should not truncate lines with embedded NULs (GitHub #156)
- Bugfix: file compare : right-click doesn't select the diff under the mouse (GitHub #159)
- Bugfix: Avoid an exception in GuessCodepageEncoding() when filepath equals "NUL" (GitHub #162)
- Bugfix: Auto-indent did not work if the EOL-style was not CRLF

#### Folder compare

- Bugfix: Generating HTML Folder Compare report including File Compare report did not complete (Bitbucket #15)
- Bugfix: Compare Statistics dialog: The number of diff folders was counted in the number of diff files

#### Plugins

- Bugfix: PrediffLineFilter.sct: Wrong encoding for settings dialog (Bitbucket #16)

#### Translations

- Update Russian translation (Bitbucket PR #51)
- Update Italian translation (Bitbucket PR #52)

#### Internals

- Favor PathContext::GetSize() over PathContext::size() (GitHub #157)
- Consolidate FolderCmp (GitHub #158, #160, #161)
- Avoid some InnoSetup compiler warnings (Bitbucket PR #53)

### What Is New in 2.16.3 Beta?

#### General

- Bugfix: Slow startup with documents folder redirected to high-latency network drive (Bitbucket #155)
- Add VisualElementsManifest for Windows 10 start menu (Bitbucket PR #47)
- Reduce the size of the executable file

#### File compare

- Bugfix: Location and Diff pane visibility broken in 2.16.1 (GitHub #138, Bitbucket #163, sf.net #2228)
- Bugfix: Temporary files could not be created (GitHub #143, sf.net #2220)
- Bugfix: Trivial bugfix (GitHub #155)
- Bugfix: Regression: Incorrectly shows 'no changes' for large portions of certain binary files! (Bitbucket #162)
- Small tweaks for HTML file reports (Bitbucket PR #44, #45)
- Made diff algorithm selectable by using libXDiff. algorithms: default(Myers), minimal, patience, histogram
- triple click to select whole line (Bitbucket #144)
- Add support for merging word level diffs in selection. demo
- Use own colors settings for folder compare (Bitbucket PR #49)

#### Folder compare

- Bugfix: WinMerge 3-Way Compare Bugs: Always Shows Unique Items. (GitHub #154)
- Bugfix: WinMerge could not compare files that are opened in other applications
- Show progress bar while generating Folder Compare Report

#### Project file

- Bugfix: Possible Bugs in 2.16.2 (sf.net #2221)
- Supporting relative path in project file (Bitbucket #158)
- Allow multiple <paths> in project file

#### Image compare

- Bugfix: no message was displayed when file saving failed
- Implement Insertion/Deletion Detection. demo

#### Options dialog

- Tweak size of combobox "codepage" in options (GitHub #144)
- Sort combobox codepage and add manual codepage (GitHub #145)

#### Installer

- Allow per-user installation (only x64 installer)
- Don't install Files.txt and don't add "Uninstall WinMerge" to the start menu (Bitbuket #38)

#### Translations

- Update French translation (GitHub #149, #150)
- Update Lithuanian translation (Bitbucket PR #36, #40, #43, #46, #48, #50)
- Update Russian translation (Bitbucket PR #41, #42)

### What Is New in 2.16.2?

#### File compare

- Bugfix: Edit > Replace > All, Undo: should undo all (sf.net #2113)
- Bugfix: Save As: default directory should be file's original directory (sf.net #2163)
- Bugfix: Strings with embedded 0 bytes are handled incorrectly (sf.net #2187)
- Bugfix: Removed word level merge support due to unstable behavior
- Bugfix: Menu item "File->File Encoding" moves main window (Bitbucket #150)
- Bugfix: Crash when maximizing MDI child window
- bugfix: Crash when failed to load file
- Add syntax highlight for Lua (Bitbucket #114)

#### Folder compare

- Bugfix: Compare results refresh incorrectly after deletions (sf.net #2217)

#### Archive Support

- Upgraded to 7-zip 19.00

#### Tab bar

- Improve icon display at 120DPI

#### Image compare

- Bugfix: Zoom In/Out shortcuts don't update zoom level in location pane (Bitbucket #149)
- Zoom In/Out menu items for image compare (Bitbucket #148)

#### Open dialog

- Allow quoted filenames in "Select Files or Folders" (sf.net #1240, GitHub #137)

#### Manual

- Some tweaks for the manual (Bitbucket PR #35)

#### Installer

- Bugfix: Gibberish language during installation (Bitbucket #147)

#### Translations

- Update Catalan translation (Bitbucket PR #29)
- Update Italian translation (Bitbucket PR #32)
- Update Lithuanian translation (Bitbucket PR #33)
- Update Simplified Chinese translation (Bitbucket PR #34)

### What Is New in 2.16.1?

#### Open dialog

- Alternatively to Swap buttons, allow drag & drop between filetype icons (GitHub #118)
- Expose cleaner moving/resizing behavior esp. in non-maximized state (GitHub #119)
- Avoid retaining bogus filetype icons from previous selections (GitHub #122)

#### File compare

- Bugfix: Extra blank displayed after left/right single/double quotes (Bitbucket #134)
- Bugfix: Click doesn't trigger document to scroll in Location pane under circumstance (Bitbucket #140)
- Bugfix: Frustrating text selection bug (GitHub #109)
- Bugfix: Left and Right files swap after losing focus v2.16.0.0 (sf.net #2213)
- Bugfix: WinMerge 2.16.0.0 Unicoe X64 version displaying Microsoft Visual C++ Runtime Library Asset in DiffWraper.CPP line 984 (sf.net #2214)
- Bugfix: Cancelation of selection range with reverse indent (sf.net #2215)
- Bugfix: upward and downward search not work correctly
- Bugifx: Fix menu accelerator conflict
- Add File/Recompare As/Image menu item
- Add support for merging word level diffs in selection Demo

#### Folder compare

- Bugfix: Unique files are not shown (Bitbucket #138)
- Bugfix: Improve Hard-IO error handling, other bug fixes, cleanup, tweaks (GitHub #120)

#### Archive Support

- Upgraded to 7-zip 18.06 (Bitbucket #119)

#### Options dialog

- Bugfix: Widen the width of labels in Options dialog (GitHub#108)
- Bugfix: view settings make winmerge crash (Bitbucket #109)
- Bugfix: 64bit version can't browse between option pages (Bitbucket #128)
- Bugfix: Shell Integration "Enable Advanced Menu" disabled on new install (Bitbucket #137)
- Bugfix: Binary File options don't change from default (Bitbucket #135)

#### Shell extension

- Bugfix: CreateTranslatedRcFiles needs an update (GitHub #113)

#### Translations

- Update Brazilian Portuguese translation (GitHub #108)
- Update Swedish translation (sf.net #3035, GitHub #112, #114)
- Update Lithuanian translation (Bitbucket PR #7, #8, #27)
- Update Russian translation (Bitbucket PR #9-#26, #139)
- Update Bulgarian translation (Bitbucket PR #28)
- Update Turkish translation (sf.net #3036)
- Update Japanese translation
- Remove now unneeded MergeLang.dll

#### Manual

- Bugfix: Some fixes in the manual (GitHub #116)
- Bugifx: end of line documentation (sf.net #2211)
- Clarification as per https://github.com/WinMerge/winmerge-v2/issues/41 (GitHub #126)

#### Internals

- Remove `nFinalNullLines` checking, disabled by an earlier commit (GitHub #111)
- Various minor updates, plus preparation for VS2019 (GitHub #115)
- DiffTextBuffer: Create Unicode temp files (makes EscapeControlChars() obsolete) (GitHub #123)
- Don't pass `DIFFITEM *` by casting to `uintptr_t` (GitHub #124, #125)

### What Is New in 2.16.0?

#### General

- Bugfix: Disabled icon on toolbar not gray out when running on XP

#### File compare

- Bugfix: Copy to X and Advance" not work in 3way-compare (Bitbucket #123)
- Bugfix: File compare always showing different ending (GitHub #106)
- Bugfix: Scrolling issue (GitHub #105)
- Bugfix: A crash (GitHub #104)
- Add separators to "Zoom" and "Diff Context" menus (Bitbucket PR #5)

#### Open dialog

- Bugfix: Drag&Drop in Open Dialog won't work correct (Bitbucket #125)

#### Installer

- Drop ClearCase integration (Bitbucket PR #6)

#### Translations

- Add Lithuanian translation (Bitbucket #124)
- Update Portuguese translation (GitHub #102,103)

### What Is New in 2.15.5 Beta?

#### General

- Add support for very long path and file names (GitHub #87,95,99)
- Enable Ctrl+C shortcut key on the file path bar
- Remove support for old version control system (GitHub #96)
- Improve Options > Color > Differences dialog layout (GitHub #89)
- Improve information and formatting in Help > Configuration reporting (GitHub #92)
- Improve visual layout of Open dialog (GitHub #97)
- Add icon for "New (3 panes)" menu item (GitHub #97)

#### File compare

- Add Window/Split menu item
- Improve handling of last lines in files (GitHub #89,90,93)
- Improve "Visual C++ Loose" filter (GitHub #95)
- BugFix: Crash when saving a file if the active pane is diff detail pane
- BugFix: Crash when pressing Alt+Down key while loading large files
- BugFix: Crash when "mousing over" Plugin Setting context menu if Plugins are disabled
- BugFix: Various problems reading of files > 2GB (GitHub #81)
- BugFix: Selecting files "From MRU list" again works correctly

#### Translations

- Update Italian translation (GitHub #86)
- Update Japanese translation (Bitbucket #3)
- Update Dutch translation
- Update German translation
- Bugfix Spanish translation error (Bitbucket Issue #108)

#### Internals

- Various diffengine and compilation/build fixes (GitHub #89,90,91,92,94)

### What Is New in 2.15.4 Beta?

#### Appearance

- BugFix: Dot icon in a drop-down menu is not drawn correctly

#### File compare

- BugFix: Crash when reading a file in Google Drive File Stream (sf.net#2206)
- BugFix: Crash when removing ghost lines (GitHub #80)
- BugFix: Lines without EOL appears even though it is not the last line
- Add Ctrl++/Ctrl+-(not numpad key) shortcut key to zoom in/out (sf.net#1727)
- Remove 2GB file size limit for 64-bit build (GitHub #81, #82)

#### Folder compare

- Add Pause button to Folder Compare Progress dialog (sf.net#828,#1222,#1237)
- Re-detect the file encoding when opening files (sf.net#2131)

#### Open dialog

- Add Options button to Open dialog
- Add Save Project button to Open dialog

#### Patch generator dialog

- BugFix: File1/File2 fields don't remember manual input (sf.net#1949)

#### Reports

- BugFix: Garbled text was copied to the clipboard when generating a report on the clipboard (sf.net#2200)

#### Plugins

- Add PrediffLineFilter.sct plugin
- Make ignored lines by Prediffer plugin colored

#### Translations

- Update Slovak translation (sf.net#2902)
- Update Portuguese translation (GitHub #84,#85)

#### Internals

- Adapt to VS2017 version 15.6.1 (GitHub #79)

### What Is New in 2.15.3 Beta?

#### File compare

- Fix assertion error when started on Windows XP
- Fix a problem that moved blocks are sometimes shown as normal diff blocks
- Fix a problem that EOL is removed unexpectedly when removing lines included ghost lines
- Fix reverse search to search last line correctly
- Fix infinite loop when replacing ^ (sf.net#2094)
- Fix to show text that contains & on message box, correctly (sf.net#2067)

#### Folder compare

- Fix a problem that unique files are invisible when comparing files using 'Date' compare method
- Remove trailing garbage from a dragged text (Github#75)

#### Patch generator dialog

- Fix a problem that typed-in Context in Generate Patch is not applied (sf.net#2179)

#### Location pane

- Add support for HiDPI screens (Github #54)

#### Plugins

- CompareMSExcelFiles.sct: Add "Compare headers and footers" checkbox to settings dialog (sf.net#2102)

#### Installer

- Remove extra space in installer: " Launch WinMerge" (sf.net#2144)
- Add "How to Apply These Terms to Your New Programs" section into GPL.rtf (sf.net#2098)

#### Translations

- Add Finnish translation (sf.net#3031)
- Add Sinhala translation (sf.net#3032)
- Update Korean translation (Github #61)
- Update Portuguese translation (GitHub #56-78)
- Update Polish translation (sf.net#2177)
- Update Turkish translation (Bitbucket#85, #86)
- Change the file encodings of all .po files of WinMerge GUI to UTF-8

### What Is New in 2.15.2 Beta?

WinMerge 2.15.2 is a beta release which mainly adds support for experimental 3-way comparison and image comparison.

#### Appearance

- Flatten GUI pane edges
- Partial support for HiDPI (not Per-Monitor DPI Aware)
- Remove splash screen. The splash screen image is now displayed in About dialog

#### Tool bar

- Add "View->Toolbar->Huge" menu item
- Add drop down menu to Options icon
- Add icons for 3-way merge functions

#### Open dialog

- Change window type of Open dialog from modal window to MDI child window
- Add Read-only checkbox to Open dialog
- Add buttons to swap items
- Add the third path combobox for 3-way comparison
- Allow file name patterns like not only *.ext but file*.ext

#### Tab bar

- Make Tabbar reorderable by using drag-and-drop
- Add "Close Other Tabs", "Close Right Tabs" and "Close Left Tabs" menu items to system menu
- Add "Enable Auto Max Width" menu item to Tab Bar context menu
- Show close button when hovering over tabs
- Add icons to each tab

#### Options dialog

- Add "Close Select Files or Folders Dialog on clicking OK button" checkbox to "General" page
- Add "Language" combobox to "General" page and remove Language dialog
- Add "Ignore codepage differences" checkbox to "Compare/General" page
- Remove checkboxes in "Enable multiple compare windows for" group from "General" page (Now always enabled multi compare windows)
- Add "Include Subfolders" checkbox to "Compare/Folder" page
- Add "Automatically expand all subfolders" checkbox to "Compare/Folder" page
- Add "Ignore Reparse Points" checkbox to "Compare/Folder" page
- Add "Number of compare threads" textbox to "Compare/Folder" page
- Add "Compare/Binary" page
- Add "Compare/Image" page
- Add checkboxes whether to use custom colors for text to "Colors/Differences" page
- Add "GitHub/Bitbucket" button to "Colors/Differences" page
- Add "Margin" color button to "Colors/Text" page
- Add "Colors/Markers" page
- Remove "Use stand-alone 7-Zip if available" and "Use local 7-Zip from WinMerge folder" radio button from "Archive Support" page (Now always use local 7-Zip from WinMerge folder)
- Make $file and $linenum parameters available in External editor textbox on "System" page
- Make Custom codepage on "Codepage" page selectable from dropdown list
- Add "Detect codepage for text files using mlang.dll" checkbox to "Codepage" page
- Remove "Include subfolders by default" checkbox from "Shell Integration" page (ShellExtension now refers to "Include subfolders" checkbox on "Compare/Folder" page or on "Select Files or Folders" dialog)
- Remove "Add Shell menu to context menu" from "Shell Integration" page (WinMerge now always adds shell menu to context menu in Folder window)
- Add "Register shell extension" button to "Shell Integration" page

#### Folder Compare

- Add Multi-thread compare support for Full Contents or Quick Contents method
- Color the background of items in list view
- Restore collapse/expand state of folder tree after re-comparison
- Make comparing window closeable
- Make sub-folder re-comparable
- Display folder items in list view during comparison
- Display the file name currently being compared in progress window
- Add "Parent Folder" menu item in 'Open Left/Middle/Right' menu
- Add "Compare Non-horizontally" menu item to context menu
- Add "Copy items To Clipboard" menu item to context menu
- Add "Swap panes" menu item to View menu
- Add "Auto/Manual Prediffer" menu item to Plugin menu
- Open selected folders in new tab when clicking "Compare" menu item with pressing Ctrl key
- Cleanup Date column alignment (GitHub #25)
- Bugfix: Version column not sorted correctly
- Bugfix: A unique item that is a binary file was not detected as a binary file
- Bugfix: Properly handle 3-way comparison of Binary files (Github #23)
- Bugfix: Use proper font for View>Use Default Font menu item (GitHub #24)

#### File Compare

- Add support for 3-way compare/merge
- Add "Diff Context" menu to View menu to adjust the number of displayed diff context lines
- Add "Split Vertically" menu item to View menu
- Add "Add Synchronization Point" to Merge menu
- Add "Auto/Manual Prediffer" menu item to Plugin menu
- Show the name of the applied plugin in the status bar
- Add shortcut(Ctrl+Alt+E) to open with external editor
- Add Go and Rust highlighter
- Add VHDL syntax highlighter (Bitbucket #2)
- Add C++11 keywords
- Make merge editor window D&Dable
- Highlight the search text and implement Marker
- Highlight the EOL pane in status bar if there is a difference in the EOL of files
- Reload files when another application changes files opened by WinMerge
- Improve in-line diff algorithm
- Bugfix: More on Issue #73 Fixed the -dl -dm and -dr description parameters for conflict files (for both 2 way and 3 way conflict files).(Bitbucket #1)
- Bugfix: Fix Memory Leak with Drop Targets (GitHub #26)

#### Binary Compare

- Install binary file editor (frhed) component again by default
- Make binary file editor undoable

#### Image Compare

- Add image file compare/merge support

#### Reports

- Add "Include File Compare Report" checkbox to "Folder Compare Report" dialog
- Change the encoding of HTML folder compare report from ANSI to UTF-8
- Add icons to the HTML folder compare report
- Change visual style of HTML report

#### Archive Support

- Install 7-zip plugin by default

#### Drag and Drop

- Accept drag&droped files or folders from various places like: Zip folder, FTP folder, Recycle bin, images in Web browser

#### Plugins

- Introduce new plugin type FILE_FOLDER_PACK_UNPACKER which allows unpacking data in a file to multiple files in a folder
- Use FILE_FOLDER_PACK_UNPACKER plugin for decompressing archives
- Add support for unpacker plugin written in VBScript/Javascript.
- Add WinMerge32BitPluginProxy.exe to make 32-bit plugins usable in 64-bit WinMerge
- Rewrite some plugins in VBScript
- Add CompareMSPowerPointFiles.sct plugin
- Add ApplyPatch.sct plugin
- Add SortAscending, SortDescending and ExecFilterCommand menu item to Plugin->Script menu
- Make plugins configurable with settings dialog of each plugin

#### Filters

- Update *.flt files for Visual Studio 2015 and 2017

#### Shell extension

- Display another WinMerge icon in Explorer's context menu when a folder is selected

#### Installer

- 64-bit version of WinMerge is available
- Install plugins by default

#### Translations

- Update Portuguese translation (GitHub #2-17)
- Update Korean translation (GitHub #45)
- Update Traditional Chinese translation (GitHub #53)
- Remove "Language" menu item from View menu (You can specify UI language at Options dialog)

#### Command line

- Incompatible change: The third file path is now treated as a right path for 3-way comparison, not output path Use /o option for ouput path instead
- Add /wm, /dm, /fl, /fm, /fr, /al, /am and /ar option for 3-way comparison

#### Other changes

- Add support for jump list introduced in Windows 7

#### Internals

- Use POCO C++ libraries instead of pcre, expat and scew. They use pcre, expat internally
- Link statically with MFC and VC runtime libraries
- Various compilation/build fixes (GitHub #1,19,21,29,31-33,36-38,42-44,49-52)

### Known Issues

- Old IE version can cause crashes when handling archive files.

  Workaround: If WinMerge crashes when handling archives, consider updating IE to version 6.0 or later.

- Supercopier application causes WinMerge to hang.

  Supercopier application causes WinMerge to not exit properly and leaves WinMerge process hang. See the bug reports:

  - #1976241 the winmerge.exe process doesn't stop itself
  - #1602313 WinMerge stays in tasklist after closing

  Workaround: Disable the Supercopier when using WinMerge.

- Filters only applied when using full compare.

  Line filtering is only applied in folder compare when using Full Contents-compare method.

  If you are using any other compare method, line filters are not applied. Files marked different in folder compare can get status changed to identical when opening them to file compare.

- Unset WinMerge integration from ClearCase

  To remove WinMerge integration, you'll need to edit one file by hand:

  1. Find ClearCase installation folder
     Usually it is something like `C:\Program Files\Rational\ClearCase`
  2. Go to subfolder `lib\mgrs\`
  3. Open file `map` in there to editor program
  4. Comment-out the line starting with "`text_file_delta xcompare`", containing "`WinMergeU.exe`"
  5. Uncomment the line starting with "`text_file_delta xcompare`", containing "`cleardiffmrg.exe`"