+++ /dev/null
-#include <excludes.h>\r
-#include <fstream.h>\r
-\r
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tesh);\r
-\r
-excludes_t\r
-excludes_new(void)\r
-{\r
- excludes_t excludes = xbt_new0(s_excludes_t, 1);\r
-\r
- excludes->items = xbt_dynar_new(sizeof(fstream_t), (void_f_pvoid_t)fstream_free);\r
- \r
- return excludes;\r
-}\r
-\r
-int\r
-excludes_is_empty(excludes_t excludes)\r
-{\r
- if(!excludes)\r
- {\r
- errno = EINVAL;\r
- return 0;\r
- }\r
- \r
- return (0 == xbt_dynar_length(excludes->items));\r
-}\r
-\r
-int\r
-excludes_contains(excludes_t excludes, fstream_t fstream)\r
-{\r
- fstream_t cur;\r
- unsigned int i;\r
- \r
- if(!excludes || !fstream)\r
- {\r
- errno = EINVAL;\r
- return 0;\r
- }\r
-\r
- xbt_dynar_foreach(excludes->items, i, cur)\r
- {\r
- if(!strcmp(fstream->name, cur->name) && !strcmp(fstream->directory, cur->directory))\r
- return 1;\r
- }\r
- \r
- return 0;\r
-}\r
-\r
-int\r
-excludes_add(excludes_t excludes, fstream_t fstream)\r
-{\r
- if(!excludes)\r
- return EINVAL;\r
- \r
- if(excludes_contains(excludes, fstream))\r
- return EEXIST;\r
-\r
- xbt_dynar_push(excludes->items, &fstream);\r
-\r
- return 0;\r
-}\r
-\r
-int\r
-excludes_check(excludes_t excludes, fstreams_t fstreams)\r
-{\r
- fstream_t exclude;\r
- fstream_t fstream;\r
- int success = 1;\r
- int exists;\r
- unsigned int i;\r
- \r
- if(!excludes || !fstreams)\r
- return EINVAL;\r
- \r
- \r
- xbt_dynar_foreach(excludes->items, i, exclude)\r
- {\r
- exists = 1;\r
-\r
- xbt_dynar_foreach(fstreams->items, i, fstream)\r
- {\r
- exists = 0;\r
- \r
- if(!strcmp(fstream->name, exclude->name) && !strcmp(fstream->directory, exclude->directory))\r
- {\r
- exists = 1;\r
- break;\r
- }\r
- }\r
-\r
- if(!exists)\r
- {\r
- success = 0;\r
- WARN1("cannot exclude the file %s",exclude->name); \r
- }\r
- }\r
- \r
- return success;\r
-}\r
-\r
-int\r
-excludes_free(void** excludesptr)\r
-{\r
- if(!(*excludesptr))\r
- return EINVAL;\r
- \r
- if((*((excludes_t*)excludesptr))->items)\r
- xbt_dynar_free((&(*((excludes_t*)excludesptr))->items));\r
-\r
- free(*excludesptr);\r
- *excludesptr = NULL; \r
- \r
- return 0;\r
-}\r