OSSP CVS Repository

ossp - Check-in [3066]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 3066
Date: 2003-Jan-06 13:10:57 (local)
2003-Jan-06 12:10:57 (UTC)
User:rse
Branch:
Comment: cleanup source tree
Tickets:
Inspections:
Files:
ossp-pkg/act/.cvsignore      1.2 -> 1.3     1 inserted, 0 deleted
ossp-pkg/act/Makefile.in      1.6 -> 1.7     28 inserted, 11 deleted
ossp-pkg/act/README      1.5 -> 1.6     46 inserted, 21 deleted
ossp-pkg/act/TODO      1.4 -> 1.5     27 inserted, 7 deleted
ossp-pkg/act/aclocal.m4      1.2 -> 1.3     31 inserted, 3 deleted
ossp-pkg/act/act.h.in      1.6 -> 1.7     8 inserted, 7 deleted
ossp-pkg/act/act.pod      added-> 1.3
ossp-pkg/act/act_cfg.h.in      1.2->removed
ossp-pkg/act/act_chain.h      1.1 -> 1.2     7 inserted, 6 deleted
ossp-pkg/act/act_ctx.c      1.6 -> 1.7     9 inserted, 8 deleted
ossp-pkg/act/act_ctx.h      1.6 -> 1.7     6 inserted, 5 deleted
ossp-pkg/act/act_ds.c      1.1 -> 1.2     6 inserted, 5 deleted
ossp-pkg/act/act_ds.h      1.1 -> 1.2     8 inserted, 7 deleted
ossp-pkg/act/act_grid.c      1.9 -> 1.10     29 inserted, 28 deleted
ossp-pkg/act/act_grid.h      1.5 -> 1.6     6 inserted, 5 deleted
ossp-pkg/act/act_hash.c      1.7 -> 1.8     6 inserted, 5 deleted
ossp-pkg/act/act_hash.h      1.6 -> 1.7     8 inserted, 7 deleted
ossp-pkg/act/act_hash_fct.c      1.28 -> 1.29     95 inserted, 94 deleted
ossp-pkg/act/act_hash_lh.c      1.10 -> 1.11     42 inserted, 41 deleted
ossp-pkg/act/act_hash_oh.c      1.6 -> 1.7     14 inserted, 13 deleted
ossp-pkg/act/act_lib.c      1.5 -> 1.6     6 inserted, 5 deleted
ossp-pkg/act/act_lib.h      added-> 1.2
ossp-pkg/act/act_mem.c      1.10 -> 1.11     14 inserted, 13 deleted
ossp-pkg/act/act_mem.h      1.7 -> 1.8     6 inserted, 5 deleted
ossp-pkg/act/act_p.h.in      1.8 -> 1.9     7 inserted, 6 deleted
ossp-pkg/act/act_str.c      1.3 -> 1.4     9 inserted, 8 deleted
ossp-pkg/act/act_test.c      1.4 -> 1.5     31 inserted, 3 deleted
ossp-pkg/act/act_vers.c      added-> 1.4
ossp-pkg/act/configure.ac      1.1 -> 1.2     35 inserted, 14 deleted
ossp-pkg/act/devtool      1.1 -> 1.2     1 inserted, 1 deleted
ossp-pkg/act/devtool.conf      1.2 -> 1.3     38 inserted, 8 deleted
ossp-pkg/act/devtool.func      1.1 -> 1.2     2 inserted, 1 deleted

ossp-pkg/act/.cvsignore 1.2 -> 1.3

--- .cvsignore   2002/01/18 18:13:05     1.2
+++ .cvsignore   2003/01/06 12:10:57     1.3
@@ -3,6 +3,7 @@
 config.cache
 config.status
 act_cfg.h
+act_cfg.h.in
 act.h
 act_p.h
 act_test


ossp-pkg/act/Makefile.in 1.6 -> 1.7

--- Makefile.in  2002/01/17 20:19:57     1.6
+++ Makefile.in  2003/01/06 12:10:57     1.7
@@ -1,5 +1,30 @@
 ##
-##  ACT Makefile
+##  OSSP act - Abstract Container Types
+##  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+##
+##  This file is part of OSSP act, an abstract container type library
+##  which can be found at http://www.ossp.org/pkg/lib/act/.
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS 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.
+##
+##  Makefile.in: make(1) build procedure
 ##
 
 CC      = @CC@
@@ -13,18 +38,10 @@
 
 PRE     = act_p.h
 LIB     = libact.a
-SRC     = act_mem.c act_ctx.c act_str.c act_grid.c act_lib.c act_hash.c act_hash_fct.c act_hash_oh.c act_hash_lh.c 
-OBJ     = act_mem.o act_ctx.o act_str.o act_grid.o act_lib.o act_hash.o act_hash_fct.o act_hash_oh.o act_hash_lh.o 
+SRC     = act_mem.c act_ctx.c act_str.c act_grid.c act_lib.c act_hash.c act_hash_fct.c act_hash_oh.c act_hash_lh.c
+OBJ     = act_mem.o act_ctx.o act_str.o act_grid.o act_lib.o act_hash.o act_hash_fct.o act_hash_oh.o act_hash_lh.o
 TST     = act_test
 
-_VERSION_FILE = \
-        $(S)act_vers.c
-
-_VERSION = \
-        $(SHTOOL) version -l c -n 'Act' -p act_int_ $$OPT $(_VERSION_FILE);\
-        V=`$(SHTOOL) version -l c -d long $(_VERSION_FILE)`;\
-        $(SED) -e "s/Version .*(.*)/Version $$V/g" <README >README.n && mv README.n README
-
 all: $(PRE) $(LIB) $(TST)
 
 .c.o:


ossp-pkg/act/README 1.5 -> 1.6

