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"