3131 { TOneBRCGenerator }
3232
3333procedure TOneBRCGenerator.Run ;
34- var
35- ErrorMsg: String;
3634begin
3735 if ParseConsoleParams then
3836 begin
@@ -64,6 +62,8 @@ function TOneBRCGenerator.CheckLongParams(const AParam: string): Boolean;
6462var
6563 J: Integer;
6664begin
65+ Result := False;
66+
6767 for J := 0 to Pred(Length(cLongOptions)) do
6868 begin
6969 if (AParam = cLongOptions[J]) then
@@ -78,6 +78,8 @@ function TOneBRCGenerator.CheckShortParams(const AParam: char): Boolean;
7878var
7979 J: Integer;
8080begin
81+ Result := False;
82+
8183 for J := 0 to Pred(Length(cShortOptions)) do
8284 begin
8385 if (AParam = cShortOptions[J]) then
102104 ParamOK: Boolean;
103105 SkipNext: Boolean;
104106begin
105- // initialize values
106- Result := false;
107- invalid := 0 ;
108107 valid := 0 ;
109- ParamOK := false;
108+ invalid := 0 ;
109+
110110 // initialize the params list
111111 if not Assigned(FParams) then
112112 FParams := TStringList.Create(dupIgnore, false, false);
@@ -134,6 +134,7 @@ begin
134134 // check for invalid input
135135 if FParams.Count > 0 then
136136 begin
137+ ParamOK := True;
137138 SkipNext := False;
138139 for I := 0 to FParams.Count - 1 do
139140 begin
@@ -172,18 +173,15 @@ begin
172173 if (FParams.Find(cShortOptHelp, J) or FParams.Find(cLongOptHelp, J)) then
173174 begin
174175 WriteHelp;
175- inc(invalid);
176176 end ;
177177
178178 // check version
179179 if (FParams.Find(cShortOptVersion, J) or FParams.Find(cLongOptVersion, J)) then
180180 begin
181181 WriteLn(Format(rsGeneratorVersion, [cVersion]));
182- inc(invalid);
183182 end ;
184183
185184 // check inputfilename
186- J := -1 ;
187185 J := FParams.IndexOfName(cShortOptInput);
188186 if J = -1 then
189187 J := FParams.IndexOfName(cLongOptInput);
@@ -199,7 +197,6 @@ begin
199197 end ;
200198
201199 // check outputfilename
202- J := -1 ;
203200 J := FParams.IndexOfName(cShortOptOutput);
204201 if J = -1 then
205202 J := FParams.IndexOfName(cLongOptOutput);
@@ -215,7 +212,6 @@ begin
215212 end ;
216213
217214 // check linecount
218- J := -1 ;
219215 J := FParams.IndexOfName(cShortOptNumber);
220216 if J = -1 then
221217 J := FParams.IndexOfName(cLongOptNumber);
@@ -243,7 +239,7 @@ begin
243239 end ;
244240
245241 // check if everything was provided
246- Result := valid = 3 ;
242+ Result := ( valid = 3 ) and (invalid = 0 ) ;
247243end ;
248244
249245var
@@ -254,4 +250,8 @@ begin
254250 Application.Run;
255251 Application.Free;
256252
253+ { $IFDEF DEBUG}
254+ Writeln(' Press ENTER...' );
255+ Readln;
256+ { $ENDIF}
257257end .
0 commit comments