Hi people.
First of all, thank you all for explanation, and for your advice, I know, you worked on LDraw library long before me ;-)
To recap:
- all part search in LDraw library MUST be case insensitive (with exception for STUD.DAT all upper-case)
- all file search is PREFERRED to be case insensitive, or, at least, case sensitive search followed by "all lower" search
- all part and file references can use both '/' or '\' for path separator
Now, assuming too many isn't a good programming practice, so I will review my part and file reference search code to be as generic as I can do.
What my code already do:
- both '\' or '/' in line type 1 references are accepted
- search in MPD internal references are case insensitive
What to do:
- external reference to file will be case insensitive (if duplication occurs, first win)
- search for LDraw part in libraries will be case insensitive (see note below for STUD.DAT special case)
A marginal note: IMHO the STUD.DAT rule (Chris, it isn't in any spec I've look at) is a little confusing for "case-insensitivity" rule in all the library spec. IMHO can be more useful a group of primitives with a suffix (like "fix": studfix.dat that references 4-4edgefix.dat, 4-4cylifix.dat and 4-4discfix.dat) without low or high resolution counterparts in 8/ or 48/ subdir.
Thank you again.
Mario
PS: a little fun with stud.dat casing in library:
- STUD.DAT is used in 13 parts: 189.dat 30255.dat 30414.dat 3127b.dat 4151b.dat 47844.dat 50303.dat 50949.dat 511.dat 6003.dat 60471.dat 60478.dat 6104.dat and in 1 sub-part: s/30225bs1.dat
- stud.DAT is used in 6 parts: 2573.dat 2574.dat 3010p21.dat 4082.dat 721.dat 883.dat
First of all, thank you all for explanation, and for your advice, I know, you worked on LDraw library long before me ;-)
To recap:
- all part search in LDraw library MUST be case insensitive (with exception for STUD.DAT all upper-case)
- all file search is PREFERRED to be case insensitive, or, at least, case sensitive search followed by "all lower" search
- all part and file references can use both '/' or '\' for path separator
Now, assuming too many isn't a good programming practice, so I will review my part and file reference search code to be as generic as I can do.
What my code already do:
- both '\' or '/' in line type 1 references are accepted
- search in MPD internal references are case insensitive
What to do:
- external reference to file will be case insensitive (if duplication occurs, first win)
- search for LDraw part in libraries will be case insensitive (see note below for STUD.DAT special case)
A marginal note: IMHO the STUD.DAT rule (Chris, it isn't in any spec I've look at) is a little confusing for "case-insensitivity" rule in all the library spec. IMHO can be more useful a group of primitives with a suffix (like "fix": studfix.dat that references 4-4edgefix.dat, 4-4cylifix.dat and 4-4discfix.dat) without low or high resolution counterparts in 8/ or 48/ subdir.
Thank you again.
Mario
PS: a little fun with stud.dat casing in library:
- STUD.DAT is used in 13 parts: 189.dat 30255.dat 30414.dat 3127b.dat 4151b.dat 47844.dat 50303.dat 50949.dat 511.dat 6003.dat 60471.dat 60478.dat 6104.dat and in 1 sub-part: s/30225bs1.dat
- stud.DAT is used in 6 parts: 2573.dat 2574.dat 3010p21.dat 4082.dat 721.dat 883.dat