mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
Merge "cli: Fix ast_el_read_char to work with libedit >= 3.1"
This commit is contained in:
65
configure
vendored
65
configure
vendored
@@ -1055,6 +1055,10 @@ PBX_LIBXML2
|
|||||||
LIBXML2_DIR
|
LIBXML2_DIR
|
||||||
LIBXML2_INCLUDE
|
LIBXML2_INCLUDE
|
||||||
LIBXML2_LIB
|
LIBXML2_LIB
|
||||||
|
PBX_LIBEDIT_IS_UNICODE
|
||||||
|
LIBEDIT_IS_UNICODE_DIR
|
||||||
|
LIBEDIT_IS_UNICODE_INCLUDE
|
||||||
|
LIBEDIT_IS_UNICODE_LIB
|
||||||
PBX_LIBEDIT
|
PBX_LIBEDIT
|
||||||
LIBEDIT_DIR
|
LIBEDIT_DIR
|
||||||
LIBEDIT_INCLUDE
|
LIBEDIT_INCLUDE
|
||||||
@@ -10733,6 +10737,18 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LIBEDIT_IS_UNICODE_DESCRIP="Libedit compiled for unicode"
|
||||||
|
LIBEDIT_IS_UNICODE_OPTION=libedit
|
||||||
|
LIBEDIT_IS_UNICODE_DIR=${LIBEDIT_DIR}
|
||||||
|
|
||||||
|
PBX_LIBEDIT_IS_UNICODE=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LIBXML2_DESCRIP="LibXML2"
|
LIBXML2_DESCRIP="LibXML2"
|
||||||
LIBXML2_OPTION="libxml2"
|
LIBXML2_OPTION="libxml2"
|
||||||
PBX_LIBXML2=0
|
PBX_LIBXML2=0
|
||||||
@@ -21129,11 +21145,58 @@ fi
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$PBX_LIBEDIT" = "1"; then
|
if test "$PBX_LIBEDIT" = "1"; then
|
||||||
LIBEDIT_INTERNAL="no"
|
LIBEDIT_INTERNAL="no"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "${LIBEDIT_INTERNAL}" = "yes"; then
|
if test "${LIBEDIT_INTERNAL}" = "yes"; then
|
||||||
PBX_LIBEDIT=1
|
PBX_LIBEDIT=1
|
||||||
|
LIBEDIT_IS_UNICODE=no
|
||||||
|
else
|
||||||
|
|
||||||
|
if test "x${PBX_LIBEDIT_IS_UNICODE}" != "x1" -a "${USE_LIBEDIT_IS_UNICODE}" != "no"; then
|
||||||
|
if test "xTesting for libedit unicode support" != "x"; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Testing for libedit unicode support" >&5
|
||||||
|
$as_echo_n "checking for Testing for libedit unicode support... " >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if \"el_rfunc_t *callback;\" compiles using histedit.h" >&5
|
||||||
|
$as_echo_n "checking if \"el_rfunc_t *callback;\" compiles using histedit.h... " >&6; }
|
||||||
|
fi
|
||||||
|
saved_cppflags="${CPPFLAGS}"
|
||||||
|
if test "x${LIBEDIT_IS_UNICODE_DIR}" != "x"; then
|
||||||
|
LIBEDIT_IS_UNICODE_INCLUDE="-I${LIBEDIT_IS_UNICODE_DIR}/include"
|
||||||
|
fi
|
||||||
|
CPPFLAGS="${CPPFLAGS} ${LIBEDIT_IS_UNICODE_INCLUDE}"
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <histedit.h>
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
el_rfunc_t *callback;;
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
PBX_LIBEDIT_IS_UNICODE=1
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_LIBEDIT_IS_UNICODE 1" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
CPPFLAGS="${saved_cppflags}"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -479,6 +479,7 @@ AST_EXT_LIB_SETUP([KQUEUE], [kqueue support], [kqueue])
|
|||||||
AST_EXT_LIB_SETUP([LDAP], [OpenLDAP], [ldap])
|
AST_EXT_LIB_SETUP([LDAP], [OpenLDAP], [ldap])
|
||||||
AST_LIBCURL_CHECK_CONFIG([], [7.10.1])
|
AST_LIBCURL_CHECK_CONFIG([], [7.10.1])
|
||||||
AST_EXT_LIB_SETUP([LIBEDIT], [NetBSD Editline library], [libedit], [, use 'internal' Editline otherwise])
|
AST_EXT_LIB_SETUP([LIBEDIT], [NetBSD Editline library], [libedit], [, use 'internal' Editline otherwise])
|
||||||
|
AST_EXT_LIB_SETUP_OPTIONAL([LIBEDIT_IS_UNICODE], [Libedit compiled for unicode], [LIBEDIT], [libedit])
|
||||||
AST_EXT_LIB_SETUP([LIBXML2], [LibXML2], [libxml2])
|
AST_EXT_LIB_SETUP([LIBXML2], [LibXML2], [libxml2])
|
||||||
AST_EXT_LIB_SETUP([LIBXSLT], [LibXSLT], [libxslt])
|
AST_EXT_LIB_SETUP([LIBXSLT], [LibXSLT], [libxslt])
|
||||||
AST_EXT_LIB_SETUP_OPTIONAL([LIBXSLT_CLEANUP], [LibXSLT Library Cleanup Function], [LIBXSLT], [libxslt])
|
AST_EXT_LIB_SETUP_OPTIONAL([LIBXSLT_CLEANUP], [LibXSLT Library Cleanup Function], [LIBXSLT], [libxslt])
|
||||||
@@ -1530,11 +1531,14 @@ if test "${USE_LIBEDIT}" != "no"; then
|
|||||||
if test "${LIBEDIT_SYSTEM}" = "yes"; then
|
if test "${LIBEDIT_SYSTEM}" = "yes"; then
|
||||||
AST_PKG_CONFIG_CHECK(LIBEDIT, libedit)
|
AST_PKG_CONFIG_CHECK(LIBEDIT, libedit)
|
||||||
if test "$PBX_LIBEDIT" = "1"; then
|
if test "$PBX_LIBEDIT" = "1"; then
|
||||||
LIBEDIT_INTERNAL="no"
|
LIBEDIT_INTERNAL="no"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "${LIBEDIT_INTERNAL}" = "yes"; then
|
if test "${LIBEDIT_INTERNAL}" = "yes"; then
|
||||||
PBX_LIBEDIT=1
|
PBX_LIBEDIT=1
|
||||||
|
LIBEDIT_IS_UNICODE=no
|
||||||
|
else
|
||||||
|
AST_C_COMPILE_CHECK([LIBEDIT_IS_UNICODE], [el_rfunc_t *callback;], [histedit.h], [], [Testing for libedit unicode support])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -402,6 +402,9 @@
|
|||||||
/* Define if your system has the LIBEDIT libraries. */
|
/* Define if your system has the LIBEDIT libraries. */
|
||||||
#undef HAVE_LIBEDIT
|
#undef HAVE_LIBEDIT
|
||||||
|
|
||||||
|
/* Define if your system has the LIBEDIT_IS_UNICODE headers. */
|
||||||
|
#undef HAVE_LIBEDIT_IS_UNICODE
|
||||||
|
|
||||||
/* Define to 1 if you have the <libintl.h> header file. */
|
/* Define to 1 if you have the <libintl.h> header file. */
|
||||||
#undef HAVE_LIBINTL_H
|
#undef HAVE_LIBINTL_H
|
||||||
|
|
||||||
|
@@ -2691,7 +2691,11 @@ static void send_rasterisk_connect_commands(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBEDIT_IS_UNICODE
|
||||||
|
static int ast_el_read_char(EditLine *editline, wchar_t *cp)
|
||||||
|
#else
|
||||||
static int ast_el_read_char(EditLine *editline, char *cp)
|
static int ast_el_read_char(EditLine *editline, char *cp)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
int num_read = 0;
|
int num_read = 0;
|
||||||
int lastpos = 0;
|
int lastpos = 0;
|
||||||
@@ -2721,10 +2725,16 @@ static int ast_el_read_char(EditLine *editline, char *cp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!ast_opt_exec && fds[1].revents) {
|
if (!ast_opt_exec && fds[1].revents) {
|
||||||
num_read = read(STDIN_FILENO, cp, 1);
|
char c = '\0';
|
||||||
|
num_read = read(STDIN_FILENO, &c, 1);
|
||||||
if (num_read < 1) {
|
if (num_read < 1) {
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef HAVE_LIBEDIT_IS_UNICODE
|
||||||
|
*cp = btowc(c);
|
||||||
|
#else
|
||||||
|
*cp = c;
|
||||||
|
#endif
|
||||||
return (num_read);
|
return (num_read);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2768,7 +2778,11 @@ static int ast_el_read_char(EditLine *editline, char *cp)
|
|||||||
console_print(buf);
|
console_print(buf);
|
||||||
|
|
||||||
if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (res >= 2 && buf[res-2] == '\n'))) {
|
if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (res >= 2 && buf[res-2] == '\n'))) {
|
||||||
|
#ifdef HAVE_LIBEDIT_IS_UNICODE
|
||||||
|
*cp = btowc(CC_REFRESH);
|
||||||
|
#else
|
||||||
*cp = CC_REFRESH;
|
*cp = CC_REFRESH;
|
||||||
|
#endif
|
||||||
return(1);
|
return(1);
|
||||||
} else {
|
} else {
|
||||||
lastpos = 1;
|
lastpos = 1;
|
||||||
@@ -2776,7 +2790,12 @@ static int ast_el_read_char(EditLine *editline, char *cp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBEDIT_IS_UNICODE
|
||||||
|
*cp = btowc('\0');
|
||||||
|
#else
|
||||||
*cp = '\0';
|
*cp = '\0';
|
||||||
|
#endif
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user