OSDN Git Service

winmerge-jp/winmerge-jp.git
6 years agoMerge pull request #31 from GreyMerlin/master 2.14.0+-jp-137
Takashi Sawanaka [Sat, 29 Jul 2017 09:39:01 +0000 (18:39 +0900)]
Merge pull request #31 from GreyMerlin/master

Three unrelated simple changes

6 years agoFix properties for WinXP targeting
GreyMerlin [Thu, 27 Jul 2017 23:25:43 +0000 (16:25 -0700)]
Fix properties for WinXP targeting

6 years agoAdd VS Filters to various projects
GreyMerlin [Tue, 25 Jul 2017 22:09:53 +0000 (15:09 -0700)]
Add VS Filters to various projects

* Copy various *_vs100.vcxproj.filters as *.vs2015.vcxproj.filters
to capture project file organization within Solution Explorer
* Add two relevant folders to MergeLang project for improved
project organization
* Add two relevant *.vbs files to MergeLang project (used only in
Post-Build Event step)
* Add relevant *.vbs file to Batch Files solution folder
* Also make sure that the *.vs2015.sln files are encoded as UTF-8-BOM
for proper Visual Studio selection.

6 years agoTypo corrections to new Go and Rust Copyrights
GreyMerlin [Fri, 28 Jul 2017 00:21:31 +0000 (17:21 -0700)]
Typo corrections to new Go and Rust Copyrights

6 years agoBump revision to 2.14.0+-jp-137
Takashi Sawanaka [Thu, 27 Jul 2017 15:42:14 +0000 (00:42 +0900)]
Bump revision to 2.14.0+-jp-137

6 years agoeditlib/cplusplus.cpp: Add C++11 keywords.
Takashi Sawanaka [Thu, 27 Jul 2017 14:56:23 +0000 (23:56 +0900)]
editlib/cplusplus.cpp: Add C++11 keywords.

6 years agoAdd Go and Rust syntax highlighter
Takashi Sawanaka [Thu, 27 Jul 2017 14:27:24 +0000 (23:27 +0900)]
Add Go and Rust syntax highlighter

7 years agoMergeDoc.cpp: Fix incorrect in-line diff coloring after swapping panes
Takashi Sawanaka [Mon, 17 Jul 2017 12:47:57 +0000 (21:47 +0900)]
MergeDoc.cpp: Fix incorrect in-line diff coloring after swapping panes

7 years agoRemove unused declarations
Takashi Sawanaka [Mon, 17 Jul 2017 06:41:11 +0000 (15:41 +0900)]
Remove unused declarations

7 years agoDirCmpReport.*: Create HTML report with UTF-8
Takashi Sawanaka [Sun, 16 Jul 2017 07:52:37 +0000 (16:52 +0900)]
DirCmpReport.*: Create HTML report with UTF-8

7 years agoDirCompProgressBar.*: Use Dynamic Dialog Layout for MFC
Takashi Sawanaka [Tue, 11 Jul 2017 13:24:53 +0000 (22:24 +0900)]
DirCompProgressBar.*: Use Dynamic Dialog Layout for MFC

7 years agoBump revision to 2.14.0+-jp-136 2.14.0+-jp-136
Takashi Sawanaka [Mon, 10 Jul 2017 13:06:12 +0000 (22:06 +0900)]
Bump revision to 2.14.0+-jp-136

7 years agoMerge.cpp: To decrease startup time, call CleanupWMtemp() function in CMergeApp:...
Takashi Sawanaka [Sun, 9 Jul 2017 08:08:42 +0000 (17:08 +0900)]
Merge.cpp: To decrease startup time, call CleanupWMtemp() function in CMergeApp::ExitInstance() instead in CMergeApp:InitInstance().

7 years agoFormat resource file
Takashi Sawanaka [Sat, 8 Jul 2017 14:41:55 +0000 (23:41 +0900)]
Format resource file

7 years agoMerge.*vcxproj.filters: Fix filename case
Takashi Sawanaka [Sat, 8 Jul 2017 07:33:14 +0000 (16:33 +0900)]
Merge.*vcxproj.filters: Fix filename case

7 years agomultiformatText.cpp: Fix Unpacker plugin not working properly when the selected custo...
Takashi Sawanaka [Sat, 8 Jul 2017 04:27:29 +0000 (13:27 +0900)]
multiformatText.cpp: Fix Unpacker plugin not working properly when the selected custom codepage is 65001(UTF-8)

