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
	 Luke Howard
					Luke Howard