Skip to content

Commit 3cf23e2

Browse files
committed
Use array args in git_lfs()
1 parent a4d5817 commit 3cf23e2

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed

src/builder-git.c

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -153,29 +153,23 @@ git_lfs (GFile *dir,
153153
char **output,
154154
GSubprocessFlags flags,
155155
GError **error,
156-
...)
156+
const char **args)
157157
{
158-
GPtrArray *args;
159-
const gchar *arg;
158+
GPtrArray *full_args;
160159
gboolean res;
161-
va_list ap;
162-
163-
va_start (ap, error);
164-
165-
args = g_ptr_array_new ();
166-
g_ptr_array_add (args, "git");
167-
g_ptr_array_add (args, "lfs");
168160

169-
while ((arg = va_arg (ap, const gchar *)))
170-
g_ptr_array_add (args, (gchar *) arg);
161+
full_args = g_ptr_array_new ();
162+
g_ptr_array_add (full_args, "git");
163+
g_ptr_array_add (full_args, "lfs");
171164

172-
g_ptr_array_add (args, NULL);
165+
for (const char **arg = args; *arg; arg++)
166+
g_ptr_array_add (full_args, (char *) *arg);
173167

174-
res = flatpak_spawnv (dir, output, flags, error, (const char **) args->pdata, NULL);
168+
g_ptr_array_add (full_args, NULL);
175169

176-
g_ptr_array_free (args, TRUE);
177-
va_end (ap);
170+
res = flatpak_spawnv (dir, output, flags, error, (const char **) full_args->pdata, NULL);
178171

172+
g_ptr_array_free (full_args, TRUE);
179173
return res;
180174
}
181175

@@ -189,7 +183,7 @@ git_lfs_is_available (void)
189183
g_autoptr(GError) my_error = NULL;
190184
gsize new_lfs_available = 2;
191185

192-
if (git_lfs (NULL, NULL, 0, &my_error, "version", NULL))
186+
if (git_lfs (NULL, NULL, 0, &my_error, (const char *[]){"version", NULL}))
193187
new_lfs_available = 1;
194188
else
195189
g_debug ("git-lfs is not available: %s", my_error->message);
@@ -207,7 +201,9 @@ builder_git_run_lfs (GFile *dir,
207201
const char *subcommand,
208202
...)
209203
{
210-
va_list args;
204+
va_list ap;
205+
GPtrArray *args;
206+
const char *arg;
211207
gboolean ok;
212208

213209
if (flags & FLATPAK_GIT_MIRROR_FLAGS_DISABLE_LFS)
@@ -216,13 +212,24 @@ builder_git_run_lfs (GFile *dir,
216212
if (!git_lfs_is_available ())
217213
return TRUE;
218214

219-
va_start (args, subcommand);
220-
ok = git_lfs (dir, NULL, 0, error, subcommand, args);
221-
va_end (args);
215+
args = g_ptr_array_new ();
216+
g_ptr_array_add (args, (char *) subcommand);
217+
218+
va_start (ap, subcommand);
219+
while ((arg = va_arg (ap, const char *)))
220+
g_ptr_array_add (args, (char *) arg);
221+
va_end (ap);
222+
223+
g_ptr_array_add (args, NULL);
224+
225+
g_print ("Running git lfs %s\n", subcommand);
226+
ok = git_lfs (dir, NULL, 0, error, (const char **) args->pdata);
227+
228+
g_ptr_array_free (args, TRUE);
222229

223230
if (!ok)
224231
{
225-
git_lfs (dir, NULL, 0, NULL, "logs", "last", NULL);
232+
git_lfs (dir, NULL, 0, NULL, (const char *[]){"logs", "last", NULL});
226233
return FALSE;
227234
}
228235

@@ -659,7 +666,6 @@ builder_git_mirror_repo (const char *repo_location,
659666
origin, full_ref_mapping, NULL))
660667
return FALSE;
661668

662-
g_print ("Fetching LFS assets\n");
663669
if (!builder_git_run_lfs (mirror_dir, flags, error,
664670
"fetch", "--all", NULL))
665671
return FALSE;
@@ -693,7 +699,6 @@ builder_git_mirror_repo (const char *repo_location,
693699
NULL))
694700
return FALSE;
695701

696-
g_print ("Fetching LFS assets\n");
697702
if (!builder_git_run_lfs (mirror_dir, flags, error,
698703
"fetch", "--all", NULL))
699704
return FALSE;

0 commit comments

Comments
 (0)