7 years agoMergeEditView.cpp: Fix crash when selecting 'Copy to Right/Left And Advance' menu...
Takashi Sawanaka [Sat, 8 Jul 2017 04:21:02 +0000 (13:21 +0900)]
MergeEditView.cpp: Fix crash when selecting 'Copy to Right/Left And Advance' menu item while editing the last difference file opened from the folder comparison window

7 years agoStdAfx.*: Move GetClipTcharTextFormat() function from StdAfx.* to CCrystalTextView...
Takashi Sawanaka [Sun, 2 Jul 2017 15:26:34 +0000 (00:26 +0900)]
StdAfx.*: Move GetClipTcharTextFormat() function from StdAfx.* to CCrystalTextView class

7 years agoUpgrade project files to VS2017
Takashi Sawanaka [Sun, 2 Jul 2017 13:50:10 +0000 (22:50 +0900)]
Upgrade project files to VS2017

7 years agoAdd the alternative functions of _fstat() and _wstat() for the bug https://connect...
Takashi Sawanaka [Sun, 2 Jul 2017 08:46:22 +0000 (17:46 +0900)]
Add the alternative functions of _fstat() and _wstat() for the bug https://connect.microsoft.com/VisualStudio/feedback/details/1600505/stat-not-working-on-windows-xp-using-v14-xp-platform-toolset-vs2015

7 years agoFileOrFolderSelect.cpp: Use paths::DoesPathExist() instead of _tstati64()
Takashi Sawanaka [Sat, 1 Jul 2017 10:41:10 +0000 (19:41 +0900)]
FileOrFolderSelect.cpp: Use paths::DoesPathExist() instead of _tstati64()

7 years agoAdd 'Test' configuration to test WinMerge
Takashi Sawanaka [Thu, 29 Jun 2017 13:19:46 +0000 (22:19 +0900)]
Add 'Test' configuration to test WinMerge

7 years agoUpdate boost to 1.64.0
Takashi Sawanaka [Thu, 29 Jun 2017 13:12:35 +0000 (22:12 +0900)]
Update boost to 1.64.0

7 years agoAdd GetDescription() function
Takashi Sawanaka [Wed, 28 Jun 2017 15:03:59 +0000 (00:03 +0900)]
Add GetDescription() function

7 years agoOptionsMgr.h: Add COptionsMgr::GetNameList() function.
Takashi Sawanaka [Sun, 25 Jun 2017 13:26:21 +0000 (22:26 +0900)]
OptionsMgr.h: Add COptionsMgr::GetNameList() function.

7 years agoCCrystalTextView.*: Add CCrystalTextView::GetTextBocks() function.
Takashi Sawanaka [Sun, 25 Jun 2017 13:06:01 +0000 (22:06 +0900)]
CCrystalTextView.*: Add CCrystalTextView::GetTextBocks() function.

7 years agoUpdatePoFilesFromPotFile.vbs: Fix the last translated message in *.po file being...
Takashi Sawanaka [Sun, 25 Jun 2017 07:57:53 +0000 (16:57 +0900)]
UpdatePoFilesFromPotFile.vbs: Fix the last translated message in *.po file being lost if the po file is not terminated with CR+LF or LF

7 years agoMessageBoxDialog.*: Add CMessageBoxDialog::SetFormerResult() method
Takashi Sawanaka [Sun, 25 Jun 2017 07:33:26 +0000 (16:33 +0900)]
MessageBoxDialog.*: Add CMessageBoxDialog::SetFormerResult() method

7 years agoMainFrm.cpp: Fix crash when the argument 'flags' of the function CMainFrm::DoFileOpen...
Takashi Sawanaka [Sun, 18 Jun 2017 16:19:52 +0000 (01:19 +0900)]
MainFrm.cpp: Fix crash when the argument 'flags' of the function CMainFrm::DoFileOpen() is NULL.

7 years agoMerge pull request #29 from GreyMerlin/master
Takashi Sawanaka [Thu, 15 Jun 2017 15:57:31 +0000 (00:57 +0900)]
Merge pull request #29 from GreyMerlin/master

Standardize Various Visual Studio File Names

7 years agoStandardize .cmd, .sln and .vcprojx file names (3)
GreyMerlin [Wed, 14 Jun 2017 20:54:45 +0000 (13:54 -0700)]
Standardize .cmd, .sln and .vcprojx file names (3)

