aboutsummaryrefslogtreecommitdiff
path: root/examples/redis-unstable/utils/generate-fmtargs.py
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
commit5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda (patch)
tree1acdfa5220cd13b7be43a2a01368e80d306473ca /examples/redis-unstable/utils/generate-fmtargs.py
parentc7ab12bba64d9c20ccd79b132dac475f7bc3923e (diff)
downloadcrep-5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda.tar.gz
Add Redis source code for testing
Diffstat (limited to 'examples/redis-unstable/utils/generate-fmtargs.py')
-rwxr-xr-xexamples/redis-unstable/utils/generate-fmtargs.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/examples/redis-unstable/utils/generate-fmtargs.py b/examples/redis-unstable/utils/generate-fmtargs.py
new file mode 100755
index 0000000..1eced02
--- /dev/null
+++ b/examples/redis-unstable/utils/generate-fmtargs.py
@@ -0,0 +1,22 @@
1#!/usr/bin/env python3
2
3# Outputs the generated part of src/fmtargs.h
4MAX_ARGS = 160
5
6import os
7print("/* Everything below this line is automatically generated by")
8print(" * %s. Do not manually edit. */\n" % os.path.basename(__file__))
9
10print('#define ARG_N(' + ', '.join(['_' + str(i) for i in range(1, MAX_ARGS + 1, 1)]) + ', N, ...) N')
11
12print('\n#define RSEQ_N() ' + ', '.join([str(i) for i in range(MAX_ARGS, -1, -1)]))
13
14print('\n#define COMPACT_FMT_2(fmt, value) fmt')
15for i in range(4, MAX_ARGS + 1, 2):
16 print('#define COMPACT_FMT_{}(fmt, value, ...) fmt COMPACT_FMT_{}(__VA_ARGS__)'.format(i, i - 2))
17
18print('\n#define COMPACT_VALUES_2(fmt, value) value')
19for i in range(4, MAX_ARGS + 1, 2):
20 print('#define COMPACT_VALUES_{}(fmt, value, ...) value, COMPACT_VALUES_{}(__VA_ARGS__)'.format(i, i - 2))
21
22print("\n#endif")