Code

fixup: do not unconditionally disable "diff -u"
[git.git] / convert.c
index e70ee094a76d850cd655338d406a7c4efc37c7d5..3fea3e95091b5c49a7b38db381524f50436d11cf 100644 (file)
--- a/convert.c
+++ b/convert.c
@@ -249,10 +249,13 @@ static int filter_buffer(int in, int out, void *data)
        struct child_process child_process;
        struct filter_params *params = (struct filter_params *)data;
        int write_err, status;
-       const char *argv[] = { "sh", "-c", params->cmd, NULL };
+       const char *argv[] = { NULL, NULL };
+
+       argv[0] = params->cmd;
 
        memset(&child_process, 0, sizeof(child_process));
        child_process.argv = argv;
+       child_process.use_shell = 1;
        child_process.in = -1;
        child_process.out = out;
 
@@ -378,9 +381,9 @@ static void setup_convert_check(struct git_attr_check *check)
        static struct git_attr *attr_filter;
 
        if (!attr_crlf) {
-               attr_crlf = git_attr("crlf", 4);
-               attr_ident = git_attr("ident", 5);
-               attr_filter = git_attr("filter", 6);
+               attr_crlf = git_attr("crlf");
+               attr_ident = git_attr("ident");
+               attr_filter = git_attr("filter");
                user_convert_tail = &user_convert;
                git_config(read_convert_config, NULL);
        }