blob: c449d50a1f6e429751a2e1857545fee5d09a24cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
uses
getopts;
function ParseCmdOptions : boolean;
var
Opts : array [1..3] of POption;
C : char;
Index : Longint;
begin
{ assume success }
ParseCmdOptions := true;
{ logfile }
New(Opts[1]);
with Opts[1]^ do
begin
name := 'log';
has_arg := 1;
flag := nil;
end;
{ debug flag }
New(Opts[2]);
with Opts[2]^ do
begin
name := 'debug';
has_arg := 0;
flag := nil;
end;
{ end-of-array }
New(Opts[3]);
with Opts[3]^ do
begin
name := '';
has_arg := 0;
flag := nil
end;
{ parse }
repeat
C := GetLongOpts('l:d',Opts[1],Index);
case C of
#0: begin
if Opts[Index]^.name = Opts[1]^.name then { .. };
if Opts[Index]^.name = Opts[2]^.name then { .. };
{ handle this properly -- else ParseCmdOptions := false; }
end;
'l': { .. };
'd': { .. };
else ParseCmdOptions := false;
end; { case }
until C = endofoptions;
end;
begin
end.
|