mirror of
https://git.zx2c4.com/cgit
synced 2024-11-26 02:18:42 +00:00
Merge branch 'stable'
This commit is contained in:
commit
3157ea3b7e
23
Makefile
23
Makefile
@ -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
6
cgit.h
@ -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 */
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
17
ui-log.c
17
ui-log.c
@ -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") ||
|
||||||
|
@ -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"
|
||||||
|
Loading…
Reference in New Issue
Block a user