Use OPT_SET_INT_F() for cmdline option specification
The only thing these commands need is extra parseopt flag which can be passed in by OPT_SET_INT_F() and it is a bit more compact than full struct initialization. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									e144d126d7
								
							
						
					
					
						commit
						3e4a67b47d
					
				|  | @ -411,11 +411,9 @@ static void parse_treeish_arg(const char **argv, | ||||||
| } | } | ||||||
|  |  | ||||||
| #define OPT__COMPR(s, v, h, p) \ | #define OPT__COMPR(s, v, h, p) \ | ||||||
| 	{ OPTION_SET_INT, (s), NULL, (v), NULL, (h), \ | 	OPT_SET_INT_F(s, NULL, v, h, p, PARSE_OPT_NONEG) | ||||||
| 	  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, (p) } |  | ||||||
| #define OPT__COMPR_HIDDEN(s, v, p) \ | #define OPT__COMPR_HIDDEN(s, v, p) \ | ||||||
| 	{ OPTION_SET_INT, (s), NULL, (v), NULL, "", \ | 	OPT_SET_INT_F(s, NULL, v, "", p, PARSE_OPT_NONEG | PARSE_OPT_HIDDEN) | ||||||
| 	  PARSE_OPT_NOARG | PARSE_OPT_NONEG | PARSE_OPT_HIDDEN, NULL, (p) } |  | ||||||
|  |  | ||||||
| static int parse_archive_args(int argc, const char **argv, | static int parse_archive_args(int argc, const char **argv, | ||||||
| 		const struct archiver **ar, struct archiver_args *args, | 		const struct archiver **ar, struct archiver_args *args, | ||||||
|  |  | ||||||
|  | @ -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), | 			N_("pass -b flag to git-mailinfo"), KEEP_NON_PATCH), | ||||||
| 		OPT_BOOL('m', "message-id", &state.message_id, | 		OPT_BOOL('m', "message-id", &state.message_id, | ||||||
| 			N_("pass -m flag to git-mailinfo")), | 			N_("pass -m flag to git-mailinfo")), | ||||||
| 		{ OPTION_SET_INT, 0, "keep-cr", &keep_cr, NULL, | 		OPT_SET_INT_F(0, "keep-cr", &keep_cr, | ||||||
| 			N_("pass --keep-cr flag to git-mailsplit for mbox format"), | 			N_("pass --keep-cr flag to git-mailsplit for mbox format"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1}, | 			1, PARSE_OPT_NONEG), | ||||||
| 		{ OPTION_SET_INT, 0, "no-keep-cr", &keep_cr, NULL, | 		OPT_SET_INT_F(0, "no-keep-cr", &keep_cr, | ||||||
| 			N_("do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"), | 			N_("do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 0}, | 			0, PARSE_OPT_NONEG), | ||||||
| 		OPT_BOOL('c', "scissors", &state.scissors, | 		OPT_BOOL('c', "scissors", &state.scissors, | ||||||
| 			N_("strip everything before a scissors line")), | 			N_("strip everything before a scissors line")), | ||||||
| 		OPT_PASSTHRU_ARGV(0, "whitespace", &state.git_apply_opts, N_("action"), | 		OPT_PASSTHRU_ARGV(0, "whitespace", &state.git_apply_opts, N_("action"), | ||||||
|  |  | ||||||
|  | @ -592,8 +592,8 @@ int cmd_branch(int argc, const char **argv, const char *prefix) | ||||||
| 		OPT__QUIET(&quiet, N_("suppress informational messages")), | 		OPT__QUIET(&quiet, N_("suppress informational messages")), | ||||||
| 		OPT_SET_INT('t', "track",  &track, N_("set up tracking mode (see git-pull(1))"), | 		OPT_SET_INT('t', "track",  &track, N_("set up tracking mode (see git-pull(1))"), | ||||||
| 			BRANCH_TRACK_EXPLICIT), | 			BRANCH_TRACK_EXPLICIT), | ||||||
| 		{ OPTION_SET_INT, 0, "set-upstream", &track, NULL, N_("do not use"), | 		OPT_SET_INT_F(0, "set-upstream", &track, N_("do not use"), | ||||||
| 			PARSE_OPT_NOARG | PARSE_OPT_HIDDEN, NULL, BRANCH_TRACK_OVERRIDE }, | 			BRANCH_TRACK_OVERRIDE, PARSE_OPT_HIDDEN), | ||||||
| 		OPT_STRING('u', "set-upstream-to", &new_upstream, N_("upstream"), N_("change the upstream info")), | 		OPT_STRING('u', "set-upstream-to", &new_upstream, N_("upstream"), N_("change the upstream info")), | ||||||
| 		OPT_BOOL(0, "unset-upstream", &unset_upstream, N_("Unset the upstream info")), | 		OPT_BOOL(0, "unset-upstream", &unset_upstream, N_("Unset the upstream info")), | ||||||
| 		OPT__COLOR(&branch_use_color, N_("use colored output")), | 		OPT__COLOR(&branch_use_color, N_("use colored output")), | ||||||
|  |  | ||||||
|  | @ -695,12 +695,11 @@ int cmd_difftool(int argc, const char **argv, const char *prefix) | ||||||
| 			 N_("use `diff.guitool` instead of `diff.tool`")), | 			 N_("use `diff.guitool` instead of `diff.tool`")), | ||||||
| 		OPT_BOOL('d', "dir-diff", &dir_diff, | 		OPT_BOOL('d', "dir-diff", &dir_diff, | ||||||
| 			 N_("perform a full-directory diff")), | 			 N_("perform a full-directory diff")), | ||||||
| 		{ OPTION_SET_INT, 'y', "no-prompt", &prompt, NULL, | 		OPT_SET_INT_F('y', "no-prompt", &prompt, | ||||||
| 			N_("do not prompt before launching a diff tool"), | 			N_("do not prompt before launching a diff tool"), | ||||||
| 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 0}, | 			0, PARSE_OPT_NONEG), | ||||||
| 		{ OPTION_SET_INT, 0, "prompt", &prompt, NULL, NULL, | 		OPT_SET_INT_F(0, "prompt", &prompt, NULL, | ||||||
| 			PARSE_OPT_NOARG | PARSE_OPT_NONEG | PARSE_OPT_HIDDEN, | 			1, PARSE_OPT_NONEG | PARSE_OPT_HIDDEN), | ||||||
| 			NULL, 1 }, |  | ||||||
| 		OPT_BOOL(0, "symlinks", &symlinks, | 		OPT_BOOL(0, "symlinks", &symlinks, | ||||||
| 			 N_("use symlinks in dir-diff mode")), | 			 N_("use symlinks in dir-diff mode")), | ||||||
| 		OPT_STRING('t', "tool", &difftool_cmd, N_("<tool>"), | 		OPT_STRING('t', "tool", &difftool_cmd, N_("<tool>"), | ||||||
|  |  | ||||||
|  | @ -157,9 +157,9 @@ static struct option builtin_fetch_options[] = { | ||||||
| 			N_("deepen history of shallow clone, excluding rev")), | 			N_("deepen history of shallow clone, excluding rev")), | ||||||
| 	OPT_INTEGER(0, "deepen", &deepen_relative, | 	OPT_INTEGER(0, "deepen", &deepen_relative, | ||||||
| 		    N_("deepen history of shallow clone")), | 		    N_("deepen history of shallow clone")), | ||||||
| 	{ OPTION_SET_INT, 0, "unshallow", &unshallow, NULL, | 	OPT_SET_INT_F(0, "unshallow", &unshallow, | ||||||
| 		      N_("convert to a complete repository"), | 		      N_("convert to a complete repository"), | ||||||
| 		   PARSE_OPT_NONEG | PARSE_OPT_NOARG, NULL, 1 }, | 		      1, PARSE_OPT_NONEG), | ||||||
| 	{ OPTION_STRING, 0, "submodule-prefix", &submodule_prefix, N_("dir"), | 	{ OPTION_STRING, 0, "submodule-prefix", &submodule_prefix, N_("dir"), | ||||||
| 		   N_("prepend this to submodule path output"), PARSE_OPT_HIDDEN }, | 		   N_("prepend this to submodule path output"), PARSE_OPT_HIDDEN }, | ||||||
| 	{ OPTION_CALLBACK, 0, "recurse-submodules-default", | 	{ OPTION_CALLBACK, 0, "recurse-submodules-default", | ||||||
|  |  | ||||||
|  | @ -885,9 +885,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix) | ||||||
| 			   N_("indicate hit with exit status without output")), | 			   N_("indicate hit with exit status without output")), | ||||||
| 		OPT_BOOL(0, "all-match", &opt.all_match, | 		OPT_BOOL(0, "all-match", &opt.all_match, | ||||||
| 			N_("show only matches from files that match all patterns")), | 			N_("show only matches from files that match all patterns")), | ||||||
| 		{ OPTION_SET_INT, 0, "debug", &opt.debug, NULL, | 		OPT_SET_INT_F(0, "debug", &opt.debug, | ||||||
| 			      N_("show parse tree for grep expression"), | 			      N_("show parse tree for grep expression"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_HIDDEN, NULL, 1 }, | 			      1, PARSE_OPT_HIDDEN), | ||||||
| 		OPT_GROUP(""), | 		OPT_GROUP(""), | ||||||
| 		{ OPTION_STRING, 'O', "open-files-in-pager", &show_in_pager, | 		{ OPTION_STRING, 'O', "open-files-in-pager", &show_in_pager, | ||||||
| 			N_("pager"), N_("show matching files in the pager"), | 			N_("pager"), N_("show matching files in the pager"), | ||||||
|  |  | ||||||
|  | @ -1474,9 +1474,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) | ||||||
| 			 N_("output all-zero hash in From header")), | 			 N_("output all-zero hash in From header")), | ||||||
| 		OPT_BOOL(0, "ignore-if-in-upstream", &ignore_if_in_upstream, | 		OPT_BOOL(0, "ignore-if-in-upstream", &ignore_if_in_upstream, | ||||||
| 			 N_("don't include a patch matching a commit upstream")), | 			 N_("don't include a patch matching a commit upstream")), | ||||||
| 		{ OPTION_SET_INT, 'p', "no-stat", &use_patch_format, NULL, | 		OPT_SET_INT_F('p', "no-stat", &use_patch_format, | ||||||
| 			      N_("show patch format instead of default (patch + stat)"), | 			      N_("show patch format instead of default (patch + stat)"), | ||||||
| 		  PARSE_OPT_NONEG | PARSE_OPT_NOARG, NULL, 1}, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		OPT_GROUP(N_("Messaging")), | 		OPT_GROUP(N_("Messaging")), | ||||||
| 		{ OPTION_CALLBACK, 0, "add-header", NULL, N_("header"), | 		{ OPTION_CALLBACK, 0, "add-header", NULL, N_("header"), | ||||||
| 			    N_("add email header"), 0, header_callback }, | 			    N_("add email header"), 0, header_callback }, | ||||||
|  |  | ||||||
|  | @ -556,9 +556,9 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix) | ||||||
| 		{ OPTION_CALLBACK, 0, "exclude-standard", &dir, NULL, | 		{ OPTION_CALLBACK, 0, "exclude-standard", &dir, NULL, | ||||||
| 			N_("add the standard git exclusions"), | 			N_("add the standard git exclusions"), | ||||||
| 			PARSE_OPT_NOARG, option_parse_exclude_standard }, | 			PARSE_OPT_NOARG, option_parse_exclude_standard }, | ||||||
| 		{ OPTION_SET_INT, 0, "full-name", &prefix_len, NULL, | 		OPT_SET_INT_F(0, "full-name", &prefix_len, | ||||||
| 			      N_("make the output relative to the project top directory"), | 			      N_("make the output relative to the project top directory"), | ||||||
| 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL }, | 			      0, PARSE_OPT_NONEG), | ||||||
| 		OPT_BOOL(0, "recurse-submodules", &recurse_submodules, | 		OPT_BOOL(0, "recurse-submodules", &recurse_submodules, | ||||||
| 			N_("recurse through submodules")), | 			N_("recurse through submodules")), | ||||||
| 		OPT_BOOL(0, "error-unmatch", &error_unmatch, | 		OPT_BOOL(0, "error-unmatch", &error_unmatch, | ||||||
|  |  | ||||||
|  | @ -213,9 +213,9 @@ static struct option builtin_merge_options[] = { | ||||||
| 	OPT_BOOL('e', "edit", &option_edit, | 	OPT_BOOL('e', "edit", &option_edit, | ||||||
| 		N_("edit message before committing")), | 		N_("edit message before committing")), | ||||||
| 	OPT_SET_INT(0, "ff", &fast_forward, N_("allow fast-forward (default)"), FF_ALLOW), | 	OPT_SET_INT(0, "ff", &fast_forward, N_("allow fast-forward (default)"), FF_ALLOW), | ||||||
| 	{ OPTION_SET_INT, 0, "ff-only", &fast_forward, NULL, | 	OPT_SET_INT_F(0, "ff-only", &fast_forward, | ||||||
| 		      N_("abort if fast-forward is not possible"), | 		      N_("abort if fast-forward is not possible"), | ||||||
| 		PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, FF_ONLY }, | 		      FF_ONLY, PARSE_OPT_NONEG), | ||||||
| 	OPT_RERERE_AUTOUPDATE(&allow_rerere_auto), | 	OPT_RERERE_AUTOUPDATE(&allow_rerere_auto), | ||||||
| 	OPT_BOOL(0, "verify-signatures", &verify_signatures, | 	OPT_BOOL(0, "verify-signatures", &verify_signatures, | ||||||
| 		N_("verify that the named commit has a valid GPG signature")), | 		N_("verify that the named commit has a valid GPG signature")), | ||||||
|  |  | ||||||
|  | @ -778,13 +778,13 @@ static int merge(int argc, const char **argv, const char *prefix) | ||||||
| 			   N_("resolve notes conflicts using the given strategy " | 			   N_("resolve notes conflicts using the given strategy " | ||||||
| 			      "(manual/ours/theirs/union/cat_sort_uniq)")), | 			      "(manual/ours/theirs/union/cat_sort_uniq)")), | ||||||
| 		OPT_GROUP(N_("Committing unmerged notes")), | 		OPT_GROUP(N_("Committing unmerged notes")), | ||||||
| 		{ OPTION_SET_INT, 0, "commit", &do_commit, NULL, | 		OPT_SET_INT_F(0, "commit", &do_commit, | ||||||
| 			      N_("finalize notes merge by committing unmerged notes"), | 			      N_("finalize notes merge by committing unmerged notes"), | ||||||
| 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1}, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		OPT_GROUP(N_("Aborting notes merge resolution")), | 		OPT_GROUP(N_("Aborting notes merge resolution")), | ||||||
| 		{ OPTION_SET_INT, 0, "abort", &do_abort, NULL, | 		OPT_SET_INT_F(0, "abort", &do_abort, | ||||||
| 			      N_("abort notes merge"), | 			      N_("abort notes merge"), | ||||||
| 			PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1}, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		OPT_END() | 		OPT_END() | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @ -3132,18 +3132,18 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) | ||||||
| 			 N_("do not create an empty pack output")), | 			 N_("do not create an empty pack output")), | ||||||
| 		OPT_BOOL(0, "revs", &use_internal_rev_list, | 		OPT_BOOL(0, "revs", &use_internal_rev_list, | ||||||
| 			 N_("read revision arguments from standard input")), | 			 N_("read revision arguments from standard input")), | ||||||
| 		{ OPTION_SET_INT, 0, "unpacked", &rev_list_unpacked, NULL, | 		OPT_SET_INT_F(0, "unpacked", &rev_list_unpacked, | ||||||
| 			      N_("limit the objects to those that are not yet packed"), | 			      N_("limit the objects to those that are not yet packed"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 }, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		{ OPTION_SET_INT, 0, "all", &rev_list_all, NULL, | 		OPT_SET_INT_F(0, "all", &rev_list_all, | ||||||
| 			      N_("include objects reachable from any reference"), | 			      N_("include objects reachable from any reference"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 }, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		{ OPTION_SET_INT, 0, "reflog", &rev_list_reflog, NULL, | 		OPT_SET_INT_F(0, "reflog", &rev_list_reflog, | ||||||
| 			      N_("include objects referred by reflog entries"), | 			      N_("include objects referred by reflog entries"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 }, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		{ OPTION_SET_INT, 0, "indexed-objects", &rev_list_index, NULL, | 		OPT_SET_INT_F(0, "indexed-objects", &rev_list_index, | ||||||
| 			      N_("include objects referred to by the index"), | 			      N_("include objects referred to by the index"), | ||||||
| 		  PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, 1 }, | 			      1, PARSE_OPT_NONEG), | ||||||
| 		OPT_BOOL(0, "stdout", &pack_to_stdout, | 		OPT_BOOL(0, "stdout", &pack_to_stdout, | ||||||
| 			 N_("output pack to stdout")), | 			 N_("output pack to stdout")), | ||||||
| 		OPT_BOOL(0, "include-tag", &include_tag, | 		OPT_BOOL(0, "include-tag", &include_tag, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Nguyễn Thái Ngọc Duy
						Nguyễn Thái Ngọc Duy