From 976e2d52bf28293da6e8a6d353d3666814b7c4ed Mon Sep 17 00:00:00 2001 From: "Marat Zakiyanov (Mario79)" Date: Fri, 28 Jun 2013 23:57:00 +0000 Subject: [PATCH] KFM - disabling the normalization of the names of files and directories, because some file systems are case sensitive. git-svn-id: svn://kolibrios.org@3731 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/fs/kfm/trunk/data.inc | 6 +- programs/fs/kfm/trunk/files.inc | 4 +- programs/fs/kfm/trunk/sort.inc | 96 +++++++++++++++--------------- programs/fs/kfm/trunk/tran_ini.inc | 22 ++++++- 4 files changed, 75 insertions(+), 53 deletions(-) diff --git a/programs/fs/kfm/trunk/data.inc b/programs/fs/kfm/trunk/data.inc index 0e58ca27ac..76e9b50856 100644 --- a/programs/fs/kfm/trunk/data.inc +++ b/programs/fs/kfm/trunk/data.inc @@ -202,9 +202,13 @@ align 4 delete_dir_data: rb 32 ;--------------------------------------------------------------------- +align 4 +extension_temp_storage: + rb 256 +;--------------------------------------------------------------------- ;stack align 4 - rb 512 + rb 4096 stacktop: ;--------------------------------------------------------------------- align 4 diff --git a/programs/fs/kfm/trunk/files.inc b/programs/fs/kfm/trunk/files.inc index ba69349982..b91c611d89 100644 --- a/programs/fs/kfm/trunk/files.inc +++ b/programs/fs/kfm/trunk/files.inc @@ -97,7 +97,7 @@ proc_read_left_folder: jne .error @@: push eax - call left_files_name_normalize +; call left_files_name_normalize call left_prepare_extension_start call left_sort_files pop eax @@ -201,7 +201,7 @@ proc_read_right_folder: jne .error @@: push eax - call right_files_name_normalize +; call right_files_name_normalize call right_prepare_extension_start call right_sort_files pop eax diff --git a/programs/fs/kfm/trunk/sort.inc b/programs/fs/kfm/trunk/sort.inc index 2cd27da520..a71a136899 100644 --- a/programs/fs/kfm/trunk/sort.inc +++ b/programs/fs/kfm/trunk/sort.inc @@ -254,55 +254,55 @@ left_prepare_extension_start_1: jb .start ret ;--------------------------------------------------------------------- -left_files_name_normalize: - xor ebp,ebp - mov esi,[left_folder_data] - add esi,32+40 -.start: - push esi - mov al,[esi] - call char_toupper - mov [esi],al -@@: - inc esi - mov al,[esi] - test al,al - jz @f - call char_todown - mov [esi],al - jmp @b -@@: - pop esi - add esi,304 - inc ebp - cmp ebp,[left_folder_block] - jb .start - ret +;left_files_name_normalize: +; xor ebp,ebp +; mov esi,[left_folder_data] +; add esi,32+40 +;.start: +; push esi +; mov al,[esi] +; call char_toupper +; mov [esi],al +;@@: +; inc esi +; mov al,[esi] +; test al,al +; jz @f +; call char_todown +; mov [esi],al +; jmp @b +;@@: +; pop esi +; add esi,304 +; inc ebp +; cmp ebp,[left_folder_block] +; jb .start +; ret ;--------------------------------------------------------------------- -right_files_name_normalize: - xor ebp,ebp - mov esi,[right_folder_data] - add esi,32+40 -.start: - push esi - mov al,[esi] - call char_toupper - mov [esi],al -@@: - inc esi - mov al,[esi] - test al,al - jz @f - call char_todown - mov [esi],al - jmp @b -@@: - pop esi - add esi,304 - inc ebp - cmp ebp,[right_folder_block] - jb .start - ret +;right_files_name_normalize: +; xor ebp,ebp +; mov esi,[right_folder_data] +; add esi,32+40 +;.start: +; push esi +; mov al,[esi] +; call char_toupper +; mov [esi],al +;@@: +; inc esi +; mov al,[esi] +; test al,al +; jz @f +; call char_todown +; mov [esi],al +; jmp @b +;@@: +; pop esi +; add esi,304 +; inc ebp +; cmp ebp,[right_folder_block] +; jb .start +; ret ;--------------------------------------------------------------------- right_prepare_extension_start: xor ebp,ebp diff --git a/programs/fs/kfm/trunk/tran_ini.inc b/programs/fs/kfm/trunk/tran_ini.inc index 2c9d1b1b14..9a7870c524 100644 --- a/programs/fs/kfm/trunk/tran_ini.inc +++ b/programs/fs/kfm/trunk/tran_ini.inc @@ -1,13 +1,16 @@ ;--------------------------------------------------------------------- get_icon_number: mov ebp,[extension_size] ;[icons_end_tag] + test ebp,ebp + jz .end + call normalize_extension_of_file mov edx,[icons_end_tag] mov edi,[ini_file_start] dec edi .search_association: cmp edx,edi jbe .end - mov esi,[extension_start] + mov esi,extension_temp_storage mov ecx,ebp test ecx,ecx je @f @@ -51,6 +54,20 @@ get_icon_number: sub eax,0x30 ret ;--------------------------------------------------------------------- +normalize_extension_of_file: + push edi + mov esi,[extension_start] + mov edi,extension_temp_storage + cld +@@: + lodsb + call char_todown + stosb + test al,al + jnz @b + pop edi + ret +;--------------------------------------------------------------------- open_file_with_appl_1: mov ebp,files_associations_1 jmp open_file_with_appl.1 @@ -64,10 +81,11 @@ open_file_with_appl: call search_star_and_end_tags cmp ebp,-1 je .end + call normalize_extension_of_file .search_association: cmp [end_tag],edi jbe .end - mov esi,[extension_start] ;extension_temp_area + mov esi,extension_temp_storage mov ecx,[extension_size] inc edi cld