summaryrefslogtreecommitdiff
path: root/convert.c
diff options
context:
space:
mode:
authorLars Schneider <larsxschneider@gmail.com>2016-01-29 08:21:37 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-01-29 19:04:27 (GMT)
commit1a8630dc3b1cc6f1361a4e5d94630133c24c97d9 (patch)
tree20f6d464fc2c5dc3144f95ceab54684377bd5469 /convert.c
parent1b0b6dd0720572dcf90c264aeb91f96a017b0f25 (diff)
downloadgit-1a8630dc3b1cc6f1361a4e5d94630133c24c97d9.zip
git-1a8630dc3b1cc6f1361a4e5d94630133c24c97d9.tar.gz
git-1a8630dc3b1cc6f1361a4e5d94630133c24c97d9.tar.bz2
convert: treat an empty string for clean/smudge filters as "cat"
Once a lower-priority configuration file defines a clean or smudge filter, there is no convenient way to override it to produce as-is output. Even though the configuration mechanism implements "the last one wins" semantics, you cannot set them to an empty string and expect them to work, as apply_filter() would try to run the empty string as an external command and fail. The conversion is not done, but the function would still report a failure to convert. Even though resetting the variable to "cat" (i.e. pass the data back as-is and report success) is an obvious and a viable way to solve this, it is wasteful to spawn an external process just as a workaround. Instead, teach apply_filter() to treat an empty string as a no-op filter that always returns successfully its input as-is without conversion. Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'convert.c')
-rw-r--r--convert.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/convert.c b/convert.c
index 814e814..02d5f1e 100644
--- a/convert.c
+++ b/convert.c
@@ -395,7 +395,7 @@ static int apply_filter(const char *path, const char *src, size_t len, int fd,
struct async async;
struct filter_params params;
- if (!cmd)
+ if (!cmd || !*cmd)
return 0;
if (!dst)