summaryrefslogtreecommitdiff
path: root/cli/txt.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cli/txt.cxx')
-rw-r--r--cli/txt.cxx18
1 files changed, 16 insertions, 2 deletions
diff --git a/cli/txt.cxx b/cli/txt.cxx
index bf01718..c44e4ff 100644
--- a/cli/txt.cxx
+++ b/cli/txt.cxx
@@ -194,18 +194,26 @@ namespace
//
struct class_: traversal::class_, context
{
- class_ (context& c): context (c) {*this >> inherits_ >> *this;}
+ class_ (context& c): context (c), base_ (false)
+ {
+ *this >> inherits_ >> *this;
+ }
virtual void
traverse (type& c)
{
class_doc_type cd (class_doc (c));
- if (cd == cd_exclude)
+ if (cd == cd_exclude || (base_ && cd == cd_exclude_base))
return;
if (!options.exclude_base () && !options.include_base_last ())
+ {
+ bool ob (base_);
+ base_ = true;
inherits (c);
+ base_ = ob;
+ }
doc dc (*this, cd);
option op (*this, cd);
@@ -215,10 +223,16 @@ namespace
names (c, n);
if (!options.exclude_base () && options.include_base_last ())
+ {
+ bool ob (base_);
+ base_ = true;
inherits (c);
+ base_ = ob;
+ }
}
private:
+ bool base_;
traversal::inherits inherits_;
};
}