* Change *.vcxproj.filters file names to *.vs2015.vcxproj.filters

7 years agoStandardize .cmd, .sln and .vcprojx file names (2)
GreyMerlin [Mon, 12 Jun 2017 20:13:42 +0000 (13:13 -0700)]
Standardize .cmd, .sln and .vcprojx file names (2)

* Adapt WinMerge.vs2015.sln to new *.vs2015.vcxproj file names
* Adapt new BuildBin.vs2015.cmd to proper .sln name
* Adapt new BuildAll.vs2015.cmd to new BuildBin.vs2015 name
* Adapt BuildAll.vs2015.cmd to use VS140 (i.e. VS2015)
* Add new BuildBin.vs2015.cmd and BuildAll.vs2015.cmd added
to WinMerge.vs2015.sln file

7 years agoStandardize .cmd, .sln and .vcprojx file names (1)
GreyMerlin [Mon, 12 Jun 2017 00:10:24 +0000 (17:10 -0700)]
Standardize .cmd, .sln and .vcprojx file names (1)

* copy BuildBin.cmd as BuildBin.vs2015.cmd
* copy BuildAll2.cmd as BuildAll.vs2015.cmd
* change all *_vs2015.vcxproj to *.vs2015.vcxproj
* change WinMerge_vs2015.sln to WinMerge.vs2015.sln
* using *.vs2015.* file names from related projects and solutions.

* This commit simply handles file name changes, detailed content
changes will be applied in the next commit

7 years agoGeneralize .gitIgnore patterns
GreyMerlin [Sat, 10 Jun 2017 20:30:43 +0000 (13:30 -0700)]
Generalize .gitIgnore patterns

7 years agoAdded tag 2.14.0+-jp-135 for changeset 9d4e7604a3e3
Takashi Sawanaka [Fri, 26 May 2017 12:51:39 +0000 (21:51 +0900)]
Added tag 2.14.0+-jp-135 for changeset 9d4e7604a3e3

7 years agoBump revision to 2.14.0+-jp-135 2.14.0+-jp-135 h2.14.0+-jp-135
Takashi Sawanaka [Tue, 23 May 2017 16:07:47 +0000 (01:07 +0900)]
Bump revision to 2.14.0+-jp-135

