From 469605e872aeca50c7556708de5d50d7e7935d83 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 24 Nov 2015 11:54:14 +0200 Subject: Implement support for documentation inside classes --- cli/man.cxx | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'cli/man.cxx') diff --git a/cli/man.cxx b/cli/man.cxx index 2d5cce7..606fec6 100644 --- a/cli/man.cxx +++ b/cli/man.cxx @@ -85,15 +85,15 @@ namespace size_t n (ds.size ()); const string& d (n == 1 ? ds[0] : n == 2 ? ds[1] : ds[2]); - if (d.empty ()) - return; - std::set arg_set; if (n > 1) translate_arg (ds[0], arg_set); string s (format (ot_man, translate (d, arg_set), true)); + if (s.empty ()) + return; + wrap_lines (os, s); os << endl; } @@ -175,30 +175,19 @@ namespace // struct class_: traversal::class_, context { - class_ (context& c) - : context (c), option_ (c) - { - *this >> inherits_base_ >> *this; - names_option_ >> option_; - } + class_ (context& c): context (c) {} virtual void traverse (type& c) { if (!options.exclude_base () && !options.include_base_last ()) - inherits (c, inherits_base_); + inherits (c); - names (c, names_option_); + names (c); if (!options.exclude_base () && options.include_base_last ()) - inherits (c, inherits_base_); + inherits (c); } - - private: - traversal::inherits inherits_base_; - - option option_; - traversal::names names_option_; }; } @@ -210,19 +199,26 @@ generate_man (context& ctx) traversal::namespace_ ns; doc dc (ctx); class_ cl (ctx); - unit >> unit_names; unit_names >> ns; unit_names >> dc; unit_names >> cl; traversal::names ns_names; - ns >> ns_names; ns_names >> ns; ns_names >> dc; ns_names >> cl; + traversal::inherits cl_inherits; + cl >> cl_inherits >> cl; + + option op (ctx); + traversal::names cl_names; + cl >> cl_names; + cl_names >> dc; + cl_names >> op; + if (ctx.options.class_ ().empty ()) unit.dispatch (ctx.unit); else -- cgit v1.1