home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / include / xp_qsort.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  1.5 KB  |  49 lines

  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19.  
  20. /* We need this because Solaris' version of qsort is broken and
  21.  * causes array bounds reads.
  22.  */
  23.  
  24. #ifndef xp_qsort_h___
  25. #define xp_qsort_h___
  26.  
  27. /* Had to pull the following define out of xp_core.h
  28.  * to avoid including xp_core.h.
  29.  * That brought in too many header file dependencies.
  30.  */
  31. #if defined(__cplusplus)
  32. extern "C" {
  33. #endif
  34.  
  35. #if defined(SOLARIS) || defined(XP_MAC)
  36. extern void XP_QSORT(void *, size_t, size_t,
  37.                      int (*)(const void *, const void *));
  38. #elif defined(XP_OS2)
  39. #define XP_QSORT(base, nel, width, compar) qsort((base),(nel),(width),(int(_Optlink*)(const void*,const void*))(compar))
  40. #else
  41. #define XP_QSORT(base, nel, width, compar) qsort((base),(nel),(width),(compar))
  42. #endif
  43.  
  44. #if defined(__cplusplus)
  45. }
  46. #endif
  47.  
  48. #endif /* xp_qsort_h___ */
  49.