mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[PATCH] hfs: add HFSX support
Add support for HFSX, which allows for case-sensitive filenames. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
7cf3cc3036
commit
2179d372d9
8 changed files with 90 additions and 23 deletions
|
@ -28,7 +28,8 @@ static inline u16 case_fold(u16 c)
|
|||
}
|
||||
|
||||
/* Compare unicode strings, return values like normal strcmp */
|
||||
int hfsplus_unistrcmp(const struct hfsplus_unistr *s1, const struct hfsplus_unistr *s2)
|
||||
int hfsplus_strcasecmp(const struct hfsplus_unistr *s1,
|
||||
const struct hfsplus_unistr *s2)
|
||||
{
|
||||
u16 len1, len2, c1, c2;
|
||||
const hfsplus_unichr *p1, *p2;
|
||||
|
@ -59,6 +60,33 @@ int hfsplus_unistrcmp(const struct hfsplus_unistr *s1, const struct hfsplus_unis
|
|||
}
|
||||
}
|
||||
|
||||
/* Compare names as a sequence of 16-bit unsigned integers */
|
||||
int hfsplus_strcmp(const struct hfsplus_unistr *s1,
|
||||
const struct hfsplus_unistr *s2)
|
||||
{
|
||||
u16 len1, len2, c1, c2;
|
||||
const hfsplus_unichr *p1, *p2;
|
||||
int len;
|
||||
|
||||
len1 = be16_to_cpu(s1->length);
|
||||
len2 = be16_to_cpu(s2->length);
|
||||
p1 = s1->unicode;
|
||||
p2 = s2->unicode;
|
||||
|
||||
for (len = min(len1, len2); len > 0; len--) {
|
||||
c1 = be16_to_cpu(*p1);
|
||||
c2 = be16_to_cpu(*p2);
|
||||
if (c1 != c2)
|
||||
return c1 < c2 ? -1 : 1;
|
||||
p1++;
|
||||
p2++;
|
||||
}
|
||||
|
||||
return len1 < len2 ? -1 :
|
||||
len1 > len2 ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
#define Hangul_SBase 0xac00
|
||||
#define Hangul_LBase 0x1100
|
||||
#define Hangul_VBase 0x1161
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue