Blob Blame History Raw
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