summaryrefslogtreecommitdiff
path: root/cli/header.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cli/header.cxx')
-rw-r--r--cli/header.cxx28
1 files changed, 26 insertions, 2 deletions
diff --git a/cli/header.cxx b/cli/header.cxx
index 3a47c4d..fb714ed 100644
--- a/cli/header.cxx
+++ b/cli/header.cxx
@@ -185,14 +185,38 @@ namespace
//
//
- struct includes: traversal::cxx_includes, context
+ struct includes: traversal::cxx_includes,
+ traversal::cli_includes,
+ context
{
includes (context& c) : context (c) {}
virtual void
traverse (semantics::cxx_includes& i)
{
- os << "#include " << i.file () << endl
+ generate (i.kind (), i.file ().string ());
+ }
+
+ virtual void
+ traverse (semantics::cli_includes& i)
+ {
+ generate (i.kind (),
+ i.file ().base ().string () + options.hxx_suffix ());
+ }
+
+ void
+ generate (semantics::includes::kind_type k, string const& f)
+ {
+ char b, e;
+ if (k == semantics::includes::quote)
+ b = e = '"';
+ else
+ {
+ b = '<';
+ e = '>';
+ }
+
+ os << "#include " << b << f << e << endl
<< endl;
}
};