2. glob tests
Start felix section to lib/glob.flx[1
/1
]
1: #line 1069 "./lpsrc/flx_glob.pak"
2:
3: include "stl";
4:
5: open Stl::Vector;
6: open C_hack;
7:
8: module glob {
9:
10: header '#include "flx_glob.hpp"';
11: requires package "flx_glob";
12: cstruct glob_t {
13: gl_pathc: size;
14: gl_pathv: ptr[charp];
15: gl_offs: size;
16: };
17: private proc post_incr[t]: lvalue[ptr[t]] = "$1++;";
18:
19: proc glob: string * ptr[glob_t] = "::glob($1.data(),0,NULL,$2);";
20: proc globfree: ptr[glob_t] = "globfree($1);";
21:
22: gen glob (pat:string): stl_vector[string] =
23: {
24: var glob_data: glob_t; glob_data.gl_offs=0;
25: glob(pat,addr glob_data);
26: var n = glob_data.gl_pathc;
27: var p = glob_data.gl_pathv;
28: var pfile = *p;
29: var files: stl_vector[string];
30: whilst not isNULL(pfile) do
31: var file = str(pfile);
32: push_back (files, file);
33: p++;
34: pfile = *p;
35: done;
36: globfree(addr glob_data);
37: return files;
38: }
39: }
40:
Start felix section to test/glob/glob-1-0.flx[1
/1
]
1: #line 1109 "./lpsrc/flx_glob.pak"
2:
3: include "stl";
4: include "glob";
5:
6: var files = glob::glob("lpsrc/*.pak");
7: open Reversible_Sequence[
8: Stl::Vector::stl_vector[string],
9: Stl::Vector::stl_vector_iterator[string],
10: Stl::Vector::stl_vector_reverse_iterator[string],
11: string
12: ];
13:
14: var p = begin files; whilst p != end files do
15: basename := (*p).[6 to];
16: if basename == "flx_glob.pak" do print "true"; endl; done;
17: ++p;
18: done;
Start data section to test/glob/glob-1-0.expect[1
/1
]