summaryrefslogtreecommitdiff
path: root/cli/txt.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-03-19 12:44:04 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-03-19 12:44:04 +0200
commit1dea398d6f864c99b9e1c34e4a718239cfd3d8ac (patch)
tree0515378ce75266616760ff41d979357c56d2a087 /cli/txt.cxx
parent29e274022a8c88dd1a48c1b591635bb044fe808f (diff)
Add support for exclude-base value in --class-doc option
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_;
};
}