1 #include <excludes.h>
\r
3 \r XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);
4 \r\rexcludes_t
\r excludes_new(void)
\r
6 \rexcludes_t excludes = xbt_new0(s_excludes_t, 1);
8 xbt_dynar_new(sizeof(fstream_t), (void_f_pvoid_t) fstream_free);
12 \r\rint
\r excludes_is_empty(excludes_t excludes)
\r
19 \r\rreturn (0 == xbt_dynar_length(excludes->items));
22 \r\rint
\r excludes_contains(excludes_t excludes, fstream_t fstream)
\r
26 \r\rif (!excludes || !fstream)
31 \r\rxbt_dynar_foreach(excludes->items, i, cur)
\r {
32 \rif (!strcmp(fstream->name, cur->name)
33 && !strcmp(fstream->directory, cur->directory))
39 \r\rint
\r excludes_add(excludes_t excludes, fstream_t fstream)
\r
43 \r\rif (excludes_contains(excludes, fstream))
45 \r\rxbt_dynar_push(excludes->items, &fstream);
49 \r\rint
\r excludes_check(excludes_t excludes, fstreams_t fstreams)
\r
56 \r\rif (!excludes || !fstreams)
58 \r\r\rxbt_dynar_foreach(excludes->items, i, exclude)
\r {
60 \r\rxbt_dynar_foreach(fstreams->items, i, fstream)
\r {
62 \r\rif (!strcmp(fstream->name, exclude->name)
63 && !strcmp(fstream->directory, exclude->directory))
72 \rWARN1("cannot exclude the file %s", exclude->name);
78 \r\rint
\r excludes_free(void **excludesptr)
\r
80 \rif (!(*excludesptr))
82 \r\rif ((*((excludes_t *) excludesptr))->items)
83 \rxbt_dynar_free((&(*((excludes_t *) excludesptr))->items));
84 \r\rfree(*excludesptr);
85 \r*excludesptr = NULL;