cd9660 Lowercasing
Frank Mitchell
mitchell at wyatt672earp.force9.co.uk
Sun Apr 26 17:01:10 UTC 2009
I've developed a CD/DVD Backup Utility using the Enhanced Volume Descriptor
specified in ISO9660:1999. It doesn't have Rock Ridge yet, so the first thing
you notice on mounting is the automatic Lowercase, which interferes with
Backup Verification using "diff -qr". There's a simple solution using
the "gens" mount option, which has Case Preservation as a side-effect, but
it's still annoying.
There must be some reason behind it, because NetBSD and Linux have a similar
feature, with options to disable it like: "nomaplcase" and "map=off". But
their manpages make it look like a throwback to MS-DOS, and a time when all
filenames were accessed from the Primary Volume Descriptor. By default you
can't have filenames in ASCII using the Supplementary or Enhanced Volume
Descriptors either.
I think I tracked this feature down to cd9660_util.c, in Function isofntrans,
around Line 200:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
for (; infn != infnend; ) {
infn += isochar(infn, infnend, joliet_level, &c, &clen, flags, handle);
if (!original && !joliet_level && c >= 'A' && c <= 'Z')
c += ('a' - 'A');
else if (!original && c == ';') {
outp -= (d == '.');
break;
}
d = c;
while(clen--)
*outp++ = c >> (clen << 3);
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
This only alters ASCII characters. Accented uppercase letters from the top
half of ISO8859-1 are unaffected. And it doesn't apply to Joliet either. I
don't see the point. Why not just zap it away?
Yours Truly: Frank Mitchell
More information about the freebsd-hackers
mailing list