Merge branch 'master' into lukeh/moonshot
This commit is contained in:
@@ -198,7 +198,7 @@ nodist_include_HEADERS = roken.h
|
||||
rokenincludedir = $(includedir)/roken
|
||||
nodist_rokeninclude_HEADERS = $(XHEADERS)
|
||||
|
||||
man_MANS = getarg.3 parse_time.3 rtbl.3 ecalloc.3 tsearch.3
|
||||
man_MANS = getarg.3 parse_time.3 rtbl.3 ecalloc.3
|
||||
|
||||
SUFFIXES += .hin
|
||||
.hin.h:
|
||||
|
@@ -1,138 +0,0 @@
|
||||
.\" $NetBSD$
|
||||
.\" Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. The name of the author may not be used to endorse or promote products
|
||||
.\" derived from this software without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" OpenBSD: tsearch.3,v 1.2 1998/06/21 22:13:49 millert Exp
|
||||
.\" $FreeBSD: src/lib/libc/stdlib/tsearch.3,v 1.15 2006/06/23 13:36:33 keramida Exp $
|
||||
.\" $DragonFly: src/lib/libc/stdlib/tsearch.c,v 1.6 2005/11/24 17:18:30 swildner Exp $
|
||||
.\"
|
||||
.Dd June 15, 1997
|
||||
.Dt TSEARCH 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm tsearch ,
|
||||
.Nm tfind ,
|
||||
.Nm tdelete ,
|
||||
.Nm twalk
|
||||
.Nd manipulate binary search trees
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In search.h
|
||||
.Ft void *
|
||||
.Fn tdelete "const void * restrict key" "void ** restrict rootp" "int (*compar) (const void *, const void *)"
|
||||
.Ft void *
|
||||
.Fn tfind "const void *key" "void * const *rootp" "int (*compar) (const void *, const void *)"
|
||||
.Ft void *
|
||||
.Fn tsearch "const void *key" "void **rootp" "int (*compar) (const void *, const void *)"
|
||||
.Ft void
|
||||
.Fn twalk "const void *root" "void (*action) (const void *, VISIT, int)"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn tdelete ,
|
||||
.Fn tfind ,
|
||||
.Fn tsearch ,
|
||||
and
|
||||
.Fn twalk
|
||||
functions manage binary search trees based on algorithms T and D
|
||||
from Knuth (6.2.2).
|
||||
The comparison function passed in by
|
||||
the user has the same style of return values as
|
||||
.Xr strcmp 3 .
|
||||
.Pp
|
||||
The
|
||||
.Fn tfind
|
||||
function
|
||||
searches for the datum matched by the argument
|
||||
.Fa key
|
||||
in the binary tree rooted at
|
||||
.Fa rootp ,
|
||||
returning a pointer to the datum if it is found and NULL
|
||||
if it is not.
|
||||
.Pp
|
||||
The
|
||||
.Fn tsearch
|
||||
function
|
||||
is identical to
|
||||
.Fn tfind
|
||||
except that if no match is found,
|
||||
.Fa key
|
||||
is inserted into the tree and a pointer to it is returned.
|
||||
If
|
||||
.Fa rootp
|
||||
points to a NULL value a new binary search tree is created.
|
||||
.Pp
|
||||
The
|
||||
.Fn tdelete
|
||||
function
|
||||
deletes a node from the specified binary search tree and returns
|
||||
a pointer to the parent of the node to be deleted.
|
||||
It takes the same arguments as
|
||||
.Fn tfind
|
||||
and
|
||||
.Fn tsearch .
|
||||
If the node to be deleted is the root of the binary search tree,
|
||||
.Fa rootp
|
||||
will be adjusted.
|
||||
.Pp
|
||||
The
|
||||
.Fn twalk
|
||||
function
|
||||
walks the binary search tree rooted in
|
||||
.Fa root
|
||||
and calls the function
|
||||
.Fa action
|
||||
on each node.
|
||||
The
|
||||
.Fa action
|
||||
function
|
||||
is called with three arguments: a pointer to the current node,
|
||||
a value from the enum
|
||||
.Sy "typedef enum { preorder, postorder, endorder, leaf } VISIT;"
|
||||
specifying the traversal type, and a node level (where level
|
||||
zero is the root of the tree).
|
||||
.Sh RETURN VALUES
|
||||
The
|
||||
.Fn tsearch
|
||||
function returns NULL if allocation of a new node fails (usually
|
||||
due to a lack of free memory).
|
||||
.Pp
|
||||
The
|
||||
.Fn tfind ,
|
||||
.Fn tsearch ,
|
||||
and
|
||||
.Fn tdelete
|
||||
functions
|
||||
return NULL if
|
||||
.Fa rootp
|
||||
is NULL or the datum cannot be found.
|
||||
.Pp
|
||||
The
|
||||
.Fn twalk
|
||||
function returns no value.
|
||||
.Sh SEE ALSO
|
||||
.Xr bsearch 3 ,
|
||||
.Xr hsearch 3 ,
|
||||
.Xr lsearch 3
|
@@ -245,6 +245,11 @@ for mech in krb5 spnego; do
|
||||
--mech-type=$mech host@lucid.test.h5l.se || \
|
||||
{ eval "$testfailed"; }
|
||||
|
||||
echo "${mech}: acceptor_identity positive (prefix)" ; > messages.log
|
||||
${context} --gsskrb5-acceptor-identity=FILE:${keytabfile}.new \
|
||||
--mech-type=$mech host@lucid.test.h5l.se || \
|
||||
{ eval "$testfailed"; }
|
||||
|
||||
echo "${mech}: acceptor_identity negative" ; > messages.log
|
||||
${context} --gsskrb5-acceptor-identity=${keytabfile}.foo \
|
||||
--mech-type=$mech host@lucid.test.h5l.se 2>/dev/null && \
|
||||
|
Reference in New Issue
Block a user