aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--cgit.css35
-rw-r--r--ui-diff.c15
-rw-r--r--ui-ssdiff.c264
-rw-r--r--ui-ssdiff.h12
5 files changed, 2 insertions, 325 deletions
diff --git a/Makefile b/Makefile
index cb7875e..60d8c58 100644
--- a/Makefile
+++ b/Makefile
@@ -90,7 +90,6 @@ OBJECTS += ui-refs.o
OBJECTS += ui-repolist.o
OBJECTS += ui-shared.o
OBJECTS += ui-snapshot.o
-OBJECTS += ui-ssdiff.o
OBJECTS += ui-stats.o
OBJECTS += ui-summary.o
OBJECTS += ui-tag.o
diff --git a/cgit.css b/cgit.css
index bf58b8a..c47ebc9 100644
--- a/cgit.css
+++ b/cgit.css
@@ -601,38 +601,3 @@ table.hgraph div.bar {
background-color: #eee;
height: 1em;
}
-
-table.ssdiff td.add {
- color: black;
- background: #afa;
-}
-
-table.ssdiff td.add_dark {
- color: black;
- background: #9c9;
-}
-
-table.ssdiff td.del {
- color: black;
- background: #faa;
-}
-
-table.ssdiff td.del_dark {
- color: black;
- background: #c99;
-}
-
-table.ssdiff td.changed {
- color: black;
- background: #ffa;
-}
-
-table.ssdiff td.changed_dark {
- color: black;
- background: #cc9;
-}
-
-table.ssdiff td.hunk {
- color: #black;
- background: #ccf;
-}
diff --git a/ui-diff.c b/ui-diff.c
index 0c6f8d7..2196745 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -9,7 +9,6 @@
#include "cgit.h"
#include "html.h"
#include "ui-shared.h"
-#include "ui-ssdiff.h"
unsigned char old_rev_sha1[20];
unsigned char new_rev_sha1[20];
@@ -33,7 +32,6 @@ static struct fileinfo {
int binary:1;
} *items;
-static int use_ssdiff = 0;
static void print_fileinfo(struct fileinfo *info)
{
@@ -246,8 +244,6 @@ static void header(unsigned char *sha1, char *path1, int mode1,
html_txt(path2);
}
html("</div>");
- if (use_ssdiff)
- cgit_ssdiff_header();
}
static void filepair_cb(struct diff_filepair *pair)
@@ -255,14 +251,9 @@ static void filepair_cb(struct diff_filepair *pair)
unsigned long old_size = 0;
unsigned long new_size = 0;
int binary = 0;
- linediff_fn print_line_fn = print_line;
header(pair->one->sha1, pair->one->path, pair->one->mode,
pair->two->sha1, pair->two->path, pair->two->mode);
- if (use_ssdiff) {
- cgit_ssdiff_header();
- print_line_fn = cgit_ssdiff_line_cb;
- }
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);
@@ -270,13 +261,11 @@ static void filepair_cb(struct diff_filepair *pair)
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_fn))
+ if (cgit_diff_files(pair->one->sha1, pair->two->sha1, &old_size,
+ &new_size, &binary, print_line))
cgit_print_error("Error running diff");
if (binary)
html("Binary files differ");
- if (use_ssdiff)
- cgit_ssdiff_footer();
}
void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefix)
diff --git a/ui-ssdiff.c b/ui-ssdiff.c
deleted file mode 100644
index 3591ab4..0000000
--- a/ui-ssdiff.c
+++ /dev/null
@@ -1,264 +0,0 @@
-#include "cgit.h"
-#include "html.h"
-#include "ui-shared.h"
-
-extern int use_ssdiff;
-
-static int current_old_line, current_new_line;
-
-struct deferred_lines {
- int line_no;
- char *line;
- struct deferred_lines *next;
-};
-
-static struct deferred_lines *deferred_old, *deferred_old_last;
-static struct deferred_lines *deferred_new, *deferred_new_last;
-
-static int line_from_hunk(char *line, char type)
-{
- char *buf1, *buf2;
- int len;
-
- buf1 = strchr(line, type);
- if (buf1 == NULL)
- return 0;
- buf1 += 1;
- buf2 = strchr(buf1, ',');
- if (buf2 == NULL)
- return 0;
- len = buf2 - buf1;
- buf2 = xmalloc(len + 1);
- strncpy(buf2, buf1, len);
- buf2[len] = '\0';
- int res = atoi(buf2);
- free(buf2);
- return res;
-}
-
-static char *replace_tabs(char *line)
-{
- char *prev_buf = line;
- char *cur_buf;
- int linelen = strlen(line);
- int n_tabs = 0;
- int i;
- char *result;
- char *spaces = " ";
-
- if (linelen == 0) {
- result = xmalloc(1);
- result[0] = '\0';
- return result;
- }
-
- for (i = 0; i < linelen; i++)
- if (line[i] == '\t')
- n_tabs += 1;
- result = xmalloc(linelen + n_tabs * 8 + 1);
- result[0] = '\0';
-
- while (1) {
- cur_buf = strchr(prev_buf, '\t');
- if (!cur_buf) {
- strcat(result, prev_buf);
- break;
- } else {
- strcat(result, " ");
- strncat(result, spaces, 8 - (strlen(result) % 8));
- strncat(result, prev_buf, cur_buf - prev_buf);
- }
- prev_buf = cur_buf + 1;
- }
- return result;
-}
-
-static void deferred_old_add(char *line, int line_no)
-{
- struct deferred_lines *item = xmalloc(sizeof(struct deferred_lines));
- item->line = xstrdup(line);
- item->line_no = line_no;
- item->next = NULL;
- if (deferred_old) {
- deferred_old_last->next = item;
- deferred_old_last = item;
- } else {
- deferred_old = deferred_old_last = item;
- }
-}
-
-static void deferred_new_add(char *line, int line_no)
-{
- struct deferred_lines *item = xmalloc(sizeof(struct deferred_lines));
- item->line = xstrdup(line);
- item->line_no = line_no;
- item->next = NULL;
- if (deferred_new) {
- deferred_new_last->next = item;
- deferred_new_last = item;
- } else {
- deferred_new = deferred_new_last = item;
- }
-}
-
-static void print_ssdiff_line(char *class, int old_line_no, char *old_line,
- int new_line_no, char *new_line)
-{
- html("<tr>");
- if (old_line_no > 0)
- htmlf("<td class='%s'>%d </td><td class='%s'>", class,
- old_line_no, class);
- else
- htmlf("<td class='%s_dark'> </td><td class='%s_dark'>", class, class);
-
- if (old_line) {
- old_line = replace_tabs(old_line + 1);
- html_txt(old_line);
- free(old_line);
- }
-
- html(" </td>");
-
- if (new_line_no > 0)
- htmlf("<td class='%s'> %d </td><td class='%s'>", class,
- new_line_no, class);
- else
- htmlf("<td class='%s_dark'> </td><td class='%s_dark'>", class, class);
-
- if (new_line) {
- new_line = replace_tabs(new_line + 1);
- html_txt(new_line);
- free(new_line);
- }
-
- html("</td></tr>");
-}
-
-static void print_deferred_old_lines()
-{
- struct deferred_lines *iter_old, *tmp;
-
- iter_old = deferred_old;
- while (iter_old) {
- print_ssdiff_line("del", iter_old->line_no,
- iter_old->line, -1, NULL);
- tmp = iter_old->next;
- free(iter_old);
- iter_old = tmp;
- }
-}
-
-static void print_deferred_new_lines()
-{
- struct deferred_lines *iter_new, *tmp;
-
- iter_new = deferred_new;
- while (iter_new) {
- print_ssdiff_line("add", -1, NULL, iter_new->line_no,
- iter_new->line);
- tmp = iter_new->next;
- free(iter_new);
- iter_new = tmp;
- }
-}
-
-static void print_deferred_changed_lines()
-{
- struct deferred_lines *iter_old, *iter_new, *tmp;
-
- iter_old = deferred_old;
- iter_new = deferred_new;
- while (iter_old || iter_new) {
- if (iter_old && iter_new)
- print_ssdiff_line("changed", iter_old->line_no,
- iter_old->line,
- iter_new->line_no, iter_new->line);
- else if (iter_old)
- print_ssdiff_line("changed", iter_old->line_no,
- iter_old->line, -1, NULL);
- else if (iter_new)
- print_ssdiff_line("changed", -1, NULL,
- iter_new->line_no, iter_new->line);
-
- if (iter_old) {
- tmp = iter_old->next;
- free(iter_old);
- iter_old = tmp;
- }
-
- if (iter_new) {
- tmp = iter_new->next;
- free(iter_new);
- iter_new = tmp;
- }
- }
-}
-
-void cgit_ssdiff_print_deferred_lines()
-{
- if (!deferred_old && !deferred_new)
- return;
-
- if (deferred_old && !deferred_new)
- print_deferred_old_lines();
- else if (!deferred_old && deferred_new)
- print_deferred_new_lines();
- else
- print_deferred_changed_lines();
-
- deferred_old = deferred_old_last = NULL;
- deferred_new = deferred_new_last = NULL;
-}
-
-/*
- * print a single line returned from xdiff
- */
-void cgit_ssdiff_line_cb(char *line, int len)
-{
- char c = line[len - 1];
-
- line[len - 1] = '\0';
-
- if (line[0] == '@') {
- current_old_line = line_from_hunk(line, '-');
- current_new_line = line_from_hunk(line, '+');
- }
-
- if (line[0] == ' ') {
- if (deferred_old || deferred_new)
- cgit_ssdiff_print_deferred_lines();
- print_ssdiff_line("ctx", current_old_line, line,
- current_new_line, line);
- current_old_line += 1;
- current_new_line += 1;
- } else if (line[0] == '+') {
- deferred_new_add(line, current_new_line);
- current_new_line += 1;
- } else if (line[0] == '-') {
- deferred_old_add(line, current_old_line);
- current_old_line += 1;
- } else if (line[0] == '@') {
- html("<tr><td colspan='4' class='hunk'>");
- html_txt(line);
- html("</td></tr>");
- } else {
- html("<tr><td colspan='4' class='ctx'>");
- html_txt(line);
- html("</td></tr>");
- }
- line[len - 1] = c;
-}
-
-void cgit_ssdiff_header()
-{
- current_old_line = 0;
- current_new_line = 0;
- html("<table class='ssdiff'>");
-}
-
-void cgit_ssdiff_footer()
-{
- if (deferred_old || deferred_new)
- cgit_ssdiff_print_deferred_lines();
- html("</table>");
-}
diff --git a/ui-ssdiff.h b/ui-ssdiff.h
deleted file mode 100644
index a0b1efe..0000000
--- a/ui-ssdiff.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef UI_SSDIFF_H
-#define UI_SSDIFF_H
-
-extern void cgit_ssdiff_print_deferred_lines();
-
-extern void cgit_ssdiff_line_cb(char *line, int len);
-
-extern void cgit_ssdiff_header();
-
-extern void cgit_ssdiff_footer();
-
-#endif /* UI_SSDIFF_H */