+ And yet more fixes to short option checking

This commit is contained in:
michael 2003-05-29 23:06:38 +00:00
parent dec8380954
commit 643c573e32

View File

@ -396,8 +396,9 @@ begin
OV:=Paramstr(I+1);
If Not CaseSensitiveOptions then
O:=LowerCase(O);
L:=Length(O);
For J:=2 to L do
L:=Length(O);
J:=2;
While (result='') and (J<=L) do
begin
P:=Pos(O[J],ShortOptions);
If (P=0) or (O[j]=':') then
@ -407,12 +408,14 @@ begin
If (P<Length(ShortOptions)) and (Shortoptions[P+1]=':') then
begin
// Required argument
Writeln('P ',P,' J ',J,' ',O[J],' ',l,' Havearg ',HaveArg);
If ((P+1)=Length(ShortOptions)) or (Shortoptions[P+2]<>':') Then
If (J<L) or not haveArg then // Must be last in multi-opt !!
Result:=Format(SErrOptionNeeded,[I,O[J]]);
O:=O[j]; // O is added to arguments.
end;
end;
Inc(J);
end;
If HaveArg then
begin