As a follow up to my previous pull request, this PR fixes the last remaining improper format specifiers. This allows to remove /Wv:18 compilation flag completely, since (presumably) the only reason it was added in the first place were those format specifier warnings, introduced in VS2015.
Effectively, all this PR does is applying fixes suggested by the compiler (included in those warnings).
Close#4604
1. fix the hanging problem for some rare situation (some specific
graphic cards?) by replacing otf file by ttf file.
2. make better font look by adding bold, italic and bold-italic fonts
3. load Source Code Pro privately so it won't be listed for the other
application during Notepad++ session.
Source Code Pro is included in the Notepad++ distribution for its
internal use.
If it's not the first time of Notepad++ installation (ie. updating),
users need to set Source Code Pro as default font manually via style
configurator dialog, or just delete "%APPDATA%\Notepad++\stylers.xml".
This feature got a lot of regression due to its dependency on dropbox,
google drive and one drive implementation. This modification removes
such dependecy and allow users to set their settings location - any
cloud location path and even customized local location.
Use mutex of Yuni library to lock critical operation for the
compatibility of windows xp sp2.
For more info of Yuni library: https://github.com/libyuni
The session snapshot feature runs in its own thread and access to
Scintilla etc is not thread-safe. As a *temporary* and *non-exhaustive*
fix we guard some long-running operations (undo, redo, replace, sort)
with a mutex to prevent data corruption.
Project now utilizes the /MP compiler switch to perform
parallelized builds. The number of parallel builds performed
is determined on a per-machine basis based on available
logical CPUs.
Long term this will provide the best performance output to
code maintainability ratio compared to just enabling
precompiled headers.
Using my personal machine (8 cores), I got the following
timings (Debug configuration):
* Normal build : 89 seconds
* Multi-processor build : 28 seconds
* PCH enabled : 27 seconds
Note that the multi-processor build timings can be further
reduced with proper dependency management and removal of
existing precompiled header file (precompiledHeaders.h).
Specific Changes:
* Precompiled header support disabled (not compatible with
/MP flag).
* precompiledHeader.cpp deleted.
* Solution File added.
* Minimal Rebuild (/Gm) disabled (ignored when /MP is on).
precompiledHeaders.h still exists because it contains a ton of
inclusions required by lots of files. A second and less trivial
cleanup will involve removing the precompiledHeaders.h file and
individually correcting and satisfying dependencies in each source
file in the code base.