Thread (4 messages) 4 messages, 2 authors, 2018-05-20

Re: [PATCH] Use OPT_SET_INT_F() for cmdline option specification

flat view

From: Duy Nguyen <hidden>
Date: 2018-05-20 15:41:03

On Sun, May 20, 2018 at 11:15 AM, Martin Ågren [off-list ref] wrote:
On 20 May 2018 at 10:12, Nguyễn Thái Ngọc Duy [off-list ref] wrote:
quoted
The only thing these commands need is extra parseopt flags which can be
passed in by OPT_SET_INT_F() and it is a bit more compact than full
struct initialization.
quoted
diff --git a/archive.c b/archive.c
index 93ab175b0b..4fe7bec60c 100644
--- a/archive.c
+++ b/archive.c
@@ -411,11 +411,9 @@ static void parse_treeish_arg(const char **argv,
 }

 #define OPT__COMPR(s, v, h, p) \
-       { OPTION_SET_INT, (s), NULL, (v), NULL, (h), \
-         PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, (p) }
+       OPT_SET_INT_F(s, NULL, v, h, p, PARSE_OPT_NONEG)
 #define OPT__COMPR_HIDDEN(s, v, p) \
-       { OPTION_SET_INT, (s), NULL, (v), NULL, "", \
-         PARSE_OPT_NOARG | PARSE_OPT_NONEG | PARSE_OPT_HIDDEN, NULL, (p) }
+       OPT_SET_INT_F(s, NULL, v, "", p, PARSE_OPT_NONEG | PARSE_OPT_HIDDEN)
Right. We have NULLs in the fifth and the second-to-last positions, and
we use PARSE_OPT_NOARG.  By switching to OPT_SET_INT_F we get those for
free.

Do we want to keep "(s)" instead of "s", just to be safe? And same for
"(v)", "(p)". Macro expansion always makes me paranoid.
They are still wrapped in () in the end by OPT_SET_INT_F() so the
expanded struct initialization  is the same. I think we're fine here.
quoted
diff --git a/builtin/am.c b/builtin/am.c
index d834f9e62b..666287b497 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -2231,12 +2231,12 @@ int cmd_am(int argc, const char **argv, const char *prefix)
                        N_("pass -b flag to git-mailinfo"), KEEP_NON_PATCH),
                OPT_BOOL('m', "message-id", &state.message_id,
                        N_("pass -m flag to git-mailinfo")),
-               { OPTION_SET_INT, 0, "keep-cr", &keep_cr, NULL,
-                 N_("pass --keep-cr flag to git-mailsplit for mbox format"),
-                 PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1},
-               { OPTION_SET_INT, 0, "no-keep-cr", &keep_cr, NULL,
-                 N_("do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"),
-                 PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 0},
+               OPT_SET_INT_F(0, "keep-cr", &keep_cr,
+                       N_("pass --keep-cr flag to git-mailsplit for mbox format"),
+                       1, PARSE_OPT_NONEG),
+               OPT_SET_INT_F(0, "no-keep-cr", &keep_cr,
+                       N_("do not pass --keep-cr flag to git-mailsplit for mbox format"),
+                       0, PARSE_OPT_NONEG),
I found `-w` and `--word-diff` useful. You actually change the N_("...")
for `--no-keep-cr` here: [-independent of am.keepcr-]{+for mbox format+}
Copy-paste mistake?
Oops. You're correct. Fixed in v2.
Other than that, `--word-diff` has a very structured appearance and
nothing stood out. The ordering is different (f goes at the end in the
post-image), which makes the diff busier than it would have had to be.
(That's obviously nothing this patch can do anything about.)

Martin
-- 
Duy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help