64 lines
2.2 KiB
Diff
64 lines
2.2 KiB
Diff
From 385aeb477bac9538ab2b3d5cf0e76e8c751374be Mon Sep 17 00:00:00 2001
|
|
From: Sebastian Pipping <sebastian@pipping.org>
|
|
Date: Sat, 17 Apr 2021 18:35:51 +0200
|
|
Subject: [PATCH] xmlwf: Extract macro XMLWF_SHIFT_ARGUMENT
|
|
|
|
---
|
|
xmlwf/xmlwf.c | 31 +++++++++++++++----------------
|
|
1 file changed, 15 insertions(+), 16 deletions(-)
|
|
|
|
diff --git a/xmlwf/xmlwf.c b/xmlwf/xmlwf.c
|
|
index 493b697..fc83f73 100644
|
|
--- a/xmlwf/xmlwf.c
|
|
+++ b/xmlwf/xmlwf.c
|
|
@@ -908,6 +908,19 @@ usage(const XML_Char *prog, int rc) {
|
|
int wmain(int argc, XML_Char **argv);
|
|
#endif
|
|
|
|
+#define XMLWF_SHIFT_ARG_INTO(constCharStarTarget, argc, argv, i, j) \
|
|
+ { \
|
|
+ if (argv[i][j + 1] == T('\0')) { \
|
|
+ if (++i == argc) \
|
|
+ usage(argv[0], 2); \
|
|
+ constCharStarTarget = argv[i]; \
|
|
+ } else { \
|
|
+ constCharStarTarget = argv[i] + j + 1; \
|
|
+ } \
|
|
+ i++; \
|
|
+ j = 0; \
|
|
+ }
|
|
+
|
|
int
|
|
tmain(int argc, XML_Char **argv) {
|
|
int i, j;
|
|
@@ -984,24 +997,10 @@ tmain(int argc, XML_Char **argv) {
|
|
j++;
|
|
break;
|
|
case T('d'):
|
|
- if (argv[i][j + 1] == T('\0')) {
|
|
- if (++i == argc)
|
|
- usage(argv[0], 2);
|
|
- outputDir = argv[i];
|
|
- } else
|
|
- outputDir = argv[i] + j + 1;
|
|
- i++;
|
|
- j = 0;
|
|
+ XMLWF_SHIFT_ARG_INTO(outputDir, argc, argv, i, j);
|
|
break;
|
|
case T('e'):
|
|
- if (argv[i][j + 1] == T('\0')) {
|
|
- if (++i == argc)
|
|
- usage(argv[0], 2);
|
|
- encoding = argv[i];
|
|
- } else
|
|
- encoding = argv[i] + j + 1;
|
|
- i++;
|
|
- j = 0;
|
|
+ XMLWF_SHIFT_ARG_INTO(encoding, argc, argv, i, j);
|
|
break;
|
|
case T('h'):
|
|
usage(argv[0], 0);
|
|
--
|
|
1.8.3.1
|
|
|