--- README       2002/01/02 17:05:53     1.5
+++ README       2003/01/06 12:10:57     1.6
@@ -1,22 +1,47 @@
-      _        _   
-     / \   ___| |_ 
-    / _ \ / __| __|
-   / ___ \ (__| |_ 
-  /_/   \_\___|\__|
-                 
-  Act -- Abstract Container Types
-
-  A lower level data structure library for abstract container types.
-  Copyright (c) 1999-2002 Ralf S. Engelschall, All Rights Reserved. 
-
-           "`Reuse an expert's code' is the right advice for most people. 
-            But it's a useless advice for the experts writing the code 
-            in the first place.               -- Dan J. Bernstein
-
-  Design Goals:
-  o allows low-level adjustments of data structures
-  o uses a general contexts concept (shared memory support, user attachments)
-  o is thread-safe + reentrant ?
-  o allows the use of arbitrary user key/values
-  o allows key/values to be loans or gifts
+   _        ___  ____ ____  ____              _
+  |_|_ _   / _ \/ ___/ ___||  _ \   __ _  ___| |_
+  _|_||_| | | | \___ \___ \| |_) | / _` |/ __| __|
+ |_||_|_| | |_| |___) |__) |  __/ | (_| | (__| |_
+  |_|_|_|  \___/|____/____/|_|     \__,_|\___|\__|
+
+  OSSP act - Abstract Container Types
+  Version 0.0.0 (06-Jan-2003)
+
+  ABSTRACT
+
+  OSSP act is a lower level data structure library for abstract
+  container types. [...]
+
+  COPYRIGHT AND LICENSE
+
+  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+
+  This file is part of OSSP act, an abstract container type library
+  which can be found at http://www.ossp.org/pkg/lib/act/.
+
+  Permission to use, copy, modify, and distribute this software for
+  any purpose with or without fee is hereby granted, provided that
+  the above copyright notice and this permission notice appear in all
+  copies.
+
+  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+  CONTRIBUTORS 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.
+
+  HOME AND DOCUMENTATION
+
+  The documentation and latest release can be found on
+
+  o http://www.ossp.org/pkg/lib/act/
+  o  ftp://ftp.ossp.org/pkg/lib/act/
 


ossp-pkg/act/TODO 1.4 -> 1.5

--- TODO 2002/01/18 18:17:55     1.4
+++ TODO 2003/01/06 12:10:57     1.5
@@ -1,11 +1,31 @@
+   _        ___  ____ ____  ____              _
+  |_|_ _   / _ \/ ___/ ___||  _ \   __ _  ___| |_
+  _|_||_| | | | \___ \___ \| |_) | / _` |/ __| __|
+ |_||_|_| | |_| |___) |__) |  __/ | (_| | (__| |_
+  |_|_|_|  \___/|____/____/|_|     \__,_|\___|\__|
 
-- es sollte custom/domain-specific hash functions geben,
-  die wissen, welche Keys reinkommen und auf diese
-  spezzialisiert sind!
-  Beispielsweise sollte bei Key=Pathname nur auf
-  die letzten Bytes gehasht werden, etc.
+  OSSP act - Abstract Container Types
 
-- directory shrink?
+  TODO
 
-- heap, pqueue?
+  - es sollte custom/domain-specific hash functions geben,
+    die wissen, welche Keys reinkommen und auf diese
+    spezzialisiert sind!
+    Beispielsweise sollte bei Key=Pathname nur auf
+    die letzten Bytes gehasht werden, etc.
+
+  - directory shrink?
+
+  - heap, pqueue?
+
+             "`Reuse an expert's code' is the right advice for most people.
+              But it's a useless advice for the experts writing the code
+              in the first place.               -- Dan J. Bernstein
+
+    Design Goals:
+    o allows low-level adjustments of data structures
+    o uses a general contexts concept (shared memory support, user attachments)
+    o is thread-safe + reentrant ?
+    o allows the use of arbitrary user key/values
+    o allows key/values to be loans or gifts
 


ossp-pkg/act/aclocal.m4 1.2 -> 1.3

--- aclocal.m4   2002/01/17 20:19:57     1.2
+++ aclocal.m4   2003/01/06 12:10:57     1.3
@@ -1,10 +1,38 @@
+dnl ##
+dnl ##  OSSP act - Abstract Container Types
+dnl ##  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+dnl ##  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+dnl ##
+dnl ##  This file is part of OSSP act, a abstract container type library
+dnl ##  which can be found at http://www.ossp.org/pkg/lib/act/.
+dnl ##
+dnl ##  Permission to use, copy, modify, and distribute this software for
+dnl ##  any purpose with or without fee is hereby granted, provided that
+dnl ##  the above copyright notice and this permission notice appear in all
+dnl ##  copies.
+dnl ##
+dnl ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+dnl ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+dnl ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+dnl ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+dnl ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+dnl ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+dnl ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+dnl ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+dnl ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+dnl ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+dnl ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+dnl ##  SUCH DAMAGE.
+dnl ##
+dnl ##  aclocal.m4: Autoconf macros
+dnl ##
 
 dnl ##
 dnl ##  Support for Configuration Headers
 dnl ##
 dnl ##  configure.in:
-dnl ##    AC_HEADLINE(<short-name>, <long-name>, 
-dnl ##                <vers-var>, <vers-file>, 
+dnl ##    AC_HEADLINE(<short-name>, <long-name>,
+dnl ##                <vers-var>, <vers-file>,
 dnl ##                <copyright>)
 dnl ##
 
@@ -27,7 +55,7 @@
     #   find out package version
     $3_STR="`$ac_shtool version -l c -d long $ac_srcdir/$4`"
     AC_SUBST($3_STR)
- 
+
     #   friendly header ;)
     echo "Configuring ${TB}$1${TN} ($2), Version ${TB}${$3_STR}${TN}"
     echo "$5"


ossp-pkg/act/act.h.in 1.6 -> 1.7

--- act.h.in     2002/01/18 17:30:05     1.6
+++ act.h.in     2003/01/06 12:10:57     1.7
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -63,7 +64,7 @@
 #define FALSE 0
 #endif
 #ifndef TRUE
-/* Do not depend on the exact TRUE value, i.e. never do: x == TRUE. 
+/* Do not depend on the exact TRUE value, i.e. never do: x == TRUE.
    Use TRUE only for return or assignment.  */
 #define TRUE  !FALSE
 #endif
@@ -76,7 +77,7 @@
 #define NUL '\0'
 #endif
 
-/* 
+/*
  *  Internal Bitmask Calculation Macros
  *  (Notice: bit positions are counted n...0, i.e. lowest bit is position 0)
  */


ossp-pkg/act/act.pod -> 1.3

*** /dev/null    Thu Oct 28 07:45:33 2021
--- -    Thu Oct 28 07:51:55 2021
***************
*** 0 ****
--- 1,241 ----
+ ##
+ ##  OSSP act - Abstract Container Types
+ ##  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+ ##  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+ ##
+ ##  This file is part of OSSP act, an abstract container type library
+ ##  which can be found at http://www.ossp.org/pkg/lib/act/.
+ ##
+ ##  Permission to use, copy, modify, and distribute this software for
+ ##  any purpose with or without fee is hereby granted, provided that
+ ##  the above copyright notice and this permission notice appear in all
+ ##  copies.
+ ##
+ ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ ##  CONTRIBUTORS 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.
+ ##
+ ##  act.pod: manual page
+ ##
+ 
+ =pod
+ 
+ =head1 NAME
+ 
+ B<OSSP act> -- B<A>bstracted B<C>ontainer B<T>ypes
+ 
+ =head1 GLOBAL SYNOPSIS
+ 
+ The following synopsis applies to all container types.
+ 
+ B<CONTAINER TYPE CONTEXT OBJECTS>
+ 
+ =over 4
+ 
+ =item act_ctx_t I<ctx>;
+ 
+ Declare a context object I<ctx> for container type I<ds>.
+ 
+ =item act_ctx_t B<act_ctx_new>(void);
+ 
+ Create a new context object, initialized
+ with default context information.
+ 
+ =item act_ctx_t B<act_ctx_dup>(act_ctx_t I<ctx>);
+ 
+ Duplicate context object I<ctx>.
+ 
+ =item void B<act_ctx_reset>(act_ctx_t I<ctx>);
+ 
+ Reset object to default ingredients.
+ 
+ =item long B<act_ctx_ctrl>(act_ctx_t I<ctx>, I<cmd>, ...)
+ 
+ Control or query various ingredients of context object I<ctx> by sending it
+ the command I<cmd>. The following I<cmd>s exists for all container types: ...
+ 
+ =item void B<act_ctx_free>(act_ctx_t I<ctx>);
+ 
+ Destroy the context object I<ctx>.
+ 
+ =back
+ 
+ B<CONTAINER TYPE OBJECTS>
+ 
+ =over 4
+ 
+ =item I<ds>_t I<obj>;
+ 
+ Declare an object I<obj> of a container type I<ds>.
+ 
+ =item I<ds>_t I<ds>_B<new>(I<ds>_ctx_t I<ctx>, ...);
+ 
+ Create a new (empty) object of container type I<ds>. Usually one also
+ specifies the type or size of the to be contained data.
+ 
+ =item I<ds>_ctx_t I<ds>_B<dup>(I<ds>_t I<obj>);
+ 
+ Duplicate object I<ctx>.
+ 
+ =item void I<ds>_B<reset>(I<ds>_t I<obj>);
+ 
+ Clean out the object.
+ 
+ =item I<ds>_t I<ds>_B<s2i>(I<ds>_t *I<obj>, unsigned char **I<sbuf>, long I<slen>);
+ 
+ Create a new (initialized) object of container type I<ds> in object I<obj>
+ from an object stream (previously created with a I<ds>_B<i2s>) under I<sbuf>
+ with len I<slen>. The pointer I<sbuf> is incremented by the number of actually
+ read bytes.
+ 
+ =item long I<ds>_B<i2s>(I<ds>_t I<obj>, unsigned char **I<sbuf>);
+ 
+ Streamline container type object I<obj> into an object stream under I<sbuf>.
+ Returns the number of written number bytes and increments I<sbuf> by this
+ number.
+ 
+ =item long I<ds>_B<ctrl>(I<ds>_t I<obj>, I<cmd>, ...)
+ 
+ Control or query various ingredients of container object I<obj> by sending it
+ the command I<cmd>. The following I<cmd>s exists for all container types:
+ I<DS>_C<CTRL_ELEMENTS> (peeks the number of contained data elements),
+ I<DS>_C<CTRL_BYTES> (peeks the total number of memory bytes the object is
+ in size), I<DS>_C<CTRL_FUNC_MALLOC> (sets the malloc(3) function to use),
+ I<DS>_C<CTRL_FUNC_REALLOC> (sets the realloc(3) function to use),
+ I<DS>_C<CTRL_FUNC_FREE> (sets the free(3) function to use),
+ I<DS>_C<CTRL_FUNC_ERROR> (sets the fatal error function to use).
+ 
+ =item I<type> I<ds>_I<operation>(I<ds>_t I<obj>, [ I<...> ]);
+ 
+ Perform I<operation> on object I<obj> of container type I<ds>.
+ The available I<operation>s are dependent on the container type itself.
+ Read below for more details.
+ 
+ =item void I<ds>_B<free>(I<ds>_t I<obj>);
+ 
+ Destroy the object I<obj> of container type I<ds>.
+ 
+ =back
+ 
+ =head1 OVERVIEW
+ 
+ The following container type data structures exists:
+ 
+ =over 4
+ 
+ =item B<bits> - Bit Vector (Bit Mask)
+ 
+ A bit vector type implemented by an array of bits. The elements are of type
+ B<unsigned char:1>. The usual use case is a mathematical set or a feature set
+ mask.
+ 
+ Specific Operations: B<insert>(k,v), B<delete>(k), B<lookup>(k), B<iterate>.
+ 
+ =item B<buf> - Byte Buffer (Octet Stream)
+ 
+ A buffer type implemented by an array of bytes. The elements are of type
+ B<unsigned char>. The usual use case is an I/O buffer or the underlaying
+ object of a string type.
+ 
+ Specific Operations: B<resize>, B<seek>, B<lookup>, B<insert>, B<delete>, B<iterate>.
+ 
+ =item B<array> - Array
+ 
+ A generic array type implemented by a pointer array. The elements are
+ of type B<void *>. The usual use case is for stroring arbitrary data where
+ elements are accessed by index positions and where more read-only operations
+ are performed than read/write operations.
+ Specific Operations: B<seek>, B<insert>, B<delete>, B<lookup>, B<iterate>
+ 
+ =item B<list> - Linear List
+ 
+ This is a generic list type implemented by lineary chained nodes. The elements
+ are of type B<void *>. The usual use cases are sorted list, queue and stack
+ and where read/write operations occur often.
+ Specific Operations: B<seek>, B<lookup>, B<insert>, B<delete>, B<iterate>
+ 
+ =item B<tree> - Hierarchical Tree
+ 
+ This is a generic tree type implemented by hierachically chained nodes. The
+ elements are of type B<void *>. The usual use case is for storing hierachical
+ structures.
+ Specific Operations: B<seek>, B<lookup>, B<insert>, B<delete>, B<iterate>
+ 
+ =item B<hash> - Hashing Table
+ 
+ This is a generic table type implemented by a hash. The elements are of type
+ B<void *>. The usual use case is for storing elements which are accessed by a
+ unique key and where lookup operation occur more often than store operations.
+ Specific Operations: B<resize>, B<insert>, B<lookup>, B<delete>, B<iterate>
+ 
+ =back
+ 
+ =head1 DESCRIPTION
+ 
+ =head2 Bit Vector (bits)
+ 
+ B<Standard Operations>
+ 
+ =over 4
+ 
+ =item bits_t B<bits_new>(unsigned int I<num>);
+ 
+ Create a new bit vector with I<num> initial bits.
+ 
+ =item bits_t B<bits_s2i>(bits_t *I<obj>, unsigned char **I<sbuf>, long I<slen>);
+ 
+ Create bit vector object in I<obj> from I<sbuf>/I<slen>.
+ 
+ =item long B<bits_i2s>(bits_t I<obj>, unsigned char **I<sbuf>);
+ 
+ Streamline I<obj> into I<sbuf>.
+ 
+ =item long B<bits_ctrl>(bits_t I<obj>, I<cmd>, ...)
+ 
+ Send I<cmd> to bit vector object I<obj>.
+ 
+ =item void B<bits_free>(bits_t I<obj>);
+ 
+ Destroy the bit vector object I<obj>.
+ 
+ =back
+ 
+ B<Container Type Specific Operations>
+ 
+ =over 4
+ 
+ =item int B<bits_set>(bits_t I<obj>, I<num>);
+ 
+ Set the I<num> bit.
+ 
+ =item int B<bits_clear>(bits_t I<obj>, I<num>);
+ 
+ Clear the I<num> bit.
+ 
+ =item int B<bits_isset>(bits_t I<obj>, I<num>);
+ 
+ Test whether the I<num> bit is set.
+ 
+ =back
+ 
+ =head2 Byte Buffer (buf)
+ 
+ =head2 Array (array)
+ 
+ =head2 Linear List (list)
+ 
+ =head2 Hierarchical Tree (tree)
+ 
+ =head2 Hash Table (hash)
+ 
+ =cut
+ 


ossp-pkg/act/act_cfg.h.in 1.2 -> 1.3



ossp-pkg/act/act_chain.h 1.1 -> 1.2

--- act_chain.h  2002/01/19 13:12:03     1.1
+++ act_chain.h  2003/01/06 12:10:57     1.2
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -68,7 +69,7 @@
          ACT_LIST_FIRST((hp)) = (ep); } while (0)
 #define ACT_LIST_INSERT_AFTER(ap, ep, field) \
     do { ACT_LIST_NEXT((ep), field) = ACT_LIST_NEXT((ap), field); \
-         ACT_LIST_NEXT((ap), field) = (ep); } while (0) 
+         ACT_LIST_NEXT((ap), field) = (ep); } while (0)
 
 /* remove */
 #define ACT_LIST_REMOVE_HEAD(hp, field) \


