From ccdd1538fc382c7d30e33c6c64dd32e2f1b7e203 Mon Sep 17 00:00:00 2001
From: Veniamin Gvozdikov <vgvozdikov@tarantool.org>
Date: Fri, 6 Mar 2015 21:49:47 +0300
Subject: [PATCH] Removed depend by gnu readline * Added define
 HAVE_GNU_READLINE and check it for detecting non GNU readline library

---
 cmake/FindReadline.cmake  | 8 +++++++-
 src/lua/init.cc           | 2 ++
 src/trivia/config.h.cmake | 4 ++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake
index 24b6e4740e..9b734dd98e 100644
--- a/cmake/FindReadline.cmake
+++ b/cmake/FindReadline.cmake
@@ -28,7 +28,13 @@ IF (READLINE_READLINE_LIBRARY AND READLINE_INCLUDE_DIR)
   SET (READLINE_FOUND TRUE)
   SET (READLINE_INCLUDE_DIR ${READLINE_INCLUDE_DIR})
   SET (READLINE_LIBRARIES ${READLINE_READLINE_LIBRARY})
-  MESSAGE(STATUS "Found GNU readline: ${READLINE_READLINE_LIBRARY}, include dir ${READLINE_INCLUDE_DIR}")
+  IF (EXISTS ${READLINE_INCLUDE_DIR}/readline/rlconf.h)
+    MESSAGE(STATUS "Found GNU readline")
+    set(HAVE_GNU_READLINE 1)
+  ELSE()
+    MESSAGE(STATUS "Found readline")
+  ENDIF ()
+  MESSAGE(STATUS "readline library: ${READLINE_READLINE_LIBRARY}, include dir ${READLINE_INCLUDE_DIR}")
   IF (TERMCAP_FOUND)
     SET (READLINE_LIBRARIES ${READLINE_LIBRARIES} ${TERMCAP_LIBRARY})
   ENDIF (TERMCAP_FOUND)
diff --git a/src/lua/init.cc b/src/lua/init.cc
index 8f418ce73b..c966eda74b 100644
--- a/src/lua/init.cc
+++ b/src/lua/init.cc
@@ -330,12 +330,14 @@ tarantool_lua_init(const char *tarantool_bin, int argc, char **argv)
 	luaopen_json(L);
 	lua_pop(L, 1);
 
+#if defined(HAVE_GNU_READLINE)
 	/*
 	 * Disable libreadline signals handlers. All signals are handled in
 	 * main thread by libev watchers.
 	 */
 	rl_catch_signals = 0;
 	rl_catch_sigwinch = 0;
+#endif
 	static const struct luaL_reg consolelib[] = {
 		{"readline", tarantool_console_readline},
 		{"add_history", tarantool_console_add_history},
diff --git a/src/trivia/config.h.cmake b/src/trivia/config.h.cmake
index dc272ed29d..1f8bb5e3c4 100644
--- a/src/trivia/config.h.cmake
+++ b/src/trivia/config.h.cmake
@@ -108,6 +108,10 @@
  * Defined if this platform supports openmp and it is enabled
  */
 #cmakedefine HAVE_OPENMP 1
+/*
+*  Defined if compatible with GNU readline installed.
+*/
+#cmakedefine HAVE_GNU_READLINE 1
 
 /*
  * Set if compiler has __builtin_XXX methods.
-- 
GitLab