diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake index 24b6e4740e8e9e213006b61d098d96a98d19927f..9b734dd98e0a072cb0c70a6d1ac161757d9faddb 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 8f418ce73b1b66f7d2c01de67493247f2f359feb..c966eda74b702373c200410acd9ba4ece3817cfa 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 dc272ed29dc6825fca44ef23402ff896d9b9229f..1f8bb5e3c44b2f4ef04db587c2e016264ead8107 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.