Re:Using the Linux kernel's Case-insensitive feature in Ext4
by jlokier on Sunday August 30, 2020 @11:40PM
(#24328317)
If there are two with these names:
İdata.db
Idata.db
which one should be opened when you ask for "idata.db"?
What about if only the first file exists, and you open for writing a file called "Idata.db"? Should it overwrite the first file, or create the second?
If it should overwrite the first file, unpacking an archive that contains both will result in a missing file.
What about these two, you might feel differently about because they are visually distinct:
ßdata.db
SSDATA.DB
These are not theoretical questions. On some OSes, the answer changes depending on ephemeral language settings that the current program may not be aware of or expecting.
In some environments, the answer doesn't change but doesn't match what happens in other environments. E.g. many systems implement ASCII case-folding only, others implement more characters but not Unicode, others implement all of Unicode.
Inevitably a program somewhere will break because this wasn't anticipated.
A backup using an archiver will not restore what was there before, and something that worked before the backup will behave differently after the restore.
A script (such as a build script) may inadvertantly create both files when run with one language setting, then break when the language setting is changed, even thought the script doesn't have anything to do with languages.
Your carefully written novel, that has chapter files with names you thought were distinct, will have missing chapters when you copy it across to another system. You discover this months later when you start working again on the novel, long after destroying the original system you thought you had copied from.
What about if only the first file exists, and you open for writing a file called "Idata.db"? Should it overwrite the first file, or create the second?
If it should overwrite the first file, unpacking an archive that contains both will result in a missing file.
What about these two, you might feel differently about because they are visually distinct:
These are not theoretical questions. On some OSes, the answer changes depending on ephemeral language settings that the current program may not be aware of or expecting.In some environments, the answer doesn't change but doesn't match what happens in other environments. E.g. many systems implement ASCII case-folding only, others implement more characters but not Unicode, others implement all of Unicode.
Inevitably a program somewhere will break because this wasn't anticipated.
A backup using an archiver will not restore what was there before, and something that worked before the backup will behave differently after the restore.
A script (such as a build script) may inadvertantly create both files when run with one language setting, then break when the language setting is changed, even thought the script doesn't have anything to do with languages.
Your carefully written novel, that has chapter files with names you thought were distinct, will have missing chapters when you copy it across to another system. You discover this months later when you start working again on the novel, long after destroying the original system you thought you had copied from.