foreach.c 897 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #define NOBUILD_IMPLEMENTATION
  2. #include "../nobuild.h"
  3. void foreach_vargs(int ignore, ...)
  4. {
  5. va_list args;
  6. FOREACH_VARGS(ignore, arg, args, {
  7. INFO(" %s", arg);
  8. });
  9. }
  10. void foreach_array(void)
  11. {
  12. static const char *array[] = {
  13. "foo", "bar", "baz"
  14. };
  15. FOREACH_ARRAY(const char *, item, array, {
  16. INFO(" %s", item);
  17. });
  18. }
  19. void foreach_file_in_dir(const char *dir_path)
  20. {
  21. FOREACH_FILE_IN_DIR(file, dir_path, {
  22. INFO(" %s", file);
  23. });
  24. }
  25. #define DEMO(expr) \
  26. do { \
  27. INFO(#expr); \
  28. expr; \
  29. } while(0)
  30. int main(int argc, char *argv[])
  31. {
  32. DEMO(foreach_vargs(69, "foo", "bar", "baz", NULL));
  33. DEMO(foreach_array());
  34. DEMO(foreach_file_in_dir("."));
  35. return 0;
  36. }