7 years agoMergeDocLineDiffs.cpp: Avoid out of bounds access(2). (github#28)
Takashi Sawanaka [Tue, 23 May 2017 16:01:27 +0000 (01:01 +0900)]
MergeDocLineDiffs.cpp: Avoid out of bounds access(2). (github#28)

7 years agoBump revision to 2.14.0+-jp-134 2.14.0+-jp-134
Takashi Sawanaka [Sun, 21 May 2017 15:25:15 +0000 (00:25 +0900)]
Bump revision to 2.14.0+-jp-134

7 years agoMergeDocLineDiffs.cpp: Avoid out of bounds access
Takashi Sawanaka [Sun, 21 May 2017 15:23:08 +0000 (00:23 +0900)]
MergeDocLineDiffs.cpp: Avoid out of bounds access

7 years agoGhostTextBuffer.cpp: Fix crash when redoing to delete text included ghost lines
Takashi Sawanaka [Sun, 21 May 2017 13:47:20 +0000 (22:47 +0900)]
GhostTextBuffer.cpp: Fix crash when redoing to delete text included ghost lines

7 years agoShellExtension: Bump revision to 1.16.5.11
Takashi Sawanaka [Sun, 21 May 2017 13:14:23 +0000 (22:14 +0900)]
ShellExtension: Bump revision to 1.16.5.11

7 years agoShellExtension: Fix stupid mistake in IsWindows8OrGreater() function
Takashi Sawanaka [Sun, 21 May 2017 13:13:52 +0000 (22:13 +0900)]
ShellExtension: Fix stupid mistake in IsWindows8OrGreater() function

7 years agoShellExtension: Register.bat didn't work on Windows 10
Takashi Sawanaka [Sun, 21 May 2017 13:07:19 +0000 (22:07 +0900)]
ShellExtension: Register.bat didn't work on Windows 10

7 years agoAdd sheppaul to Contributors.txt
Takashi Sawanaka [Tue, 16 May 2017 21:50:28 +0000 (06:50 +0900)]
Add sheppaul to Contributors.txt

7 years agoKorean translation update submitted by sheppaul
Takashi Sawanaka [Tue, 16 May 2017 15:54:26 +0000 (00:54 +0900)]
Korean translation update submitted by sheppaul

7 years agoBump revision to 2.14.0+-jp-133 2.14.0+-jp-133
Takashi Sawanaka [Sun, 14 May 2017 21:49:24 +0000 (06:49 +0900)]
Bump revision to 2.14.0+-jp-133

7 years agoFix warning C6001: Using uninitialized memory '...'
Takashi Sawanaka [Fri, 5 May 2017 03:01:25 +0000 (12:01 +0900)]
Fix warning C6001: Using uninitialized memory '...'

7 years agoCppcheck: The scope of the variable '...' can be reduced.
Takashi Sawanaka [Fri, 5 May 2017 02:40:54 +0000 (11:40 +0900)]
Cppcheck: The scope of the variable '...' can be reduced.

7 years agoAdd BuildInstaller.cmd, UploadToGithub.cmd, UploadToVirusTotal.cmd
Takashi Sawanaka [Thu, 4 May 2017 14:23:18 +0000 (23:23 +0900)]
Add BuildInstaller.cmd, UploadToGithub.cmd, UploadToVirusTotal.cmd

7 years agoCppcheck: Checking if unsigned variable '...' is less than zero.
Takashi Sawanaka [Thu, 4 May 2017 14:17:42 +0000 (23:17 +0900)]
Cppcheck: Checking if unsigned variable '...' is less than zero.

7 years agoCppcheck: Variable '...' is assigned a value that is never used.
Takashi Sawanaka [Thu, 4 May 2017 14:03:30 +0000 (23:03 +0900)]
Cppcheck: Variable '...' is assigned a value that is never used.

7 years agoWinMerge.sln: Fix build error on UnitTest project
Takashi Sawanaka [Thu, 4 May 2017 13:11:36 +0000 (22:11 +0900)]
WinMerge.sln: Fix build error on UnitTest project

7 years agoUse std::array
Takashi Sawanaka [Thu, 4 May 2017 08:29:23 +0000 (17:29 +0900)]
Use std::array

7 years agoCppcheck: Variable '...' is reassigned a value before the old one has been used.
Takashi Sawanaka [Thu, 4 May 2017 02:43:38 +0000 (11:43 +0900)]
Cppcheck: Variable '...' is reassigned a value before the old one has been used.

7 years agoCppcheck: %lX in format string (no. 1) requires 'unsigned long' but the argument...
Takashi Sawanaka [Thu, 4 May 2017 02:29:22 +0000 (11:29 +0900)]
Cppcheck: %lX in format string (no. 1) requires 'unsigned long' but the argument type is 'void *'.

7 years agoCppcheck: %d in format string (no. 1) requires 'int' but the argument type is 'UINT...
Takashi Sawanaka [Thu, 4 May 2017 02:29:01 +0000 (11:29 +0900)]
Cppcheck: %d in format string (no. 1) requires 'int' but the argument type is 'UINT {aka unsigned int}'.

7 years agoMergeDoc.cpp: Reduce file access times on checking whether a file is changed
Takashi Sawanaka [Wed, 3 May 2017 10:47:22 +0000 (19:47 +0900)]
MergeDoc.cpp: Reduce file access times on checking whether a file is changed

7 years agoMessageBoxDialog.cpp: Fix invisible text in high-contrast mode
Takashi Sawanaka [Wed, 3 May 2017 10:33:52 +0000 (19:33 +0900)]
MessageBoxDialog.cpp: Fix invisible text in high-contrast mode

7 years agoShellExtension: Bump revision to 1.16.5.10
Takashi Sawanaka [Wed, 3 May 2017 09:22:53 +0000 (18:22 +0900)]
ShellExtension: Bump revision to 1.16.5.10

7 years agoShellExtension: Use icons instead of bitmaps
Takashi Sawanaka [Wed, 3 May 2017 09:17:06 +0000 (18:17 +0900)]
ShellExtension: Use icons instead of bitmaps

7 years agoShellExtension: Attempt to fix crash on Win7 when doing the operation below:
Takashi Sawanaka [Wed, 3 May 2017 06:11:43 +0000 (15:11 +0900)]
ShellExtension: Attempt to fix crash on Win7 when doing the operation below:
1. Press Windows key
2. Enter "cmd"
3. Press Ctrl+Shift+Enter key

7 years agostringdiffs.cpp: Reduce compiler warnings
Takashi Sawanaka [Sun, 30 Apr 2017 10:13:17 +0000 (19:13 +0900)]
stringdiffs.cpp: Reduce compiler warnings

7 years agoBump revision to 2.14.0+-jp-132
Takashi Sawanaka [Sun, 16 Apr 2017 13:08:29 +0000 (22:08 +0900)]
Bump revision to 2.14.0+-jp-132

7 years agoDirCompProgresBar.cpp: Fix: The range of Progress bar was not set. (CProgressBar...
Takashi Sawanaka [Sun, 16 Apr 2017 13:04:51 +0000 (22:04 +0900)]
DirCompProgresBar.cpp: Fix: The range of Progress bar was not set. (CProgressBar::SetRange32() was accidentally removed in r8505 )

7 years agoFix issue#64 where files and folders that exist only on one side in the differing...
Takashi Sawanaka [Sun, 16 Apr 2017 09:57:13 +0000 (18:57 +0900)]
Fix issue#64 where files and folders that exist only on one side in the differing folders are not displayed when unchecking the 'Show Differences Items' menu item in the tree mode

7 years agoMainFrm.cpp: Fix crash when changing the font of DirView 2.14.0+-jp-132
Takashi Sawanaka [Sun, 9 Apr 2017 06:54:56 +0000 (15:54 +0900)]
MainFrm.cpp: Fix crash when changing the font of DirView

7 years agoDirViewColItems.cpp: Fix indentation
Takashi Sawanaka [Sat, 8 Apr 2017 00:26:33 +0000 (09:26 +0900)]
DirViewColItems.cpp: Fix indentation

7 years agoFix assertion on WindowsXP
Takashi Sawanaka [Sun, 2 Apr 2017 14:16:07 +0000 (23:16 +0900)]
Fix assertion on WindowsXP

7 years agoImgMergeFrm.cpp: Fix mixed eol-style
Takashi Sawanaka [Sun, 2 Apr 2017 11:01:22 +0000 (20:01 +0900)]
ImgMergeFrm.cpp: Fix mixed eol-style

7 years agoCompareMSExcelFiles.sct: Applied the patch submitted by tori932
Takashi Sawanaka [Sun, 2 Apr 2017 02:44:51 +0000 (11:44 +0900)]
CompareMSExcelFiles.sct: Applied the patch submitted by tori932
- Imaging of excel sheet did not work on Excel2010
- Imaging of very wide sheet also did not work

7 years agoBump revision to 2.14.0+-jp-131
Takashi Sawanaka [Sun, 26 Mar 2017 13:17:51 +0000 (22:17 +0900)]
Bump revision to 2.14.0+-jp-131

7 years agoAdd shortcut(Ctrl+Alt+E) to open with external editor
Takashi Sawanaka [Sun, 26 Mar 2017 13:11:38 +0000 (22:11 +0900)]
Add shortcut(Ctrl+Alt+E) to open with external editor

7 years ago*.vcxproj: Apply GreyMerlin's changes
Takashi Sawanaka [Sun, 26 Mar 2017 05:31:09 +0000 (14:31 +0900)]
*.vcxproj: Apply GreyMerlin's changes

7 years agoccrystaleditview.cpp: Use IDropTarget::Release() instead of delete operator.
Takashi Sawanaka [Sun, 26 Mar 2017 05:11:01 +0000 (14:11 +0900)]
ccrystaleditview.cpp: Use IDropTarget::Release() instead of delete operator.

7 years agoMerge
Takashi Sawanaka [Sat, 25 Mar 2017 23:20:29 +0000 (08:20 +0900)]
Merge

7 years agoChinese_Simplified.isl: Update Chinese_Simplified.isl file. bitbucket#63
Takashi Sawanaka [Sat, 25 Mar 2017 12:56:44 +0000 (21:56 +0900)]
Chinese_Simplified.isl: Update Chinese_Simplified.isl file. bitbucket#63

7 years agoMerge pull request #26 from GreyMerlin/bugfix/DropTargetMemLeak 2.14.0+-jp-131
Takashi Sawanaka [Tue, 21 Mar 2017 16:45:35 +0000 (01:45 +0900)]
Merge pull request #26 from GreyMerlin/bugfix/DropTargetMemLeak

Fix Memory Leak with Drop Targets

7 years agoMerge pull request #25 from GreyMerlin/feature/TimeStars
Takashi Sawanaka [Tue, 21 Mar 2017 16:44:45 +0000 (01:44 +0900)]
Merge pull request #25 from GreyMerlin/feature/TimeStars

Feature/time stars

7 years agoMerge pull request #24 from GreyMerlin/bugfix/DefaultFonts
Takashi Sawanaka [Tue, 21 Mar 2017 16:44:01 +0000 (01:44 +0900)]
Merge pull request #24 from GreyMerlin/bugfix/DefaultFonts

Use proper font for View>Use Default Font menu item

7 years agoFix Memory Leak with Drop Targets
GreyMerlin [Tue, 21 Mar 2017 01:14:33 +0000 (18:14 -0700)]
Fix Memory Leak with Drop Targets

Symptom:
* There will be 4 memory leaks (each 80 bytes long) reported at
program termination for each File-View window that is opened.

Discussion:
 * This is only noticeable with a _DEBUG compilation.
 * This will happen when either Text or Binary files are being
viewed/edited.
 * Each File-View window establishes four Drop Targets and registers
  them with Windows.  Each also establishes an 'alternate' Drop
Target for use with various internal Drag-And-Drop operations.
 * When the edit windows are closed, the Drop Targets are properly
Revoke()'ed and deleted.
 * However: the 'alternate' Drop Targets are not deleted ... MemLeak!

Implementation:
* procedure OnDestroy() in file
Externals/crystaledit/editlib/ccrystaleditview.cpp now deletes
the 'alternate' Drop Target before deleting the master one.
* Additionally, there is now an ASSERT() in procedure
SetAlternateDropTarget() guarding the assignment of the
'alternate' to make sure that it was still NULL

7 years agoCleanup Date column alignment
GreyMerlin [Mon, 20 Mar 2017 22:19:55 +0000 (15:19 -0700)]
Cleanup Date column alignment

Symptom: Date columns use a leading "* " to indicate which date
is newest.  This looks ragged and awkward.

Implementation: Add an appropriate "  " as leading text for date
columns that do not have the "* " appended.

Comment: Clearly the two characters "* " occupy slightly more
horizontal space than two "  " characters, unless a fixed-
font is used.  Nonetheless, the columns almost appear
aligned with the default Segoe UI font.

Historical Comment: I've been using an equivalent to this patch
in WinMergeU since 11/2009.  I've never been visually
aware of the slight column mis-alignment caused by
proportional-width fonts.

7 years agoUse proper font for 'View > Use Default Font'
GreyMerlin [Mon, 20 Mar 2017 20:48:58 +0000 (13:48 -0700)]
Use proper font for 'View > Use Default Font'

Symptom:
Use of the 'View > Use Default Font' menu selection always
sets the Directory Tree window to the 12-point Courier New font,
which is not the default font for that window.

Discussion:
WinMerge has an Options::Font structure that maintains an
in-memory copy of 'actual' and 'default' values for the font of
each of the Directory Tree and File View windows.  This structure
is populated at program initialization by procedure SetDefaults()
in file Src/OptionFont.cpp.  The 'default' values are generated by
this procedure, the 'actual' values are loaded from the Registry.

The existing code only queries the system for the default fixed-
size font (via the default MIME codepage) and then uses this font
as the 'default' value for the Options::Font structure for both
Directory and File windows.  This value is typically Courier New.

However, WinMerge actually uses the Menu font as the actual Directory
window font if no other font is marked as 'Specified' in the
Registry.  The default Menu font (for English, since Windows 7) is
Segoe UI.  But this use of Segoe UI is never reflected in the
Options::Font structure, nor in the Registry.

Implementation:
The procedure SetDefaults() is modified to additionally
capture the existing Menu font information for the Directory Tree
window, while continuing to use the codepage MIME font for the
File View window.

A "helper" function is added: InitializeLogFont().  It should only
be used within Src/OptionFont.cpp.  It is documented by comment in
the Src/OptionFont.h file.

The information in the Registry for the Options::Font structure
now always reflects the values of the in-memory structure, and
the values being used by the windows themselves.

Incidental changes:
* Numerous added or modified comments in Src/OptionFont.cpp
* Reordering of all Registry related code to be in the canonical
order implied by the layout of the LOGFONT structure itself.
* Explicitly cast the three boolean values (Italic, Underline,
Strikeout) to boolean to invoke the properly typed Options::Font
procedures (InitOption, SaveOption)
* Remove two unnecessary String() function references relating to
font in files Src/DirView.cpp and Src/MergeEditView.cpp

7 years agoSupport for diff3-style conflict file. bitbucket#61
Takashi Sawanaka [Sun, 19 Mar 2017 12:10:42 +0000 (21:10 +0900)]
Support for diff3-style conflict file. bitbucket#61

7 years agoMerge branch 'master' of https://github.com/sdottaka/winmerge-v2
GreyMerlin [Thu, 16 Mar 2017 19:03:38 +0000 (12:03 -0700)]
Merge branch 'master' of https://github.com/sdottaka/winmerge-v2

7 years agoMerge pull request #23 from GreyMerlin/bugfix/3WayBinary
Takashi Sawanaka [Thu, 16 Mar 2017 16:43:14 +0000 (01:43 +0900)]
Merge pull request #23 from GreyMerlin/bugfix/3WayBinary

Properly handle 3-way comparison of Binary files.

7 years agoMerge pull request #22 from GreyMerlin/feature/TweakAbout
Takashi Sawanaka [Thu, 16 Mar 2017 16:43:00 +0000 (01:43 +0900)]
Merge pull request #22 from GreyMerlin/feature/TweakAbout

Show "(Debug)" in About dialog

7 years agoMerge pull request #21 from GreyMerlin/feature/VS2015.2
Takashi Sawanaka [Thu, 16 Mar 2017 16:42:26 +0000 (01:42 +0900)]
Merge pull request #21 from GreyMerlin/feature/VS2015.2

VS2015.2 - Delete another obsolete Project attribute

7 years agoMerge branch 'bugfix/3WayBinary'
GreyMerlin [Wed, 15 Mar 2017 21:41:23 +0000 (14:41 -0700)]
Merge branch 'bugfix/3WayBinary'

7 years agoMerge branch 'feature/TweakAbout'
GreyMerlin [Wed, 15 Mar 2017 21:40:59 +0000 (14:40 -0700)]
Merge branch 'feature/TweakAbout'

7 years agoMerge branch 'feature/VS2015.2'
GreyMerlin [Wed, 15 Mar 2017 21:40:32 +0000 (14:40 -0700)]
Merge branch 'feature/VS2015.2'

7 years agoProperly handle 3-way comparison of Binary files.
GreyMerlin [Mon, 13 Mar 2017 21:00:04 +0000 (14:00 -0700)]
Properly handle 3-way comparison of Binary files.

Symptom: Binary files always mis-compare with 3-way comparison,
although the same files compare correctly with 2-way compares.

Background: 3-way comparison of files F0, F1 and F2 is handled by two
2-way comparisons of F1/F0 and F1/F2.  However, the two 2-way
comparisons for binary are slightly different from the standard
2-way text comparison.

Root Problems:
 * See procedure read_files() in Src/diffutils/src/io.c
This area of code was allowing binary files to be treated as text,
looking for endline situations and modifying the contents of the
first filevec[i].buffer[] array by placing sentinel markers into
that buffer.  But this was only done for one file, F1 in the example
above.  The contents of F0 and F2 were not being modified.  This
caused the memcmp() in diff_2_files() in Src/diffutils/src/analyze.c
to detect a mis-miscompare.

 * See procedure diff_2_files() in Src/diffutils/src/analyze.c
A binary comparison is flagged by read_files(). Because read_files
is only checking one file (e.g. F1), the buffer size for the other
file (e.g. F0 or F2) is never changed to be identical to the size
for F1.  This makes it impossible for the comparison loop to stay
in sync between the two files.

Solution:
 * Within read_files(), after appears_binary flag has been set, there
is new logic that allocates buffers for each file, based on the
size of existing buffers, the file size, and a reasonable maximum
threshold.  Binary file processing ends with a flag being returned
to the caller.  [It is within find_identical_ends() that buffers
are allocated for text files and the search for text-line boundaries
occurs, and was incorrectly used for binary files.]

 * Within diff_2_files() is the code that performs the 2-way binary
comparison, after read_files() has determined that at least one
file is binary.  Tests are made to determine if inequality can be
known without reading the data.  Buffers of the same size are read
from each file.  The buffers are checked to determine if the buffer
contents are compatible and the data values of the two buffers are
equal.  The outer-loop will repeat to read each subsequent block.
[Note: it is typical to enter this loop [the for (;;) statement]
with some data already read into filevec[0].buffer, but not a
complete buffer's amount; likewise filevec[1].buffer will typically
still be empty.]

Incidental changes...

 * Trivial fix to a comment, discovered while reading code in
Src/DiffWrapper.cpp.

 * Trivial column alignment issue in analyze.c

 * Better checking for non-existent files with more use of S_ISREG()
define (internally, non-existent files are handled with an open
descriptor on the NUL: device).  This allow small optimization of
buffer allocation.

 * Assert that files opened as S_ISCHR() really are the NUL: file

7 years agoShow "(Debug)" in About dialog
GreyMerlin [Fri, 10 Mar 2017 21:52:04 +0000 (13:52 -0800)]
Show "(Debug)" in About dialog

 * Also allow "x86" to be translated in About dialog.
 * Also show WIN32, UNICODE, _DEBUG in Configuration log
when appropriate

7 years agoVS2015.2 - Delete another obsolete Project attribute
GreyMerlin [Fri, 10 Mar 2017 21:15:27 +0000 (13:15 -0800)]
VS2015.2 - Delete another obsolete Project attribute

 * This removes the use of the Microsoft.CPP.UpgradeFromVC71.props
file from three of the vcxProj files (it wasn't used in other files).
 * This .props file only sets the preprocessor flag _VC80_UPGRADE which
is never used by this software.
 * _VC80_UPGRADE is referenced in one place in MFC's <afxreg.h> file,
however that code is also never invoked, and only generates a
#define that also is never used in these projects

7 years agoMerge pull request #20 from GreyMerlin/feature/Readme
Takashi Sawanaka [Thu, 9 Mar 2017 15:32:45 +0000 (00:32 +0900)]
Merge pull request #20 from GreyMerlin/feature/Readme

Readme.md - fix first line

7 years agoMerge pull request #19 from GreyMerlin/feature/VS2015
Takashi Sawanaka [Thu, 9 Mar 2017 15:28:44 +0000 (00:28 +0900)]
Merge pull request #19 from GreyMerlin/feature/VS2015

Feature/vs2015

7 years agoReadme.md - fix first line
GreyMerlin [Thu, 9 Mar 2017 03:21:05 +0000 (19:21 -0800)]
Readme.md - fix first line

 * the first line of readme.md needs a space character between the end of the
first URL and the following parenthesis '('.  Without the space the two
separate URLs are parsed by most browsers as one long (and useless)
URL.

7 years agoConvert to VS2015 - (Warnings)
GreyMerlin [Tue, 7 Mar 2017 23:10:00 +0000 (15:10 -0800)]
Convert to VS2015 - (Warnings)

 * remove Warnings in Compile, Librarian and Linker options
 * VS2015 warns about /EHsc and changes them to /EHa, so
I changed all compilations to /EHa i.e. ExceptionHandling=Async
to eliminate the warnings
 * ImageHasSafeExceptionHandlers=true is incompatible with EditAndContinue, so
I changed Debug linking to be ImageHasSafeExceptionHandlers=false
 * Make sure DebugInformationFormat=EditAndContinue for all _DEBUG compiles
and default otherwise
 * Set Profile=false for X64 Debug; otherwise incremental linking is disabled.
Use of Profile should be individual and not released.
 * Unittests is now configured to depend on poco

7 years agoConvert to VS2015 - (SubSystem)
GreyMerlin [Tue, 7 Mar 2017 22:11:22 +0000 (14:11 -0800)]
Convert to VS2015 - (SubSystem)

 * For all Linker and Librarian runs ...
        make sure that SubSystem=Windows is set
        make sure that TargetMachine is properly set

7 years agoConvert to VS2015 - (MultiProcessor Compilations)
GreyMerlin [Tue, 7 Mar 2017 21:49:54 +0000 (13:49 -0800)]
Convert to VS2015 - (MultiProcessor Compilations)

 * turn on MultiProcessorCompilation=true
 * remove MinimalRebuild=true (i.e. defaults to false)

7 years agoConvert to VS2015 - (oops #2)
GreyMerlin [Tue, 7 Mar 2017 02:05:36 +0000 (18:05 -0800)]
Convert to VS2015 - (oops #2)

 * the change in (simplify #2) that changes build directory names was a *very wrong* idea.
 * this patch puts those names back as they always have been.