builtin/var: refactor to use parse-options API
A message that is not in the archive (sent off-list or not yet received): 1a146af667a8bcd4
PATCH v2 1/1 builtin/var: refactor to use parse-options API
From: keryle <[email protected]>
Migrate option handling in 'git var' to the parse-options API. This update also aligns variable resolution with current Git configuration and attribute handling.
---
Range-diff against v1:
- Fixed whitespace damage and replaced space-indentation with proper tabs.
- Removed redundant inline comments as suggested.
- Enforced mutual exclusivity between '-l' and positional arguments.
- Aligned variable resolution with Git configuration and attribute handling.
builtin/var.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-)
builtin/var.c +23 -9
@@ -3,11 +3,9 @@* * Copyright (C) Eric Biederman, 2005 */ -#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" -#include "attr.h" #include "config.h" #include "editor.h"
@@ -18,8 +16,12 @@#include "path.h" #include "strbuf.h" #include "run-command.h" +#include "parse-options.h" -static const char var_usage[] ="git var (-l | <variable>)" ; +static const char *const var_usage[] = { +N_ ("git var (-l | <variable>)" ), +NULL +};static char *committer (int ident_flag) {
@@ -120,6 +122,7 @@ struct git_var {char *(*read)(int );int multivalued; }; +static struct git_var git_vars[] = { { .name ="GIT_COMMITTER_IDENT" ,
@@ -221,21 +224,32 @@ int cmd_var(int argc, {const struct git_var *git_var;char *val; +int list =0 ; -show_usage_if_asked (argc, argv, var_usage); -if (argc !=2 ) -usage (var_usage); +struct option builtin_var_options[] = { +OPT_BOOL ('l' ,"list" , &list,N_ ("list builtin variables" )), +OPT_END () + }; -if (strcmp (argv[1 ],"-l" ) ==0 ) { + argc =parse_options (argc, argv, prefix, builtin_var_options, + var_usage,0 ); + +if (list) { +if (argc >0 ) +usage (var_usage[0 ]);repo_config (the_repository, show_config,NULL );list_vars ();return 0 ; } + +if (argc !=1 ) +usage (var_usage[0 ]); +repo_config (the_repository, git_default_config,NULL ); - git_var =get_git_var (argv[1 ]); + git_var =get_git_var (argv[0 ]);if (!git_var) -usage (var_usage); +usage (var_usage[0 ]); val = git_var->read (IDENT_STRICT );if (!val)
Signature · 1 line
2.53.0
PATCH v2 1/1 builtin/var: refactor to use parse-options API
In reply to a message not in the archiveFrom: kerylefondji <[email protected]>
Migrate option handling in 'git var' to the parse-options API. This update also aligns variable resolution with current Git configuration and attribute handling.
--- builtin/var.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-)
builtin/var.c +23 -9
@@ -3,11 +3,9 @@* * Copyright (C) Eric Biederman, 2005 */ -#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" -#include "attr.h" #include "config.h" #include "editor.h"
@@ -18,8 +16,12 @@#include "path.h" #include "strbuf.h" #include "run-command.h" +#include "parse-options.h" -static const char var_usage[] ="git var (-l | <variable>)" ; +static const char *const var_usage[] = { +N_ ("git var (-l | <variable>)" ), +NULL +};static char *committer (int ident_flag) {
@@ -120,6 +122,7 @@ struct git_var {char *(*read)(int );int multivalued; }; +static struct git_var git_vars[] = { { .name ="GIT_COMMITTER_IDENT" ,
@@ -221,21 +224,32 @@ int cmd_var(int argc, {const struct git_var *git_var;char *val; +int list =0 ; -show_usage_if_asked (argc, argv, var_usage); -if (argc !=2 ) -usage (var_usage); +struct option builtin_var_options[] = { +OPT_BOOL ('l' ,"list" , &list,N_ ("list builtin variables" )), +OPT_END () + }; -if (strcmp (argv[1 ],"-l" ) ==0 ) { + argc =parse_options (argc, argv, prefix, builtin_var_options, + var_usage,0 ); + +if (list) { +if (argc >0 ) +usage (var_usage[0 ]);repo_config (the_repository, show_config,NULL );list_vars ();return 0 ; } + +if (argc !=1 ) +usage (var_usage[0 ]); +repo_config (the_repository, git_default_config,NULL ); - git_var =get_git_var (argv[1 ]); + git_var =get_git_var (argv[0 ]);if (!git_var) -usage (var_usage); +usage (var_usage[0 ]); val = git_var->read (IDENT_STRICT );if (!val)
Signature · 1 line
2.53.0
Quoted 1 line · On Sat, Oct 17, 2026, at 13:25, [email protected] wrote:
From: kerylefondji <[email protected]>
The author part should generally be your real name FYI. See SubmittingsPatches about name or “real name”.
Quoted 6 lines
Migrate option handling in 'git var' to the parse-options API. This update also aligns variable resolution with current Git configuration and attribute handling.
Signed-off-by Keryle Blondeau Fondji Tamekong <keryle@DESKTOP-0SUCFI3>
This looks like a real name. But the email is not real. It should be the gmail one from the author part.
Quoted 2 lines
---
[snip]
Hi Kristoffer,
Thank you very much for your feedback and pointing this out. I will fix this immediately with my correct email address for the next version.
Best regards,
Keryle