From: Jason Parker Date: Mon, 2 Mar 2009 20:14:57 +0000 (+0000) Subject: Remove several silly warnings in editline. One about a broken preprocessor directive... X-Git-Tag: 1.4.24-rc1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5062dff9dd12e96c0b2d164224d5e9f6075e6cea;p=thirdparty%2Fasterisk.git 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: https://origsvn.digium.com/svn/asterisk/branches/1.4@179395 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/editline/configure b/main/editline/configure index d570bf6791..442d54d38b 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 c1f87b842b..7254cee14d 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 f43c4c749a..844a5581b0 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 a306d1df7b..8f3f3bd069 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 */