git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/4] argv_array: add argv_array_copy

From
Stefan Beller <sbeller@google.com>
Date
Aug 6, 2015, 17:35 UTC
Message-ID
<1438882524-21215-4-git-send-email-sbeller@google.com>
In-Reply-To
<1438882524-21215-1-git-send-email-sbeller@google.com>

The copied argv array shall be an identical deep copy except for the internal allocation value.

CC: Jeff King <peff@peff.net>
Signed-off-by: Stefan Beller <sbeller@google.com>
---
 argv-array.c | 13 +++++++++++++
 argv-array.h |  1 +
 2 files changed, 14 insertions(+)
diff --git a/argv-array.c b/argv-array.c
index 256741d..6d9c1dd 100644
--- a/argv-array.c
+++ b/argv-array.c
@@ -68,3 +68,16 @@ void argv_array_clear(struct argv_array *array)
 	}
 	argv_array_init(array);
 }
+
+void argv_array_copy(struct argv_array *src, struct argv_array *dst)
+{
+	int i;
+
+	dst->argv = xmalloc((src->argc + 1) * sizeof(*dst->argv));
+	dst->argc = src->argc;
+	dst->alloc = src->argc;
+	for (i = 0; i < dst->argc ; i++)
+		dst->argv[i] = xstrdup(src->argv[i]);
+	dst->argv[dst->argc] = NULL;
+}
+
diff --git a/argv-array.h b/argv-array.h
index c65e6e8..247627da 100644
--- a/argv-array.h
+++ b/argv-array.h
@@ -19,5 +19,6 @@ LAST_ARG_MUST_BE_NULL
 void argv_array_pushl(struct argv_array *, ...);
 void argv_array_pop(struct argv_array *);
 void argv_array_clear(struct argv_array *);
+void argv_array_copy(struct argv_array *src, struct argv_array *dst);
 
 #endif /* ARGV_ARRAY_H */
-- 
2.5.0.239.g9728e1d.dirty
Previous: Stefan BellerNext: Eric Sunshine
Message 6 of 11 in “parallel fetch for submodules”
  1. 0/4 parallel fetch for submodulesStefan Beller, Aug 6, 2015
  2. 1/4 submodule: implement `module_name` as a builtin helperStefan Beller, Aug 6, 2015
  3. Jens LehmannAug 6, 2015
  4. Jens LehmannAug 6, 2015
  5. 2/4 Add a workdispatcher to get work done in parallelStefan Beller, Aug 6, 2015
  6. 3/4 argv_array: add argv_array_copyStefan Beller, Aug 6, 2015
  7. Eric SunshineAug 6, 2015
  8. Jeff KingAug 6, 2015
  9. 4/4 submodule: add infrastructure to fetch submodules in parallelStefan Beller, Aug 6, 2015
  10. Jens LehmannAug 6, 2015
  11. Stefan BellerAug 6, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.