forked from KolibriOS/kolibrios
d802f7476f
git-svn-id: svn://kolibrios.org@7801 a494cfbc-eb01-0410-851d-a64ba20cac60
207 lines
4.4 KiB
PHP
207 lines
4.4 KiB
PHP
;---------------------------------------------------------------------
|
|
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_temp_storage
|
|
mov ecx,ebp
|
|
test ecx,ecx
|
|
je @f
|
|
sub ecx,2
|
|
@@:
|
|
inc edi
|
|
mov ebx,edi
|
|
cld
|
|
rep cmpsb
|
|
mov edi,ebx
|
|
jne .search_association
|
|
mov esi,edi
|
|
add esi,ebp
|
|
test ebp,ebp
|
|
je @f
|
|
sub esi,2
|
|
@@:
|
|
cmp [esi],byte ' '
|
|
jne .search_association
|
|
inc esi
|
|
xor ebx,ebx
|
|
call .calculate
|
|
imul eax,1000
|
|
call .calculate_1
|
|
imul eax,100
|
|
call .calculate_1
|
|
imul eax,10
|
|
call .calculate_1
|
|
add ebx,eax
|
|
ret
|
|
.end:
|
|
mov ebx,2
|
|
ret
|
|
;---------------------------------------------------------------------
|
|
.calculate_1:
|
|
add ebx,eax
|
|
.calculate:
|
|
xor eax,eax
|
|
cld
|
|
lodsb
|
|
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
|
|
;---------------------------------------------------------------------
|
|
open_file_with_appl:
|
|
; edx - start file name
|
|
; esi - start extension
|
|
;mov ebp,files_associations ;Leency
|
|
.1:
|
|
|
|
; mov [extension_start],esi ;Leency: do not get file assoc
|
|
; call search_star_and_end_tags ;from KFM.INI, use /sys/@open
|
|
; cmp ebp,-1
|
|
; je .end
|
|
; call normalize_extension_of_file
|
|
; .search_association:
|
|
; cmp [end_tag],edi
|
|
; jbe .end
|
|
; mov esi,extension_temp_storage
|
|
; mov ecx,[extension_size]
|
|
; inc edi
|
|
; cld
|
|
; push edi
|
|
; rep cmpsb
|
|
; pop edi
|
|
; jne .search_association
|
|
; push esi
|
|
; mov esi,edi
|
|
; add esi,[extension_size] ;4
|
|
; cmp [esi],byte ' '
|
|
; je @f
|
|
; pop esi
|
|
; jmp .search_association
|
|
; @@:
|
|
; add esp,4
|
|
; inc esi
|
|
; mov edi,file_name ;start_file_data.name
|
|
; xor eax,eax
|
|
; @@:
|
|
; cld
|
|
; lodsb
|
|
; stosb
|
|
; cmp al,' '
|
|
; cmp al,13
|
|
; jnz @b
|
|
; mov [edi-1],byte 0 ;'#'
|
|
; cmp [use_patch],0
|
|
; je @f
|
|
; mov [use_patch],0
|
|
|
|
.run_sysopen:
|
|
@@:
|
|
cmp [select_panel_counter],0
|
|
jne @f
|
|
mov esi,read_folder_name ;read_folder.name
|
|
jmp .start
|
|
@@:
|
|
mov esi,read_folder_1_name ;read_folder_1.name
|
|
.start:
|
|
mov edi,start_parameter
|
|
cmp [open_param],0
|
|
je .start_1
|
|
mov eax,[open_param]
|
|
mov eax,[eax]
|
|
cld
|
|
stosd
|
|
; call draw_window
|
|
; mov eax,0
|
|
; ret
|
|
.start_1:
|
|
xor eax,eax
|
|
@@:
|
|
cld
|
|
lodsb
|
|
stosb
|
|
test eax,eax
|
|
jnz @b
|
|
mov [edi-1], byte '/'
|
|
mov esi,edx
|
|
mov [error_pointer],edx ;start_file_data.name
|
|
@@:
|
|
cld
|
|
lodsb
|
|
stosb
|
|
test eax,eax
|
|
jnz @b
|
|
.continue:
|
|
mov [start_file_data.param],start_parameter
|
|
;call start_appl ;Leency
|
|
mcall 70,sysopen ;Leency
|
|
cmp eax,0
|
|
jge @f
|
|
mov ebx,0
|
|
sub ebx,eax
|
|
mov eax,ebx
|
|
call start_error_window_thread
|
|
@@:
|
|
mov eax,0
|
|
ret
|
|
.end:
|
|
mov eax,1
|
|
ret
|
|
;---------------------------------------------------------------------
|
|
search_star_and_end_tags:
|
|
mov edi,[ini_file_start]
|
|
dec edi
|
|
.search_tag1:
|
|
cmp [left_folder_data],edi
|
|
jbe .end
|
|
mov esi,ebp
|
|
mov ecx,22
|
|
inc edi
|
|
cld
|
|
push edi
|
|
rep cmpsb
|
|
pop edi
|
|
jne .search_tag1
|
|
dec edi
|
|
push edi
|
|
.search_end_tag:
|
|
cmp [left_folder_data],edi
|
|
jbe .end
|
|
mov esi,end_section_tag
|
|
mov ecx,7
|
|
inc edi
|
|
cld
|
|
push edi
|
|
rep cmpsb
|
|
pop edi
|
|
jne .search_end_tag
|
|
mov [end_tag],edi
|
|
pop edi
|
|
ret
|
|
.end:
|
|
mov ebp,-1
|
|
ret
|
|
;--------------------------------------------------------------------- |