Index: ossp-pkg/act/.cvsignore RCS File: /v/ossp/cvs/ossp-pkg/act/.cvsignore,v rcsdiff -q -kk '-r1.2' '-r1.3' -u '/v/ossp/cvs/ossp-pkg/act/.cvsignore,v' 2>/dev/null --- .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 Index: ossp-pkg/act/Makefile.in RCS File: /v/ossp/cvs/ossp-pkg/act/Makefile.in,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/act/Makefile.in,v' 2>/dev/null --- 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 +## Copyright (c) 1999-2003 The OSSP Project +## +## 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.n && mv README.n README - all: $(PRE) $(LIB) $(TST) .c.o: Index: ossp-pkg/act/README RCS File: /v/ossp/cvs/ossp-pkg/act/README,v rcsdiff -q -kk '-r1.5' '-r1.6' -u '/v/ossp/cvs/ossp-pkg/act/README,v' 2>/dev/null --- 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 + Copyright (c) 1999-2003 The OSSP Project + + 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/ Index: ossp-pkg/act/TODO RCS File: /v/ossp/cvs/ossp-pkg/act/TODO,v rcsdiff -q -kk '-r1.4' '-r1.5' -u '/v/ossp/cvs/ossp-pkg/act/TODO,v' 2>/dev/null --- 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 Index: ossp-pkg/act/aclocal.m4 RCS File: /v/ossp/cvs/ossp-pkg/act/aclocal.m4,v rcsdiff -q -kk '-r1.2' '-r1.3' -u '/v/ossp/cvs/ossp-pkg/act/aclocal.m4,v' 2>/dev/null --- 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 +dnl ## Copyright (c) 1999-2003 The OSSP Project +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(, , -dnl ## , , +dnl ## AC_HEADLINE(, , +dnl ## , , dnl ## ) 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" Index: ossp-pkg/act/act.h.in RCS File: /v/ossp/cvs/ossp-pkg/act/act.h.in,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/act/act.h.in,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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) */ Index: ossp-pkg/act/act.pod RCS File: /v/ossp/cvs/ossp-pkg/act/act.pod,v co -q -kk -p'1.3' '/v/ossp/cvs/ossp-pkg/act/act.pod,v' | diff -u /dev/null - -L'ossp-pkg/act/act.pod' 2>/dev/null --- ossp-pkg/act/act.pod +++ - 2025-05-20 08:50:02.760593436 +0200 @@ -0,0 +1,241 @@ +## +## OSSP act - Abstract Container Types +## Copyright (c) 1999-2003 Ralf S. Engelschall +## Copyright (c) 1999-2003 The OSSP Project +## +## 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 -- Bbstracted Bontainer Bypes + +=head1 GLOBAL SYNOPSIS + +The following synopsis applies to all container types. + +B + +=over 4 + +=item act_ctx_t I; + +Declare a context object I for container type I. + +=item act_ctx_t B(void); + +Create a new context object, initialized +with default context information. + +=item act_ctx_t B(act_ctx_t I); + +Duplicate context object I. + +=item void B(act_ctx_t I); + +Reset object to default ingredients. + +=item long B(act_ctx_t I, I, ...) + +Control or query various ingredients of context object I by sending it +the command I. The following Is exists for all container types: ... + +=item void B(act_ctx_t I); + +Destroy the context object I. + +=back + +B + +=over 4 + +=item I_t I; + +Declare an object I of a container type I. + +=item I_t I_B(I_ctx_t I, ...); + +Create a new (empty) object of container type I. Usually one also +specifies the type or size of the to be contained data. + +=item I_ctx_t I_B(I_t I); + +Duplicate object I. + +=item void I_B(I_t I); + +Clean out the object. + +=item I_t I_B(I_t *I, unsigned char **I, long I); + +Create a new (initialized) object of container type I in object I +from an object stream (previously created with a I_B) under I +with len I. The pointer I is incremented by the number of actually +read bytes. + +=item long I_B(I_t I, unsigned char **I); + +Streamline container type object I into an object stream under I. +Returns the number of written number bytes and increments I by this +number. + +=item long I_B(I_t I, I, ...) + +Control or query various ingredients of container object I by sending it +the command I. The following Is exists for all container types: +I_C (peeks the number of contained data elements), +I_C (peeks the total number of memory bytes the object is +in size), I_C (sets the malloc(3) function to use), +I_C (sets the realloc(3) function to use), +I_C (sets the free(3) function to use), +I_C (sets the fatal error function to use). + +=item I I_I(I_t I, [ I<...> ]); + +Perform I on object I of container type I. +The available Is are dependent on the container type itself. +Read below for more details. + +=item void I_B(I_t I); + +Destroy the object I of container type I. + +=back + +=head1 OVERVIEW + +The following container type data structures exists: + +=over 4 + +=item B - Bit Vector (Bit Mask) + +A bit vector type implemented by an array of bits. The elements are of type +B. The usual use case is a mathematical set or a feature set +mask. + +Specific Operations: B(k,v), B(k), B(k), B. + +=item B - Byte Buffer (Octet Stream) + +A buffer type implemented by an array of bytes. The elements are of type +B. The usual use case is an I/O buffer or the underlaying +object of a string type. + +Specific Operations: B, B, B, B, B, B. + +=item B - Array + +A generic array type implemented by a pointer array. The elements are +of type B. 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, B, B, B, B + +=item B - Linear List + +This is a generic list type implemented by lineary chained nodes. The elements +are of type B. The usual use cases are sorted list, queue and stack +and where read/write operations occur often. +Specific Operations: B, B, B, B, B + +=item B - Hierarchical Tree + +This is a generic tree type implemented by hierachically chained nodes. The +elements are of type B. The usual use case is for storing hierachical +structures. +Specific Operations: B, B, B, B, B + +=item B - Hashing Table + +This is a generic table type implemented by a hash. The elements are of type +B. 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, B, B, B, B + +=back + +=head1 DESCRIPTION + +=head2 Bit Vector (bits) + +B + +=over 4 + +=item bits_t B(unsigned int I); + +Create a new bit vector with I initial bits. + +=item bits_t B(bits_t *I, unsigned char **I, long I); + +Create bit vector object in I from I/I. + +=item long B(bits_t I, unsigned char **I); + +Streamline I into I. + +=item long B(bits_t I, I, ...) + +Send I to bit vector object I. + +=item void B(bits_t I); + +Destroy the bit vector object I. + +=back + +B + +=over 4 + +=item int B(bits_t I, I); + +Set the I bit. + +=item int B(bits_t I, I); + +Clear the I bit. + +=item int B(bits_t I, I); + +Test whether the I bit is set. + +=back + +=head2 Byte Buffer (buf) + +=head2 Array (array) + +=head2 Linear List (list) + +=head2 Hierarchical Tree (tree) + +=head2 Hash Table (hash) + +=cut + Index: ossp-pkg/act/act_cfg.h.in RCS File: /v/ossp/cvs/ossp-pkg/act/Attic/act_cfg.h.in,v co -q -kk -p'1.2' '/v/ossp/cvs/ossp-pkg/act/Attic/act_cfg.h.in,v' | diff -u - /dev/null -L'ossp-pkg/act/act_cfg.h.in' 2>/dev/null --- ossp-pkg/act/act_cfg.h.in +++ /dev/null 2025-05-20 08:48:17.000000000 +0200 @@ -1,55 +0,0 @@ -/* act_cfg.h.in. Generated automatically from configure.ac by autoheader. */ - -/* Define if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define if you have the `memcmp' function. */ -#undef HAVE_MEMCMP - -/* Define if you have the `memmove' function. */ -#undef HAVE_MEMMOVE - -/* Define if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define if you have the `memset' function. */ -#undef HAVE_MEMSET - -/* Define if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define if you have the header file. */ -#undef HAVE_STRING_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* The size of a `char', as computed by sizeof. */ -#undef SIZEOF_CHAR - -/* The size of a `int', as computed by sizeof. */ -#undef SIZEOF_INT - -/* The size of a `long', as computed by sizeof. */ -#undef SIZEOF_LONG - -/* The size of a `long long', as computed by sizeof. */ -#undef SIZEOF_LONG_LONG - -/* The size of a `short', as computed by sizeof. */ -#undef SIZEOF_SHORT - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS Index: ossp-pkg/act/act_chain.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_chain.h,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/act/act_chain.h,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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) \ Index: ossp-pkg/act/act_ctx.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_ctx.c,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/act/act_ctx.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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)); } } Index: ossp-pkg/act/act_ctx.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_ctx.h,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/act/act_ctx.h,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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 Index: ossp-pkg/act/act_ds.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_ds.c,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/act/act_ds.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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 Index: ossp-pkg/act/act_ds.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_ds.h,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/act/act_ds.h,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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; Index: ossp-pkg/act/act_grid.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_grid.c,v rcsdiff -q -kk '-r1.9' '-r1.10' -u '/v/ossp/cvs/ossp-pkg/act/act_grid.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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; Index: ossp-pkg/act/act_grid.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_grid.h,v rcsdiff -q -kk '-r1.5' '-r1.6' -u '/v/ossp/cvs/ossp-pkg/act/act_grid.h,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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 Index: ossp-pkg/act/act_hash.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_hash.c,v rcsdiff -q -kk '-r1.7' '-r1.8' -u '/v/ossp/cvs/ossp-pkg/act/act_hash.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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 Index: ossp-pkg/act/act_hash.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_hash.h,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/act/act_hash.h,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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_ */ Index: ossp-pkg/act/act_hash_fct.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_hash_fct.c,v rcsdiff -q -kk '-r1.28' '-r1.29' -u '/v/ossp/cvs/ossp-pkg/act/act_hash_fct.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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, Index: ossp-pkg/act/act_hash_lh.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_hash_lh.c,v rcsdiff -q -kk '-r1.10' '-r1.11' -u '/v/ossp/cvs/ossp-pkg/act/act_hash_lh.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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; Index: ossp-pkg/act/act_hash_oh.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_hash_oh.c,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/act/act_hash_oh.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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) { Index: ossp-pkg/act/act_lib.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_lib.c,v rcsdiff -q -kk '-r1.5' '-r1.6' -u '/v/ossp/cvs/ossp-pkg/act/act_lib.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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 Index: ossp-pkg/act/act_lib.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_lib.h,v co -q -kk -p'1.2' '/v/ossp/cvs/ossp-pkg/act/act_lib.h,v' | diff -u /dev/null - -L'ossp-pkg/act/act_lib.h' 2>/dev/null --- ossp-pkg/act/act_lib.h +++ - 2025-05-20 08:50:03.737660137 +0200 @@ -0,0 +1,38 @@ +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project +** +** 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_ */ + Index: ossp-pkg/act/act_mem.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_mem.c,v rcsdiff -q -kk '-r1.10' '-r1.11' -u '/v/ossp/cvs/ossp-pkg/act/act_mem.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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; Index: ossp-pkg/act/act_mem.h RCS File: /v/ossp/cvs/ossp-pkg/act/act_mem.h,v rcsdiff -q -kk '-r1.7' '-r1.8' -u '/v/ossp/cvs/ossp-pkg/act/act_mem.h,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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 Index: ossp-pkg/act/act_p.h.in RCS File: /v/ossp/cvs/ossp-pkg/act/act_p.h.in,v rcsdiff -q -kk '-r1.8' '-r1.9' -u '/v/ossp/cvs/ossp-pkg/act/act_p.h.in,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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" Index: ossp-pkg/act/act_str.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_str.c,v rcsdiff -q -kk '-r1.3' '-r1.4' -u '/v/ossp/cvs/ossp-pkg/act/act_str.c,v' 2>/dev/null --- 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 +/* +** OSSP act - Abstract Container Types +** Copyright (c) 1999-2003 Ralf S. Engelschall +** Copyright (c) 1999-2003 The OSSP Project ** -** 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; Index: ossp-pkg/act/act_test.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_test.c,v rcsdiff -q -kk '-r1.4' '-r1.5' -u '/v/ossp/cvs/ossp-pkg/act/act_test.c,v' 2>/dev/null --- 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 +** Copyright (c) 1999-2003 The OSSP Project +** +** 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 #include @@ -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--; } Index: ossp-pkg/act/act_vers.c RCS File: /v/ossp/cvs/ossp-pkg/act/act_vers.c,v co -q -kk -p'1.4' '/v/ossp/cvs/ossp-pkg/act/act_vers.c,v' | diff -u /dev/null - -L'ossp-pkg/act/act_vers.c' 2>/dev/null --- ossp-pkg/act/act_vers.c +++ - 2025-05-20 08:50:03.824609352 +0200 @@ -0,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$" +}; + +#endif /* _ACT_VERS_C_AS_HEADER_ */ + Index: ossp-pkg/act/configure.ac RCS File: /v/ossp/cvs/ossp-pkg/act/configure.ac,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/act/configure.ac,v' 2>/dev/null --- 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 +dnl ## Copyright (c) 1999-2003 The OSSP Project +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$) - +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 ]) -AC_PREFIX_DEFAULT(/usr/local) -AC_CONFIG_HEADER(act_cfg.h) +[Copyright (c) 1999-2003 Ralf S. Engelschall +Copyright (c) 1999-2003 The OSSP Project ]) 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 Index: ossp-pkg/act/devtool RCS File: /v/ossp/cvs/ossp-pkg/act/devtool,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/act/devtool,v' 2>/dev/null --- 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 +## Copyright (c) 2001 Ralf S. Engelschall ## if [ $# -eq 0 ]; then Index: ossp-pkg/act/devtool.conf RCS File: /v/ossp/cvs/ossp-pkg/act/devtool.conf,v rcsdiff -q -kk '-r1.2' '-r1.3' -u '/v/ossp/cvs/ossp-pkg/act/devtool.conf,v' 2>/dev/null --- 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.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 /dev/null --- 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 +## Copyright (c) 2001-2003 Ralf S. Engelschall ## 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"`