summaryrefslogtreecommitdiff
path: root/dev-cpp
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-02-12 07:16:59 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-02-12 07:16:59 +0000
commitd1985662773c1042b35872efdf79328c2cba70dd (patch)
tree31d1bbda2ff69e789fa57d3677c8d520a650a812 /dev-cpp
parent0cf63d96d174105df95283162326a1128a98de7e (diff)
downloadbaldeagleos-repo-d1985662773c1042b35872efdf79328c2cba70dd.tar.gz
baldeagleos-repo-d1985662773c1042b35872efdf79328c2cba70dd.tar.xz
baldeagleos-repo-d1985662773c1042b35872efdf79328c2cba70dd.zip
Adding metadata
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/tree/files/3.18-add-missing-insert.patch82
-rw-r--r--dev-cpp/tree/files/3.18-const.patch23
-rw-r--r--dev-cpp/tree/files/3.18-cxx.patch27
-rw-r--r--dev-cpp/tree/files/3.18-fix-move-out.patch46
-rw-r--r--dev-cpp/tree/tree-3.18-r1.ebuild46
5 files changed, 224 insertions, 0 deletions
diff --git a/dev-cpp/tree/files/3.18-add-missing-insert.patch b/dev-cpp/tree/files/3.18-add-missing-insert.patch
new file mode 100644
index 000000000000..adf3776448ac
--- /dev/null
+++ b/dev-cpp/tree/files/3.18-add-missing-insert.patch
@@ -0,0 +1,82 @@
+https://github.com/kpeeters/tree.hh/commit/1bd1cd80cdcec2ba1c677ee0ef3766a9485d1d2f
+
+From: Kasper Peeters <kasper.peeters@phi-sci.com>
+Date: Fri, 17 Nov 2023 11:24:49 +0000
+Subject: [PATCH] Add a missing 'insert(sibling_iterators, T&&)'. Fixes issue
+ #24.
+
+---
+ src/tree.hh | 39 +++++++++++++++++++++++++++++++++++----
+ 1 file changed, 35 insertions(+), 4 deletions(-)
+
+diff --git a/src/tree.hh b/src/tree.hh
+index 906cda1..d460165 100644
+--- a/src/tree.hh
++++ b/src/tree.hh
+@@ -1,7 +1,7 @@
+
+ // STL-like templated tree class.
+ //
+-// Copyright (C) 2001-2020 Kasper Peeters <kasper@phi-sci.com>
++// Copyright (C) 2001-2023 Kasper Peeters <kasper@phi-sci.com>
+ // Distributed under the GNU General Public License version 3.
+ //
+ // Special permission to use tree.hh under the conditions of a
+@@ -9,9 +9,8 @@
+
+ /** \mainpage tree.hh
+ \author Kasper Peeters
+- \version 3.18
+- \date 13-Feb-2021
+- \see http://tree.phi-sci.com/
++ \version 3.19
++ \date 2023-11-17
+ \see http://github.com/kpeeters/tree.hh/
+
+ The tree.hh library for C++ provides an STL-like container class
+@@ -363,6 +362,7 @@ class tree {
+ template<typename iter> iter insert(iter position, T&& x);
+ /// Specialisation of previous member.
+ sibling_iterator insert(sibling_iterator position, const T& x);
++ sibling_iterator insert(sibling_iterator position, T&& x);
+ /// Insert node (with children) pointed to by subtree as previous sibling of node pointed to by position.
+ /// Does not change the subtree itself (use move_in or move_in_below for that).
+ template<typename iter> iter insert_subtree(iter position, const iterator_base& subtree);
+@@ -1363,6 +1363,37 @@ typename tree<T, tree_node_allocator>::sibling_iterator tree<T, tree_node_alloca
+ return tmp;
+ }
+
++template <class T, class tree_node_allocator>
++typename tree<T, tree_node_allocator>::sibling_iterator tree<T, tree_node_allocator>::insert(sibling_iterator position, T&& x)
++ {
++ tree_node *tmp=std::allocator_traits<decltype(alloc_)>::allocate(alloc_, 1, 0);
++ std::allocator_traits<decltype(alloc_)>::construct(alloc_, tmp);
++ std::swap(tmp->data, x); // Move semantics
++
++ tmp->first_child=0;
++ tmp->last_child=0;
++
++ tmp->next_sibling=position.node;
++ if(position.node==0) { // iterator points to end of a subtree
++ tmp->parent=position.parent_;
++ tmp->prev_sibling=position.range_last();
++ tmp->parent->last_child=tmp;
++ }
++ else {
++ tmp->parent=position.node->parent;
++ tmp->prev_sibling=position.node->prev_sibling;
++ position.node->prev_sibling=tmp;
++ }
++
++ if(tmp->prev_sibling==0) {
++ if(tmp->parent) // when inserting nodes at the head, there is no parent
++ tmp->parent->first_child=tmp;
++ }
++ else
++ tmp->prev_sibling->next_sibling=tmp;
++ return tmp;
++ }
++
+ template <class T, class tree_node_allocator>
+ template <class iter>
+ iter tree<T, tree_node_allocator>::insert_after(iter position, const T& x)
diff --git a/dev-cpp/tree/files/3.18-const.patch b/dev-cpp/tree/files/3.18-const.patch
new file mode 100644
index 000000000000..580c23f7ac53
--- /dev/null
+++ b/dev-cpp/tree/files/3.18-const.patch
@@ -0,0 +1,23 @@
+https://github.com/kpeeters/tree.hh/commit/0ee8b5a4c3a93814bbf465ffc56c296cf84f1832
+
+From: Kasper Peeters <kasper.peeters@phi-sci.com>
+Date: Fri, 17 Nov 2023 11:27:13 +0000
+Subject: [PATCH] Fix const-correctness for comparison.
+
+---
+ src/tree.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tree.hh b/src/tree.hh
+index d460165..be45f99 100644
+--- a/src/tree.hh
++++ b/src/tree.hh
+@@ -505,7 +505,7 @@ class tree {
+ public:
+ compare_nodes(StrictWeakOrdering comp) : comp_(comp) {}
+
+- bool operator()(const tree_node *a, const tree_node *b)
++ bool operator()(const tree_node *a, const tree_node *b) const
+ {
+ return comp_(a->data, b->data);
+ }
diff --git a/dev-cpp/tree/files/3.18-cxx.patch b/dev-cpp/tree/files/3.18-cxx.patch
new file mode 100644
index 000000000000..e5562dfee4f6
--- /dev/null
+++ b/dev-cpp/tree/files/3.18-cxx.patch
@@ -0,0 +1,27 @@
+--- tree.hh-3.18/src/Makefile
++++ tree.hh-3.18/src/Makefile
+@@ -2,19 +2,19 @@
+ all: test1 test2 test_tree
+
+ %.o: %.cc tree.hh
+- g++ -g -c -o $@ -Wall -O2 -std=c++11 -I. $<
++ $(CXX) -g -c -o $@ -Wall -O2 -std=c++11 -I. $<
+
+ test1: test1.o
+- g++ -o test1 test1.o
++ $(CXX) -o test1 test1.o
+
+ test2: test2.o
+- g++ -o test2 test2.o
++ $(CXX) -o test2 test2.o
+
+ test_tree: test_tree.o
+- g++ -o test_tree test_tree.o
++ $(CXX) -o test_tree test_tree.o
+
+ sample_path: sample_path.o
+- g++ -o sample_path sample_path.o
++ $(CXX) -o sample_path sample_path.o
+
+ run_tests: test1 test1.req
+ ./test1 > test1.res
diff --git a/dev-cpp/tree/files/3.18-fix-move-out.patch b/dev-cpp/tree/files/3.18-fix-move-out.patch
new file mode 100644
index 000000000000..9f72b438720b
--- /dev/null
+++ b/dev-cpp/tree/files/3.18-fix-move-out.patch
@@ -0,0 +1,46 @@
+https://github.com/kpeeters/tree.hh/commit/66f71a672698909e5b613a3c04a918bac3d4282f
+
+From: Kasper Peeters <kasper.peeters@phi-sci.com>
+Date: Fri, 17 Nov 2023 11:33:30 +0000
+Subject: [PATCH] Fix move_out for cases when the moved-out node was first or
+ last child of the old parent.
+
+---
+ src/tree.hh | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/src/tree.hh b/src/tree.hh
+index be45f99..743a81b 100644
+--- a/src/tree.hh
++++ b/src/tree.hh
+@@ -1860,7 +1860,6 @@ tree<T, tree_node_allocator> tree<T, tree_node_allocator>::move_out(iterator sou
+ // Move source node into the 'ret' tree.
+ ret.head->next_sibling = source.node;
+ ret.feet->prev_sibling = source.node;
+- source.node->parent=0;
+
+ // Close the links in the current tree.
+ if(source.node->prev_sibling!=0)
+@@ -1869,6 +1868,22 @@ tree<T, tree_node_allocator> tree<T, tree_node_allocator>::move_out(iterator sou
+ if(source.node->next_sibling!=0)
+ source.node->next_sibling->prev_sibling = source.node->prev_sibling;
+
++ // If the moved-out node was a first or last child of
++ // the parent, adjust those links.
++ if(source.node->parent->first_child==source.node) {
++ if(source.node->next_sibling!=0)
++ source.node->parent->first_child=source.node->next_sibling;
++ else
++ source.node->parent->first_child=0;
++ }
++ if(source.node->parent->last_child==source.node) {
++ if(source.node->prev_sibling!=0)
++ source.node->parent->last_child=source.node->prev_sibling;
++ else
++ source.node->parent->last_child=0;
++ }
++ source.node->parent=0;
++
+ // Fix source prev/next links.
+ source.node->prev_sibling = ret.head;
+ source.node->next_sibling = ret.feet;
diff --git a/dev-cpp/tree/tree-3.18-r1.ebuild b/dev-cpp/tree/tree-3.18-r1.ebuild
new file mode 100644
index 000000000000..8e80f85b9080
--- /dev/null
+++ b/dev-cpp/tree/tree-3.18-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOCS_BUILDER="doxygen"
+DOCS_CONFIG_NAME="doxygen_tree.config"
+DOCS_DIR="doc"
+
+inherit docs toolchain-funcs
+
+DESCRIPTION="An STL-like tree class"
+HOMEPAGE="https://github.com/kpeeters/tree.hh"
+SRC_URI="https://github.com/kpeeters/tree.hh/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}.hh-${PV}"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+PATCHES=(
+ "${FILESDIR}"/3.18-add-missing-insert.patch
+ "${FILESDIR}"/3.18-const.patch
+ "${FILESDIR}"/3.18-cxx.patch
+ "${FILESDIR}"/3.18-fix-move-out.patch
+)
+
+src_configure() {
+ tc-export CXX
+}
+
+src_compile() {
+ docs_compile
+}
+
+src_test() {
+ cd src || die
+ emake
+ emake run_tests
+}
+
+src_install() {
+ doheader src/tree.hh src/tree_util.hh
+ dodoc -r examples
+ einstalldocs
+}