human68k: one more rework after advices/reports from Pierre Muller, hopefully this fixes all remaning edge cases

This commit is contained in:
Karoly Balogh 2023-12-04 15:37:42 +01:00
parent 5c93f3e271
commit 1e066ba0bd

View File

@ -145,26 +145,24 @@ var
argsp: pchar;
inquotes: boolean;
inarg: boolean;
i: longint;
begin
argc:=0;
inquotes:=false;
inarg:=false;
p:=@h68k_startup.comm^.buffer;
if not assigned(p) then
if not assigned(h68k_startup.comm) then
exit;
p:=@h68k_startup.comm^.buffer;
argl:=h68k_startup.comm^.len;
if argl < 1 then
argl:=1;
args:=getmem(argl+1);
fillchar(args^,argl+1,#0);
argsp:=args;
while p^ <> #0 do
for i:=0 to argl-1 do
begin
case p^ of
case p[i] of
' ':
begin
if not inquotes then
@ -177,7 +175,7 @@ begin
argsp^:=#0;
end
else
argsp^:=p^;
argsp^:=p[i];
inc(argsp);
end;
'"':
@ -187,11 +185,10 @@ begin
else
begin
inarg:=true;
argsp^:=p^;
argsp^:=p[i];
inc(argsp);
end;
end;
inc(p);
end;
if inarg then
inc(argc);