| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | cgit.c | 2 | ||||
| -rw-r--r-- | cgit.css | 25 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | shared.c | 4 | ||||
| -rw-r--r-- | ui-diff.c | 131 | ||||
| -rw-r--r-- | xdiff.h | 105 |
7 files changed, 1 insertions, 270 deletions
@@ -6,7 +6,7 @@ CACHE_ROOT = /var/cache/cgit EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \ - ui-summary.o ui-log.o ui-view.c ui-tree.c ui-commit.c ui-diff.o + ui-summary.o ui-log.o ui-view.c ui-tree.c ui-commit.c CFLAGS += -Wall @@ -36,8 +36,6 @@ static void cgit_print_repo_page(struct cacheitem *item) cgit_print_commit(cgit_query_sha1); } else if (!strcmp(cgit_query_page, "view")) { cgit_print_view(cgit_query_sha1); - } else if (!strcmp(cgit_query_page, "diff")) { - cgit_print_diff(cgit_query_sha1, cgit_query_sha2); } cgit_print_docend(); } @@ -77,18 +77,12 @@ div.error { font-weight: bold; margin: 1em 2em; } -div.ls-blob, div.ls-dir { - font-family: monospace; -} div.ls-dir a { font-weight: bold; } th.filesize, td.filesize { text-align: right; } -td.filesize { - font-family: monospace; -} td.filemode { font-family: monospace; } @@ -160,25 +154,6 @@ table.diffstat td.summary { color: #888; padding-top: 0.5em; } - -table.diff td { - border: solid 1px black; - font-family: monospace; - white-space: pre; -} - -table.diff td div.hunk { - background: #ccc; -} - -table.diff td div.add { - color: green; -} - -table.diff td div.del { - color: red; -} - .sha1 { font-family: courier; font-size: 90%; @@ -57,7 +57,6 @@ extern char *cgit_query_repo; extern char *cgit_query_page; extern char *cgit_query_head; extern char *cgit_query_sha1; -extern char *cgit_query_sha2; extern int cgit_query_ofs; extern int htmlfd; @@ -105,6 +104,5 @@ extern void cgit_print_log(const char *tip, int ofs, int cnt); extern void cgit_print_view(const char *hex); extern void cgit_print_tree(const char *hex); extern void cgit_print_commit(const char *hex); -extern void cgit_print_diff(const char *old_hex, const char *new_hex); #endif /* CGIT_H */ @@ -37,7 +37,6 @@ char *cgit_query_repo = NULL; char *cgit_query_page = NULL; char *cgit_query_head = NULL; char *cgit_query_sha1 = NULL; -char *cgit_query_sha2 = NULL; int cgit_query_ofs = 0; int htmlfd = 0; @@ -84,9 +83,6 @@ void cgit_querystring_cb(const char *name, const char *value) } else if (!strcmp(name, "id")) { cgit_query_sha1 = xstrdup(value); cgit_query_has_sha1 = 1; - } else if (!strcmp(name, "id2")) { - cgit_query_sha2 = xstrdup(value); - cgit_query_has_sha1 = 1; } else if (!strcmp(name, "ofs")) { cgit_query_ofs = atoi(value); } diff --git a/ui-diff.c b/ui-diff.c deleted file mode 100644 index 0bd9ade..0000000 --- a/ui-diff.c +++ /dev/null @@ -1,131 +0,0 @@ -/* ui-diff.c: show diff between two blobs - * - * Copyright (C) 2006 Lars Hjemli - * - * Licensed under GNU General Public License v2 - * (see COPYING for full license text) - */ - -#include "cgit.h" -#include "xdiff.h" - -char *diff_buffer; -int diff_buffer_size; - - -/* - * print a single line returned from xdiff - */ -static void print_line(char *line, int len) -{ - char *class = "ctx"; - char c = line[len-1]; - - if (line[0] == '+') - class = "add"; - else if (line[0] == '-') - class = "del"; - else if (line[0] == '@') - class = "hunk"; - - htmlf("<div class='%s'>", class); - line[len-1] = '\0'; - html_txt(line); - html("</div>"); - line[len-1] = c; -} - -/* - * Receive diff-buffers from xdiff and concatenate them as - * needed across multiple callbacks. - * - * This is basically a copy of xdiff-interface.c/xdiff_outf(), - * ripped from git and modified to use globals instead of - * a special callback-struct. - */ -int diff_cb(void *priv_, mmbuffer_t *mb, int nbuf) -{ - int i; - - for (i = 0; i < nbuf; i++) { - if (mb[i].ptr[mb[i].size-1] != '\n') { - /* Incomplete line */ - diff_buffer = xrealloc(diff_buffer, - diff_buffer_size + mb[i].size); - memcpy(diff_buffer + diff_buffer_size, - mb[i].ptr, mb[i].size); - diff_buffer_size += mb[i].size; - continue; - } - - /* we have a complete line */ - if (!diff_buffer) { - print_line(mb[i].ptr, mb[i].size); - continue; - } - diff_buffer = xrealloc(diff_buffer, - diff_buffer_size + mb[i].size); - memcpy(diff_buffer + diff_buffer_size, mb[i].ptr, mb[i].size); - print_line(diff_buffer, diff_buffer_size + mb[i].size); - free(diff_buffer); - diff_buffer = NULL; - diff_buffer_size = 0; - } - if (diff_buffer) { - print_line(diff_buffer, diff_buffer_size); - free(diff_buffer); - diff_buffer = NULL; - diff_buffer_size = 0; - } - return 0; -} - -static int load_mmfile(mmfile_t *file, const unsigned char *sha1) -{ - char type[20]; - - if (is_null_sha1(sha1)) { - file->ptr = (char *)""; - file->size = 0; - } else { - file->ptr = read_sha1_file(sha1, type, &file->size); - } - return 1; -} - -static void run_diff(const unsigned char *sha1, const unsigned char *sha2) -{ - mmfile_t file1, file2; - xpparam_t diff_params; - xdemitconf_t emit_params; - xdemitcb_t emit_cb; - - if (!load_mmfile(&file1, sha1) || !load_mmfile(&file2, sha2)) { - cgit_print_error("Unable to load files for diff"); - return; - } - - diff_params.flags = XDF_NEED_MINIMAL; - - emit_params.ctxlen = 3; - emit_params.flags = XDL_EMIT_FUNCNAMES; - - emit_cb.outf = diff_cb; - - xdl_diff(&file1, &file2, &diff_params, &emit_params, &emit_cb); -} - - - -void cgit_print_diff(const char *old_hex, const char *new_hex) -{ - unsigned char sha1[20], sha2[20]; - - get_sha1(old_hex, sha1); - get_sha1(new_hex, sha2); - - html("<h2>diff</h2>\n"); - html("<table class='diff'><tr><td>"); - run_diff(sha1, sha2); - html("</td></tr></table>"); -} diff --git a/xdiff.h b/xdiff.h deleted file mode 100644 index fa409d5..0000000 --- a/xdiff.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * LibXDiff by Davide Libenzi ( File Differential Library ) - * Copyright (C) 2003 Davide Libenzi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Davide Libenzi <davidel@xmailserver.org> - * - */ - -#if !defined(XDIFF_H) -#define XDIFF_H - -#ifdef __cplusplus -extern "C" { -#endif /* #ifdef __cplusplus */ - - -#define XDF_NEED_MINIMAL (1 << 1) -#define XDF_IGNORE_WHITESPACE (1 << 2) -#define XDF_IGNORE_WHITESPACE_CHANGE (1 << 3) -#define XDF_WHITESPACE_FLAGS (XDF_IGNORE_WHITESPACE | XDF_IGNORE_WHITESPACE_CHANGE) - -#define XDL_PATCH_NORMAL '-' -#define XDL_PATCH_REVERSE '+' -#define XDL_PATCH_MODEMASK ((1 << 8) - 1) -#define XDL_PATCH_IGNOREBSPACE (1 << 8) - -#define XDL_EMIT_FUNCNAMES (1 << 0) -#define XDL_EMIT_COMMON (1 << 1) - -#define XDL_MMB_READONLY (1 << 0) - -#define XDL_MMF_ATOMIC (1 << 0) - -#define XDL_BDOP_INS 1 -#define XDL_BDOP_CPY 2 -#define XDL_BDOP_INSB 3 - -#define XDL_MERGE_MINIMAL 0 -#define XDL_MERGE_EAGER 1 -#define XDL_MERGE_ZEALOUS 2 - -typedef struct s_mmfile { - char *ptr; - long size; -} mmfile_t; - -typedef struct s_mmbuffer { - char *ptr; - long size; -} mmbuffer_t; - -typedef struct s_xpparam { - unsigned long flags; -} xpparam_t; - -typedef struct s_xdemitcb { - void *priv; - int (*outf)(void *, mmbuffer_t *, int); -} xdemitcb_t; - -typedef struct s_xdemitconf { - long ctxlen; - unsigned long flags; -} xdemitconf_t; - -typedef struct s_bdiffparam { - long bsize; -} bdiffparam_t; - - -#define xdl_malloc(x) malloc(x) -#define xdl_free(ptr) free(ptr) -#define xdl_realloc(ptr,x) realloc(ptr,x) - -void *xdl_mmfile_first(mmfile_t *mmf, long *size); -void *xdl_mmfile_next(mmfile_t *mmf, long *size); -long xdl_mmfile_size(mmfile_t *mmf); - -int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, - xdemitconf_t const *xecfg, xdemitcb_t *ecb); - -int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1, - mmfile_t *mf2, const char *name2, - xpparam_t const *xpp, int level, mmbuffer_t *result); - -#ifdef __cplusplus -} -#endif /* #ifdef __cplusplus */ - -#endif /* #if !defined(XDIFF_H) */ - |