fix processing of cyrillic letter yo in file systems

git-svn-id: svn://kolibrios.org@1504 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2010-06-23 22:18:42 +00:00
parent cb55d99b40
commit 2ccee1b676
2 changed files with 21 additions and 3 deletions

View File

@ -411,6 +411,8 @@ char_toupper:
jb .ret
cmp al, 'z'
jbe .az
cmp al, 'ñ'
jz .yo1
cmp al, ' '
jb .ret
cmp al, 'à'
@ -426,6 +428,10 @@ char_toupper:
.az:
and al, not 0x20
ret
.yo1:
; 0xF1 -> 0xF0
dec ax
ret
fat_get_name:
; in: edi->FAT entry

View File

@ -942,6 +942,18 @@ ntfs_decode_mcb_entry:
pop edi ecx eax
ret
unichar_toupper:
push eax
call uni2ansi_char
cmp al, '_'
jz .unk
add esp, 4
call char_toupper
jmp ansi2uni_char
.unk:
pop eax
ret
ntfs_find_lfn:
; in: esi+ebp -> name
; out: CF=1 - file not found
@ -1030,15 +1042,15 @@ ntfs_find_lfn:
push edi
@@:
lodsw
call uni2ansi_char
call char_toupper
call unichar_toupper
push eax
mov al, [edi]
inc edi
cmp al, '/'
jz .slash
call char_toupper
cmp al, [esp]
call ansi2uni_char
cmp ax, [esp]
pop eax
loopz @b
jz .found