Refactor array_foreach_i to array_foreach_idx

Author Mitja Felicijan <mitja.felicijan@gmail.com> 2026-01-21 18:37:07 +0100
Committer Mitja Felicijan <mitja.felicijan@gmail.com> 2026-01-21 18:37:07 +0100
Commit b5575596c187fe6d9143b9e08f5b1068ab01410f (patch)
-rw-r--r-- examples/array.c 4
-rw-r--r-- nonstd.h 2
-rw-r--r-- tests.c 6
3 files changed, 6 insertions, 6 deletions
diff --git a/examples/array.c b/examples/array.c
...
91
	}
91
	}
92
	printf("\n");
92
	printf("\n");
93
  
93
  
94
	printf("  Using array_foreach_i: ");
94
	printf("  Using array_foreach_idx: ");
95
	array_foreach_i(values, val, idx) {
95
	array_foreach_idx(values, val, idx) {
96
		printf("[%zu]=%d ", idx, val);
96
		printf("[%zu]=%d ", idx, val);
97
	}
97
	}
98
	printf("\n\n");
98
	printf("\n\n");
...
diff --git a/nonstd.h b/nonstd.h
...
203
		 _i_##var < (arr).length && ((var) = (arr).data[_i_##var], 1); \
203
		 _i_##var < (arr).length && ((var) = (arr).data[_i_##var], 1); \
204
		 ++_i_##var)
204
		 ++_i_##var)
205
  
205
  
206
#define array_foreach_i(arr, var, index) \
206
#define array_foreach_idx(arr, var, index) \
207
	for (size_t index = 0;               \
207
	for (size_t index = 0;               \
208
		 index < (arr).length && ((var) = (arr).data[index], 1); ++index)
208
		 index < (arr).length && ((var) = (arr).data[index], 1); ++index)
209
  
209
  
...
diff --git a/tests.c b/tests.c
...
663
	array_free(arr);
663
	array_free(arr);
664
}
664
}
665
  
665
  
666
MU_TEST(test_array_foreach_i) {
666
MU_TEST(test_array_foreach_idx) {
667
	array(int) arr;
667
	array(int) arr;
668
	array_init(arr);
668
	array_init(arr);
669
	array_push(arr, 10);
669
	array_push(arr, 10);
...
674
	size_t sum_idx = 0;
674
	size_t sum_idx = 0;
675
	int val;
675
	int val;
676
  
676
  
677
	array_foreach_i(arr, val, i) {
677
	array_foreach_idx(arr, val, i) {
678
		sum_val += val;
678
		sum_val += val;
679
		sum_idx += i;
679
		sum_idx += i;
680
		mu_assert_int_eq(val, arr.data[i]);
680
		mu_assert_int_eq(val, arr.data[i]);
...
932
	RUN_TEST_WITH_NAME(test_array_reserve);
932
	RUN_TEST_WITH_NAME(test_array_reserve);
933
	RUN_TEST_WITH_NAME(test_array_clear);
933
	RUN_TEST_WITH_NAME(test_array_clear);
934
	RUN_TEST_WITH_NAME(test_array_foreach);
934
	RUN_TEST_WITH_NAME(test_array_foreach);
935
	RUN_TEST_WITH_NAME(test_array_foreach_i);
935
	RUN_TEST_WITH_NAME(test_array_foreach_idx);
936
}
936
}
937
  
937
  
938
MU_TEST_SUITE(test_suite_slice) {
938
MU_TEST_SUITE(test_suite_slice) {
...