]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-diff.c
Merge branch 'stable'
[ps-cgit] / ui-diff.c
index b7767b3c07a23ea06e3aa3aab103fe3bf765cfe4..c6bad6374b0f1074b6cd7d86ea37c9c857365754 100644 (file)
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -97,10 +97,12 @@ static void print_fileinfo(struct fileinfo *info)
        htmlf("</td><td class='%s'>", class);
        cgit_diff_link(info->new_path, NULL, NULL, ctx.qry.head, ctx.qry.sha1,
                       ctx.qry.sha2, info->new_path, 0);
-       if (info->status == DIFF_STATUS_COPIED || info->status == DIFF_STATUS_RENAMED)
-               htmlf(" (%s from %s)",
-                     info->status == DIFF_STATUS_COPIED ? "copied" : "renamed",
-                     info->old_path);
+       if (info->status == DIFF_STATUS_COPIED || info->status == DIFF_STATUS_RENAMED) {
+               htmlf(" (%s from ",
+                     info->status == DIFF_STATUS_COPIED ? "copied" : "renamed");
+               html_txt(info->old_path);
+               html(")");
+       }
        html("</td><td class='right'>");
        if (info->binary) {
                htmlf("bin</td><td class='graph'>%ld -> %ld bytes",
@@ -339,9 +341,7 @@ void cgit_print_diff_ctrls()
        html("<td class='label'>mode:</td>");
        html("<td class='ctrl'>");
        html("<select name='ss' onchange='this.form.submit();'>");
-       curr = ctx.qry.ssdiff;
-       if (!curr && ctx.cfg.ssdiff)
-               curr = 1;
+       curr = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
        html_intoption(0, "unified", curr);
        html_intoption(1, "ssdiff", curr);
        html("</select></td></tr>");
@@ -368,8 +368,10 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
                return;
        }
        commit = lookup_commit_reference(new_rev_sha1);
-       if (!commit || parse_commit(commit))
+       if (!commit || parse_commit(commit)) {
                cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(new_rev_sha1)));
+               return;
+       }
 
        if (old_rev)
                get_sha1(old_rev, old_rev_sha1);
@@ -385,12 +387,13 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
                        return;
                }
                commit2 = lookup_commit_reference(old_rev_sha1);
-               if (!commit2 || parse_commit(commit2))
+               if (!commit2 || parse_commit(commit2)) {
                        cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(old_rev_sha1)));
+                       return;
+               }
        }
 
-       if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff))
-               use_ssdiff = 1;
+       use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
 
        if (show_ctrls)
                cgit_print_diff_ctrls();