forked from KolibriOS/kolibrios
* Fixed bug with handling of command-line for apps
* Fn 70 supports /sys/... syntax for access to sysdir (/rd/1 with normal boot) git-svn-id: svn://kolibrios.org@525 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
aef3d2908b
commit
de8a596226
@ -10,7 +10,7 @@
|
||||
conf_file_loaded: db 0 ; ä« £ § £à㧪¨ ª®ä¨£
|
||||
conf_path_sect: db 'path',0
|
||||
|
||||
conf_fname db '/%sys%/sys.conf',0
|
||||
conf_fname db '/sys/sys.conf',0
|
||||
|
||||
|
||||
|
||||
|
@ -698,16 +698,16 @@ proc load_driver stdcall, driver_name:dword
|
||||
|
||||
exports dd ? ;fake exports table
|
||||
dd ?
|
||||
file_name rb 15+16+4+1 ; '/%sys%/drivers/<up-to-16-chars>.obj'
|
||||
file_name rb 13+16+4+1 ; '/sys/drivers/<up-to-16-chars>.obj'
|
||||
endl
|
||||
|
||||
lea edx, [file_name]
|
||||
mov dword [edx], '/%sy'
|
||||
mov dword [edx+4], 's%/d'
|
||||
mov dword [edx+8], 'rive'
|
||||
mov dword [edx+12], 'rs/'
|
||||
mov dword [edx], '/sys'
|
||||
mov dword [edx+4], '/dri'
|
||||
mov dword [edx+8], 'vers'
|
||||
mov byte [edx+12], '/'
|
||||
mov esi, [driver_name]
|
||||
lea edi, [edx+15]
|
||||
lea edi, [edx+13]
|
||||
mov ecx, 16
|
||||
@@:
|
||||
lodsb
|
||||
|
@ -1011,8 +1011,8 @@ proc set_app_params stdcall,slot:dword, params:dword,\
|
||||
.add_command_line:
|
||||
mov edx,[params]
|
||||
mov edx,[edx] ;app_cmdline
|
||||
test edx, [cmd_line] ;check both src & dst
|
||||
jz @F ;application don't need parameters
|
||||
test edx,edx
|
||||
jz @f ;application doesn't need parameters
|
||||
|
||||
mov eax, edx
|
||||
add eax, 256
|
||||
@ -1021,7 +1021,11 @@ proc set_app_params stdcall,slot:dword, params:dword,\
|
||||
cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8]
|
||||
ja @f
|
||||
|
||||
stdcall strncpy, edx, [cmd_line], 256
|
||||
mov byte [edx], 0 ;force empty string if no cmdline given
|
||||
mov eax, [cmd_line]
|
||||
test eax, eax
|
||||
jz @f
|
||||
stdcall strncpy, edx, eax, 256
|
||||
@@:
|
||||
mov edx,[params]
|
||||
mov edx, [edx+4] ;app_path
|
||||
|
@ -84,8 +84,8 @@ szIMPORTS db 'IMPORTS',0
|
||||
|
||||
firstapp db 'LAUNCHER',0
|
||||
|
||||
char db '/%sys%/FONTS/CHAR.MT',0
|
||||
char2 db '/%sys%/FONTS/CHAR2.MT',0
|
||||
char db '/sys/FONTS/CHAR.MT',0
|
||||
char2 db '/sys/FONTS/CHAR2.MT',0
|
||||
|
||||
bootpath db '/KOLIBRI '
|
||||
bootpath2 db 0
|
||||
@ -139,7 +139,7 @@ gdts:
|
||||
dd gdts
|
||||
dw 0
|
||||
|
||||
; Attention! The order first four selectors not to change, is used in Fast System Call
|
||||
; Attention! Do not change the order of the first four selectors. They are used in Fast System Call
|
||||
; must be : os_code, os_data, app_code, app_data, ....
|
||||
|
||||
int_code_l:
|
||||
|
@ -11,7 +11,7 @@ iglobal
|
||||
; pointer to memory for path replace table,
|
||||
; size of one record is 128 bytes: 64 bytes for search pattern + 64 bytes for replace string
|
||||
|
||||
; start with one entry: %sys% -> <sysdir>
|
||||
; start with one entry: sys -> <sysdir>
|
||||
full_file_name_table dd sysdir_name
|
||||
.size dd 1
|
||||
|
||||
@ -19,18 +19,17 @@ tmp_file_name_size dd 1
|
||||
endg
|
||||
|
||||
uglobal
|
||||
; Parser_params will initialize: sysdir_name = "%sys%", sysdir_path = <sysdir>
|
||||
; Parser_params will initialize: sysdir_name = "sys", sysdir_path = <sysdir>
|
||||
sysdir_name rb 64
|
||||
sysdir_path rb 64
|
||||
tmp_file_name_table dd ?
|
||||
endg
|
||||
|
||||
; ¡¥à¥â ¯ à ¬¥âàë bx_from_load ¨ ¨¨æ¨ «¨§¨àã¥â § ¬¥ã ¤«ï %sys%
|
||||
; ¡¥à¥â ¯ à ¬¥âàë bx_from_load ¨ ¨¨æ¨ «¨§¨àã¥â § ¬¥ã ¤«ï /sys
|
||||
Parser_params:
|
||||
mov eax,[OS_BASE+0x10000+bx_from_load]
|
||||
mov ecx,sysdir_path
|
||||
mov [ecx-64],dword '%sys'
|
||||
mov [ecx-64+4],word '%'
|
||||
mov [ecx-64],dword 'sys'
|
||||
cmp al,'r' ; à ¬ ¤¨áª
|
||||
jnz @f
|
||||
mov [ecx],dword 'RD/?'
|
||||
|
@ -11,7 +11,7 @@ $Revision$
|
||||
;
|
||||
|
||||
iglobal
|
||||
_skin_file_default db '/%sys%/DEFAULT.SKN',0
|
||||
_skin_file_default db '/sys/DEFAULT.SKN',0
|
||||
endg
|
||||
|
||||
struct SKIN_DATA
|
||||
|
@ -1,6 +1,6 @@
|
||||
[path]
|
||||
/rd/1=/%sys%
|
||||
/rd/1/dll=/%sys%/lib
|
||||
/rd/1=/sys
|
||||
/rd/1/dll=/sys/lib
|
||||
|
||||
[net]
|
||||
active=1
|
||||
|
Loading…
Reference in New Issue
Block a user