Within this patch, some code corrections and refinements are gathered.
Patches are based on SVN 1036.
1.) Unused module "UniConversion"
The routines in "UniConversion.cpp, UniConversion.h" are not used. The modules can be deleted from the project.
Furthermore, files with the same names are present in scintilla!
Just delete "#include UniConversion.h" within FindReplaceDlg.cpp
2.) Delete bin\npp.pdb from Notepad++ SVN repository
That file seems unnecessary for the SVN repository and annoys always by signalling differences where no are present.
3.) Loading Time resolution too coarse -> new module ElapseTimer
The resolution of the displayed duration to load Notepad++ (e.g. command line parameter -loadingTime) is only full seconds and NOT as described in the Notepad++ documentation with a resolution of 0.01 seconds.
This is because the "time()" function is used, which only returns an integer giving the time in seconds.
This patch includes an additional module "ElapseTimer", which uses the more accurate PerformanceCounter.
This module can also be used to measure time differences down to micro-seconds or even nano-seconds allowing measurement of code execution times and compare it to alternative codings. Just include ElapseTimer.h for debugging purposes.
By the way, the code is stolen from Scintilla PlatWin.cxx because I couldn't figure out, how to access that internal Scintilla function.
(see Patch NppPatch_6.3.2_ElapseTimer.patch)
4.) Speed up getCurrentFoldStates()
The newly provided code using SCI_CONTRACTEDFOLDNEXT is usually 10%-50% faster than checking each line of the document!!
You can easily prove it using the ElapseTimer by including the ElapseTimer.h file for debugging and time measurement purposes.
(see Patch NppPatch_6.3.2_SpeedUp-GetFoldingStates.patch)