Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 May 2012 22:07:13 +0000 (UTC)
From:      Gabor Kovesdan <gabor@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r236028 - head/lib/libkiconv
Message-ID:  <201205252207.q4PM7DPD035808@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gabor
Date: Fri May 25 22:07:13 2012
New Revision: 236028
URL: http://svn.freebsd.org/changeset/base/236028

Log:
  - Add support for BSD iconv when it is build into libc
  
  PR:		bin/162670
  Submitted by:	Jan Beich <jbeich@tormail.net>
  MFC after:	2 weeks

Modified:
  head/lib/libkiconv/Makefile
  head/lib/libkiconv/xlat16_iconv.c

Modified: head/lib/libkiconv/Makefile
==============================================================================
--- head/lib/libkiconv/Makefile	Fri May 25 21:52:57 2012	(r236027)
+++ head/lib/libkiconv/Makefile	Fri May 25 22:07:13 2012	(r236028)
@@ -17,4 +17,8 @@ CFLAGS+=	-I${.CURDIR}/../../sys
 
 WARNS?=		1
 
+.if !defined(MK_ICONV)
+CFLAGS+=	-DICONV_DLOPEN
+.endif
+
 .include <bsd.lib.mk>

Modified: head/lib/libkiconv/xlat16_iconv.c
==============================================================================
--- head/lib/libkiconv/xlat16_iconv.c	Fri May 25 21:52:57 2012	(r236027)
+++ head/lib/libkiconv/xlat16_iconv.c	Fri May 25 22:07:13 2012	(r236028)
@@ -60,10 +60,18 @@ struct xlat16_table {
 static struct xlat16_table kiconv_xlat16_open(const char *, const char *, int);
 static int chklocale(int, const char *);
 
+#ifdef ICONV_DLOPEN
 static int my_iconv_init(void);
 static iconv_t (*my_iconv_open)(const char *, const char *);
 static size_t (*my_iconv)(iconv_t, const char **, size_t *, char **, size_t *);
 static int (*my_iconv_close)(iconv_t);
+#else
+#include <iconv.h>
+#define my_iconv_init() 0
+#define my_iconv_open iconv_open
+#define my_iconv iconv
+#define my_iconv_close iconv_close
+#endif
 static size_t my_iconv_char(iconv_t, const u_char **, size_t *, u_char **, size_t *);
 
 int
@@ -310,6 +318,7 @@ chklocale(int category, const char *code
 	return (error);
 }
 
+#ifdef ICONV_DLOPEN
 static int
 my_iconv_init(void)
 {
@@ -327,6 +336,7 @@ my_iconv_init(void)
 
 	return (0);
 }
+#endif
 
 static size_t
 my_iconv_char(iconv_t cd, const u_char **ibuf, size_t * ilen, u_char **obuf,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205252207.q4PM7DPD035808>