From 380255a37895b31b06602505c831e925bc8daa5d Mon Sep 17 00:00:00 2001
From: Dan Callaghan <dcallagh@redhat.com>
Date: Tue, 8 Jan 2013 21:22:31 +1000
Subject: [PATCH 2/2] hide symbols for private utf8 utility functions
---
Makefile | 3 ++-
linenoise.h | 26 ++++++++++++++++----------
2 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index a1a906f..0a42a7f 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,8 @@ SONAME = liblinenoise.so.$(MAJOR_VERSION)
LIB = $(SONAME)$(EXTRA_VERSION)
export CFLAGS ?= -Os -g
-CFLAGS += -Wall -fpic -DUSE_UTF8
+CFLAGS += -Wall -fpic -DUSE_UTF8 \
+ -fvisibility=hidden -DHAVE_VISIBILITY=1 -DBUILDING_LINENOISE=1
LIBDIR ?= /usr/lib
INCLUDEDIR ?= /usr/include
diff --git a/linenoise.h b/linenoise.h
index ab0058a..406aa3e 100644
--- a/linenoise.h
+++ b/linenoise.h
@@ -37,6 +37,12 @@
#ifndef __LINENOISE_H
#define __LINENOISE_H
+#if BUILDING_LINENOISE && HAVE_VISIBILITY
+#define LINENOISE_EXPORTED __attribute__((__visibility__("default")))
+#else
+#define LINENOISE_EXPORTED
+#endif
+
#ifndef NO_COMPLETION
typedef struct linenoiseCompletions {
size_t len;
@@ -44,19 +50,19 @@ typedef struct linenoiseCompletions {
} linenoiseCompletions;
typedef void(linenoiseCompletionCallback)(const char *, linenoiseCompletions *);
-void linenoiseSetCompletionCallback(linenoiseCompletionCallback *);
-void linenoiseAddCompletion(linenoiseCompletions *, const char *);
+LINENOISE_EXPORTED void linenoiseSetCompletionCallback(linenoiseCompletionCallback *);
+LINENOISE_EXPORTED void linenoiseAddCompletion(linenoiseCompletions *, const char *);
#endif
typedef int(linenoiseCharacterCallback)(const char *, size_t, char);
-void linenoiseSetCharacterCallback(linenoiseCharacterCallback *, char);
+LINENOISE_EXPORTED void linenoiseSetCharacterCallback(linenoiseCharacterCallback *, char);
-char *linenoise(const char *prompt);
-int linenoiseHistoryAdd(const char *line);
-int linenoiseHistorySetMaxLen(int len);
-int linenoiseHistorySave(const char *filename);
-int linenoiseHistoryLoad(const char *filename);
-void linenoiseHistoryFree(void);
-char **linenoiseHistory(int *len);
+LINENOISE_EXPORTED char *linenoise(const char *prompt);
+LINENOISE_EXPORTED int linenoiseHistoryAdd(const char *line);
+LINENOISE_EXPORTED int linenoiseHistorySetMaxLen(int len);
+LINENOISE_EXPORTED int linenoiseHistorySave(const char *filename);
+LINENOISE_EXPORTED int linenoiseHistoryLoad(const char *filename);
+LINENOISE_EXPORTED void linenoiseHistoryFree(void);
+LINENOISE_EXPORTED char **linenoiseHistory(int *len);
#endif /* __LINENOISE_H */
--
1.7.11.7