summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw14020a.pp
blob: cda7525cd622e7f1bada7af02269ff51f37242b4 (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
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.