Case-sensitivity in filelists
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
AirDC++ |
New
|
Undecided
|
Unassigned | ||
DC++ |
New
|
Undecided
|
Unassigned |
Bug Description
Starting from version 3.30, AirDC++ refuses to load filelists that contain directories with duplicate names in case-insensitive context (since such lists are malformed according to ADC/NMDC specs). However, this has caused some problems, since at least Eiskalt and Flylink will happily generate filelists with duplicate item names.
I noticed that DC++ seems reject filelists that contain duplicate item names but only if the casing is equal (https:/
However, item lookups made by path are case-insensitive (https:/
What was the motivation behind making the filelist directory/file sets case-sensitive? I don't know if I did everything correctly, but based on my testing, the current case-sensitive comparison function is also terribly slow: changing it to case-insensitive Util::stricmp reduced the loading time of my test filelist from 70 seconds to 42 seconds.