The .INI file does not properly support filenames with single quotes.
Example:
Create a folder called "C:\a".
Within this folder create three files named 111.txt, 222.txt and '333'.txt.
(Note how the third filename has single quotes (apostrophes) within its name)
View the files with HxD in the following(*) illustrative sequence:
- 111
222
222
111
222
'333'
'333'
111
111
222
111
111
111
Code: Select all
[\HistoryLists\RecentFiles\]
Count=3
Item0=C:\a\111.txt
Item1=C:\a\222.txt
Item2="'C:\a\222.txtC:\a\222.txtC:\a\111.txtC:\a\111.txtC:\a\111.txtC:\a\'#39'333'#39'.txt'"
The bug is likely related to how filenames with single quotes (apostrohes) are encoded. As you can see, the entry is not encoded properly:
Code: Select all
Item0="'C:\a\'#39'333'#39'.txt'"
Code: Select all
Item0=C:\a\'333'.txt
Regardless, the serious nature of the bug is that, after a long time, when you least expect it, HxD will cease functioning altogether once the line grows beyond some unknown limit. I'm guess either it, or Windows, it trying to build/create a Menu entry with a very, very, very, very ... long name, and that is why the CPU goes to 100% and stays there for a very long time (until you kill it using task manager).
It's easy to fix once you know what's causing it (simply edit the .ini and delete the entire "[\HistoryLists\RecentFiles\]" section).
But this bug is NOT obvious, and when it occurs, it appears as if HxD is broken (and what is worse, un-installing and re-installing it does NOT fix the problem! The uninstaller does not remove the .ini files!), leading to confusion, frustration, and eventually great concern. (I myself ended up restoring my entire system from backup the first time this happened because I could not figure out what was causing it.)
Other than the above bug however, I firmly believe HxD to be a very, VERY nice program!
Thank you Mael for writing it and continuing to offer it for free!
----------
(*) You do not have to view the files in that exact sequence. That is simply the sequence I used to illustrate the problem.