ossp-pkg/act/act_ctx.c 1.6 -> 1.7

--- act_ctx.c    2002/01/02 17:05:53     1.6
+++ act_ctx.c    2003/01/06 12:10:57     1.7
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -84,7 +85,7 @@
     return ctx;
 }
 
-/* duplicate a new context structure 
+/* duplicate a new context structure
    (optionally with the help of a template) */
 act_ctx_t *act_ctx_dup(act_ctx_t *ctx, act_ctx_t *ctx_template)
 {
@@ -101,14 +102,14 @@
         ctx_from = ctx;
     if ((ctx_new = (act_ctx_t *)act_mem_alloc(sizeof(struct act_ctx_st))) == NULL)
         return NULL;
-    act_mem_move(ctx_new->c_entry, ctx_from->c_entry, 
+    act_mem_move(ctx_new->c_entry, ctx_from->c_entry,
                  sizeof(act_ctx_entry_t)*(ACT_CTX_ENTRY_MAX+1));
     if (ctx_template != NULL) {
         for (i = 0; i <= ACT_CTX_ENTRY_MAX; i++) {
             ACT_CTX_ID_SPLIT(sp, lk, ty, no, ctx_new->c_entry[i].e_id);
             if (!lk) {
                 ctx_new->c_entry[i].e_id = ctx->c_entry[i].e_id;
-                act_mem_move(&(ctx_new->c_entry[i].e_value), &(ctx->c_entry[i].e_value), 
+                act_mem_move(&(ctx_new->c_entry[i].e_value), &(ctx->c_entry[i].e_value),
                              sizeof(act_ctx_value_t));
             }
         }


ossp-pkg/act/act_ctx.h 1.6 -> 1.7

--- act_ctx.h    2002/01/02 17:05:53     1.6
+++ act_ctx.h    2003/01/06 12:10:57     1.7
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that


ossp-pkg/act/act_ds.c 1.1 -> 1.2

--- act_ds.c     2002/01/21 16:15:39     1.1
+++ act_ds.c     2003/01/06 12:10:57     1.2
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that


ossp-pkg/act/act_ds.h 1.1 -> 1.2

--- act_ds.h     2002/01/21 16:15:39     1.1
+++ act_ds.h     2003/01/06 12:10:57     1.2
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -29,7 +30,7 @@
 #ifndef __ACT_DS_H__
 #define __ACT_DS_H__
 
-/* the opaque data structure type */ 
+/* the opaque data structure type */
 struct act_ds_st;
 typedef struct act_ds_st act_ds_t;
 
@@ -59,7 +60,7 @@
 
 /* ---------------------------------------------------------------------------------- */
 
-typedef struct { 
+typedef struct {
     void   *ptr;
     size_t *len;
 } act_blob_t;


ossp-pkg/act/act_grid.c 1.9 -> 1.10

--- act_grid.c   2002/01/19 13:28:55     1.9
+++ act_grid.c   2003/01/06 12:10:57     1.10
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -32,7 +33,7 @@
  *  size objects. Inside OSSP act we have lots of those objects and
  *  if we would manage them directly through malloc(3) it would be to
  *  run-time expensive and waste too much total memory.
- *  
+ *
  *  It works by collecting together larger segments (act_grid_seg_t) of
  *  those fixed size objects (act_grid_tile_t) and linking them into
  *  a top-level grid structure (act_grid_t). The number of tiles in a
@@ -43,7 +44,7 @@
  *  arranged as a linar array after a linkage structure. The free tiles
  *  are remembered in a single linked list. So the grid in memory looks
  *  like this:
- *  
+ *
  *  -----BEGIN EMBEDDED OBJECT-----
  *  Content-type: application/fig
  *  Description: grid memory allocator memory architecture
@@ -115,11 +116,11 @@
 };
 
 /* create a grid segment [INTERNAL] */
-static act_rc_t 
+static act_rc_t
 act_grid_seg_create(
-    act_ctx_t *ctx, 
-    act_grid_seg_t **pseg, 
-    size_t tile_size, 
+    act_ctx_t *ctx,
+    act_grid_seg_t **pseg,
+    size_t tile_size,
     int tile_num)
 {
     size_t seg_top_size;
@@ -163,7 +164,7 @@
 act_rc_t
 act_grid_create(
     act_grid_t **pgrid,
-    act_ctx_t *ctx, 
+    act_ctx_t *ctx,
     size_t tile_size,
     int tile_num)
 {
@@ -175,7 +176,7 @@
     act_argcheck(ctx != NULL);
     act_argcheck(tile_size >= 1);
     act_argcheck(tile_num >= 1);
-    
+
     /* determine (aligned) sizes */
     tile_size = act_mem_align(tile_size);
 
@@ -204,13 +205,13 @@
 }
 
 /* destroy a grid */
-act_rc_t 
+act_rc_t
 act_grid_destroy(
     act_grid_t *grid)
 {
     act_grid_seg_t *seg;
     act_grid_seg_t *seg_last;
-    
+
     /* consistency checks */
     act_argcheck(grid != NULL);
 
@@ -284,9 +285,9 @@
 }
 
 /* find grid segment where tile is stored [INTERNAL] */
-static act_rc_t 
+static act_rc_t
 act_grid_seg_find(
-    act_grid_t *grid, 
+    act_grid_t *grid,
     act_grid_seg_t **pseg,
     act_grid_tile_t *tile)
 {
@@ -294,7 +295,7 @@
 
     seg = ACT_RING_FIRST(&grid->g_seg);
     while (seg != ACT_RING_SENTINEL(&grid->g_seg, act_grid_seg_t, gs_link)) {
-        if (   seg->gs_tile_base <= tile 
+        if (   seg->gs_tile_base <= tile
             && tile < (seg->gs_tile_base+(grid->g_tile_size*seg->gs_tile_num))) {
             if (pseg != NULL)
                 *pseg = seg;
@@ -306,9 +307,9 @@
 }
 
 /* free a tile to a grid */
-act_rc_t 
+act_rc_t
 act_grid_free(
-    act_grid_t *grid, 
+    act_grid_t *grid,
     void *_tile)
 {
     act_grid_seg_t *seg;
@@ -321,7 +322,7 @@
     /* consistency checks */
     act_argcheck(grid != NULL);
     act_argcheck(tile != NULL);
-    
+
     /* find segment of tile */
     if ((rc = act_grid_seg_find(grid, &seg, tile)) != ACT_OK)
         return rc;
@@ -342,13 +343,13 @@
 }
 
 /* test whether a tile is inside a grid */
-act_rc_t 
+act_rc_t
 act_grid_inside(
-    act_grid_t *grid, 
+    act_grid_t *grid,
     void *_tile)
 {
     act_grid_tile_t *tile;
-    
+
     /* cast to internal structure */
     tile = (act_grid_tile_t *)_tile;
 
@@ -361,11 +362,11 @@
 }
 
 /* determine grid statistics */
-act_rc_t 
+act_rc_t
 act_grid_stat(
-    act_grid_t *grid, 
-    int *pchunks, 
-    int *pbytes_mgmt, int *pbytes_used, int *pbytes_free, 
+    act_grid_t *grid,
+    int *pchunks,
+    int *pbytes_mgmt, int *pbytes_used, int *pbytes_free,
     int *ptiles_used, int *ptiles_free)
 {
     act_grid_seg_t *seg;


ossp-pkg/act/act_grid.h 1.5 -> 1.6

--- act_grid.h   2002/01/19 13:18:01     1.5
+++ act_grid.h   2003/01/06 12:10:57     1.6
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that


ossp-pkg/act/act_hash.c 1.7 -> 1.8

--- act_hash.c   2002/01/02 17:05:53     1.7
+++ act_hash.c   2003/01/06 12:10:57     1.8
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that


ossp-pkg/act/act_hash.h 1.6 -> 1.7

--- act_hash.h   2002/01/02 17:05:53     1.6
+++ act_hash.h   2003/01/06 12:10:57     1.7
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -29,7 +30,7 @@
 #ifndef _ACT_HASH_H_
 #define _ACT_HASH_H_
 
-/* the opaque hashing data structure */ 
+/* the opaque hashing data structure */
 struct act_hash_st;
 typedef struct act_hash_st act_hash_t;
 
@@ -111,6 +112,6 @@
 __act_hash_fct_proto(holub);
 __act_hash_fct_proto(cbu);
 __act_hash_fct_proto(cvs);
-    
+
 #endif /* _ACT_HASH_H_ */
 


ossp-pkg/act/act_hash_fct.c 1.28 -> 1.29

--- act_hash_fct.c       2002/01/16 19:30:36     1.28
+++ act_hash_fct.c       2003/01/06 12:10:57     1.29
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -33,7 +34,7 @@
 ** (weaker) requirements of the hash table lookup discipline:
 **
 **   1. the function must be deterministic and stateless
-**   2. the function must be very fast to compute 
+**   2. the function must be very fast to compute
 **   3. the function must distribute the keys very good
 **
 ** Every function in this piece of source has the following signature:
@@ -57,12 +58,12 @@
 ** gazillion keys to each bucket. The number of collisions you get is
 ** expected to follow the Chi^2 distribution.
 **
-** Here's how Chi^2 is computed: 
-**   1. Lookup:  b = total number of buckets 
-**   2. Lookup:  k = total number of keys 
-**   3. Lookup:  b_i = number of buckets which have i keys 
+** Here's how Chi^2 is computed:
+**   1. Lookup:  b = total number of buckets
+**   2. Lookup:  k = total number of keys
+**   3. Lookup:  b_i = number of buckets which have i keys
 **   4. Compute: p = k/b (the expected number of keys per bucket)
-**   5. Compute: Chi^2 = sum (over all i) (b_i*((i-p)^2)/p) 
+**   5. Compute: Chi^2 = sum (over all i) (b_i*((i-p)^2)/p)
 **
 ** The distribution is expected to have a result close to b, i.e.,
 ** within 3*sqrt(b) of b. Chi^2 measures are usually reported in units of
@@ -126,7 +127,7 @@
  * numbers are not useable at all. The remaining 128 odd numbers
  * (except for the number 1) work more or less all equally well. They
  * all distribute in an acceptable way and this way fill a hash table
- * with an average percent of approx. 86%. 
+ * with an average percent of approx. 86%.
  *
  * If one compares the Chi^2 values of the variants, the number 33 not
  * even has the best value. But the number 33 and a few other equally
@@ -144,9 +145,9 @@
  * which has the hash unrolled eight times for speed. Both additionally
  * are optimized for speed even more by unrolling the loop.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_djbx33a(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 5381;
@@ -190,9 +191,9 @@
  * good hash (both fast and with good distribution). It can be found for
  * instance in his CDB package (see cdb_hash.c).
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_djbx33x(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 5381;
@@ -237,11 +238,11 @@
  * So, this variant of DJB's original hash function is intended for
  * hashing filesystem path like strings. Below there are two variants:
  * the original variant from Frank Denis and additionally a variant
- * which has the hash unrolled eight times for speed. 
+ * which has the hash unrolled eight times for speed.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_jedi(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 5381;
@@ -283,9 +284,9 @@
  * surprisingly well. It can be found for instance in the Berkeley-DB 3.x
  * package (hash/hash_func.c).
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_vocong(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0;
@@ -302,9 +303,9 @@
  * in the AT&T's Cdt library. It is very fast and distributes very well.
  * For details see Cdt's cdt.h file.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_cdt(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0;
@@ -332,9 +333,9 @@
  * increasing same bytes. So our variant here uses the golden ratio (but
  * every arbitrary value != 0 should work) instead.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_jotcl(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0x9e3779b9;
@@ -358,7 +359,7 @@
  * signature). It can be definetely recommended as a good general
  * purpose hash function.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_bjddj(
     register act_uint8_t *k,
     register act_size_t length)
@@ -395,7 +396,7 @@
 
     /* handle the last 11 bytes */
     c += length;
-    switch(len) { 
+    switch(len) {
         /* all the case statements fall through */
         case 11: c+=((ub4)k[10]<<24);
         case 10: c+=((ub4)k[ 9]<<16);
@@ -428,7 +429,7 @@
  * functions with medium performance but with very good distribution. So
  * it can be considered as a rock solid general purpose hash function.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_crc32(
     register act_uint8_t *key,
     register act_size_t len)
@@ -488,7 +489,7 @@
         0x2d02ef8dL
     };
     register act_uint32_t hash;
-    
+
     hash = 0xffffffff;
     while (len-- > 0)
         hash = tab[(hash ^ *key++) & 0xff] ^ (hash >> 8);
@@ -508,9 +509,9 @@
  * variant above uses the value of the DJBX33A hash (but any arbitrary
  * value should work) and this way avoid this, too.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_cpoaat(
-    register act_uint8_t *ptr, 
+    register act_uint8_t *ptr,
     register act_size_t len)
 {
     register act_uint32_t hash = 5381;
@@ -538,12 +539,12 @@
  * use inside hash data structures. Because it is slower than most of
  * the other functions, although it distributes very well.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_teadm(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
-    act_uint32_t k[] = { 0x9464a485, 0x542e1a94, 0x3e846bff, 0xb75bcfc3 }; 
+    act_uint32_t k[] = { 0x9464a485, 0x542e1a94, 0x3e846bff, 0xb75bcfc3 };
     act_uint32_t h0 = k[0], h1 = k[1];
     act_uint32_t a, b, c, d;
     act_uint32_t pad;
@@ -671,9 +672,9 @@
  * below uses the recommended FNV-1 initialization. For more details see
  * http://www.isthe.com/chongo/tech/comp/fnv/.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_fnv(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0x811c9dc5L;
@@ -704,9 +705,9 @@
  * HASHC's so we handle all 8 bytes. Essentially, this saves 7 compare &
  * branch instructions.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_ozsdbm(
-    register act_uint8_t *ptr, 
+    register act_uint8_t *ptr,
     register act_size_t len)
 {
     register act_uint32_t hash = 0;
@@ -741,9 +742,9 @@
  * good distribution, but unfortunately it is one of the slowest hash
  * functions.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_kazlib(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     static act_uint32_t tab[] = {
@@ -780,9 +781,9 @@
  * 128 one and 128 zero bits (which is for a good statistically expected
  * distribution).
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_buzhash(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     static act_uint32_t tab[256] = {
@@ -836,7 +837,7 @@
         0xf36414bL, 0x1d3a034fL, 0x122d654fL, 0xb336078L, 0x3a8b9600L,
         0xb5f1484L, 0x3ccfb7c6L, 0x2ff89cf1L, 0x09919a6L, 0xfa83287eL,
         0x694b7cdL, 0x77df5aeaL, 0x944508ccL, 0x581fbb8L, 0x728a05cbL,
-        0x4a31712L, 0xc2f6acfaL, 0x6e560b10L, 0xd8d7ce1L, 0x0d2b2adeL, 
+        0x4a31712L, 0xc2f6acfaL, 0x6e560b10L, 0xd8d7ce1L, 0x0d2b2adeL,
         0x0bbaa936L
     };
     register act_uint32_t hash = 0xe9ae3b8aL /* random init */;
@@ -862,37 +863,37 @@
  * much and then produces lots of collisions (but that doesn't matter
  * usually).
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_pearson(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     static unsigned char ptab[256] = {
-        0xd0, 0x24, 0x61, 0x1f, 0x65, 0xfb, 0xe1, 0x12, 0x64, 0xa7, 
-        0xd9, 0x7f, 0x49, 0xf1, 0xfc, 0x89, 0xd8, 0x57, 0x03, 0xda, 
-        0x4a, 0x4e, 0xc8, 0xb9, 0x42, 0x7b, 0x44, 0x88, 0x3e, 0x6e, 
-        0x1d, 0xc2, 0x96, 0x5d, 0x10, 0x67, 0x2b, 0x31, 0x5f, 0x2c, 
-        0xfe, 0x4f, 0x01, 0x7d, 0xf6, 0xe7, 0x15, 0x54, 0xaa, 0x29, 
-        0x81, 0x0b, 0xde, 0xc1, 0xc0, 0x16, 0x35, 0xf2, 0xc5, 0x43, 
-        0x22, 0x41, 0xc9, 0x5a, 0xc6, 0x6a, 0x04, 0xb8, 0x94, 0xac, 
-        0xc4, 0x1c, 0x36, 0x71, 0xaf, 0x17, 0xfd, 0xe6, 0x20, 0x56, 
-        0x38, 0xbf, 0x55, 0xdf, 0x3d, 0x98, 0x40, 0x09, 0x0d, 0x33, 
-        0xb7, 0x90, 0x76, 0xca, 0xff, 0x9c, 0x73, 0x7e, 0xa6, 0x6d, 
-        0xcb, 0x39, 0xc3, 0xd5, 0xce, 0xa4, 0xc7, 0x27, 0xcf, 0x58, 
-        0x1b, 0xb2, 0x8d, 0x11, 0x0c, 0x0f, 0x34, 0xb4, 0x69, 0xd6, 
-        0x2f, 0xa5, 0x51, 0x32, 0x37, 0x6f, 0x8c, 0xcd, 0xba, 0x5e, 
-        0x82, 0x1a, 0xa9, 0x46, 0x91, 0x93, 0xbc, 0xbe, 0xe2, 0x4b, 
-        0x18, 0xdc, 0xeb, 0x3c, 0x21, 0x47, 0x70, 0x4d, 0xae, 0xf9, 
-        0xee, 0xa3, 0xec, 0x97, 0x08, 0xab, 0xad, 0xbd, 0x48, 0xb0, 
-        0xa0, 0xb3, 0x68, 0xd7, 0xe4, 0xe3, 0x79, 0x4c, 0x95, 0x8b, 
-        0xb1, 0xf8, 0x2a, 0xa8, 0x9a, 0x30, 0xf3, 0xf5, 0xd3, 0x50, 
-        0xf0, 0x9e, 0x63, 0x9d, 0x72, 0x3f, 0xd2, 0x85, 0x60, 0x3b, 
-        0x0e, 0x6b, 0x19, 0x52, 0xe0, 0xef, 0x13, 0x6c, 0xb5, 0x8e, 
-        0x00, 0x14, 0x8a, 0x1e, 0x06, 0xa2, 0xfa, 0x0a, 0x8f, 0x80, 
-        0x86, 0x07, 0xed, 0x84, 0x92, 0x45, 0x26, 0xf7, 0x75, 0xd4, 
-        0x83, 0x7a, 0xdd, 0x62, 0x7c, 0x9b, 0xe5, 0xa1, 0x2e, 0xdb, 
-        0xea, 0x25, 0x5c, 0x87, 0x74, 0x5b, 0x99, 0x9f, 0xe8, 0x3a, 
-        0x66, 0x02, 0x59, 0x28, 0xb6, 0xcc, 0x53, 0xf4, 0xe9, 0x05, 
+        0xd0, 0x24, 0x61, 0x1f, 0x65, 0xfb, 0xe1, 0x12, 0x64, 0xa7,
+        0xd9, 0x7f, 0x49, 0xf1, 0xfc, 0x89, 0xd8, 0x57, 0x03, 0xda,
+        0x4a, 0x4e, 0xc8, 0xb9, 0x42, 0x7b, 0x44, 0x88, 0x3e, 0x6e,
+        0x1d, 0xc2, 0x96, 0x5d, 0x10, 0x67, 0x2b, 0x31, 0x5f, 0x2c,
+        0xfe, 0x4f, 0x01, 0x7d, 0xf6, 0xe7, 0x15, 0x54, 0xaa, 0x29,
+        0x81, 0x0b, 0xde, 0xc1, 0xc0, 0x16, 0x35, 0xf2, 0xc5, 0x43,
+        0x22, 0x41, 0xc9, 0x5a, 0xc6, 0x6a, 0x04, 0xb8, 0x94, 0xac,
+        0xc4, 0x1c, 0x36, 0x71, 0xaf, 0x17, 0xfd, 0xe6, 0x20, 0x56,
+        0x38, 0xbf, 0x55, 0xdf, 0x3d, 0x98, 0x40, 0x09, 0x0d, 0x33,
+        0xb7, 0x90, 0x76, 0xca, 0xff, 0x9c, 0x73, 0x7e, 0xa6, 0x6d,
+        0xcb, 0x39, 0xc3, 0xd5, 0xce, 0xa4, 0xc7, 0x27, 0xcf, 0x58,
+        0x1b, 0xb2, 0x8d, 0x11, 0x0c, 0x0f, 0x34, 0xb4, 0x69, 0xd6,
+        0x2f, 0xa5, 0x51, 0x32, 0x37, 0x6f, 0x8c, 0xcd, 0xba, 0x5e,
+        0x82, 0x1a, 0xa9, 0x46, 0x91, 0x93, 0xbc, 0xbe, 0xe2, 0x4b,
+        0x18, 0xdc, 0xeb, 0x3c, 0x21, 0x47, 0x70, 0x4d, 0xae, 0xf9,
+        0xee, 0xa3, 0xec, 0x97, 0x08, 0xab, 0xad, 0xbd, 0x48, 0xb0,
+        0xa0, 0xb3, 0x68, 0xd7, 0xe4, 0xe3, 0x79, 0x4c, 0x95, 0x8b,
+        0xb1, 0xf8, 0x2a, 0xa8, 0x9a, 0x30, 0xf3, 0xf5, 0xd3, 0x50,
+        0xf0, 0x9e, 0x63, 0x9d, 0x72, 0x3f, 0xd2, 0x85, 0x60, 0x3b,
+        0x0e, 0x6b, 0x19, 0x52, 0xe0, 0xef, 0x13, 0x6c, 0xb5, 0x8e,
+        0x00, 0x14, 0x8a, 0x1e, 0x06, 0xa2, 0xfa, 0x0a, 0x8f, 0x80,
+        0x86, 0x07, 0xed, 0x84, 0x92, 0x45, 0x26, 0xf7, 0x75, 0xd4,
+        0x83, 0x7a, 0xdd, 0x62, 0x7c, 0x9b, 0xe5, 0xa1, 0x2e, 0xdb,
+        0xea, 0x25, 0x5c, 0x87, 0x74, 0x5b, 0x99, 0x9f, 0xe8, 0x3a,
+        0x66, 0x02, 0x59, 0x28, 0xb6, 0xcc, 0x53, 0xf4, 0xe9, 0x05,
         0xd1, 0x78, 0xbb, 0x77, 0x2d, 0x23
     };
     register unsigned char h1,h2,h3,h4;
@@ -918,9 +919,9 @@
  * as found in a similar form in hash.c inside his ipaudit package.
  * It's an average hash function. Neither very good nor very bad.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_rifkin(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0;
@@ -936,15 +937,15 @@
     return hash;
 }
 
-/* 
+/*
  * ASU (Aho, Sethi, Ullman)
  *
  * This is the hashing algorithm as proposed by Aho, Seti and Ullmann in
  * their algorithm books. It is not very fast, but distributes well.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_asu(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash;
@@ -968,9 +969,9 @@
  * not one of the best hash functions in the set, but might have some
  * particular uses.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_holub(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash;
@@ -998,9 +999,9 @@
  * showed a bad distribution for real world keys. So take this hash very
  * carefully and test whether it works for your data.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_cbu(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0;
@@ -1025,9 +1026,9 @@
  * So this hash is only useful if one really knows the keys one has to
  * hash and also tests whether this hash works for them.
  */
-intern act_uint32_t 
+intern act_uint32_t
 act_hash_fct_cvs(
-    register act_uint8_t *key, 
+    register act_uint8_t *key,
     register act_size_t len)
 {
     register act_uint32_t hash = 0;
@@ -1042,10 +1043,10 @@
     return hash;
 }
 
-/* 
+/*
 ** ======================================================================
 **               Hash Function Test and Comparison Suite
-** ====================================================================== 
+** ======================================================================
 */
 
 #ifdef ACT_TEST
@@ -1245,7 +1246,7 @@
 }
 
 /* the driver program */
-int main(int argc, char *argv[]) 
+int main(int argc, char *argv[])
 {
     int i;
 
@@ -1265,16 +1266,16 @@
     printf("| Hash Func    Time Coll00 Coll55 CollNN  Used  Min  Max Diff  Chi2/S  Chi2/B |\n");
     printf("+ ---------- ------ ------ ------ ------ ----- ---- ---- ---- ------- ------- +\n");
     for (i = 0; table[i].name != NULL; i++) {
-        printf("| %-10s %6.2f %6d %6d %6d %5.2f %4d %4d %4d %7.2f%c%7.2f%c|\n", 
-               table[i].name, 
-               table[i].stat.t, 
-               table[i].stat.coll00, 
-               table[i].stat.coll55, 
-               table[i].stat.collNN, 
-               table[i].stat.used, 
-               table[i].stat.min, 
-               table[i].stat.max, 
-               table[i].stat.delta, 
+        printf("| %-10s %6.2f %6d %6d %6d %5.2f %4d %4d %4d %7.2f%c%7.2f%c|\n",
+               table[i].name,
+               table[i].stat.t,
+               table[i].stat.coll00,
+               table[i].stat.coll55,
+               table[i].stat.collNN,
+               table[i].stat.used,
+               table[i].stat.min,
+               table[i].stat.max,
+               table[i].stat.delta,
                table[i].stat.s_chi2,
                (table[i].stat.s_chi2 > 3 || table[i].stat.s_chi2 < -3) ? '!' : ' ',
                table[i].stat.b_chi2,


ossp-pkg/act/act_hash_lh.c 1.10 -> 1.11

--- act_hash_lh.c        2002/01/18 18:17:55     1.10
+++ act_hash_lh.c        2003/01/06 12:10:58     1.11
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -33,7 +34,7 @@
 **  collision chains as the backend data structure. Some ideas were
 **  taken over from MIKAEL PETTERSON's Linear Hashing enhancements
 **  (1993).
-**   
+**
 **  Linear Hashing can be summarized as following:
 **
 **  o drawback of classical hashing is that the hash table is of
@@ -79,7 +80,7 @@
 **
 **  As you can see, it consists of four classes of memory chunks:
 **  1. a top-level structure which acts as the primary handle
-**  2. the virtual hash table consisting of a single (growing) 
+**  2. the virtual hash table consisting of a single (growing)
 **     directory and one or more (fixed size) directory segments
 **  3. the collision chains consisting of element structures
 **  4. the actual elements consisting of key+value structures
@@ -109,7 +110,7 @@
 typedef struct segment_st segment_t;
 struct segment_st {
     element_t *s_element[SEGMENTSIZE]; /* array of pointers to elements */
-}; 
+};
 
 /* the top-level hash table structure */
 typedef struct act_hash_lh_st act_hash_lh_t;
@@ -174,7 +175,7 @@
     if (act_grid_alloc(h->h_grid_seg, (void **)&(h->h_dir[0])) != ACT_OK) {
         errno_safe(act_grid_destroy(h->h_grid_seg));
         errno_safe(act_grid_destroy(h->h_grid_el));
-        errno_safe(act_mem_free_ctx(ctx, h->h_dir)); 
+        errno_safe(act_mem_free_ctx(ctx, h->h_dir));
         errno_safe(act_mem_free_ctx(ctx, h));
         return NULL;
     }
@@ -193,9 +194,9 @@
 }
 
 /* expand the hash table */
-static void 
+static void
 act_hash_lh_expand(
-    act_ctx_t *ctx, 
+    act_ctx_t *ctx,
     act_hash_lh_t *h)
 {
     unsigned int pmax0;
@@ -204,7 +205,7 @@
     element_t **pelold;
     element_t *el, *headofold, *headofnew, *next;
     unsigned int n;
-    
+
     /* calculate next new address */
     pmax0   = h->h_pmax;
     newaddr = pmax0 + h->h_p;
@@ -218,7 +219,7 @@
              return;
         act_mem_set((char *)h->h_dir+n, 0, n);
     }
-    
+
     /* have to create a new table segment? */
     if (SEGINDEX(newaddr) == 0) {
         if (act_grid_alloc(h->h_grid_seg, (void **)&seg) != ACT_OK)
@@ -236,7 +237,7 @@
         h->h_p = 0;
     }
     h->h_slack += MAXLOADFCTR;
-    
+
     /* relocate and split between P-element new element */
     headofold = NULL;
     headofnew = NULL;
@@ -257,9 +258,9 @@
 }
 
 /* shrink hash table */
-static void 
+static void
 act_hash_lh_shrink(
-    act_ctx_t *ctx, 
+    act_ctx_t *ctx,
     act_hash_lh_t *h)
 {
     segment_t *lastseg;
@@ -310,12 +311,12 @@
 }
 
 /* insert element into hash table */
-static int 
+static int
 act_hash_lh_insert(
-    act_ctx_t *ctx, 
-    act_hash_lh_t *h, 
-    void *keyptr, int keylen, 
-    void *datptr, int datlen, 
+    act_ctx_t *ctx,
+    act_hash_lh_t *h,
+    void *keyptr, int keylen,
+    void *datptr, int datlen,
     int override)
 {
     unsigned int hash, addr;
@@ -339,7 +340,7 @@
     /* check whether element is already in the hash table */
     bFound = FALSE;
     for (el = *pel; el != NULL; el = el->e_next) {
-        if (   el->e_hash == hash 
+        if (   el->e_hash == hash
             && el_keylen(el) == keylen
             && act_mem_cmp(el->e_keyptr, keyptr, el_keylen(el)) == 0) {
             bFound = TRUE;
@@ -390,11 +391,11 @@
 }
 
 /* lookup an element in hash table */
-static int 
+static int
 act_hash_lh_lookup(
-    act_ctx_t *ctx, 
-    act_hash_lh_t *h, 
-    void *keyptr, int keylen, 
+    act_ctx_t *ctx,
+    act_hash_lh_t *h,
+    void *keyptr, int keylen,
     void **datptr, int *datlen)
 {
     unsigned int hash, addr;
@@ -415,7 +416,7 @@
 
     /* search for element in collision list */
     for (el = *pel; el != NULL; el = el->e_next) {
-        if (   el->e_hash == hash 
+        if (   el->e_hash == hash
             && el_keylen(el) == keylen
             && act_mem_cmp(el->e_keyptr, keyptr, el_keylen(el)) == 0) {
             /* provide results */
@@ -430,10 +431,10 @@
 }
 
 /* delete an element in hash table */
-static int 
+static int
 act_hash_lh_delete(
-    act_ctx_t *ctx, 
-    act_hash_lh_t *h, 
+    act_ctx_t *ctx,
+    act_hash_lh_t *h,
     void *keyptr, int keylen)
 {
     unsigned int hash, addr;
@@ -456,7 +457,7 @@
     /* search for element in collision chain */
     rv = FALSE;
     for (lel = NULL, el = *pel; el != NULL; lel = el, el = el->e_next) {
-        if (   el->e_hash == hash 
+        if (   el->e_hash == hash
             && el_keylen(el) == keylen
             && act_mem_cmp(el->e_keyptr, keyptr, el_keylen(el)) == 0) {
             /* free key+data memory chunk */
@@ -464,7 +465,7 @@
                 act_mem_free_ctx(ctx, el->e_keyptr);
             /* remove element from collision chain */
             if (lel == NULL)
-                *pel = el->e_next; 
+                *pel = el->e_next;
             else
                 lel->e_next = el->e_next;
             /* deallocate element structure */
@@ -482,10 +483,10 @@
 }
 
 /* calculate total size of hash table */
-static int 
+static int
 act_hash_lh_size(
-    act_ctx_t *ctx, 
-    act_hash_lh_t *h, 
+    act_ctx_t *ctx,
+    act_hash_lh_t *h,
     long *pbytes, long *pelements)
 {
     long bytes, elements;
@@ -534,10 +535,10 @@
 }
 
 /* calculate total size of hash table */
-static int 
+static int
 act_hash_lh_status(
-    act_ctx_t *ctx, 
-    act_hash_lh_t *h, 
+    act_ctx_t *ctx,
+    act_hash_lh_t *h,
     char *pstatus,
     int nstatus)
 {
@@ -609,7 +610,7 @@
         chainlen_avg = chainlen_all / chains;
 
     /* provide results */
-    act_snprintf(pstatus, nstatus, 
+    act_snprintf(pstatus, nstatus,
                  "size=%d@%dB dir=1*%dB seg=%d*%dB chains=%d@%d/%d/%d usage=%0.1f",
                  elements, bytes, dirsize, segments, segsize,
                  chains, chainlen_min, chainlen_avg, chainlen_max, used);
@@ -618,9 +619,9 @@
 }
 
 /* destroy the whole hash table */
-static int 
+static int
 act_hash_lh_free(
-    act_ctx_t *ctx, 
+    act_ctx_t *ctx,
     act_hash_lh_t *h)
 {
     element_t *el, **pel, *el_next;


ossp-pkg/act/act_hash_oh.c 1.6 -> 1.7

--- act_hash_oh.c        2002/01/02 17:05:53     1.6
+++ act_hash_oh.c        2003/01/06 12:10:58     1.7
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -85,25 +86,25 @@
 }
 
 /* insert an element into hash table */
-static int 
+static int
 act_hash_oh_insert(
-    act_ctx_t *ctx, act_hash_oh_t *h, void *keyptr, int keylen, 
+    act_ctx_t *ctx, act_hash_oh_t *h, void *keyptr, int keylen,
     void *datptr, int datlen, int override)
 {
     return TRUE;
 }
 
 /* lookup an element in hash table */
-static int 
+static int
 act_hash_oh_lookup(
-     act_ctx_t *ctx, act_hash_oh_t *h, 
+     act_ctx_t *ctx, act_hash_oh_t *h,
      void *keyptr, int keylen, void **datptr, int *datlen)
 {
     return FALSE;
 }
 
 /* delete an element from hash table */
-static int 
+static int
 act_hash_oh_delete(
     act_ctx_t *ctx, act_hash_oh_t *h, void *keyptr, int keylen)
 {
@@ -111,7 +112,7 @@
 }
 
 /* find out the size of the hash table */
-static int 
+static int
 act_hash_oh_size(
     act_ctx_t *ctx, act_hash_oh_t *h, long *pbytes, long *pelements)
 {
@@ -134,7 +135,7 @@
 }
 
 /* find out the size of the hash table */
-static int 
+static int
 act_hash_oh_status(
     act_ctx_t *ctx, act_hash_oh_t *h, char *pstatus, int *nstatus)
 {
@@ -142,7 +143,7 @@
 }
 
 /* free the hash table structure */
-static int 
+static int
 act_hash_oh_free(
     act_ctx_t *ctx, act_hash_oh_t *h)
 {


ossp-pkg/act/act_lib.c 1.5 -> 1.6

--- act_lib.c    2002/01/02 17:05:53     1.5
+++ act_lib.c    2003/01/06 12:10:58     1.6
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that


ossp-pkg/act/act_lib.h -> 1.2

*** /dev/null    Thu Oct 28 07:45:33 2021
--- -    Thu Oct 28 07:51:55 2021
***************
*** 0 ****
--- 1,38 ----
+ /*
+ **  OSSP act - Abstract Container Types
+ **  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+ **  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+ **
+ **  This file is part of OSSP act, an abstract container type library
+ **  which can be found at http://www.ossp.org/pkg/lib/act/.
+ **
+ **  Permission to use, copy, modify, and distribute this software for
+ **  any purpose with or without fee is hereby granted, provided that
+ **  the above copyright notice and this permission notice appear in all
+ **  copies.
+ **
+ **  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ **  CONTRIBUTORS 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.
+ **
+ **  act.h: public Application Programming Interface (API)
+ */
+ 
+ #ifndef _ACT_LIB_H_
+ #define _ACT_LIB_H_
+ 
+ extern int        act_init(void);
+ extern int        act_kill(void);
+ extern long       act_version(void);
+ 
+ #endif /* _ACT_LIB_H_ */
+ 


ossp-pkg/act/act_mem.c 1.10 -> 1.11

--- act_mem.c    2002/01/02 17:05:53     1.10
+++ act_mem.c    2003/01/06 12:10:58     1.11
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -42,7 +43,7 @@
 void *(*act_mem_char)(const void *, unsigned char, size_t)       = _act_mem_char;
 int   (*act_mem_cmp)(const void *, const void *, size_t)         = _act_mem_cmp;
 
-/* 
+/*
  * Align a size to the next larger or equal size which is likely to have the
  * longest *relevant* CPU-specific memory word alignment restrictions.
  */
@@ -116,7 +117,7 @@
     }
 
     /* fill the whole stamping word */
-    if ((c = (unsigned char)c0) != 0) { 
+    if ((c = (unsigned char)c0) != 0) {
         c = c | (c << 8);
 #if (SIZEOF_INT > 2)
         c = c | (c << 16);
@@ -163,7 +164,7 @@
         return NULL;
     src_p = src;
     dst_p = dst;
-    if (dst > src) { 
+    if (dst > src) {
         /* must go high to low */
         src_p += bytes;
         dst_p += bytes;
@@ -196,19 +197,19 @@
 /* additional function: memmem(3) like */
 intern void *
 _act_mem_mem(
-    const void *haystack, size_t haystack_len, 
+    const void *haystack, size_t haystack_len,
     const void *needle,   size_t needle_len)
 {
     register const char *begin;
     register const char *last_possible;
-    
-    if (needle_len == 0) 
+
+    if (needle_len == 0)
         /* The first occurrence of the empty string is deemed to occur at
            the end of the string. */
         return (void *)&((const char *)haystack)[haystack_len - 1];
     last_possible = (const char *)haystack + haystack_len - needle_len;
     for (begin = (const char *)haystack; begin <= last_possible; begin++)
-        if (   *begin == *((const char *)needle) 
+        if (   *begin == *((const char *)needle)
             && act_mem_cmp(&begin[1], (const char *)needle + 1, needle_len - 1) == 0)
             return (void *)begin;
     return NULL;
@@ -219,7 +220,7 @@
 {
     register const unsigned char *cp1;
     register const unsigned char *cp2;
-   
+
     if (bytes != 0) {
         cp1 = src1;
         cp2 = src2;


ossp-pkg/act/act_mem.h 1.7 -> 1.8

--- act_mem.h    2002/01/02 17:05:53     1.7
+++ act_mem.h    2003/01/06 12:10:58     1.8
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that


ossp-pkg/act/act_p.h.in 1.8 -> 1.9

--- act_p.h.in   2002/01/19 13:13:32     1.8
+++ act_p.h.in   2003/01/06 12:10:58     1.9
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -48,7 +49,7 @@
 #define errno_safe(cmd) \
         do { int __local_errno = errno; cmd; errno = __local_errno; } while (0)
 #define return_errno(return_val,errno_val) \
-        do { errno = (errno_val); return (return_val); } while (0) 
+        do { errno = (errno_val); return (return_val); } while (0)
 
 #include "act_cfg.h"
 #include "act_lib.h"


ossp-pkg/act/act_str.c 1.3 -> 1.4

--- act_str.c    2002/01/02 17:05:53     1.3
+++ act_str.c    2003/01/06 12:10:58     1.4
@@ -1,9 +1,10 @@
-/* 
-**  Act - Abstract Container Type Library
-**  Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
 **
-**  This file is part of Act, a library for dealing with Abstract 
-**  Container Types which can be found at http://www.ossp.org/pkg/act/.
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
 **
 **  Permission to use, copy, modify, and distribute this software for
 **  any purpose with or without fee is hereby granted, provided that
@@ -652,9 +653,9 @@
 
 intern int
 act_vsnprintf(
-    char *str, 
-    size_t count, 
-    const char *fmt, 
+    char *str,
+    size_t count,
+    const char *fmt,
     va_list args)
 {
     size_t retlen;


ossp-pkg/act/act_test.c 1.4 -> 1.5

--- act_test.c   2002/01/17 20:19:57     1.4
+++ act_test.c   2003/01/06 12:10:58     1.5
@@ -1,3 +1,31 @@
+/*
+**  OSSP act - Abstract Container Types
+**  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+**  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+**
+**  This file is part of OSSP act, an abstract container type library
+**  which can be found at http://www.ossp.org/pkg/lib/act/.
+**
+**  Permission to use, copy, modify, and distribute this software for
+**  any purpose with or without fee is hereby granted, provided that
+**  the above copyright notice and this permission notice appear in all
+**  copies.
+**
+**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+**  CONTRIBUTORS 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.
+**
+**  act_test.c: test suite
+*/
 
 #include <stdio.h>
 #include <string.h>
@@ -17,7 +45,7 @@
 #define act_hash_delete_str(h,k) \
         act_hash_delete((h),(k),strlen((k)))
 
-int main(int argc, char *argv[]) 
+int main(int argc, char *argv[])
 {
     act_hash_t *h;
     char buf[1024];
@@ -73,7 +101,7 @@
     while (fgets(buf, sizeof(buf), fp) != NULL) {
         buf[strlen(buf)-1] = '\0';
         sprintf(buf2, "%ld", i);
-        if (!act_hash_lookup_str(h, buf, (void **)&cp)) 
+        if (!act_hash_lookup_str(h, buf, (void **)&cp))
             fprintf(stderr, "failed to lookup `%s'\n", buf);
         else {
             if (strcmp(cp, buf2) != 0)
@@ -99,7 +127,7 @@
             act_hash_status(h, s, sizeof s);
             fprintf(stderr, "%s\n", s);
         }
-        if (!act_hash_delete_str(h, buf)) 
+        if (!act_hash_delete_str(h, buf))
             fprintf(stderr, "failed to delete `%s'\n", buf);
         i--;
     }


ossp-pkg/act/act_vers.c -> 1.4

*** /dev/null    Thu Oct 28 07:45:33 2021
--- -    Thu Oct 28 07:51:55 2021
***************
*** 0 ****
--- 1,46 ----
+ /*
+ **  act_vers.c -- Version Information for OSSP act (syntax: C/C++)
+ **  [automatically generated and maintained by GNU shtool]
+ */
+ 
+ #ifdef _ACT_VERS_C_AS_HEADER_
+ 
+ #ifndef _ACT_VERS_C_
+ #define _ACT_VERS_C_
+ 
+ #define ACT_INT_VERSION 0x000200
+ 
+ typedef struct {
+     const int   v_hex;
+     const char *v_short;
+     const char *v_long;
+     const char *v_tex;
+     const char *v_gnu;
+     const char *v_web;
+     const char *v_sccs;
+     const char *v_rcs;
+ } act_int_version_t;
+ 
+ extern act_int_version_t act_int_version;
+ 
+ #endif /* _ACT_VERS_C_ */
+ 
+ #else /* _ACT_VERS_C_AS_HEADER_ */
+ 
+ #define _ACT_VERS_C_AS_HEADER_
+ #include "act_vers.c"
+ #undef  _ACT_VERS_C_AS_HEADER_
+ 
+ act_int_version_t act_int_version = {
+     0x000200,
+     "0.0.0",
+     "0.0.0 (06-Jan-2003)",
+     "This is OSSP act, Version 0.0.0 (06-Jan-2003)",
+     "OSSP act 0.0.0 (06-Jan-2003)",
+     "OSSP act/0.0.0",
+     "@(#)OSSP act 0.0.0 (06-Jan-2003)",
+     "$Id: act_vers.c,v 1.4 2003/01/06 12:10:58 rse Exp $"
+ };
+ 
+ #endif /* _ACT_VERS_C_AS_HEADER_ */
+ 


ossp-pkg/act/configure.ac 1.1 -> 1.2

--- configure.ac 2002/01/17 20:19:57     1.1
+++ configure.ac 2003/01/06 12:10:58     1.2
@@ -1,17 +1,39 @@
 dnl ##
-dnl ##   Autoconf specification for ACT library
+dnl ##  OSSP act - Abstract Container Types
+dnl ##  Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+dnl ##  Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>
+dnl ##
+dnl ##  This file is part of OSSP act, a abstract container type library
+dnl ##  which can be found at http://www.ossp.org/pkg/lib/act/.
+dnl ##
+dnl ##  Permission to use, copy, modify, and distribute this software for
+dnl ##  any purpose with or without fee is hereby granted, provided that
+dnl ##  the above copyright notice and this permission notice appear in all
+dnl ##  copies.
+dnl ##
+dnl ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+dnl ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+dnl ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+dnl ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+dnl ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+dnl ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+dnl ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+dnl ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+dnl ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+dnl ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+dnl ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+dnl ##  SUCH DAMAGE.
+dnl ##
+dnl ##  configure.ac: Autoconf specification
 dnl ##
 
-AC_PREREQ(2.12)dnl
-AC_REVISION($Revision: 1.1 $)
-
+AC_PREREQ(2.57)dnl
 AC_INIT(README)
 AC_HEADLINE(dnl
 OSSP act, Abstract Container Types, dnl
 ACT_VERSION, act_vers.c, dnl
-[Copyright (c) 1999-2002 Ralf S. Engelschall <rse@engelschall.com>])
-AC_PREFIX_DEFAULT(/usr/local)
-AC_CONFIG_HEADER(act_cfg.h)
+[Copyright (c) 1999-2003 Ralf S. Engelschall <rse@engelschall.com>
+Copyright (c) 1999-2003 The OSSP Project <http://www.ossp.org/>])
 
 AC_SET_MAKE
 AC_PROG_CC
@@ -28,8 +50,8 @@
 fi
 )dnl
 if test ".$enable_debug" = .yes; then
-    LDFLAGS="$LDFLAGS -g -ggdb3"
-    CFLAGS="$CFLAGS -g -ggdb3"
+    LDFLAGS="$LDFLAGS -g"
+    CFLAGS="$CFLAGS -g"
     CFLAGS="$CFLAGS -pedantic"
     CFLAGS="$CFLAGS -Wall -Wshadow -Wpointer-arith -Wcast-align"
     CFLAGS="$CFLAGS -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline"
@@ -89,13 +111,12 @@
 dnl {
     dnl long long n = 1;
     dnl if (sizeof(long long) >= 8)
-       dnl  
+       dnl
     dnl exit(0)
 dnl }
 dnl ],
 
-AC_OUTPUT(dnl
-Makefile dnl
-act.h dnl
-)dnl
+AC_CONFIG_HEADERS(act_cfg.h)
+AC_CONFIG_FILES([Makefile act.h])
+AC_OUTPUT
 


ossp-pkg/act/devtool 1.1 -> 1.2

--- devtool      2002/01/17 20:19:57     1.1
+++ devtool      2003/01/06 12:10:58     1.2
@@ -1,7 +1,7 @@
 #!/bin/sh
 ##
 ##  devtool -- Development Tool
-##  Copyright (c) 2001 Ralf S. Engelschall <rse@engelschall.com> 
+##  Copyright (c) 2001 Ralf S. Engelschall <rse@engelschall.com>
 ##
 
 if [ $# -eq 0 ]; then


ossp-pkg/act/devtool.conf 1.2 -> 1.3

--- devtool.conf 2002/01/18 17:31:06     1.2
+++ devtool.conf 2003/01/06 12:10:58     1.3
@@ -3,9 +3,9 @@
 ##
 
 %autogen
-    @autogen shtool   1.5.4 "1.5.*" all
-    # @autogen libtool  1.4.2 "1.4*"
-    @autogen autoconf 2.52  "2.5.*"
+    @autogen shtool   1.6.2 "1.6.*" all
+    #@autogen libtool 1.4.3 "1.4*"
+    @autogen autoconf 2.57  "2.5.*"
 
 %autoclean
     @autoclean shtool
@@ -20,12 +20,42 @@
         "$@"
 
 %version
-    ./shtool version -l c -n "OSSP act" -e act_vers.c
+    ./shtool version -l c -p act_int_ -n "OSSP act" -e act_vers.c
+    V=`./shtool version -l c -d long act_vers.c`
+    sed -e "s/Version .*/Version $V/g" <README >README.n
+    mv README.n README
 
 %dist
-    make distclean >/dev/null 2>&1
+    rm -f act-*.tar.gz
+    ./devtool autoclean
+    ./devtool autogen
+    ./configure
+    make clean all man
+    make distclean
     ./shtool fixperm -v .
-    V=`./shtool version -l c -d short act_vers.c`
-    ./shtool tarball -o act-${V}.tar.gz -d act-${V} -u ossp -g ossp \
-                     -e 'CVS,\.cvsignore,\.[ao],^\.,devtool.conf' -c 'gzip --best' .
+    V=`./shtool version -l txt -d short VERSION`
+    ./shtool tarball -o act-${V}.tar.gz -d act-${V} -u ossp -g act \
+                     -e 'CVS,\.cvsignore,\.[ao]$,^\.,devtool*' -c 'gzip --best' .
+    ls -l act-${V}.tar.gz
+    gunzip <act-${V}.tar.gz | tar tvf - | head -10; echo "[...]"
+    gunzip <act-${V}.tar.gz | tar tvf - | tail -10
+
+%snap
+    rm -f act-*.tar.gz
+    ./devtool autoclean
+    ./devtool autogen
+    ./configure
+    make clean all man
+    make distclean
+    ./shtool fixperm -v .
+    D=`date '+%Y%m%d'`
+    ./shtool tarball -o act-SNAP-${D}.tar.gz -d act-SNAP-${D} -u ossp -g act \
+                     -e 'CVS,\.cvsignore,\.[ao]$,^\.,devtool*' -c 'gzip --best' .
+    ls -l act-SNAP-${D}.tar.gz
+    gunzip <act-SNAP-${D}.tar.gz | tar tvf - | head -10; echo "[...]"
+    gunzip <act-SNAP-${D}.tar.gz | tar tvf - | tail -10
+
+%release
+    echo "+++ copying to ftp://ftp.ossp.org/pkg/lib/act/"
+    scp act-*.tar.gz master.ossp.org:/e/ossp/ftp/pkg/lib/act/
 


ossp-pkg/act/devtool.func 1.1 -> 1.2

--- devtool.func 2002/01/17 20:19:57     1.1
+++ devtool.func 2003/01/06 12:10:58     1.2
@@ -1,6 +1,6 @@
 ##
 ##  devtool.func -- Development Tool Functions
-##  Copyright (c) 2001 Ralf S. Engelschall <rse@engelschall.com> 
+##  Copyright (c) 2001-2003 Ralf S. Engelschall <rse@engelschall.com>
 ##
 
 devtool_require () {
@@ -33,6 +33,7 @@
             echo "generating (GNU Autoconf $autoconf_version): configure config.h.in"
             autoconf
             autoheader 2>&1 | grep -v "is unchanged"
+            rm -rf autom4te.cache >/dev/null 2>&1
             ;;
         libtool )
             libtoolize_version=`devtool_require libtoolize --version 4 "$1" "$2"`

CVSTrac 2.0.1