diff options
-rw-r--r-- | ACE/ChangeLog | 27 | ||||
-rw-r--r-- | ACE/ace/OS_NS_dirent.h | 3 | ||||
-rw-r--r-- | ACE/ace/OS_NS_dirent.inl | 11 | ||||
-rw-r--r-- | ACE/ace/config-lynxos.h | 1 | ||||
-rw-r--r-- | ACE/ace/config-win32-common.h | 1 | ||||
-rw-r--r-- | ACE/ace/os_include/os_dirent.h | 4 | ||||
-rw-r--r-- | ACE/tests/Dirent_Test.cpp | 2 |
7 files changed, 44 insertions, 5 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index f80f7737e90..e4cf3424a27 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,22 @@ +Thu Feb 22 11:19:59 UTC 2007 Olli Savia <ops@iki.fi> + + * ace/OS_NS_dirent.h: + * ace/OS_NS_dirent.inl: + Added ACE_OS::alphasort(). alphasort() is a BSD extension found + on Linux as well. + + * ace/config-lynxos.h: + Added ACE_LACKS_ALPHASORT_PROTOTYPE. + + * ace/config-win32-common.h: + Added ACE_LACKS_ALPHASORT. + + * ace/os_include/os_dirent.h: + Added alphasort prototype. + + * tests/Dirent_Test.cpp: + Chaged to use use ACE_OS::alphasort(). + Wed Feb 22 09:24:42 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl> * ace/Truncate.h (Truncate, truncate_cast): @@ -116,7 +135,7 @@ Wed Feb 21 19:27:14 UTC 2007 Ossama Othman <ossama_othman at symantec dot com> * ace/Unbounded_Set.inl: Implement find() method in terms of begin/end iterators to prevent - search from looping indefinitely under some race condition + search from looping indefinitely under some race condition scenarios. Added missing const_iterator factory methods. @@ -217,7 +236,7 @@ Wed Feb 21 19:27:14 UTC 2007 Ossama Othman <ossama_othman at symantec dot com> with the handle in an error state. The error code is then retrieved with getsockopt(). - Good sockets however will return from the select() with ETIME - + Good sockets however will return from the select() with ETIME - in this case return EWOULDBLOCK so the wait strategy can complete the connection. @@ -254,8 +273,8 @@ Wed Feb 21 19:27:14 UTC 2007 Ossama Othman <ossama_othman at symantec dot com> * ace/os_include/os_dlfcn.h (ACE_DEFAULT_SHLIB_MODE): Added DYNAMIC_PATH to the default flags used to call shl_load() - on HP 11.00 (PARISC1.1/32-bit) so that RPATH and SHLIB_PATH are - searched to find the requested .sl. + on HP 11.00 (PARISC1.1/32-bit) so that RPATH and SHLIB_PATH are + searched to find the requested .sl. * bin/MakeProjectCreator/templates/gnu.mpd (FORCED_IDL_STUBS): diff --git a/ACE/ace/OS_NS_dirent.h b/ACE/ace/OS_NS_dirent.h index 6f3b9b12435..88c4a4b3e34 100644 --- a/ACE/ace/OS_NS_dirent.h +++ b/ACE/ace/OS_NS_dirent.h @@ -82,6 +82,9 @@ namespace ACE_OS { ACE_SCANDIR_COMPARATOR comparator); ACE_NAMESPACE_INLINE_FUNCTION + int alphasort (const void *, const void *); + + ACE_NAMESPACE_INLINE_FUNCTION void seekdir (ACE_DIR *, long loc); diff --git a/ACE/ace/OS_NS_dirent.inl b/ACE/ace/OS_NS_dirent.inl index a768a914887..56c5d5721aa 100644 --- a/ACE/ace/OS_NS_dirent.inl +++ b/ACE/ace/OS_NS_dirent.inl @@ -142,6 +142,17 @@ scandir (const ACE_TCHAR *dirname, #endif /* ACE_HAS_SCANDIR */ } +ACE_INLINE int +alphasort (const void *a, const void *b) +{ +#if defined (ACE_LACKS_ALPHASORT) + return ACE_OS::strcmp ((*(struct dirent **)a)->d_name, + (*(struct dirent **)b)->d_name); +#else + return ::alphasort (a, b); +#endif +} + ACE_INLINE void seekdir (ACE_DIR *d, long loc) { diff --git a/ACE/ace/config-lynxos.h b/ACE/ace/config-lynxos.h index f1d743c3640..9ec56c1236d 100644 --- a/ACE/ace/config-lynxos.h +++ b/ACE/ace/config-lynxos.h @@ -76,6 +76,7 @@ #define ACE_HAS_SYS_SOCKIO_H #define ACE_HAS_TERMIOS #define ACE_HAS_TIMEZONE_GETTIMEOFDAY +#define ACE_LACKS_ALPHASORT_PROTOTYPE #define ACE_LACKS_CONST_TIMESPEC_PTR #define ACE_LACKS_GETPGID #define ACE_LACKS_MADVISE diff --git a/ACE/ace/config-win32-common.h b/ACE/ace/config-win32-common.h index 7beabb8ded6..ff7a1979f80 100644 --- a/ACE/ace/config-win32-common.h +++ b/ACE/ace/config-win32-common.h @@ -565,6 +565,7 @@ #define ACE_LACKS_OPENDIR #define ACE_LACKS_CLOSEDIR #define ACE_LACKS_READDIR +#define ACE_LACKS_ALPHASORT #define ACE_LACKS_MKSTEMP #define ACE_LACKS_LSTAT // Looks like Win32 has a non-const swab function diff --git a/ACE/ace/os_include/os_dirent.h b/ACE/ace/os_include/os_dirent.h index 2f7e12327e7..0f4f6b5fe81 100644 --- a/ACE/ace/os_include/os_dirent.h +++ b/ACE/ace/os_include/os_dirent.h @@ -100,6 +100,10 @@ int scandir (const char *, int (*) (const void *, const void *)); #endif /* ACE_LACKS_SCANDIR_PROTOTYPE */ +#if defined (ACE_LACKS_ALPHASORT_PROTOTYPE) +int alphasort (const void *, const void *); +#endif /* ACE_LACKS_ALPHASORT_PROTOTYPE */ + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/ACE/tests/Dirent_Test.cpp b/ACE/tests/Dirent_Test.cpp index eaf2dbfd9c2..c564623aaef 100644 --- a/ACE/tests/Dirent_Test.cpp +++ b/ACE/tests/Dirent_Test.cpp @@ -71,7 +71,7 @@ selector (const ACE_DIRENT *d) static int comparator (const ACE_DIRENT **d1, const ACE_DIRENT **d2) { - return ACE_OS::strcmp ((*d1)->d_name, (*d2)->d_name); + return ACE_OS::alphasort (d1, d2); } } /* extern "C" */ |