@open issue with dgen fixed (programs/system/open/open.asm)
This commit is contained in:
@@ -204,13 +204,14 @@ end if
|
|||||||
|
|
||||||
;; if dialog
|
;; if dialog
|
||||||
mov eax, [param_s]
|
mov eax, [param_s]
|
||||||
mov [is_openas + 8], eax
|
|
||||||
cmpne [eax], byte '~', @f
|
cmpne [eax], byte '~', @f
|
||||||
inc [param_s]
|
inc [param_s]
|
||||||
mov eax, [param_s]
|
stdcall quote_param, [param_s], param_quoted
|
||||||
mov [is_openas + 8], eax
|
mov [is_openas + 8], eax
|
||||||
jmp start_dialog
|
jmp start_dialog
|
||||||
@@:
|
@@:
|
||||||
|
stdcall quote_param, [param_s], param_quoted
|
||||||
|
mov [is_openas + 8], eax
|
||||||
|
|
||||||
;; if without '.' - execute
|
;; if without '.' - execute
|
||||||
stdcall string.last_index_of, [param_s], '.', 1
|
stdcall string.last_index_of, [param_s], '.', 1
|
||||||
@@ -257,7 +258,7 @@ end if
|
|||||||
invoke libini.get_str, assoc_ini, buffer + 1, assoc_ini.exec, buffer, 2048, undefined
|
invoke libini.get_str, assoc_ini, buffer + 1, assoc_ini.exec, buffer, 2048, undefined
|
||||||
cmpe [buffer], byte 0, ini_error
|
cmpe [buffer], byte 0, ini_error
|
||||||
@@:
|
@@:
|
||||||
mov eax, [param_s]
|
stdcall quote_param, [param_s], param_quoted
|
||||||
mov [is_open + 8], eax
|
mov [is_open + 8], eax
|
||||||
mcall 70, is_open
|
mcall 70, is_open
|
||||||
jmp exit
|
jmp exit
|
||||||
@@ -886,6 +887,33 @@ end if
|
|||||||
|
|
||||||
;----------------------
|
;----------------------
|
||||||
|
|
||||||
|
proc quote_param uses esi edi, _src, _dst
|
||||||
|
mov esi, [_src]
|
||||||
|
mov edi, [_dst]
|
||||||
|
cmp byte [esi], '"'
|
||||||
|
je .already_quoted
|
||||||
|
mov byte [edi], '"'
|
||||||
|
inc edi
|
||||||
|
.q_loop:
|
||||||
|
mov al, [esi]
|
||||||
|
test al, al
|
||||||
|
jz .q_end
|
||||||
|
mov [edi], al
|
||||||
|
inc esi
|
||||||
|
inc edi
|
||||||
|
jmp .q_loop
|
||||||
|
.q_end:
|
||||||
|
mov word [edi], '"'
|
||||||
|
mov eax, [_dst]
|
||||||
|
jmp .ret
|
||||||
|
.already_quoted:
|
||||||
|
mov eax, [_src]
|
||||||
|
.ret:
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;----------------------
|
||||||
|
|
||||||
proc get_index
|
proc get_index
|
||||||
stdcall get_index_cur, [last_x], [last_y]
|
stdcall get_index_cur, [last_x], [last_y]
|
||||||
ret
|
ret
|
||||||
@@ -1061,6 +1089,7 @@ end if
|
|||||||
buffer7 rb 32 ;for sorting
|
buffer7 rb 32 ;for sorting
|
||||||
buffer8 rd 2048
|
buffer8 rd 2048
|
||||||
paramorig rb 2048
|
paramorig rb 2048
|
||||||
|
param_quoted rb 2048
|
||||||
_stack rb 2048
|
_stack rb 2048
|
||||||
params rb 256
|
params rb 256
|
||||||
memory:
|
memory:
|
||||||
|
|||||||
Reference in New Issue
Block a user