Filenames as opaque strings
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DC++ |
Confirmed
|
Medium
|
Unassigned | ||
LinuxDC++ |
Confirmed
|
Medium
|
Unassigned |
Bug Description
DC++ currently have many problems with filenames. Problems include case-sensitivity (bug #311818) and trying to store filenames as text strings (bug #300728).
I propose that all filenames should be treated as binary data. The File class, etc, should use an 8bit opaque std::string. These opaque strings should not be modified anywhere. When a filename needs to be shown to the user, these opaque strings should be decoded into displayable strings. These displayable strings are only used as output to the GUI, and are not allowed to be interpreted back as filenames again.
Using opaque filenames, many of the more spurious errors could be remedied, including the previously mentioned. Case-sensitivity could be implemented on the search index only.
This has been considered for a long time now (on #linuxdc++), this is a document to have something to agree upon.
Changed in linuxdcpp: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in dcplusplus: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
tags: | added: core |