From 8eacc3486914571de3ca1f5d74891c8a9198e656 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Wed, 22 Dec 2004 09:15:15 +0000 Subject: [PATCH] Added isParentOf() function. --- src/utility/path.cpp | 14 ++++++++++++++ src/utility/path.hpp | 10 +++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/utility/path.cpp b/src/utility/path.cpp index 76a938e3..282af12e 100644 --- a/src/utility/path.cpp +++ b/src/utility/path.cpp @@ -192,6 +192,20 @@ const bool path::isDirectParentOf(const path& p) const } +const bool path::isParentOf(const path& p) const +{ + if (p.getSize() < getSize() + 1) + return (false); + + bool equal = true; + + for (list::size_type i = 0 ; equal && i < m_list.size() ; ++i) + equal = (m_list[i] == p.m_list[i]); + + return (equal); +} + + void path::appendComponent(const path::component& c) { m_list.push_back(c); diff --git a/src/utility/path.hpp b/src/utility/path.hpp index 83bd186a..933794f1 100644 --- a/src/utility/path.hpp +++ b/src/utility/path.hpp @@ -124,12 +124,20 @@ public: component& operator[](const int x); /** Test whether this path is a direct parent of another one. + * + * @param p other path + * @return true if the specified path is a child + * of this path, false otherwise + */ + const bool isDirectParentOf(const path& p) const; + + /** Test whether this path is a parent of another one. * * @param p other path * @return true if the specified path is a child (direct or * indirect) of this path, false otherwise */ - const bool isDirectParentOf(const path& p) const; + const bool isParentOf(const path& p) const; private: