summaryrefslogtreecommitdiff
path: root/builtin/cat-file.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-10-23 20:21:30 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-10-23 20:21:31 (GMT)
commit4197361e39a304df30cc492122dbdfe90ae8af0e (patch)
treee64abbced7f07dab484262d7c0dab12af1abe2d0 /builtin/cat-file.c
parenteeb8e8373f68b706f5fc8a00760c3dedf239db70 (diff)
parentafa15f3cd8f4cbf9572138329be374ff8566b10a (diff)
downloadgit-4197361e39a304df30cc492122dbdfe90ae8af0e.zip
git-4197361e39a304df30cc492122dbdfe90ae8af0e.tar.gz
git-4197361e39a304df30cc492122dbdfe90ae8af0e.tar.bz2
Merge branch 'mg/more-textconv'
Make "git grep" and "git show" pay attention to --textconv when dealing with blob objects. * mg/more-textconv: grep: honor --textconv for the case rev:path grep: allow to use textconv filters t7008: demonstrate behavior of grep with textconv cat-file: do not die on --textconv without textconv filters show: honor --textconv for blobs diff_opt: track whether flags have been set explicitly t4030: demonstrate behavior of show with textconv
Diffstat (limited to 'builtin/cat-file.c')
-rw-r--r--builtin/cat-file.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 41afaa5..b2ca775 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -45,6 +45,14 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
case 'e':
return !has_sha1_file(sha1);
+ case 'c':
+ if (!obj_context.path[0])
+ die("git cat-file --textconv %s: <object> must be <sha1:path>",
+ obj_name);
+
+ if (textconv_object(obj_context.path, obj_context.mode, sha1, 1, &buf, &size))
+ break;
+
case 'p':
type = sha1_object_info(sha1, NULL);
if (type < 0)
@@ -67,16 +75,6 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
/* otherwise just spit out the data */
break;
- case 'c':
- if (!obj_context.path[0])
- die("git cat-file --textconv %s: <object> must be <sha1:path>",
- obj_name);
-
- if (!textconv_object(obj_context.path, obj_context.mode, sha1, 1, &buf, &size))
- die("git cat-file --textconv: unable to run textconv on %s",
- obj_name);
- break;
-
case 0:
if (type_from_string(exp_type) == OBJ_BLOB) {
unsigned char blob_sha1[20];