Raw string literals that contain macros handled incorrectly
The sample below is formatted using Artistic Style Version 3.1:
#include "docopt.h"
#include <iostream>
static const char USAGE[] =
R"(Naval Fate.
Usage:
)" NAVAL_FATE R"( ship new <name>...
)" NAVAL_FATE R"( ship <name> move <x> <y> [--speed=<kn>]
)" NAVAL_FATE R"( ship shoot <x> <y>
)" NAVAL_FATE R"( mine (set|remove) <x> <y> [--moored | --drifting]
)" NAVAL_FATE R"( (-h | --help)
)" NAVAL_FATE R"( --version
Options:
-h --help Show this screen.
--version Show version.
--speed=<kn> Speed in knots [default: 10].
--moored Moored (anchored) mine.
--drifting Drifting mine.
)";
int main(int argc, const char** argv)
{
std::map<std::string, docopt::value> args
= docopt::docopt(USAGE,
{ argv + 1, argv + argc },
true, // show help if requested
"Naval Fate 2.0"); // version string
for(auto const& arg : args) {
std::cout << arg.first << arg.second << std::endl;
}
return 0;
}
The diff below shows how Artistic Style Version 3.6.7 formats it:
@@ -5,22 +5,22 @@ static const char USAGE[] =
R"(Naval Fate.
Usage:
)" NAVAL_FATE R"( ship new <name>...
)" NAVAL_FATE R"( ship <name> move <x> <y> [--speed=<kn>]
- )" NAVAL_FATE R"( ship shoot <x> <y>
- )" NAVAL_FATE R"( mine (set|remove) <x> <y> [--moored | --drifting]
- )" NAVAL_FATE R"( (-h | --help)
- )" NAVAL_FATE R"( --version
+ )" NAVAL_FATE R"( ship shoot <x> <y>
+ )" NAVAL_FATE R"( mine (set|remove) <x> <y> [--moored | --drifting]
+ )" NAVAL_FATE R"( (-h | --help)
+ )" NAVAL_FATE R"( --version
- Options:
- -h --help Show this screen.
- --version Show version.
- --speed=<kn> Speed in knots [default: 10].
- --moored Moored (anchored) mine.
- --drifting Drifting mine.
-)";
+ Options:
+ -h --help Show this screen.
+ --version Show version.
+ --speed=<kn> Speed in knots [default: 10].
+ --moored Moored (anchored) mine.
+ --drifting Drifting mine.
+ )";
int main(int argc, const char** argv)
{
std::map<std::string, docopt::value> args
= docopt::docopt(USAGE,