diff options
Diffstat (limited to 'ui-tag.h')
0 files changed, 0 insertions, 0 deletions
![]() |
index : cgit | |
Web front-end for git that you're looking at right now. Might have had a few additions from upstream. |
summaryrefslogtreecommitdiffstatshomepage |
/* ui-patch.c: generate patch view
*
* Copyright (C) 2007 Lars Hjemli
*
* Licensed under GNU General Public License v2
* (see COPYING for full license text)
*/
#include "cgit.h"
#include "html.h"
#include "ui-shared.h"
static void print_line(char *line, int len)
{
char c = line[len-1];
line[len-1] = '\0';
htmlf("%s\n", line);
line[len-1] = c;
}
static void header(unsigned char *sha1, char *path1, int mode1,
unsigned char *sha2, char *path2, int mode2)
{
char *abbrev1, *abbrev2;
int subproject;
subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2));
htmlf("diff --git a/%s b/%s\n", path1, path2);
if (is_null_sha1(sha1))
path1 = "dev/null";
if (is_null_sha1(sha2))
path2 = "dev/null";
if (mode1 == 0)
htmlf("new file mode %.6o\n", mode2);
if (mode2 == 0)
htmlf("deleted file mode %.6o\n", mode1);
if (!subproject) {
abbrev1 = xstrdup(find_unique_abbrev(sha1, DEFAULT_ABBREV));
abbrev2 = xstrdup(find_unique_abbrev(sha2, DEFAULT_ABBREV));
htmlf("index %s..%s", abbrev1, abbrev2);
free(abbrev1);
free(abbrev2);
if (mode1 != 0 && mode2 != 0) {
htmlf(" %.6o", mode1);
if (mode2 != mode1)
htmlf("..%.6o", mode2);
}
htmlf("\n--- a/%s\n", path1);
htmlf("+++ b/%s\n", path2);
}
}
static void filepair_cb(struct diff_filepair *pair)
{
unsigned long old_size = 0;
unsigned long new_size = 0;
int binary = 0;
header(pair->one->sha1, pair->one->path, pair->one->mode,
pair->two->sha1, pair->two->path, pair->two->mode);
if (S_ISGITLINK(pair->one->mode) || S_ISGITLINK(pair->two->mode)) {
if (S_ISGITLINK(pair->one->mode))
print_line(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52);
if (S_ISGITLINK(pair->two->mode))
print_line(fmt("+Subproject %s", sha1_to_hex(pair->two->sha1)), 52);
return;
}
if (cgit_diff_files(pair->one->sha1, pair->two->sha1, &old_size,
&new_size, &binary, print_line))
html("Error running diff");
if (binary)
html("Binary files differ\n");
}
void cgit_print_patch(char *hex, const char *prefix)
{
struct commit *commit;
struct commitinfo *info;
unsigned char sha1[20], old_sha1[20];
char *patchname;
if (!hex)
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */div#cgit {
padding: 0em;
margin: 0em;
font-family: sans-serif;
font-size: 10pt;
color: #333;
background: white;
padding: 4px;
}
div#cgit a {
color: blue;
text-decoration: none;
}
div#cgit a:hover {
text-decoration: underline;
}
div#cgit table {
border-collapse: collapse;
}
div#cgit table#header {
width: 100%;
margin-bottom: 1em;
}
div#cgit table#header td.logo {
width: 96px;
vertical-align: top;
}
div#cgit table#header td.main {
font-size: 250%;
padding-left: 10px;
white-space: nowrap;
}
div#cgit table#header td.main a {
color: #000;
}
div#cgit table#header td.form {
text-align: right;
vertical-align: bottom;
padding-right: 1em;
padding-bottom: 2px;
white-space: nowrap;
}
div#cgit table#header td.form form,
div#cgit table#header td.form input,
div#cgit table#header td.form select {
font-size: 90%;
}
div#cgit table#header td.sub {
color: #777;
border-top: solid 1px #ccc;
padding-left: 10px;
}
div#cgit table.tabs {
border-bottom: solid 3px #ccc;
border-collapse: collapse;
margin-top: 2em;
margin-bottom: 0px;
width: 100%;
}
div#cgit table.tabs td {
padding: 0px 1em;
vertical-align: bottom;
}
div#cgit table.tabs td a {
padding: 2px 0.75em;
color: #777;
font-size: 110%;
}
div#cgit table.tabs td a.active {
color: #000;
background-color: #ccc;
}
div#cgit table.tabs td.form {
text-align: right;
}
div#cgit table.tabs td.form form {
padding-bottom: 2px;
font-size: 90%;
white-space: nowrap;
}
div#cgit table.tabs td.form input,
div#cgit table.tabs td.form select {
font-size: 90%;
}
div#cgit div.path {
margin: 0px;
padding: 5px 2em 2px 2em;
color: #000;
background-color: #eee;
}
div#cgit div.content {
margin: 0px;
padding: 2em;
border-bottom: solid 3px #ccc;
}
div#cgit table.list {
width: 100%;
border: none;
border-collapse: collapse;
}
div#cgit table.list tr {
background: white;
}
div#cgit table.list tr.logheader {
background: #eee;
}
div#cgit table.list tr:hover {
background: #eee;
}
div#cgit table.list tr.nohover:hover {
background: white;
}
div#cgit table.list th {
font-weight: bold;
/* color: #888;
border-top: dashed 1px #888;
border-bottom: dashed 1px #888;
*/
padding: 0.1em 0.5em 0.05em 0.5em;
vertical-align: baseline;
}
div#cgit table.list td {
border: none;
padding: 0.1em 0.5em 0.1em 0.5em;
}
div#cgit table.list td.commitgraph {
font-family: monospace;
white-space: pre;
}
div#cgit table.list td.commitgraph .column1 {
color: #a00;
}
div#cgit table.list td.commitgraph .column2 {
color: #0a0;
}
div#cgit table.list td.commitgraph .column3 {
color: #aa0;
}
div#cgit table.list td.commitgraph .column4 {
color: #00a;
}
div#cgit table.list td.commitgraph .column5 {
color: #a0a;
}
div#cgit table.list td.commitgraph .column6 {
color: #0aa;
}
div#cgit table.list td.logsubject {
font-family: monospace;
font-weight: bold;
}
div#cgit table.list td.logmsg {
font-family: monospace;
white-space: pre;
padding: 0 0.5em;
}
div#cgit table.list td a {
color: black;
}
div#cgit table.list td a.ls-dir {
font-weight: bold;
color: #00f;
}
div#cgit table.list td a:hover {
color: #00f;
}
div#cgit img {
border: none;
}
div#cgit input#switch-btn {
margin: 2px 0px 0px 0px;
}
div#cgit td#sidebar input.txt {
width: 100%;
margin: 2px 0px 0px 0px;
}
div#cgit table#grid {
margin: 0px;
}
div#cgit td#content {
vertical-align: top;
padding: 1em 2em 1em 1em;
border: none;
}
div#cgit div#summary {
vertical-align: top;
margin-bottom: 1em;
}
div#cgit table#downloads {
float: right;
border-collapse: collapse;
border: solid 1px #777;
margin-left: 0.5em;
margin-bottom: 0.5em;
}
div#cgit table#downloads th {
background-color: #ccc;
}
div#cgit div#blob {
border: solid 1px black;
}
div#cgit div.error {
color: red;
font-weight: bold;
margin: 1em 2em;
}
div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit a.ls-mod {
font-family: monospace;
}
div#cgit td.ls-size {
text-align: right;
font-family: monospace;
width: 10em;
}
div#cgit td.ls-mode {
font-family: monospace;
width: 10em;
}
div#cgit table.blob {
margin-top: 0.5em;
border-top: solid 1px black;
}
div#cgit table.blob td.lines {
margin: 0; padding: 0 0 0 0.5em;
vertical-align: top;
color: black;
}
div#cgit table.blob td.linenumbers {
margin: 0; padding: 0 0.5em 0 0.5em;
vertical-align: top;
text-align: right;
border-right: 1px solid gray;
}
div#cgit table.blob pre {
padding: 0; margin: 0;
}
div#cgit table.blob a.no, div#cgit table.ssdiff a.no {
color: gray;
text-align: right;
text-decoration: none;
}
div#cgit table.blob a.no a:hover {
color: black;
}
div#cgit table.bin-blob {
margin-top: 0.5em;
border: solid 1px black;
}
div#cgit table.bin-blob th {
font-family: monospace;
white-space: pre;
border: solid 1px #777;
padding: 0.5em 1em;
}
div#cgit table.bin-blob td {
font-family: monospace;
white-space: pre;
border-left: solid 1px #777;
padding: 0em 1em;
}
div#cgit table.nowrap td {
white-space: nowrap;
}
div#cgit table.commit-info {
border-collapse: collapse;
margin-top: 1.5em;
}
div#cgit div.cgit-panel {
float: right;
margin-top: 1.5em;
}
div#cgit div.cgit-panel table {
border-collapse: collapse;
border: solid 1px #aaa;
background-color: #eee;
}
div#cgit div.cgit-panel th {
text-align: center;
}
div#cgit div.cgit-panel td {
padding: 0.25em 0.5em;
}
div#cgit div.cgit-panel td.label {
padding-right: 0.5em;
}
div#cgit div.cgit-panel td.ctrl {
padding-left: 0.5em;
}
div#cgit table.commit-info th {
text-align: left;
font-weight: normal;
padding: 0.1em 1em 0.1em 0.1em;
vertical-align: top;
}
div#cgit table.commit-info td {
font-weight: normal;
padding: 0.1em 1em 0.1em 0.1em;
}
div#cgit div.commit-subject {
font-weight: bold;
font-size: 125%;
margin: 1.5em 0em 0.5em 0em;
padding: 0em;
}
div#cgit div.commit-msg {
white-space: pre;
font-family: monospace;
}
div#cgit div.notes-header {
font-weight: bold;
padding-top: 1.5em;
}
div#cgit div.notes {
white-space: pre;
font-family: monospace;
border: solid 1px #ee9;
background-color: #ffd;
padding: 0.3em 2em 0.3em 1em;
float: left;
}
div#cgit div.notes-footer {
clear: left;
}
div#cgit div.diffstat-header {
font-weight: bold;
padding-top: 1.5em;
}
div#cgit table.diffstat {
border-collapse: collapse;
border: solid 1px #aaa;
background-color: #eee;
}
div#cgit table.diffstat th {
font-weight: normal;
text-align: left;
text-decoration: underline;
padding: 0.1em 1em 0.1em 0.1em;
font-size: 100%;
}
div#cgit table.diffstat td {
padding: 0.2em 0.2em 0.1em 0.1em;
font-size: 100%;
border: none;
}
div#cgit table.diffstat td.mode {
white-space: nowrap;
}
div#cgit table.diffstat td span.modechange {
padding-left: 1em;
color: red;
}
div#cgit table.diffstat td.add a {
color: green;
}
div#cgit table.diffstat td.del a {
color: red;
}
div#cgit table.diffstat td.upd a {
color: blue;
}
div#cgit table.diffstat td.graph {
width: 500px;
vertical-align: middle;
}
div#cgit table.diffstat td.graph table {
border: none;
}
div#cgit table.diffstat td.graph td {
padding: 0px;
border: 0px;
height: 7pt;
}
div#cgit table.diffstat td.graph td.add {
background-color: #5c5;
}
div#cgit table.diffstat td.graph td.rem {
background-color: #c55;
}
div#cgit div.diffstat-summary {
color: #888;
padding-top: 0.5em;
}
div#cgit table.diff {
width: 100%;
}
div#cgit table.diff td {
font-family: monospace;
white-space: pre;
}
div#cgit table.diff td div.head {
font-weight: bold;
margin-top: 1em;
color: black;
}
div#cgit table.diff td div.hunk {
color: #009;
}
div#cgit table.diff td div.add {
color: green;
}
div#cgit table.diff td div.del {
color: red;
}
div#cgit .sha1 {
font-family: monospace;
font-size: 90%;
}
div#cgit .left {
text-align: left;
}
div#cgit .right {
text-align: right;
}
div#cgit table.list td.reposection {
font-style: italic;
color: #888;
}
div#cgit a.button {
font-size: 80%;
padding: 0em 0.5em;
}
div#cgit a.primary {
font-size: 100%;
}
div#cgit a.secondary {
font-size: 90%;
}
div#cgit td.toplevel-repo {
}
div#cgit table.list td.sublevel-repo {
padding-left: 1.5em;
}
div#cgit div.pager {
text-align: center;
margin: 1em 0em 0em 0em;
}
div#cgit div.pager a {
color: #777;
margin: 0em 0.5em;
}
div#cgit div.pager .current {
font-weight: bold;
}
div#cgit span.age-mins {
font-weight: bold;
color: #080;
}
div#cgit span.age-hours {
color: #080;
}
div#cgit span.age-days {
color: #040;
}
div#cgit span.age-weeks {
color: #444;
}
div#cgit span.age-months {
color: #888;
}
div#cgit span.age-years {
color: #bbb;
}
div#cgit div.footer {
margin-top: 0.5em;
text-align: center;
font-size: 80%;
color: #ccc;
}
div#cgit a.branch-deco {
color: #000;
margin: 0px 0.5em;
padding: 0px 0.25em;
background-color: #88ff88;
border: solid 1px #007700;
}
div#cgit a.tag-deco {
color: #000;
margin: 0px 0.5em;
padding: 0px 0.25em;
background-color: #ffff88;
border: solid 1px #777700;
}
div#cgit a.remote-deco {
color: #000;
margin: 0px 0.5em;
padding: 0px 0.25em;
background-color: #ccccff;
border: solid 1px #000077;
}
div#cgit a.deco {
color: #000;
margin: 0px 0.5em;
padding: 0px 0.25em;
background-color: #ff8888;
border: solid 1px #770000;
}
div#cgit div.commit-subject a.branch-deco,
div#cgit div.commit-subject a.tag-deco,
div#cgit div.commit-subject a.remote-deco,
div#cgit div.commit-subject a.deco {
margin-left: 1em;
font-size: 75%;
}
div#cgit table.stats {
border: solid 1px black;
border-collapse: collapse;
}
div#cgit table.stats th {
text-align: left;
padding: 1px 0.5em;
background-color: #eee;
border: solid 1px black;
}
div#cgit table.stats td {
text-align: right;
padding: 1px 0.5em;
border: solid 1px black;
}
div#cgit table.stats td.total {
font-weight: bold;
text-align: left;
}
div#cgit table.stats td.sum {
color: #c00;
font-weight: bold;
/* background-color: #eee; */
}
div#cgit table.stats td.left {
text-align: left;
}
div#cgit table.vgraph {
border-collapse: separate;
border: solid 1px black;
height: 200px;
}
div#cgit table.vgraph th {
background-color: #eee;
font-weight: bold;
border: solid 1px white;
padding: 1px 0.5em;
}
div#cgit table.vgraph td {
vertical-align: bottom;
padding: 0px 10px;
}
div#cgit table.vgraph div.bar {
background-color: #eee;
}
div#cgit table.hgraph {
border: solid 1px black;
width: 800px;
}
div#cgit table.hgraph th {
background-color: #eee;
font-weight: bold;
border: solid 1px black;
padding: 1px 0.5em;
}
div#cgit table.hgraph td {
vertical-align: middle;
padding: 2px 2px;
}
div#cgit table.hgraph div.bar {
background-color: #eee;
height: 1em;
}
div#cgit table.ssdiff {
width: 100%;
}
div#cgit table.ssdiff td {
font-size: 75%;
font-family: monospace;
white-space: pre;
padding: 1px 4px 1px 4px;
border-left: solid 1px #aaa;
border-right: solid 1px #aaa;
}
div#cgit table.ssdiff td.add {
color: black;
background: #cfc;
min-width: 50%;
}
div#cgit table.ssdiff td.add_dark {
color: black;
background: #aca;
min-width: 50%;
}
div#cgit table.ssdiff span.add {
background: #cfc;
font-weight: bold;
}
div#cgit table.ssdiff td.del {
color: black;
background: #fcc;
min-width: 50%;
}
div#cgit table.ssdiff td.del_dark {
color: black;
background: #caa;
min-width: 50%;
}
div#cgit table.ssdiff span.del {
background: #fcc;
font-weight: bold;
}
div#cgit table.ssdiff td.changed {
color: black;
background: #ffc;
min-width: 50%;
}
div#cgit table.ssdiff td.changed_dark {
color: black;
background: #cca;
min-width: 50%;
}
div#cgit table.ssdiff td.lineno {
color: black;
background: #eee;
text-align: right;
width: 3em;
min-width: 3em;
}
div#cgit table.ssdiff td.hunk {
color: black;
background: #ccf;
border-top: solid 1px #aaa;
border-bottom: solid 1px #aaa;
}
div#cgit table.ssdiff td.head {
border-top: solid 1px #aaa;
border-bottom: solid 1px #aaa;
}
div#cgit table.ssdiff td.head div.head {
font-weight: bold;
color: black;
}
div#cgit table.ssdiff td.foot {
border-top: solid 1px #aaa;
border-left: none;
border-right: none;
border-bottom: none;
}
div#cgit table.ssdiff td.space {
border: none;
}
div#cgit table.ssdiff td.space div {
min-height: 3em;
}
/* Syntax highlighting */
div#cgit table.blob .num { color:#2928ff; }
div#cgit table.blob .esc { color:#ff00ff; }
div#cgit table.blob .str { color:#ff0000; }
div#cgit table.blob .dstr { color:#818100; }
div#cgit table.blob .slc { color:#838183; font-style:italic; }
div#cgit table.blob .com { color:#838183; font-style:italic; }
div#cgit table.blob .dir { color:#008200; }
div#cgit table.blob .sym { color:#000000; }
div#cgit table.blob .kwa { color:#000000; font-weight:bold; }
div#cgit table.blob .kwb { color:#830000; }
div#cgit table.blob .kwc { color:#000000; font-weight:bold; }
div#cgit table.blob .kwd { color:#010181; }