Fixed glibc 2.10 compiler problems (Fedora 11 and others) with scandir()
and strchr() (STR #2222). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6833 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
a32ec7f20e
commit
f42c541529
2
CHANGES
2
CHANGES
@ -1,5 +1,7 @@
|
||||
CHANGES IN FLTK 1.3.0
|
||||
|
||||
- Fixed glibc 2.10 compiler problems (Fedora 11 and others)
|
||||
with scandir() and strchr() (STR #2222)
|
||||
- Corrected const methods of Fl_Text_{Buffer|Display|Selection}
|
||||
to be declared const, corrected an Fl_Text_Buffer attrib. typo
|
||||
- Fixed OpenGL shared context handling (STR #2135)
|
||||
|
@ -180,7 +180,8 @@
|
||||
#undef U64
|
||||
|
||||
/*
|
||||
* HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR:
|
||||
* HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H,
|
||||
* HAVE_SCANDIR, HAVE_SCANDIR_POSIX:
|
||||
*
|
||||
* Where is <dirent.h> (used only by fl_file_chooser and scandir).
|
||||
*/
|
||||
@ -190,6 +191,7 @@
|
||||
#undef HAVE_SYS_DIR_H
|
||||
#undef HAVE_NDIR_H
|
||||
#undef HAVE_SCANDIR
|
||||
#undef HAVE_SCANDIR_POSIX
|
||||
|
||||
/*
|
||||
* Possibly missing sprintf-style functions:
|
||||
|
20
configure.in
20
configure.in
@ -449,6 +449,26 @@ AC_CHECK_FUNC(scandir,
|
||||
else
|
||||
AC_DEFINE(HAVE_SCANDIR)
|
||||
fi)
|
||||
|
||||
dnl Do we have the POSIX compatible scandir() prototype?
|
||||
AC_CACHE_CHECK([whether we have the POSIX compatible scandir() prototype],
|
||||
ac_cv_cxx_scandir_posix,[
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_TRY_COMPILE([
|
||||
#include <dirent.h>
|
||||
int func (const char *d, dirent ***list, void *sort) {
|
||||
int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort);
|
||||
}
|
||||
],[
|
||||
], ac_cv_cxx_scandir_posix=yes, ac_cv_cxx_scandir_posix=no)
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
|
||||
if test "$ac_cv_cxx_scandir_posix" = yes; then
|
||||
AC_DEFINE(HAVE_SCANDIR_POSIX)
|
||||
fi
|
||||
|
||||
AC_CHECK_FUNC(vsnprintf,[
|
||||
case "$uname" in
|
||||
HP-UX*)
|
||||
|
@ -77,8 +77,8 @@ int fl_filename_list(const char *d, dirent ***list,
|
||||
Fl_File_Sort_F *sort) {
|
||||
#ifndef HAVE_SCANDIR
|
||||
int n = scandir(d, list, 0, sort);
|
||||
#elif defined(__hpux) || defined(__CYGWIN__)
|
||||
// HP-UX, Cygwin define the comparison function like this:
|
||||
#elif defined(HAVE_SCANDIR_POSIX)
|
||||
// POSIX (2008) defines the comparison function like this:
|
||||
int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort);
|
||||
#elif defined(__osf__)
|
||||
// OSF, DU 4.0x
|
||||
|
@ -271,13 +271,13 @@ Fl_Font Fl::set_fonts(const char* pattern_name)
|
||||
// So the bit we want is up to the first comma - BUT some strings have
|
||||
// more than one name, separated by, guess what?, a comma...
|
||||
stop = start = first = 0;
|
||||
stop = strchr((const char *)font, ',');
|
||||
start = strchr((const char *)font, ':');
|
||||
stop = strchr((char *)font, ',');
|
||||
start = strchr((char *)font, ':');
|
||||
if ((stop) && (start) && (stop < start))
|
||||
{
|
||||
first = stop + 1; // discard first version of name
|
||||
// find first comma *after* the end of the name
|
||||
stop = strchr((const char *)start, ',');
|
||||
stop = strchr((char *)start, ',');
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user