X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/bafab423f20bc1448b293842c235965e1681f07e..445f6ae8e3ef19b6ca70e741e934778bc4a05555:/ui-diff.c diff --git a/ui-diff.c b/ui-diff.c index 7de7802..838db8c 100644 --- a/ui-diff.c +++ b/ui-diff.c @@ -7,6 +7,7 @@ */ #include "cgit.h" +#include "ui-diff.h" #include "html.h" #include "ui-shared.h" #include "ui-ssdiff.h" @@ -357,7 +358,7 @@ void cgit_print_diff_ctrls() } void cgit_print_diff(const char *new_rev, const char *old_rev, - const char *prefix, int show_ctrls) + const char *prefix, int show_ctrls, int raw) { enum object_type type; unsigned long size; @@ -368,12 +369,12 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, get_sha1(new_rev, new_rev_sha1); type = sha1_object_info(new_rev_sha1, &size); if (type == OBJ_BAD) { - cgit_print_error(fmt("Bad object name: %s", new_rev)); + cgit_print_error("Bad object name: %s", new_rev); return; } commit = lookup_commit_reference(new_rev_sha1); if (!commit || parse_commit(commit)) { - cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(new_rev_sha1))); + cgit_print_error("Bad commit: %s", sha1_to_hex(new_rev_sha1)); return; } @@ -387,16 +388,24 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, if (!is_null_sha1(old_rev_sha1)) { type = sha1_object_info(old_rev_sha1, &size); if (type == OBJ_BAD) { - cgit_print_error(fmt("Bad object name: %s", sha1_to_hex(old_rev_sha1))); + cgit_print_error("Bad object name: %s", sha1_to_hex(old_rev_sha1)); return; } commit2 = lookup_commit_reference(old_rev_sha1); if (!commit2 || parse_commit(commit2)) { - cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(old_rev_sha1))); + cgit_print_error("Bad commit: %s", sha1_to_hex(old_rev_sha1)); return; } } + if (raw) { + ctx.page.mimetype = "text/plain"; + cgit_print_http_headers(&ctx); + cgit_diff_tree(old_rev_sha1, new_rev_sha1, filepair_cb_raw, + prefix, 0); + return; + } + use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff; if (show_ctrls)