-
-#define DIGITS_1(figure) \
- ONE_DIGIT (figure)
-#define DIGITS_2(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_1 ((figure) / 10)
-#define DIGITS_3(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_2 ((figure) / 10)
-#define DIGITS_4(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_3 ((figure) / 10)
-#define DIGITS_5(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_4 ((figure) / 10)
-#define DIGITS_6(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_5 ((figure) / 10)
-#define DIGITS_7(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_6 ((figure) / 10)
-#define DIGITS_8(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_7 ((figure) / 10)
-#define DIGITS_9(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_8 ((figure) / 10)
-#define DIGITS_10(figure) \
- (ONE_DIGIT (figure), n %= (figure)); \
- DIGITS_9 ((figure) / 10)
+#define ONE_DIGIT_ADVANCE(figure) (ONE_DIGIT (figure), n %= (figure))
+
+#define DIGITS_1(figure) ONE_DIGIT (figure)
+#define DIGITS_2(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_1 ((figure) / 10)
+#define DIGITS_3(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_2 ((figure) / 10)
+#define DIGITS_4(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_3 ((figure) / 10)
+#define DIGITS_5(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_4 ((figure) / 10)
+#define DIGITS_6(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_5 ((figure) / 10)
+#define DIGITS_7(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_6 ((figure) / 10)
+#define DIGITS_8(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_7 ((figure) / 10)
+#define DIGITS_9(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_8 ((figure) / 10)
+#define DIGITS_10(figure) ONE_DIGIT_ADVANCE (figure); DIGITS_9 ((figure) / 10)