Bug fix: Joliet name comparison was done as signed bytes and thus produced
a peculiar sorting order. Thanks to Vladimir Serbinenko. (For previous commit too.)
This commit is contained in:
parent
fae423fb54
commit
e5a4e33ebd
@ -1225,12 +1225,13 @@ uint16_t *ucsdup(const uint16_t *str)
|
||||
|
||||
/**
|
||||
* Although each character is 2 bytes, we actually compare byte-by-byte
|
||||
* (thats what the spec says).
|
||||
* because the words are big-endian. Comparing possibly swapped words
|
||||
* would make the sorting order depend on the machine byte order.
|
||||
*/
|
||||
int ucscmp(const uint16_t *s1, const uint16_t *s2)
|
||||
{
|
||||
const char *s = (const char*)s1;
|
||||
const char *t = (const char*)s2;
|
||||
const uint8_t *s = (const uint8_t*)s1;
|
||||
const uint8_t *t = (const uint8_t*)s2;
|
||||
size_t len1 = ucslen(s1);
|
||||
size_t len2 = ucslen(s2);
|
||||
size_t i, len = MIN(len1, len2) * 2;
|
||||
|
Loading…
Reference in New Issue
Block a user