summaryrefslogtreecommitdiffabout
path: root/ui-blob.c
Unidiff
Diffstat (limited to 'ui-blob.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-blob.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ui-blob.c b/ui-blob.c
index 667a451..ec435e1 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -31,49 +31,49 @@ int cgit_print_file(char *path, const char *head)
31 enum object_type type; 31 enum object_type type;
32 char *buf; 32 char *buf;
33 unsigned long size; 33 unsigned long size;
34 struct commit *commit; 34 struct commit *commit;
35 const char *paths[] = {path, NULL}; 35 const char *paths[] = {path, NULL};
36 if (get_sha1(head, sha1)) 36 if (get_sha1(head, sha1))
37 return -1; 37 return -1;
38 type = sha1_object_info(sha1, &size); 38 type = sha1_object_info(sha1, &size);
39 if(type == OBJ_COMMIT && path) { 39 if(type == OBJ_COMMIT && path) {
40 commit = lookup_commit_reference(sha1); 40 commit = lookup_commit_reference(sha1);
41 match_path = path; 41 match_path = path;
42 matched_sha1 = sha1; 42 matched_sha1 = sha1;
43 found_path = 0; 43 found_path = 0;
44 read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); 44 read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL);
45 if (!found_path) 45 if (!found_path)
46 return -1; 46 return -1;
47 type = sha1_object_info(sha1, &size); 47 type = sha1_object_info(sha1, &size);
48 } 48 }
49 if (type == OBJ_BAD) 49 if (type == OBJ_BAD)
50 return -1; 50 return -1;
51 buf = read_sha1_file(sha1, &type, &size); 51 buf = read_sha1_file(sha1, &type, &size);
52 if (!buf) 52 if (!buf)
53 return -1; 53 return -1;
54 buf[size] = '\0'; 54 buf[size] = '\0';
55 write(htmlfd, buf, size); 55 html_raw(buf, size);
56 return 0; 56 return 0;
57} 57}
58 58
59void cgit_print_blob(const char *hex, char *path, const char *head) 59void cgit_print_blob(const char *hex, char *path, const char *head)
60{ 60{
61 unsigned char sha1[20]; 61 unsigned char sha1[20];
62 enum object_type type; 62 enum object_type type;
63 char *buf; 63 char *buf;
64 unsigned long size; 64 unsigned long size;
65 struct commit *commit; 65 struct commit *commit;
66 const char *paths[] = {path, NULL}; 66 const char *paths[] = {path, NULL};
67 67
68 if (hex) { 68 if (hex) {
69 if (get_sha1_hex(hex, sha1)){ 69 if (get_sha1_hex(hex, sha1)){
70 cgit_print_error(fmt("Bad hex value: %s", hex)); 70 cgit_print_error(fmt("Bad hex value: %s", hex));
71 return; 71 return;
72 } 72 }
73 } else { 73 } else {
74 if (get_sha1(head,sha1)) { 74 if (get_sha1(head,sha1)) {
75 cgit_print_error(fmt("Bad ref: %s", head)); 75 cgit_print_error(fmt("Bad ref: %s", head));
76 return; 76 return;
77 } 77 }
78 } 78 }
79 79
@@ -87,26 +87,26 @@ void cgit_print_blob(const char *hex, char *path, const char *head)
87 type = sha1_object_info(sha1,&size); 87 type = sha1_object_info(sha1,&size);
88 } 88 }
89 89
90 if (type == OBJ_BAD) { 90 if (type == OBJ_BAD) {
91 cgit_print_error(fmt("Bad object name: %s", hex)); 91 cgit_print_error(fmt("Bad object name: %s", hex));
92 return; 92 return;
93 } 93 }
94 94
95 buf = read_sha1_file(sha1, &type, &size); 95 buf = read_sha1_file(sha1, &type, &size);
96 if (!buf) { 96 if (!buf) {
97 cgit_print_error(fmt("Error reading object %s", hex)); 97 cgit_print_error(fmt("Error reading object %s", hex));
98 return; 98 return;
99 } 99 }
100 100
101 buf[size] = '\0'; 101 buf[size] = '\0';
102 ctx.page.mimetype = ctx.qry.mimetype; 102 ctx.page.mimetype = ctx.qry.mimetype;
103 if (!ctx.page.mimetype) { 103 if (!ctx.page.mimetype) {
104 if (buffer_is_binary(buf, size)) 104 if (buffer_is_binary(buf, size))
105 ctx.page.mimetype = "application/octet-stream"; 105 ctx.page.mimetype = "application/octet-stream";
106 else 106 else
107 ctx.page.mimetype = "text/plain"; 107 ctx.page.mimetype = "text/plain";
108 } 108 }
109 ctx.page.filename = path; 109 ctx.page.filename = path;
110 cgit_print_http_headers(&ctx); 110 cgit_print_http_headers(&ctx);
111 write(htmlfd, buf, size); 111 html_raw(buf, size);
112} 112}