@@ -84,33 +84,35 @@ int cmd__config(int argc, const char **argv)
84
84
int i , val ;
85
85
const char * v ;
86
86
const struct string_list * strptr ;
87
- struct config_set cs ;
87
+ struct config_set cs = { . hash_initialized = 0 } ;
88
88
enum test_config_exit_code ret = TC_SUCCESS ;
89
89
90
- if (argc == 3 && !strcmp (argv [1 ], "read_early_config" )) {
91
- read_early_config (early_config_cb , (void * )argv [2 ]);
90
+ argc -- ; /* skip over "config" */
91
+ argv ++ ;
92
+
93
+ if (argc == 0 )
94
+ goto print_usage_error ;
95
+
96
+ if (argc == 2 && !strcmp (argv [0 ], "read_early_config" )) {
97
+ read_early_config (early_config_cb , (void * )argv [1 ]);
92
98
return TC_SUCCESS ;
93
99
}
94
100
95
101
setup_git_directory ();
96
-
97
102
git_configset_init (& cs );
98
103
99
- if (argc < 2 )
100
- goto print_usage_error ;
101
-
102
- if (argc == 3 && !strcmp (argv [1 ], "get_value" )) {
103
- if (!git_config_get_value (argv [2 ], & v )) {
104
+ if (argc == 2 && !strcmp (argv [0 ], "get_value" )) {
105
+ if (!git_config_get_value (argv [1 ], & v )) {
104
106
if (!v )
105
107
printf ("(NULL)\n" );
106
108
else
107
109
printf ("%s\n" , v );
108
110
} else {
109
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
111
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
110
112
ret = TC_VALUE_NOT_FOUND ;
111
113
}
112
- } else if (argc == 3 && !strcmp (argv [1 ], "get_value_multi" )) {
113
- strptr = git_config_get_value_multi (argv [2 ]);
114
+ } else if (argc == 2 && !strcmp (argv [0 ], "get_value_multi" )) {
115
+ strptr = git_config_get_value_multi (argv [1 ]);
114
116
if (strptr ) {
115
117
for (i = 0 ; i < strptr -> nr ; i ++ ) {
116
118
v = strptr -> items [i ].string ;
@@ -120,58 +122,58 @@ int cmd__config(int argc, const char **argv)
120
122
printf ("%s\n" , v );
121
123
}
122
124
} else {
123
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
125
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
124
126
ret = TC_VALUE_NOT_FOUND ;
125
127
}
126
- } else if (argc == 3 && !strcmp (argv [1 ], "get_int" )) {
127
- if (!git_config_get_int (argv [2 ], & val )) {
128
+ } else if (argc == 2 && !strcmp (argv [0 ], "get_int" )) {
129
+ if (!git_config_get_int (argv [1 ], & val )) {
128
130
printf ("%d\n" , val );
129
131
} else {
130
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
132
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
131
133
ret = TC_VALUE_NOT_FOUND ;
132
134
}
133
- } else if (argc == 3 && !strcmp (argv [1 ], "get_bool" )) {
134
- if (!git_config_get_bool (argv [2 ], & val )) {
135
+ } else if (argc == 2 && !strcmp (argv [0 ], "get_bool" )) {
136
+ if (!git_config_get_bool (argv [1 ], & val )) {
135
137
printf ("%d\n" , val );
136
138
} else {
137
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
139
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
138
140
ret = TC_VALUE_NOT_FOUND ;
139
141
}
140
- } else if (argc == 3 && !strcmp (argv [1 ], "get_string" )) {
141
- if (!git_config_get_string_const (argv [2 ], & v )) {
142
+ } else if (argc == 2 && !strcmp (argv [0 ], "get_string" )) {
143
+ if (!git_config_get_string_const (argv [1 ], & v )) {
142
144
printf ("%s\n" , v );
143
145
} else {
144
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
146
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
145
147
ret = TC_VALUE_NOT_FOUND ;
146
148
}
147
- } else if (argc >= 3 && !strcmp (argv [1 ], "configset_get_value" )) {
148
- for (i = 3 ; i < argc ; i ++ ) {
149
+ } else if (argc >= 2 && !strcmp (argv [0 ], "configset_get_value" )) {
150
+ for (i = 2 ; i < argc ; i ++ ) {
149
151
int err ;
150
152
if ((err = git_configset_add_file (& cs , argv [i ]))) {
151
153
fprintf (stderr , "Error (%d) reading configuration file %s.\n" , err , argv [i ]);
152
154
ret = TC_CONFIG_FILE_ERROR ;
153
155
goto out ;
154
156
}
155
157
}
156
- if (!git_configset_get_value (& cs , argv [2 ], & v )) {
158
+ if (!git_configset_get_value (& cs , argv [1 ], & v )) {
157
159
if (!v )
158
160
printf ("(NULL)\n" );
159
161
else
160
162
printf ("%s\n" , v );
161
163
} else {
162
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
164
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
163
165
ret = TC_VALUE_NOT_FOUND ;
164
166
}
165
- } else if (argc >= 3 && !strcmp (argv [1 ], "configset_get_value_multi" )) {
166
- for (i = 3 ; i < argc ; i ++ ) {
167
+ } else if (argc >= 2 && !strcmp (argv [0 ], "configset_get_value_multi" )) {
168
+ for (i = 2 ; i < argc ; i ++ ) {
167
169
int err ;
168
170
if ((err = git_configset_add_file (& cs , argv [i ]))) {
169
171
fprintf (stderr , "Error (%d) reading configuration file %s.\n" , err , argv [i ]);
170
172
ret = TC_CONFIG_FILE_ERROR ;
171
173
goto out ;
172
174
}
173
175
}
174
- strptr = git_configset_get_value_multi (& cs , argv [2 ]);
176
+ strptr = git_configset_get_value_multi (& cs , argv [1 ]);
175
177
if (strptr ) {
176
178
for (i = 0 ; i < strptr -> nr ; i ++ ) {
177
179
v = strptr -> items [i ].string ;
@@ -181,10 +183,10 @@ int cmd__config(int argc, const char **argv)
181
183
printf ("%s\n" , v );
182
184
}
183
185
} else {
184
- printf ("Value not found for \"%s\"\n" , argv [2 ]);
186
+ printf ("Value not found for \"%s\"\n" , argv [1 ]);
185
187
ret = TC_VALUE_NOT_FOUND ;
186
188
}
187
- } else if (!strcmp (argv [1 ], "iterate" )) {
189
+ } else if (!strcmp (argv [0 ], "iterate" )) {
188
190
git_config (iterate_cb , NULL );
189
191
} else {
190
192
print_usage_error :
0 commit comments