As far as my reading of the patent goes, MS patented the storage of long file
names in standard 32 byte fat directory entry structure.
The way this works is like this:
A fat directory is a set of 32 byte blocks that each contain filename,
timestamp, property flags, and starting cluster for each file. One 32 byte
block cooresponds to one file entry.
It is laid out like this:
Bytes 0 - 10: Filename ("." implied)
Byte 11 : Attribute flags
Byte 12 : reserved
Byte 13 : millisecond of file creation (must be even)
Byte 14 - 15: Create Time
Byte 16 - 17: Create Date
Byte 18 - 19: Last Access Date
Byte 20 - 21: top 16 bits of starting cluster
Byte 22 - 23: Last write time
Byte 24 - 25: Last write date
Byte 26 - 27: bottom 16 bits of starting cluster
Byte 28 - 31: File size
To get long filenames, MS FAT marks the attribute byte of the 32 byte block with
a special character that says that it is part of a long filename. Then the rest
of the structure is packed with the bytes (unicode) of the long filename where
ever they can be placed (byte 0 is a sequence number, byte 11 marks it as a
long file name entry, byte 13 is a checksum of the cooresponding short dir
entry, and there are a few other bytes that are reserved). So to complete a
long filename, MS FAT uses a sequence of these long filename marked up
directory entries, each beginning with a sequence number and the special "I'm
part of a long file name" character, and ties them to the short file name
directory entry for the file.
This means that every long file name MUST coorespond to a short filename 32 byte
directory entry, but a short file name does not need a long file name entry.
Now the patent only covers storing long filenames along with short filenames in
this way (as a marked up directory entry). ROS could still store long
filenames in a different manner (a hidden translation file for example) and not
violate the patent.
If ROS chooses not to implement short filenames at all on FAT, then it will not
be compatible with other things that use FAT. This means that ROS FAT will
not be compatible with Windows, Linux, cameras, etc...
Since, I will not be doing the work associated with this, I won't argue which
way to manage this. I do, however, want the people who make this decision to
understand the tradeoffs...
Just my 2 cents
(keep up the good work)
--mark