From b25302b53e87af89310bd57e07924fd7dff208ce Mon Sep 17 00:00:00 2001 From: qwell Date: Mon, 2 Mar 2009 20:14:57 +0000 Subject: Remove several silly warnings in editline. One about a broken preprocessor directive, and another about strlcpy/strlcat. (closes issue #14264) Reported by: dimas git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@179395 f38db490-d61c-443f-a65b-d21fe96a405b --- main/editline/configure | 120 +++++++++++++++++++++++++++++++++++++++++++-- main/editline/configure.in | 2 + main/editline/np/unvis.c | 2 +- main/editline/sys.h | 10 ++++ 4 files changed, 129 insertions(+), 5 deletions(-) diff --git a/main/editline/configure b/main/editline/configure index d570bf679..442d54d38 100755 --- a/main/editline/configure +++ b/main/editline/configure @@ -1852,9 +1852,121 @@ CCSRCS="$CCSRCS np/unvis.c" fi done +for ac_func in strlcpy +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1859: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +CCSRCS="$CCSRCS np/strlcpy.c" +fi +done + +for ac_func in strlcat +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1915: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +CCSRCS="$CCSRCS np/strlcat.c" +fi +done + cat > conftest.$ac_ext < #ifdef __RCSID @@ -1873,7 +1985,7 @@ rm -f conftest* cat > conftest.$ac_ext < #ifdef __COPYRIGHT @@ -1892,7 +2004,7 @@ rm -f conftest* cat > conftest.$ac_ext < #ifdef __RENAME @@ -1911,7 +2023,7 @@ rm -f conftest* cat > conftest.$ac_ext < #ifdef _DIAGASSERT diff --git a/main/editline/configure.in b/main/editline/configure.in index c1f87b842..7254cee14 100644 --- a/main/editline/configure.in +++ b/main/editline/configure.in @@ -101,6 +101,8 @@ AC_CHECK_FUNCS(strlcpy, , CCSRCS="$CCSRCS np/strlcpy.c") AC_CHECK_FUNCS(fgetln, , CCSRCS="$CCSRCS np/fgetln.c") AC_CHECK_FUNCS(strvis, , CCSRCS="$CCSRCS np/vis.c") AC_CHECK_FUNCS(strunvis, , CCSRCS="$CCSRCS np/unvis.c") +AC_CHECK_FUNCS(strlcpy, , CCSRCS="$CCSRCS np/strlcpy.c") +AC_CHECK_FUNCS(strlcat, , CCSRCS="$CCSRCS np/strlcat.c") AC_EGREP_CPP(yes, [#include diff --git a/main/editline/np/unvis.c b/main/editline/np/unvis.c index f43c4c749..844a5581b 100644 --- a/main/editline/np/unvis.c +++ b/main/editline/np/unvis.c @@ -61,7 +61,7 @@ __warn_references(unvis, "warning: reference to compatibility unvis(); include for correct reference") #endif -#if !HAVE_VIS_H +#ifndef HAVE_VIS_H /* * decode driven by state machine */ diff --git a/main/editline/sys.h b/main/editline/sys.h index a306d1df7..8f3f3bd06 100644 --- a/main/editline/sys.h +++ b/main/editline/sys.h @@ -84,6 +84,16 @@ size_t strlcpy(char *dst, const char *src, size_t size); char *fgetln(FILE *fp, size_t *len); #endif +#ifndef HAVE_STRLCPY +#define strlcpy libedit_strlcpy +size_t strlcpy(char *dst, const char *src, size_t siz); +#endif + +#ifndef HAVE_STRLCAT +#define strlcat libedit_strlcat +size_t strlcat(char *dst, const char *src, size_t siz); +#endif + #define REGEX /* Use POSIX.2 regular expression functions */ #undef REGEXP /* Use UNIX V8 regular expression functions */ -- cgit v1.2.3