summaryrefslogtreecommitdiff
path: root/lib/gl_anytree_oset.h
Commit message (Collapse)AuthorAgeFilesLines
* gnulib-common: update for C2x 2020-12-11 draftPaul Eggert2021-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use blessed-by-draft-standard way to test for [[__deprecated__]] etc.; this is supported by GCC 11 and the fallback code should work fine with GCC 10 and earlier, clang, etc. * NEWS, doc/attribute.texi: Mention that DEPRECATED etc. must now come first. * lib/fflush.c, lib/unistr.in.h: Do not include unused-parameter.h. All uses of _GL_UNUSED_PARAMETER (after parameters) replaced by _GL_ATTRIBUTE_MAYBE_UNUSED (before parameters). Although perhaps we need a shorter name for _GL_ATTRIBUTE_MAYBE_UNUSED, that should probably be in gnulib-common.m4, due to the ubiquity of this issue. And perhaps the snippet/unused-parameter module should be marked obsolete since it's no longer compatible with its old use. * m4/gnulib-common.m4 (gl_COMMON_BODY): Define the macro _GL_HAS_C_ATTRIBUTE, and use it instead of __STDC_VERSION__ in deciding whether to use C2x attributes like [[__deprecated__]]. (_GL_ATTRIBUTE_MAYBE_UNUSED): Fall back on _GL_ATTRIBUTE_UNUSED. (_GL_ATTRIBUTE_UNUSED): New macro, for labels where C2x [[maybe_unused]] do not work. (_GL_UNUSED, _GL_UNUSED_LABEL): Use it. * modules/fflush, modules/unistr/base (Depends-on): Remove snippet/unused-parameter. * modules/fflush (selinux/selinux.h, selinux/context.h) (selinux/label.h): Do not use $(UNUSED_PARAMETER). Remove useless chmod a-x.
* Put LGPLv2+ notices in source files where appropriate.Bruno Haible2021-06-041-7/+7
| | | | | * lib/**.{h,c,gperf}: Use LGPLv2+ notice whenever the module description says so.
* maint: run 'make update-copyright'Paul Eggert2020-12-311-1/+1
|
* *-list, *-oset, *-omap: Avoid a GCC warning (regression 2020-10-10).Bruno Haible2020-10-181-1/+1
| | | | | | | | | | | | * lib/gl_anylinked_list2.h (gl_linked_iterator_free): Remove '_GL_ATTRIBUTE_CONST'. * lib/gl_anytree_list2.h (gl_tree_iterator_free): Likewise. * lib/gl_anytree_omap.h (gl_tree_iterator_free): Likewise. * lib/gl_anytree_oset.h (gl_tree_iterator_free): Likewise. * lib/gl_array_list.c (gl_array_iterator_free): Likewise. * lib/gl_array_omap.c (gl_array_iterator_free): Likewise. * lib/gl_array_oset.c (gl_array_iterator_free): Likewise. * lib/gl_carray_list.c (gl_carray_iterator_free): Likewise.
* *-list, *-oset, *-omap: Avoid possible compiler warnings.Bruno Haible2020-10-101-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reported by Marc Nieper-Wißkirchen in <https://lists.gnu.org/r/bug-gnulib/2020-10/msg00025.html>. * lib/gl_anylinked_list2.h (gl_linked_iterator, gl_linked_iterator_from_to): Mark as 'pure'. (gl_linked_iterator_free): Mark as 'const'. * lib/gl_anytree_list2.h (gl_tree_size, gl_tree_node_value, gl_tree_search_from_to, gl_tree_indexof_from_to, gl_tree_iterator, gl_tree_iterator_from_to, gl_tree_sortedlist_search, gl_tree_sortedlist_search_from_to, gl_tree_sortedlist_indexof, gl_tree_sortedlist_indexof_from_to): Mark as 'pure'. (gl_tree_iterator_free): Mark as 'const'. * lib/gl_anytree_omap.h (gl_tree_size, gl_tree_iterator): Mark as 'pure'. (gl_tree_iterator_free): Mark as 'const'. * lib/gl_anytree_oset.h (gl_tree_size, gl_tree_next_node, gl_tree_prev_node, gl_tree_iterator): Mark as 'pure'. (gl_tree_iterator_free): Mark as 'const'. * lib/gl_anytreehash_list1.h (node_position, compare_by_position, compare_position_threshold): Mark as 'pure'. * lib/gl_array_list.c (gl_array_size, gl_array_indexof_from_to, gl_array_search_from_to, gl_array_iterator, gl_array_iterator_from_to, gl_array_sortedlist_indexof_from_to, gl_array_sortedlist_indexof, gl_array_sortedlist_search_from_to, gl_array_sortedlist_search): Mark as 'pure'. (gl_array_iterator_free): Mark as 'const'. * lib/gl_array_omap.c (gl_array_size, gl_array_indexof, gl_array_search, gl_array_search_atleast, gl_array_iterator): Mark as 'pure'. (gl_array_iterator_free): Mark as 'const'. * lib/gl_array_oset.c (gl_array_size, gl_array_indexof, gl_array_search, gl_array_indexof_atleast, gl_array_search_atleast, gl_array_iterator, gl_array_iterator_atleast): Mark as 'pure'. (gl_array_iterator_free): Mark as 'const'. * lib/gl_carray_list.c (gl_carray_size, gl_carray_node_value, gl_carray_next_node, gl_carray_previous_node, gl_carray_get_at, gl_carray_indexof_from_to, gl_carray_search_from_to, gl_carray_iterator, gl_carray_iterator_from_to, gl_carray_sortedlist_indexof_from_to, gl_carray_sortedlist_indexof, gl_carray_sortedlist_search_from_to, gl_carray_sortedlist_search): Mark as 'pure'. (gl_carray_iterator_free): Mark as 'const'.
* oset: Add an 'iterator_atleast' operation.Bruno Haible2020-08-021-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | * lib/gl_array_oset.c (gl_array_indexof_atleast): New function, extracted from gl_array_search_atleast. (gl_array_search_atleast): Use it. (gl_array_iterator_atleast): New function. (gl_array_oset_implementation): Use it. * lib/gl_anytree_oset.h (gl_tree_iterator_atleast): New function. * lib/gl_avltree_oset.c (gl_avltree_oset_implementation): Use it. * lib/gl_rbtree_oset.c (gl_rbtree_oset_implementation): Likewise. * lib/gl_oset.h (struct gl_oset_implementation): Add 'iterator_atleast' member. (gl_oset_iterator_atleast): New function. * lib/gl_oset.hh (gl_OSet): Add 'begin_atleast' member. (gl_OSet::iterator): Add another auxiliary constructor. * tests/test-array_oset.c (is_at_least, gl_sortedlist_indexof_atleast): New functions. (main): Test also gl_oset_iterator_atleast. * tests/test-avltree_oset.c (is_at_least): New function. (main): Test also gl_oset_iterator_atleast. * tests/test-rbtree_oset.c (is_at_least): New function. (main): Test also gl_oset_iterator_atleast. * tests/test-oset-c++.cc (is_at_most): New function. (main): Test also gl_OSet::begin_atleast.
* oset: Add an 'update' operation.Bruno Haible2020-07-201-12/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/gl_array_oset.c (gl_array_update): New function. (gl_array_oset_implementation): Use it. * lib/gl_avltree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters. * lib/gl_rbtree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters. * lib/gl_avltree_ordered.h (gl_tree_add_node_before): New function, extracted from gl_tree_nx_add_before. (gl_tree_nx_add_before): Invoke it. (gl_tree_add_node_after): New function, extracted from gl_tree_nx_add_after. (gl_tree_nx_add_after): Invoke it. (gl_tree_remove_node_no_free): New function, extracted from gl_tree_remove_node. (gl_tree_remove_node): Invoke it. * lib/gl_rbtree_ordered.h (gl_tree_add_node_before): New function, extracted from gl_tree_nx_add_before. (gl_tree_nx_add_before): Invoke it. (gl_tree_add_node_after): New function, extracted from gl_tree_nx_add_after. (gl_tree_nx_add_after): Invoke it. (gl_tree_remove_node_no_free): New function, extracted from gl_tree_remove_node. (gl_tree_remove_node): Invoke it. * lib/gl_anytree_oset.h (gl_tree_next_node): New function, extracted from gl_tree_iterator_next. (gl_tree_iterator_next): Invoke it. (gl_tree_prev_node, gl_tree_update): New functions. * lib/gl_avltree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters. (gl_avltree_oset_implementation): Use gl_tree_update. * lib/gl_rbtree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters. (gl_rbtree_oset_implementation): Use gl_tree_update. * lib/gl_oset.h (struct gl_oset_implementation): Add 'update' member. (gl_oset_update): New function. * lib/gl_oset.hh (gl_OSet): Add 'update' member. * modules/avltree-oset (configure.ac): Require AC_C_INLINE. * modules/rbtree-oset (configure.ac): Likewise. * tests/test-oset-update.h: New file. * tests/test-array_oset.c: Include test-oset-update.h. (main): Invoke test_update. * tests/test-avltree_oset.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * modules/array-oset-tests (Files): Add tests/test-oset-update.h. * modules/avltree-oset-tests (Files): Likewise. * modules/rbtree-oset-tests (Files): Likewise. * tests/test-oset-c++.cc (action): New function. (main): Test the 'update' member function.
* list: fix GCC warningsAkim Demaille2020-05-311-1/+1
| | | | | | | | | | | | | * lib/gl_anytree_list2.h (gl_tree_iterator_free) (gl_tree_next_node, gl_tree_node_nx_set_value) (gl_tree_previous_node, gl_tree_next_node): Mark unused arguments. * lib/gl_anytree_oset.h (gl_tree_iterator_free): Likewise. * lib/gl_anylinked_list2.h (gl_linked_node_value) (gl_linked_node_nx_set_value, gl_linked_iterator_free): Likewise. * lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Avoid using the same variable name in nested scopes.
* maint: Run 'make update-copyright'Paul Eggert2019-12-311-1/+1
|
* maint: Run 'make update-copyright'Paul Eggert2019-01-011-1/+1
|
* Fix comments.Bruno Haible2018-12-081-1/+1
| | | | | | | | | | * lib/gl_list.h (gl_list_free): Clarify what it does. * lib/gl_oset.h (gl_oset_free): Likewise. * lib/gl_set.h (gl_set_free): Likewise. * lib/gl_anytree_oset.h (gl_tree_search_atleast): Fix typo in comment. * lib/gl_array_oset.c (gl_array_search_atleast): Likewise. * lib/gl_anyavltree_list1.h (MAXHEIGHT): Likewise. * lib/gl_avltree_oset.c (MAXHEIGHT): Likewise.
* maint: Run 'make update-copyright'Paul Eggert2018-01-011-1/+1
|
* all: prefer https: URLsPaul Eggert2017-09-131-1/+1
|
* version-etc: new yearPaul Eggert2017-01-011-1/+1
| | | | | | | | | | * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
* Use GCC_LINT, not lintPaul Eggert2016-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FreeBSD and Cygwin #define _Noreturn to empty if 'lint' is defined. Problem reported by Ken Brown in: http://bugs.gnu.org/23640 * doc/posix-headers/stdnoreturn.texi (stdnoreturn.h): Document problem with lint and _Noreturn. * lib/diffseq.h (IF_LINT, IF_LINT2): * lib/fts.c (sccsid): * lib/getndelim2.c (IF_LINT): * lib/gl_anylinked_list2.h (gl_linked_iterator) (gl_linked_iterator_from_to): * lib/gl_anytree_list2.h (gl_tree_iterator) (gl_tree_iterator_from_to): * lib/gl_anytree_oset.h (gl_tree_iterator): * lib/gl_array_list.c (gl_array_iterator) (gl_array_iterator_from_to): * lib/gl_array_oset.c (gl_array_iterator): * lib/gl_carray_list.c (gl_carray_iterator) (gl_carray_iterator_from_to): * lib/idcache.c: * lib/inet_ntop.c (IF_LINT): * lib/regcomp.c (build_charclass_op, create_tree): * lib/regex_internal.c (re_acquire_state) (re_acquire_state_context): * lib/trigl.c (rcsid): * lib/trim.c (IF_LINT): * lib/vasnprintf.c (IF_LINT): * lib/verify.h (assume): Treat GCC_LINT like lint.
* version-etc: new yearPaul Eggert2016-01-011-1/+1
| | | | | | | | | | * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
* version-etc: new yearPaul Eggert2014-12-311-1/+1
| | | | | | * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'.
* maint: update copyrightEric Blake2014-01-011-1/+1
| | | | | | I ran 'make update-copyright'. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint: update all copyright year number rangesEric Blake2013-01-011-1/+1
| | | | | | Run "make update-copyright". Compare to commit 1602f0a from last year. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint: update all copyright year number rangesJim Meyering2012-01-011-1/+1
| | | | Run "make update-copyright".
* maint: update almost all copyright ranges to include 2011Jim Meyering2011-01-011-1/+1
| | | | Run the new "make update-copyright" rule.
* update nearly all FSF copyright year lists to include 2010Jim Meyering2010-01-011-1/+1
| | | | | Use the same procedure as for 2009, outlined in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
* Move the malloc checking from module 'oset' to new module 'xoset'.Bruno Haible2009-12-141-10/+17
|
* Use spaces for indentation, not tabs.Bruno Haible2009-12-101-88/+88
|
* Change copyright notice from GPLv2+ to GPLv3+.Bruno Haible2007-10-071-5/+4
|
* Add an element disposal function.Bruno Haible2007-03-151-2/+6
|
* * lib/gl_anytree_oset.h (gl_tree_search_atleast): Return theEric Blake2006-11-131-1/+1
| | | | element, not its node.
* More uses of XMALLOC, XNMALLOC and XCALLOC.Bruno Haible2006-11-071-2/+1
|
* Add a search_atleast operation.Bruno Haible2006-10-041-0/+35
|
* * gl_anylinked_list2.h [lint] (gl_linked_iterator)Ralf Wildenhues2006-09-221-0/+5
| | | | | | | | | | | | (gl_linked_iterator_from_to): Initialize struct completely. * gl_anytree_list2.h [lint] (gl_tree_iterator): Likewise. (gl_tree_iterator_from_to): Likewise * gl_anytree_oset.h [lint] (gl_tree_iterator): Likewise. * gl_array_list.c [lint] (gl_array_iterator) (gl_array_iterator_from_to): Likewise. * gl_array_oset.c [lint] (gl_array_iterator): Likewise. * gl_carray_list.c [lint] (gl_carray_iterator) (gl_carray_iterator_from_to): Likewise.
* Common code of several ordered list implementations.Bruno Haible2006-07-171-0/+248