diff options
Diffstat (limited to 'libiberty')
-rw-r--r-- | libiberty/ChangeLog | 8 | ||||
-rw-r--r-- | libiberty/Makefile.in | 28 | ||||
-rw-r--r-- | libiberty/ternary.c | 157 |
3 files changed, 15 insertions, 178 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 30e4b4e..c1ef6d1 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,11 @@ +2007-07-25 Ben Elliston <bje@au.ibm.com> + + * Makefile.in (CFILES): Remove ternary.c. + (REQUIRED_OFILES): Remove ./ternary.o. + (INSTALLED_HEADERS): Remove ternary.h. + (ternary.o): Remove. + * ternary.c: Remove. + 2007-07-23 DJ Delorie <dj@redhat.com> * argv.c (writeargv): Fix typo in inline documentation. diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in index 1eb5581..3b99f40 100644 --- a/libiberty/Makefile.in +++ b/libiberty/Makefile.in @@ -1,7 +1,9 @@ +# Makefile for the libiberty library. +# Originally written by K. Richard Pixley <rich@cygnus.com>. # -# Makefile -# Copyright (C) 1990, 91-99, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 -# Free Software Foundation +# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software +# Foundation # # This file is part of the libiberty library. # Libiberty is free software; you can redistribute it and/or @@ -18,13 +20,6 @@ # License along with libiberty; see the file COPYING.LIB. If not, # write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, # Boston, MA 02110-1301, USA. -# - -# This file was written by K. Richard Pixley <rich@cygnus.com>. - -# -# Makefile for libiberty directory -# libiberty_topdir = @libiberty_topdir@ srcdir = @srcdir@ @@ -152,7 +147,7 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \ splay-tree.c stpcpy.c stpncpy.c strcasecmp.c strchr.c strdup.c \ strerror.c strncasecmp.c strncmp.c strrchr.c strsignal.c \ strstr.c strtod.c strtol.c strtoul.c strndup.c strverscmp.c \ - ternary.c tmpnam.c \ + tmpnam.c \ unlink-if-ordinary.c \ vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \ waitpid.c \ @@ -176,7 +171,6 @@ REQUIRED_OFILES = ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o \ ./pex-common.o ./pex-one.o @pexecute@ \ ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o \ ./strsignal.o \ - ./ternary.o \ ./unlink-if-ordinary.o \ ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o \ ./xstrerror.o ./xstrndup.o @@ -219,8 +213,7 @@ INSTALLED_HEADERS = \ $(INCDIR)/partition.h \ $(INCDIR)/safe-ctype.h \ $(INCDIR)/sort.h \ - $(INCDIR)/splay-tree.h \ - $(INCDIR)/ternary.h + $(INCDIR)/splay-tree.h $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) -rm -f $(TARGETLIB) pic/$(TARGETLIB) @@ -1083,13 +1076,6 @@ $(CONFIGURED_OFILES): stamp-picdir else true; fi $(COMPILE.c) $(srcdir)/strverscmp.c $(OUTPUT_OPTION) -./ternary.o: $(srcdir)/ternary.c stamp-h $(INCDIR)/ansidecl.h \ - $(INCDIR)/libiberty.h $(INCDIR)/ternary.h - if [ x"$(PICFLAG)" != x ]; then \ - $(COMPILE.c) $(PICFLAG) $(srcdir)/ternary.c -o pic/$@; \ - else true; fi - $(COMPILE.c) $(srcdir)/ternary.c $(OUTPUT_OPTION) - ./tmpnam.o: $(srcdir)/tmpnam.c if [ x"$(PICFLAG)" != x ]; then \ $(COMPILE.c) $(PICFLAG) $(srcdir)/tmpnam.c -o pic/$@; \ diff --git a/libiberty/ternary.c b/libiberty/ternary.c deleted file mode 100644 index 8fc561a..0000000 --- a/libiberty/ternary.c +++ /dev/null @@ -1,157 +0,0 @@ -/* ternary.c - Ternary Search Trees - Copyright (C) 2001 Free Software Foundation, Inc. - - Contributed by Daniel Berlin (dan@cgsoftware.com) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, - USA. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif - -#include <stdio.h> - -#include "libiberty.h" -#include "ternary.h" - -/* Non-recursive so we don't waste stack space/time on large - insertions. */ - -PTR -ternary_insert (ternary_tree *root, const char *s, PTR data, int replace) -{ - int diff; - ternary_tree curr, *pcurr; - - /* Start at the root. */ - pcurr = root; - /* Loop until we find the right position */ - while ((curr = *pcurr)) - { - /* Calculate the difference */ - diff = *s - curr->splitchar; - /* Handle current char equal to node splitchar */ - if (diff == 0) - { - /* Handle the case of a string we already have */ - if (*s++ == 0) - { - if (replace) - curr->eqkid = (ternary_tree) data; - return (PTR) curr->eqkid; - } - pcurr = &(curr->eqkid); - } - /* Handle current char less than node splitchar */ - else if (diff < 0) - { - pcurr = &(curr->lokid); - } - /* Handle current char greater than node splitchar */ - else - { - pcurr = &(curr->hikid); - } - } - /* It's not a duplicate string, and we should insert what's left of - the string, into the tree rooted at curr */ - for (;;) - { - /* Allocate the memory for the node, and fill it in */ - *pcurr = XNEW (ternary_node); - curr = *pcurr; - curr->splitchar = *s; - curr->lokid = curr->hikid = curr->eqkid = 0; - - /* Place nodes until we hit the end of the string. - When we hit it, place the data in the right place, and - return. - */ - if (*s++ == 0) - { - curr->eqkid = (ternary_tree) data; - return data; - } - pcurr = &(curr->eqkid); - } -} - -/* Free the ternary search tree rooted at p. */ -void -ternary_cleanup (ternary_tree p) -{ - if (p) - { - ternary_cleanup (p->lokid); - if (p->splitchar) - ternary_cleanup (p->eqkid); - ternary_cleanup (p->hikid); - free (p); - } -} - -/* Non-recursive find of a string in the ternary tree */ -PTR -ternary_search (const ternary_node *p, const char *s) -{ - const ternary_node *curr; - int diff, spchar; - spchar = *s; - curr = p; - /* Loop while we haven't hit a NULL node or returned */ - while (curr) - { - /* Calculate the difference */ - diff = spchar - curr->splitchar; - /* Handle the equal case */ - if (diff == 0) - { - if (spchar == 0) - return (PTR) curr->eqkid; - spchar = *++s; - curr = curr->eqkid; - } - /* Handle the less than case */ - else if (diff < 0) - curr = curr->lokid; - /* All that's left is greater than */ - else - curr = curr->hikid; - } - return NULL; -} - -/* For those who care, the recursive version of the search. Useful if - you want a starting point for pmsearch or nearsearch. */ -static PTR -ternary_recursivesearch (const ternary_node *p, const char *s) -{ - if (!p) - return 0; - if (*s < p->splitchar) - return ternary_recursivesearch (p->lokid, s); - else if (*s > p->splitchar) - return ternary_recursivesearch (p->hikid, s); - else - { - if (*s == 0) - return (PTR) p->eqkid; - return ternary_recursivesearch (p->eqkid, ++s); - } -} |