Browse Source

Allow building Git in systems without iconv

Systems using some uClibc versions do not properly support
iconv stuff. This patch allows Git to be built on those
systems by passing NO_ICONV=YesPlease to make. The only
drawback is mailinfo won't do charset conversion in those
systems.

Signed-off-by: Fernando J. Pereda <ferdy@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Fernando J. Pereda 19 years ago committed by Junio C Hamano
parent
commit
b6e56eca8a
  1. 6
      Makefile
  2. 4
      mailinfo.c

6
Makefile

@ -53,6 +53,8 @@ all: @@ -53,6 +53,8 @@ all:
# Define NO_SOCKADDR_STORAGE if your platform does not have struct
# sockaddr_storage.
#
# Define NO_ICONV if your libc does not properly support iconv.
#
# Define COLLISION_CHECK below if you believe that SHA1's
# 1461501637330902918203684832716283019655932542976 hashes do not give you
# sufficient guarantee that no collisions between objects will ever happen.
@ -380,6 +382,10 @@ else @@ -380,6 +382,10 @@ else
endif
endif

ifdef NO_ICONV
ALL_CFLAGS += -DNO_ICONV
endif

ifdef PPC_SHA1
SHA1_HEADER = "ppc/sha1.h"
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o

4
mailinfo.c

@ -7,7 +7,9 @@ @@ -7,7 +7,9 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#ifndef NO_ICONV
#include <iconv.h>
#endif
#include "git-compat-util.h"
#include "cache.h"

@ -469,6 +471,7 @@ static int decode_b_segment(char *in, char *ot, char *ep) @@ -469,6 +471,7 @@ static int decode_b_segment(char *in, char *ot, char *ep)

static void convert_to_utf8(char *line, char *charset)
{
#ifndef NO_ICONV
char *in, *out;
size_t insize, outsize, nrc;
char outbuf[4096]; /* cheat */
@ -501,6 +504,7 @@ static void convert_to_utf8(char *line, char *charset) @@ -501,6 +504,7 @@ static void convert_to_utf8(char *line, char *charset)
return;
*out = 0;
strcpy(line, outbuf);
#endif
}

static void decode_header_bq(char *it)

Loading…
Cancel
Save