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
59
60
61
62
63
|
{ %target=linux,freebsd,darwin,solaris,haiku }
program project1;
uses
SysUtils;
procedure cleanup;
var
f: file;
begin
assign(f,'tw14020ad/.hidden');
erase(f);
rmdir('tw14020ad');
end;
var
rSearch: TSearchRec;
lsName, lsSearch: String;
bDone: Boolean;
f: file;
begin
createdir('tw14020ad');
assign(f,'tw14020ad/.hidden');
rewrite(f);
close(f);
{ for all files in the dir }
lsSearch := 'tw14020ad/' + AllFilesMask; //fails to find anything
FillChar(rSearch, Sizeof(TSearchRec), 0);
bDone := (FindFirst(lsSearch, faHidden, rSearch) <> 0);
while not bDone do
begin
lsName := rSearch.Name;
Assert(lsName <> '');
if (rSearch.Attr and faDirectory > 0) then
continue;
{ if we find our file, it's ok }
if (pos('.hidden',lsName)<>0) then
if (rSearch.Attr and faHidden) <> 0 then
begin
findclose(rsearch);
cleanup;
halt(0);
end
else
begin
findclose(rsearch);
cleanup;
halt(1);
end;
bDone := (FindNext(rSearch) <> 0);
Assert(bDone or (rSearch.Name <> lsName));
end;
FindClose(rSearch);
cleanup;
halt(1);
end.
|