Commit 8bf38858 authored by unknown's avatar unknown

fixed two compiling bugs for libedit


acinclude.m4:
  added macro to check if dirent.d_namlen is defined
cmd-line-utils/libedit/config.h:
  added define for __attribute__
cmd-line-utils/libedit/readline.c:
  checked STRUCT_DIRENT_HAS_D_NAMLEN instead of
  old enumeration of problem platforms
configure.in:
  added checking if dirent has d_namlen member field
parent 51fce2d2
...@@ -665,6 +665,41 @@ AC_DEFINE(STRUCT_DIRENT_HAS_D_INO, [1], ...@@ -665,6 +665,41 @@ AC_DEFINE(STRUCT_DIRENT_HAS_D_INO, [1],
fi fi
]) ])
AC_DEFUN(MYSQL_STRUCT_DIRENT_D_NAMLEN,
[AC_REQUIRE([AC_HEADER_DIRENT])
AC_MSG_CHECKING(if struct dirent has a d_namlen member)
AC_CACHE_VAL(mysql_cv_dirent_has_dnamlen,
[AC_TRY_COMPILE([
#include <stdio.h>
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
#if defined(HAVE_DIRENT_H)
# include <dirent.h>
#else
# define dirent direct
# ifdef HAVE_SYS_NDIR_H
# include <sys/ndir.h>
# endif /* SYSNDIR */
# ifdef HAVE_SYS_DIR_H
# include <sys/dir.h>
# endif /* SYSDIR */
# ifdef HAVE_NDIR_H
# include <ndir.h>
# endif
#endif /* HAVE_DIRENT_H */
],[
struct dirent d; int z; z = (int)d.d_namlen;
], mysql_cv_dirent_has_dnamlen=yes, mysql_cv_dirent_has_dnamlen=no)])
AC_MSG_RESULT($mysql_cv_dirent_has_dnamlen)
if test "$mysql_cv_dirent_has_dnamlen" = "yes"; then
AC_DEFINE(STRUCT_DIRENT_HAS_D_NAMLEN, [1],
[d_namlen member present in struct dirent])
fi
])
AC_DEFUN(MYSQL_TYPE_SIGHANDLER, AC_DEFUN(MYSQL_TYPE_SIGHANDLER,
[AC_MSG_CHECKING([whether signal handlers are of type void]) [AC_MSG_CHECKING([whether signal handlers are of type void])
AC_CACHE_VAL(mysql_cv_void_sighandler, AC_CACHE_VAL(mysql_cv_void_sighandler,
......
...@@ -6,3 +6,9 @@ ...@@ -6,3 +6,9 @@
#define __COPYRIGHT(x) #define __COPYRIGHT(x)
#define __RENAME(x) #define __RENAME(x)
#define _DIAGASSERT(x) #define _DIAGASSERT(x)
#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__) || __GNUC__ == 2 && __GNUC_MINOR__ < 8)
#define __attribute__(A)
#endif
...@@ -1345,7 +1345,7 @@ filename_completion_function(const char *text, int state) ...@@ -1345,7 +1345,7 @@ filename_completion_function(const char *text, int state)
/* otherwise, get first entry where first */ /* otherwise, get first entry where first */
/* filename_len characters are equal */ /* filename_len characters are equal */
if (entry->d_name[0] == filename[0] if (entry->d_name[0] == filename[0]
#if defined(__SVR4) || defined(__linux__) #ifndef STRUCT_DIRENT_HAS_D_NAMLEN
&& strlen(entry->d_name) >= filename_len && strlen(entry->d_name) >= filename_len
#else #else
&& entry->d_namlen >= filename_len && entry->d_namlen >= filename_len
...@@ -1358,7 +1358,7 @@ filename_completion_function(const char *text, int state) ...@@ -1358,7 +1358,7 @@ filename_completion_function(const char *text, int state)
if (entry) { /* match found */ if (entry) { /* match found */
struct stat stbuf; struct stat stbuf;
#if defined(__SVR4) || defined(__linux__) #ifndef STRUCT_DIRENT_HAS_D_NAMLEN
len = strlen(entry->d_name) + len = strlen(entry->d_name) +
#else #else
len = entry->d_namlen + len = entry->d_namlen +
......
...@@ -1865,6 +1865,7 @@ MYSQL_HAVE_TIOCGWINSZ ...@@ -1865,6 +1865,7 @@ MYSQL_HAVE_TIOCGWINSZ
MYSQL_HAVE_FIONREAD MYSQL_HAVE_FIONREAD
MYSQL_HAVE_TIOCSTAT MYSQL_HAVE_TIOCSTAT
MYSQL_STRUCT_DIRENT_D_INO MYSQL_STRUCT_DIRENT_D_INO
MYSQL_STRUCT_DIRENT_D_NAMLEN
MYSQL_TYPE_SIGHANDLER MYSQL_TYPE_SIGHANDLER
if test "$with_named_curses" = "no" if test "$with_named_curses" = "no"
then then
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment