Merge branch 'stable'

This commit is contained in:
Lars Hjemli 2008-12-06 11:33:05 +01:00
commit 3157ea3b7e
5 changed files with 46 additions and 8 deletions

View File

@ -7,6 +7,26 @@ SHA1_HEADER = <openssl/sha.h>
GIT_VER = 1.6.0.3 GIT_VER = 1.6.0.3
GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2 GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
# Define NO_STRCASESTR if you don't have strcasestr.
#
# Define NEEDS_LIBICONV if linking with libc is not enough (eg. Darwin).
#
#-include config.mak
#
# Platform specific tweaks
#
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
ifeq ($(uname_O),Cygwin)
NO_STRCASESTR = YesPlease
NEEDS_LIBICONV = YesPlease
endif
# #
# Let the user override the above settings. # Let the user override the above settings.
# #
@ -96,6 +116,9 @@ CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
ifdef NO_ICONV ifdef NO_ICONV
CFLAGS += -DNO_ICONV CFLAGS += -DNO_ICONV
endif endif
ifdef NO_STRCASESTR
CFLAGS += -DNO_STRCASESTR
endif
cgit: $(OBJECTS) libgit cgit: $(OBJECTS) libgit
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS) $(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS)

6
cgit.h
View File

@ -233,11 +233,5 @@ extern const char *cgit_repobasename(const char *reponame);
extern int cgit_parse_snapshots_mask(const char *str); extern int cgit_parse_snapshots_mask(const char *str);
/* libgit.a either links against or compiles its own implementation of
* strcasestr(), and we'd like to reuse it. Simply re-declaring it
* seems to do the trick.
*/
extern char *strcasestr(const char *haystack, const char *needle);
#endif /* CGIT_H */ #endif /* CGIT_H */

View File

@ -96,6 +96,9 @@ char *parse_user(char *t, char **name, char **email, unsigned long *date)
return p; return p;
} }
#ifdef NO_ICONV
#define reencode(a, b, c)
#else
const char *reencode(char **txt, const char *src_enc, const char *dst_enc) const char *reencode(char **txt, const char *src_enc, const char *dst_enc)
{ {
char *tmp; char *tmp;
@ -110,6 +113,7 @@ const char *reencode(char **txt, const char *src_enc, const char *dst_enc)
} }
return *txt; return *txt;
} }
#endif
struct commitinfo *cgit_parse_commit(struct commit *commit) struct commitinfo *cgit_parse_commit(struct commit *commit)
{ {

View File

@ -64,18 +64,31 @@ void print_commit(struct commit *commit)
cgit_free_commitinfo(info); cgit_free_commitinfo(info);
} }
static const char *disambiguate_ref(const char *ref)
{
unsigned char sha1[20];
const char *longref;
longref = fmt("refs/heads/%s", ref);
if (get_sha1(longref, sha1) == 0)
return longref;
return ref;
}
void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern, void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern,
char *path, int pager) char *path, int pager)
{ {
struct rev_info rev; struct rev_info rev;
struct commit *commit; struct commit *commit;
const char *argv[] = {NULL, tip, NULL, NULL, NULL}; const char *argv[] = {NULL, NULL, NULL, NULL, NULL};
int argc = 2; int argc = 2;
int i, columns = 3; int i, columns = 3;
if (!tip) if (!tip)
argv[1] = ctx.qry.head; tip = ctx.qry.head;
argv[1] = disambiguate_ref(tip);
if (grep && pattern && (!strcmp(grep, "grep") || if (grep && pattern && (!strcmp(grep, "grep") ||
!strcmp(grep, "author") || !strcmp(grep, "author") ||

View File

@ -6,6 +6,10 @@
* (see COPYING for full license text) * (see COPYING for full license text)
*/ */
/* This is needed for strcasestr to be defined by <string.h> */
#define _GNU_SOURCE 1
#include <string.h>
#include <time.h> #include <time.h>
#include "cgit.h" #include "cgit.h"