Add tsearch and friends, and a test program

tsearch is missing from windows. use the netbsd version as it's
license-compatible.
This commit is contained in:
Derrick Brashear
2011-04-08 15:06:01 +01:00
committed by Simon Wilkinson
parent 3d36172090
commit 2a32bf67f0
9 changed files with 525 additions and 4 deletions

42
lib/roken/search.hin Normal file
View File

@@ -0,0 +1,42 @@
/*-
* Written by J.T. Conklin <jtc@netbsd.org>
* Public domain.
*
* $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $
*/
#ifndef _rk_SEARCH_H_
#define _rk_SEARCH_H_ 1
#ifndef ROKEN_LIB_FUNCTION
#ifdef _WIN32
#define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL __cdecl
#else
#define ROKEN_LIB_FUNCTION
#define ROKEN_LIB_CALL
#endif
#endif
#include <sys/cdefs.h>
#include <sys/types.h>
typedef enum {
preorder,
postorder,
endorder,
leaf
} VISIT;
ROKEN_CPP_START
ROKEN_LIB_FUNCTION void * ROKEN_LIB_CALL rk_tdelete(const void * __restrict, void ** __restrict,
int (*)(const void *, const void *));
ROKEN_LIB_FUNCTION void * ROKEN_LIB_CALL rk_tfind(const void *, void * const *,
int (*)(const void *, const void *));
ROKEN_LIB_FUNCTION void * ROKEN_LIB_CALL rk_tsearch(const void *, void **, int (*)(const void *, const void *));
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL rk_twalk(const void *, void (*)(const void *, VISIT, int));
ROKEN_CPP_END
#endif /* !_rk_SEARCH_H_ */