@matheusbsbs / matheus-bagliano / commits / ced621b2c1
Fork 0

merge-recursive: use strbuf_expand() instead of interpolate()

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>

René Scharfe committed Nov 23, 2008 at 00:13 UTC ced621b2c15c3d3dd65dd1d7eec984f8546a4673
2 files changed +9 -13
ll-merge.c
+9 -12
@@ -8,7 +8,6 @@
8 #include "attr.h"
9 #include "xdiff-interface.h"
10 #include "run-command.h"
11 -#include "interpolate.h"
11 #include "ll-merge.h"
12
13 struct ll_merge_driver;
@@ -169,11 +168,12 @@ static int ll_ext_merge(const struct ll_merge_driver *fn,
168 int virtual_ancestor)
169 {
170 char temp[3][50];
172 - char cmdbuf[2048];
173 - struct interp table[] = {
174 - { "%O" },
175 - { "%A" },
176 - { "%B" },
171 + struct strbuf cmd = STRBUF_INIT;
172 + struct strbuf_expand_dict_entry dict[] = {
173 + { "O", temp[0] },
174 + { "A", temp[1] },
175 + { "B", temp[2] },
176 + { NULL }
177 };
178 struct child_process child;
179 const char *args[20];
@@ -189,17 +189,13 @@ static int ll_ext_merge(const struct ll_merge_driver *fn,
189 create_temp(src1, temp[1]);
190 create_temp(src2, temp[2]);
191
192 - interp_set_entry(table, 0, temp[0]);
193 - interp_set_entry(table, 1, temp[1]);
194 - interp_set_entry(table, 2, temp[2]);
195 -
196 - interpolate(cmdbuf, sizeof(cmdbuf), fn->cmdline, table, 3);
192 + strbuf_expand(&cmd, fn->cmdline, strbuf_expand_dict_cb, &dict);
193
194 memset(&child, 0, sizeof(child));
195 child.argv = args;
196 args[0] = "sh";
197 args[1] = "-c";
202 - args[2] = cmdbuf;
198 + args[2] = cmd.buf;
199 args[3] = NULL;
200
201 status = run_command(&child);
@@ -224,6 +220,7 @@ static int ll_ext_merge(const struct ll_merge_driver *fn,
220 bad:
221 for (i = 0; i < 3; i++)
222 unlink(temp[i]);
223 + strbuf_release(&cmd);
224 return status;
225 }
226
merge-recursive.c
-1
@@ -16,7 +16,6 @@
16 #include "string-list.h"
17 #include "xdiff-interface.h"
18 #include "ll-merge.h"
19 -#include "interpolate.h"
19 #include "attr.h"
20 #include "merge-recursive.h"
21 #include "dir.h"