OSDN Git Service
GreyMerlin [Thu, 2 Aug 2018 22:10:34 +0000 (15:10 -0700)]
Last Line of Files vs "Ghost Lines" (3)
`LineInfo::Delete()` was not correctly handling the case of deleting
all text in a line _including_ the CRLF at the end. This particular
situation exists because of deleting text at the very end of a file.
GreyMerlin [Thu, 2 Aug 2018 22:06:37 +0000 (15:06 -0700)]
Last Line of Files vs "Ghost Lines" (2)
Handle the special case of `Undo()` at the very end of a file.
`Undo()` checks that the text that is being replaced in the file
matches the records being kept in the `m_aUndoBuf[]` structure. The
deletion of text at very end of the file necessary involves removing an
additional CRLF (because of an LF_GHOST line which was removed too)
which causes this Undo comparison-checking to fail.
Following failure, and only if the failure is at the very end of the
file, a new secondary check is made to check for the deletion of the
additional CRLF.
I don't particularly like this code because it puts knowledge of
"Ghost" lines directly into the code of the `CCrystalTextBuffer` class.
A subsequent patch will factor this into virtual procedures shared with
the `CGhostTextBuffer` class.
GreyMerlin [Thu, 2 Aug 2018 19:42:00 +0000 (12:42 -0700)]
Last Line of files vs "Ghost Lines" (1)
The special case of inserting text into the very last line of a file
when that last line is marked as LF_GHOST. Effectively, the new text
is supposed to go "before" the Ghost, but mechanically the text is
inserted into the Ghost itself, with a new Ghost line appearing at the
end of the file.
Later, the Ghost status of both the first and last inserted lines will
get straightened out, with the trailing Ghost line becoming a NULL
line. By setting the last line to NULL, the line will eventually be
removed or become an actual LF_GHOST line in
`CMergeDoc::PrimeTextBuffers()`
GreyMerlin [Thu, 2 Aug 2018 19:39:44 +0000 (12:39 -0700)]
Improve comments relating to "ghost buffers" (2)
* continuing from earlier commit
GreyMerlin [Thu, 2 Aug 2018 18:01:48 +0000 (11:01 -0700)]
Improve Various ASSERTs related to "Ghost Buffers"
GreyMerlin [Thu, 2 Aug 2018 17:39:15 +0000 (10:39 -0700)]
Enable `checkFlagsFromReality()` Debug checking
GreyMerlin [Thu, 2 Aug 2018 17:35:23 +0000 (10:35 -0700)]
Improve comments relating to "ghost buffers"
* Correct and extend various parameter comments, esp. for Doxygen
* Make sure default parameter values in a function definition are
properly commented in the function declaration as well
* Add either `/*virtual base*/` or `/*virtual override*/` comments to
various "ghost buffer " related procedure declarations.
* Eliminate (using `#if 0` and `#endif`) the procedures
`InternalInsertGhostLine()` and `InsertGhostLine()`
Takashi Sawanaka [Mon, 30 Jul 2018 20:23:49 +0000 (05:23 +0900)]
Merge pull request #92 from GreyMerlin/master
Improve ConfigLog, Build All at Warning Level 4
GreyMerlin [Sun, 29 Jul 2018 16:12:49 +0000 (09:12 -0700)]
Repair new "old style" casts
* A few "old style" casts were inserted in the various recent patches.
These are now all changed to proper `static_cast<>`
GreyMerlin [Sat, 28 Jul 2018 01:57:49 +0000 (18:57 -0700)]
WinMerge now builds at Warning Level = 4
* Both executables: UnitTests and WinMergeU
* All Configurations: Test, Debug, Release
* All Platforms : Win32, X64
* Both Compilers: VS2015, VS2017
* No Warning Messages !!
* Note: the three Poco sub-projects still compile at Warning Level 3,
no effort has been made to move them to warning level 4
GreyMerlin [Sat, 28 Jul 2018 00:49:22 +0000 (17:49 -0700)]
Eliminate most uses of _WIN32 preprocessor symbol
* WinMerge is very much a Windows product; no need to test for it. The
only remaining reference to __WIN32 is within GNU's diffutils.
* This change has no impact on the projects within the "poco" software,
`Foundation`, `Utils`or `XML`.
GreyMerlin [Fri, 27 Jul 2018 23:13:22 +0000 (16:13 -0700)]
Cleanup some standard #include file names
* Use C++ standard include names rather than old C names (but only in
`*.cpp` files, and `*.h` where appropriate). For example, use <cstdio>
or <cstdint> rather than <stdio.h> or <stdint.h>
* Make sure to use C-style include names in `*.c` files. For example
<assert.h> rather than <cassert>
* Remove many (but not all) <shlwapi.h>
* Remove <cstdint>, <cstdarg>, <stdint.h> where not actually necessary
GreyMerlin [Fri, 27 Jul 2018 19:43:11 +0000 (12:43 -0700)]
Remove most <mbctype.h> includes
* <mbctype.h> is needed for Multibyte character handling, which is not
needed in a Unicode program.
* The file remains necessary in the `Src/stringdiffs.cpp` however
GreyMerlin [Fri, 27 Jul 2018 18:21:47 +0000 (11:21 -0700)]
Turn off the build option for Browse Information
* Turn off the build option for Browse Information (/FR for `*.sbr` and
`*.bsc` files). This has not been needed since VS2008 and can cause the
spurious BK4504 warning message ...
"file contains too many references; ignoring further references from
this source"
that is produced _after_ the compilation is otherwise successfully
completed.
* Additionally, this noticeably speeds up the Debug and Test
compilations
* For a reference to VS2008, see...
https://docs.microsoft.com/en-us/cpp/build/reference/bscmake-reference
* Also, remove the old (and not maintained for a long time)
`*.vcxproj`files for VS2013 for the UnitTests project.
GreyMerlin [Fri, 27 Jul 2018 17:45:27 +0000 (10:45 -0700)]
Reduce Level 4 Build Warnings (11)
* Warning C4389: '==': signed/unsigned mismatch
* At this point there are **NO** compilation warnings issued when
compiling WinMerge or UnitTests with Warning Level = 4. This is for
all build configurations (Debug, Release and Test), all build platforms
(X64 and Win32) and both VS2017 and VS2015 compilers.
GreyMerlin [Fri, 27 Jul 2018 16:31:43 +0000 (09:31 -0700)]
Reduce Level 4 Build Warnings (10)
* More casting: some `int` vs. `UINT`, some `int` vs. `char`
* Cast various font Options into (BYTE)
* Use #Pragma warning(push) and (pop) for
"Warning 4244: conversion from 'int' to 'char', possible loss of data",
because there are three large areas that would each need to have many
individual casting otherwise.
GreyMerlin [Thu, 26 Jul 2018 23:54:36 +0000 (16:54 -0700)]
Reduce Level 4 Build Warnings (9)
* Copy all `*.vcxproj` into VS2015
GreyMerlin [Thu, 26 Jul 2018 23:42:35 +0000 (16:42 -0700)]
Reduce Level 4 Build Warnings (8)
* More use of `TCHAR` rather than `int`
* Warning C4702: unreachable code
* Remove `Src/Merge7zFormatShellImpl.cpp` and `.h` files. These were
not included in all build configurations, provides no entry points,
causes a syntax warning for "providing too many symbols", and is then
ignored. Gone Now!
* Disabled in `*.vcxproj` files
Warning C4204: nonstandard extension used: non-constant aggregate
initializer
Warning C4505 'ff': unreferenced local function has been removed
GreyMerlin [Thu, 26 Jul 2018 22:15:50 +0000 (15:15 -0700)]
Reduce Level 4 Build Warnings (7)
* Another "name hiding" issue (analyze.c)
* various string casting
GreyMerlin [Thu, 26 Jul 2018 22:00:17 +0000 (15:00 -0700)]
Reduce Level 4 Build Warnings (6)
* cleanup a funny std::transform() warning by simply inlining the code
(DiffWrapper.cpp)
* Make Bomsize calculation less obscure (io.c)
* Misc casting
GreyMerlin [Thu, 26 Jul 2018 21:33:06 +0000 (14:33 -0700)]
Reduce Level 4 Build Warnings (5)
* Use `wchar_t` in various places instead of `int` or `UINT`
* use `::towlower()` rather than `::tolower()` for various
`std::transform()` templates
GreyMerlin [Thu, 26 Jul 2018 21:18:45 +0000 (14:18 -0700)]
Reduce Level 4 Build Warnings (4)
* declare an `enum` as unsigned or long, especially for bit masking
values.
GreyMerlin [Thu, 26 Jul 2018 20:57:11 +0000 (13:57 -0700)]
Reduce Level 4 Build Warnings (3)
* Use appropriate type names rather than generic `int` or `uint`.
* Mostly CLIPFORMAT on procedure definitions.
GreyMerlin [Thu, 26 Jul 2018 20:40:22 +0000 (13:40 -0700)]
Reduce Level 4 Build Warnings (2)
* Warning C4459: declaration of 'c' hides global declaration
* Warning C4458: declaration of 'd' hides class member
* Warning C4457 : declaration of 'e' hides function parameter
* Warning C4456: declaration of 'f' hides previous local declaration
I consider that using identifier scope to "hide" more "global"
identifier names is a very misleading and dangerous programming
practice.
GreyMerlin [Thu, 26 Jul 2018 20:07:59 +0000 (13:07 -0700)]
Reduce Level 4 Build Warnings (1)
I'm starting on a quest to eliminate as many Level=4 build warnings as
makes sense (and is reasonably easy). I will not actually "release"
the patches to the `*.vcxproj`files that change the warning level of
the builds (which remain at Level 3); maybe someday ...
I'm not addressing changes to any of the `poco\*` software, except
perhaps a few of the `*.h` files that generate warnings when included
into a WinMerge source file.
* Warning C4100 'a': unreferenced formal parameter
* Warning C4189 'b': local variable is initialized but not referenced
These warnings are suppressed simply by disabling them in the
appropriate `*.vcxproj` file. I disable them because I claim that
(because of conditional compilation, etc) they are normal and
reasonable coding practice.
GreyMerlin [Thu, 26 Jul 2018 18:07:28 +0000 (11:07 -0700)]
Eliminate use of deprecated `GetVersionEx()` (3)
* Tweak comment
* Proper test before calling FindClose() in TempFile.cpp
GreyMerlin [Thu, 26 Jul 2018 06:29:13 +0000 (23:29 -0700)]
Eliminate use of deprecated `GetVersionEx()` (2)
* Also for VS2015
GreyMerlin [Thu, 26 Jul 2018 02:20:17 +0000 (19:20 -0700)]
Eliminate use of deprecated `GetVersionEx()`
* Add "Win_VersionHelper.h" to implement the proper modern runtime
checking for the Windows version.
* Unrelated: <mbstring.h> is useless in a UNICODE application.
GreyMerlin [Wed, 25 Jul 2018 23:19:29 +0000 (16:19 -0700)]
Remove various unneeded build command-line options
* _STATIC_CPPLIB, HAVE_STDLIB_H, STDC_HEADERS
* HAVE_STRING_H, REGEX_MALLOC, __MSC__, USG
* Remove use of #include <multimon.h> and COMPILE_MULTIMON_STUBS
GreyMerlin [Wed, 25 Jul 2018 17:42:09 +0000 (10:42 -0700)]
Major Improvements to ConfigLog (3)
* Add Modified file date/time to Plugin filenames
* Make Plugin filename relative to WinMerge code file
* Additional formatting and comment tweaks
GreyMerlin [Tue, 24 Jul 2018 21:47:57 +0000 (14:47 -0700)]
Major Improvements to ConfigLog (2)
* Add 'Build Software' (e.g. "VS.2017 (15.7) - C/C++ Compiler
19.14.26433")
* Additional formatting tweaks
GreyMerlin [Mon, 23 Jul 2018 18:46:46 +0000 (11:46 -0700)]
Major Improvements to ConfigLog
* Add Windows version and Processor, Memory info
* Full WinMerge code file name, full version, file Modified date
* Add Kernel32.dll and shell32.dll windows modules
* Add Modified date for WinMerge modules
* Display registry color values in hex
* Add TEST_WINMERGE to build flags
* Generally improved formatting
Takashi Sawanaka [Tue, 17 Jul 2018 15:49:31 +0000 (00:49 +0900)]
Merge pull request #91 from GreyMerlin/master
Attempt to fix the issue #100 - Part 2 ... and more
Bill [Mon, 16 Jul 2018 23:35:38 +0000 (16:35 -0700)]
Additions to .gitignore
- I don't know why these "all of a sudden" became necessary. The files
have always existed and have always seemed to be ignored before ??
Bill [Mon, 16 Jul 2018 23:26:47 +0000 (16:26 -0700)]
Update project to latest "Platform Version"
Bill [Mon, 16 Jul 2018 23:25:53 +0000 (16:25 -0700)]
Add a new Solution Filter for TestMerge source files
- Add **MergeTest** as a filter folder to the Solution Explorer.
- Move the Files `Test.cpp`, `TestMain.cpp`, `TestMain.h` and
`...\gtest\gtest.h` to this new filter folder (they were in the MFCGui
folder)
- Add new MergeTest solution filter to VS2015
Bill [Mon, 16 Jul 2018 23:13:08 +0000 (16:13 -0700)]
Attempt to fix the issue #100 - Part 2
- Commit
[
2f8e009](https://bitbucket.org/winmerge/winmerge/commits/
2f8e009c3f473ca0f6a639990d6307ed95d7694e)
checks for the existence of the `WinIMergeLib.dll` and abandons the
**ImageCompareTest.Open** test if the `.dll` cannot be loaded
correctly. This checking prevents the inappropriate (and seriously
misleading) SEH error later in the code; _**however**_ it allows the test to
Pass even when the `.dll` is not present.
This follow-on patch forces the test to Fail cleanly, with a
relevant message, when the `.dll` cannot be loaded correctly.
- Also, the handling of `EXPECT_NE(nullptr, pDoc)` in other tests is
improved to prevent SEH errors if `pDoc==nullptr` should ever become
true.
Takashi Sawanaka [Mon, 16 Jul 2018 17:23:37 +0000 (02:23 +0900)]
FilepathEdit.cpp: Copy all text when pressing Ctrl+C shortcut key while text is not selected
Takashi Sawanaka [Mon, 16 Jul 2018 10:29:58 +0000 (19:29 +0900)]
FilepathEdit.*: Enable Ctrl+C shortcut key
Takashi Sawanaka [Mon, 16 Jul 2018 07:23:21 +0000 (16:23 +0900)]
Merge
Takashi Sawanaka [Mon, 16 Jul 2018 07:22:38 +0000 (16:22 +0900)]
Attempt to fix the issue #100 (bitbucket)
Tim Gerundt [Tue, 10 Jul 2018 03:55:31 +0000 (05:55 +0200)]
Fix Charset meta tag from ShellExtension/Italian.po
Tim Gerundt [Tue, 10 Jul 2018 03:53:26 +0000 (05:53 +0200)]
Tweak output from GetTranslationsStatus.py
Tim Gerundt [Tue, 10 Jul 2018 03:47:31 +0000 (05:47 +0200)]
Use README.md in root directory
Takashi Sawanaka [Thu, 28 Jun 2018 15:22:10 +0000 (00:22 +0900)]
Merge pull request #90 from GreyMerlin/master
Improve Handling of Last Lines in Files, *Plus More*
GreyMerlin [Wed, 27 Jun 2018 18:23:43 +0000 (11:23 -0700)]
Fix problems with _countf() in newest VS 15.7.2 (2)
- See earlier commit [
76754ec1...]
(https://github.com/GreyMerlin/winmerge-v2/commit/
76754ec1f47042b8b857ad5082054033190788b8),
05/27/2018 "Fix problems with _countf() in newest VS 15.7.2"]
GreyMerlin [Tue, 26 Jun 2018 23:24:44 +0000 (16:24 -0700)]
Fix a few comments in procedure declarations
- Fixed (just a few) comments where the definition specifies and
initial value for a parameter, but the declaration has an incorrect or
missing comment.
GreyMerlin [Tue, 26 Jun 2018 14:54:46 +0000 (07:54 -0700)]
Removal of more "signed/unsigned mismatch" warnings
GreyMerlin [Tue, 26 Jun 2018 14:53:59 +0000 (07:53 -0700)]
Mark more masking constants as unsigned
GreyMerlin [Tue, 26 Jun 2018 14:22:32 +0000 (07:22 -0700)]
Merge branch 'master' of https://github.com/sdottaka/winmerge-v2
GreyMerlin [Tue, 26 Jun 2018 06:14:57 +0000 (23:14 -0700)]
Improve handling of last lines in files (6)
- Hex mask constants (#define and enum values) are now explicitly marked
as Unsigned.
GreyMerlin [Tue, 26 Jun 2018 01:27:21 +0000 (18:27 -0700)]
Improve handling of last lines in files (5)
- When using Copy Left (or Copy Right) on a block of line differences at
the _very_ end of both files, a fatal abort would occur when copying
lines into the shortest of the two end blocks.
- This fatal error would occur when deleting "ghost" lines at the end
of that shortest block, because the starting location of the "ghost"
lines was improperly calculated.
- There remains a non-fatal bug in that an extra EOL (and thus an
extra blank line) is added to the end of a Copy (Left or Right) when
that action is on the text block at the very end of the file.
- The Undo action (ctrl-Z) continues to function correctly for these
situations.
GreyMerlin [Mon, 25 Jun 2018 21:40:21 +0000 (14:40 -0700)]
Improve handling of last lines in files (4)
- Slightly improved boundary checking
GreyMerlin [Sat, 23 Jun 2018 22:45:57 +0000 (15:45 -0700)]
Improve handling of last lines in files (3)
Trivial textual cleanup ...
- Change `ASSERT(0)` to `ASSERT(false)`
- change `bFirstLineGhost` from `int` to `bool'
GreyMerlin [Sat, 23 Jun 2018 22:21:42 +0000 (15:21 -0700)]
Improve handling of last lines in files (2)
Optimization for `CGhostTextBuffer:: RemoveAllGhostLines()`
- Only compress `m_aLines[]` if there actually are ghost lines
- Only start compression at the first ghost line
GreyMerlin [Sat, 23 Jun 2018 22:02:19 +0000 (15:02 -0700)]
Improve handling of last lines in files (1)
- Simply tweaks to comments and debug code
- A few tiny optimizations
GreyMerlin [Sun, 17 Jun 2018 21:28:02 +0000 (14:28 -0700)]
Adopt newer GNU diffutils (2001-11-24, ver 2.7.3 ) (1)
* Remove unused files
* Remove some unused defines and functions
Takashi Sawanaka [Sun, 24 Jun 2018 14:01:55 +0000 (23:01 +0900)]
LocationView.*: Remove functions that are not called
Takashi Sawanaka [Sun, 24 Jun 2018 12:51:48 +0000 (21:51 +0900)]
Bump revision to 1.17.2.0
Takashi Sawanaka [Sun, 24 Jun 2018 06:39:19 +0000 (15:39 +0900)]
update frhed to 0.10904.2017.1
Takashi Sawanaka [Sun, 17 Jun 2018 13:04:16 +0000 (22:04 +0900)]
- Fix warning C6054: String '...' might not be zero-terminated.
- Fix warning C28183: '...' could be '0', and is a copy of the value found in '...'
- Fix warning C6387: warning C6387: <argument> may be <value>: this does not adhere to the specification for the function <function name>: Lines: x, y
Takashi Sawanaka [Sun, 17 Jun 2018 08:57:19 +0000 (17:57 +0900)]
Merge
Takashi Sawanaka [Sun, 17 Jun 2018 04:37:20 +0000 (13:37 +0900)]
Merge pull request #89 from GreyMerlin/master
Various, esp. Improve compare+display of last lines in files
GreyMerlin [Sun, 17 Jun 2018 00:19:44 +0000 (17:19 -0700)]
Improve Options > Color > Differences dialog layout
- Allow more room for the various lines of caption test by sliding the
various controls slightly to the right.
GreyMerlin [Sun, 17 Jun 2018 00:16:23 +0000 (17:16 -0700)]
Improve compare+display of last lines in files (2)
Symptom ...
An F5 Refresh could produce slightly different comparison results
(near the end of the file) when input files did not have explicit EOL
marking after the last line of the file.
Discussion ...
The original file compare window is generated directly from the
original files. However, subsequent F5 Refresh displays are
generated from temporary copies of the files that are made after they
are read for the first time; these temporary files would **never** have
EOL markings following the last line of the file - thus causing slightly
different output.
Solutions ...
When making internal temporary copies of the original input files,
a final EOL marking will be written to the temp file **if** the original
file had a final EOL.
GreyMerlin [Sun, 17 Jun 2018 00:11:17 +0000 (17:11 -0700)]
Improve compare+display of last lines in files (1)
Symptoms ...
ASSERT could occur (with Debug build), and possibly a fault could
occur with Release builds, if longest file was the Left File and that
file did not have an explicit EOL marking after the last line of the
file, and there were visible differences at the very end of the file.
Discussion ...
The internal `m_ptBuf[]->m_aLines[]` buffers could end up with
different numbers of line entries in situations where the last line of
a file had no explicit EOL marking. Normally, the two (or three)
`m_aLines[]` buffers would have "ghost" line entries to represent
"missing" lines, so that all `m_aLines[]` buffers would be of the same
length. The lack of a final EOL could confuse that logic. At some
points in the comparison logic, the length used for processing the two
(or three) buffers is determined simply by the length of `m_aLines[0]`
Solution ...
By the end of the `PrimeTextBuffers()` procedure, the two (or
three) `m_ptBuf[]->m_aLines[]` buffers will now **always** have the same
length. Furthermore, there will no longer be <null> entries at the end
of the `m_aLines[]` arrays. These will now be deleted (if **all**
`m_aLines[]` buffers have them), or they will be replaced with
appropriate "ghost" lines (if only **some** of the buffers have final
<null> entries)
Also, a number of comments are improved.
GreyMerlin [Sat, 16 Jun 2018 23:03:39 +0000 (16:03 -0700)]
Tweak "Fix alignment of the comboboxes in OpenDlg"
- adjusted by 1 pixel for even better visual alignment
GreyMerlin [Sat, 16 Jun 2018 22:59:35 +0000 (15:59 -0700)]
Adopt performance improvement from diffutils
- include [commit ...
414dc606](
http://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=
68b82f6f8419a815cfcf962b3061352d414dc606)
from **diffutils** 2016-10-25 (ver 3.5)
- this commit improves the performance of the TOO_EXPENSIVE
optimization on "modern" processors (ca. 2016) by upgrading the minimum
threshold of this optimization from 255 to 4096.
GreyMerlin [Sat, 16 Jun 2018 22:49:08 +0000 (15:49 -0700)]
Improve interrelation with GNU diffutils source
- Remove four *.c files never used by diffutils or WinMerge
- Change `Src/CompareEngines/DiffUtils{.c|.h}` to be
`./Wrap_DiffUtils{.c|.h}` to remove confusion about the **diffutils**
name. These files are part of WinMerge, not GNU diffutils.
- Change Solution Explorer to have the entry **GNU diffutils** rather
than **DiffEngine**
- Copy solution changes from VS2017 to VS2015
Takashi Sawanaka [Sat, 16 Jun 2018 17:29:38 +0000 (02:29 +0900)]
Fix compilation errors on the Test configuration
Takashi Sawanaka [Sat, 16 Jun 2018 13:11:43 +0000 (22:11 +0900)]
Fix alignment of the comboboxes in OpenDlg. (github#88)
Takashi Sawanaka [Sat, 9 Jun 2018 14:51:05 +0000 (23:51 +0900)]
Add Window/Split menu item(2)
Takashi Sawanaka [Sat, 9 Jun 2018 13:54:30 +0000 (22:54 +0900)]
Add Window/Split menu item
Takashi Sawanaka [Sat, 9 Jun 2018 12:31:45 +0000 (21:31 +0900)]
Merge pull request #87 from GreyMerlin/master
Very Long Path and File Names (and more)
GreyMerlin [Tue, 5 Jun 2018 20:14:24 +0000 (13:14 -0700)]
Very Long Path and File Names (5)
GreyMerlin [Thu, 31 May 2018 20:58:29 +0000 (13:58 -0700)]
Very Long Path and File Names (4)
* Adapt changes from Poco/Foundation (1.9.1) related to this issue
* this is a "cleaner" solution than I had implemented, although only
for the Poco/Foundation parts of the code
GreyMerlin [Mon, 28 May 2018 20:40:30 +0000 (13:40 -0700)]
Very Long Path and File Names (3)
* Use the `\\?\`file name prefix for directory recursion and various
file open operations. This is available for almost all Win32 API
functions when using the "xxxW" Unicode procedures. This works for
both Win32 and X64 compilations. Microsoft documentation leads me to
believe that this works for WinXP and beyond (although I can only test
the Win10 X64 environment).
*The prefix is used even for path names that "appear" to be short,
because a long file name could be appended to any short path, making
the result become long.
* At this point, the basics (directory recursion, file comparison,
and opening&editing text files) have been tested and are properly
functional.
* Not Tested: Copy, Move, Rename, Remove of files and directories.
* Not Tested: projects, filters and plugins, XML, Excel.
* Not Implemented: Opening binary files (`frhed.dll`) or image files
(`WinIMerge.dll`)
* Not Implemented: Internal 7zip operations.
* Not Implemented: interactions with UNC (networking) file names.
* Not Implemented: interaction with `ShellExtension.dll`
GreyMerlin [Mon, 28 May 2018 05:44:01 +0000 (22:44 -0700)]
Very Long Path and File Names (2)
* First attempt to add "\\?\" as a prefix for all file names as they
are being presented to Windows API for file manipulation purposes
GreyMerlin [Sun, 27 May 2018 23:12:46 +0000 (16:12 -0700)]
Very Long Path and File Names (1)
* define MAX_PATH_FULL as 32767. Use this to replace many instances of
MAX_PATH and _MAX_PATH
GreyMerlin [Thu, 7 Jun 2018 20:42:48 +0000 (13:42 -0700)]
Three Trivial Changes
- Remove the **poco** `_CHANGELOG` file. It is only for Apple
environments, and has been removed from **poco** version 1.9.1 (sometime
after version 1.4).
- Tweak two comments in `WinMergeShell.cpp`
- Remove an unused procedure declaration from `WinMergeShell.h`. There
is no corresponding procedure definition.
GreyMerlin [Thu, 7 Jun 2018 20:25:54 +0000 (13:25 -0700)]
Prevent faults when mousing over Plugin Settings
* With a Debug build, an assert() would occur when mousing over the
Plugin Settings context menu item if Plugins are disabled.
* With a Release build, a fault could occur in the same conditions.
GreyMerlin [Thu, 7 Jun 2018 20:20:25 +0000 (13:20 -0700)]
Remove new compilation error with VS2015
* VS2015 must have tightened up a rule for templates. This always used
to compile.
* now compiles correctly with both VS2015 and VS2017
GreyMerlin [Mon, 28 May 2018 06:52:45 +0000 (23:52 -0700)]
Hide unused Poco/Foundation files from Intellisense
* Use `#if 0` ... `#endif` to force various UNIX, VMS, WINCE and
non-Unicode WIN32 files to show as non-compiled code.
* there are more files that could be marked this way, but these are in
the File System implementation
GreyMerlin [Sun, 27 May 2018 22:51:41 +0000 (15:51 -0700)]
Fix problems with _countf() in newest VS 15.7.2
The `vcruntime.h` version of `_countf()` gives syntax errors starting
with VS 15.7.2, but only with `CCrystalTextView::m_SourceDefs` (which is
local to this .cpp file), and only for X64 compilations (Win32 is
ok, probably because no alignment issues are involved). I think
that this could be related to C++17 compliance issues. This patch
reverts to a 'traditional' definition of `_countf()`, a pre-existing
part of the CCrystalTextView package.
GreyMerlin [Sun, 27 May 2018 22:48:22 +0000 (15:48 -0700)]
Adapt boost to latest VS compiler version
Takashi Sawanaka [Sun, 6 May 2018 15:08:47 +0000 (00:08 +0900)]
Merge
Takashi Sawanaka [Sun, 6 May 2018 11:37:27 +0000 (20:37 +0900)]
DiffTextBuffer.cpp: Fix crash when pressing Alt+Down key while loading large files (Revert part of GitHub #82)
Takashi Sawanaka [Sun, 6 May 2018 10:57:48 +0000 (19:57 +0900)]
DirDoc.cpp: Fix crash when Settings/ActivePane == -1
Takashi Sawanaka [Sun, 6 May 2018 10:28:25 +0000 (19:28 +0900)]
MergeDoc.*: Add ForEachView() and Remove GetActiveMergeViewIndexType()
Takashi Sawanaka [Sun, 6 May 2018 02:39:16 +0000 (11:39 +0900)]
MergeDoc.cpp: Fix crash when saving file if the active pane is diff detail pane
Rukoto Luther [Thu, 3 May 2018 02:55:54 +0000 (11:55 +0900)]
Improvements Japanese
Takashi Sawanaka [Wed, 2 May 2018 17:27:51 +0000 (02:27 +0900)]
FileOrFolderSelect.*: Move the position of frequently used optional arguments forward
Takashi Sawanaka [Wed, 2 May 2018 13:56:20 +0000 (22:56 +0900)]
- OpenView.cpp: Display 'Open' instead of 'Save As' in the title of Open dialog when selecting Load Project menu item
- Make the pane active when clicking on the header bar
- Merge with rev.9409
Takashi Sawanaka [Mon, 30 Apr 2018 15:43:25 +0000 (00:43 +0900)]
Merge pull request #86 from Luigi-C/patch-1
Update Italian.po
Luigi-C [Mon, 30 Apr 2018 15:17:21 +0000 (17:17 +0200)]
Update Italian.po
The correct italian word for the english "Yes" is "Si", where the "i" is not accented.
Takashi Sawanaka [Sun, 29 Apr 2018 12:36:18 +0000 (21:36 +0900)]
FilepathEdit.cpp: Fix incorrect function declaration
Takashi Sawanaka [Sun, 29 Apr 2018 12:26:13 +0000 (21:26 +0900)]
OptionsMgr.h: Fix mixed-eol
Takashi Sawanaka [Sat, 28 Apr 2018 22:40:36 +0000 (07:40 +0900)]
Added tag 2.15.4 for changeset
7d1863b8c686
Takashi Sawanaka [Fri, 27 Apr 2018 14:06:13 +0000 (23:06 +0900)]
Bump revision to 2.15.4
Takashi Sawanaka [Thu, 26 Apr 2018 15:01:45 +0000 (00:01 +0900)]
Update release notes and changelog for 2.15.4