[go: up one dir, main page]

Skip to content

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,