diff --git a/doc/markdown/todo.md b/doc/markdown/todo.md
index f680006..a38027f 100644
--- a/doc/markdown/todo.md
+++ b/doc/markdown/todo.md
@@ -2,22 +2,6 @@
 
 - colors in output
 
-- fix command line
-
-
-add _CONFIG_ in config macros
-
-
-
-
--dt-file
--dt-file-exclude
--dt-suite
--dt-suite-exclude
--dt-name
--dt-name-exclude
-
-
 
 
 
diff --git a/doctest/doctest.h b/doctest/doctest.h
index b448108..5448e2f 100644
--- a/doctest/doctest.h
+++ b/doctest/doctest.h
@@ -79,15 +79,15 @@
 #define DOCTEST_SNPRINTF snprintf
 #endif
 
-#if !defined(DOCTEST_COLORS_NONE)
-#if !defined(DOCTEST_COLORS_WINDOWS) && !defined(DOCTEST_COLORS_ANSI)
+#if !defined(DOCTEST_CONFIG_COLORS_NONE)
+#if !defined(DOCTEST_CONFIG_COLORS_WINDOWS) && !defined(DOCTEST_CONFIG_COLORS_ANSI)
 #ifdef DOCTEST_PLATFORM_WINDOWS
-#define DOCTEST_COLORS_WINDOWS
+#define DOCTEST_CONFIG_COLORS_WINDOWS
 #else // linux
-#define DOCTEST_COLORS_ANSI
+#define DOCTEST_CONFIG_COLORS_ANSI
 #endif // platform
-#endif // DOCTEST_COLORS_WINDOWS && DOCTEST_COLORS_ANSI
-#endif // DOCTEST_COLORS_NONE
+#endif // DOCTEST_CONFIG_COLORS_WINDOWS && DOCTEST_CONFIG_COLORS_ANSI
+#endif // DOCTEST_CONFIG_COLORS_NONE
 
 #ifdef DOCTEST_PLATFORM_MAC
 // The following code snippet based on:
@@ -148,7 +148,7 @@
     int compare(const String& other, bool no_case = false) const;
 };
 
-#if !defined(DOCTEST_DISABLE)
+#if !defined(DOCTEST_CONFIG_DISABLE)
 
 namespace detail
 {
@@ -325,16 +325,16 @@
     ContextParams*& getCurrentContextParams();
 } // namespace detail
 
-#endif // DOCTEST_DISABLE
+#endif // DOCTEST_CONFIG_DISABLE
 
 class Context
 {
-#if !defined(DOCTEST_DISABLE)
+#if !defined(DOCTEST_CONFIG_DISABLE)
     detail::ContextParams p;
 
     void parseArgs(int argc, const char* const* argv, bool withDefaults = false);
 
-#endif // DOCTEST_DISABLE
+#endif // DOCTEST_CONFIG_DISABLE
 
 public:
     Context(int argc, const char* const* argv);
@@ -347,7 +347,7 @@
 } // namespace doctest
 
 // if registering is not disabled
-#if !defined(DOCTEST_DISABLE)
+#if !defined(DOCTEST_CONFIG_DISABLE)
 
 namespace doctest
 {
@@ -552,9 +552,9 @@
 
 // =================================================================================================
 // == WHAT FOLLOWS IS VERSIONS OF THE MACROS THAT DO NOT DO ANY REGISTERING!                      ==
-// == THIS CAN BE ENABLED BY DEFINING DOCTEST_DISABLE GLOBALLY!                                   ==
+// == THIS CAN BE ENABLED BY DEFINING DOCTEST_CONFIG_DISABLE GLOBALLY!                                   ==
 // =================================================================================================
-#else // DOCTEST_DISABLE
+#else // DOCTEST_CONFIG_DISABLE
 
 namespace doctest
 {
@@ -616,10 +616,10 @@
 #define DOCTEST_REQUIRE_THROWS_AS(expr, ex) ((void)0)
 #define DOCTEST_REQUIRE_NOTHROW(expr) ((void)0)
 
-#endif // DOCTEST_DISABLE
+#endif // DOCTEST_CONFIG_DISABLE
 
 // == SHORT VERSIONS OF THE TEST/FIXTURE/TESTSUITE MACROS
-#if !defined(DOCTEST_NO_SHORT_MACRO_NAMES)
+#if !defined(DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES)
 
 #define TESTCASE DOCTEST_TESTCASE
 #define TESTCASE_FIXTURE DOCTEST_TESTCASE_FIXTURE
@@ -637,7 +637,7 @@
 #define REQUIRE_THROWS_AS DOCTEST_REQUIRE_THROWS_AS
 #define REQUIRE_NOTHROW DOCTEST_REQUIRE_NOTHROW
 
-#endif // DOCTEST_NO_SHORT_MACRO_NAMES
+#endif // DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES
 
 // this is here to clear the 'current test suite' for the current translation unit - at the top
 DOCTEST_TESTSUITE_END;
@@ -647,7 +647,8 @@
 // =================================================================================================
 // == WHAT FOLLOWS IS THE IMPLEMENTATION OF THE TEST RUNNER                                       ==
 // =================================================================================================
-#if(defined(DOCTEST_IMPLEMENT) || defined(DOCTEST_IMPLEMENT_WITH_MAIN)) && !defined(DOCTEST_DISABLE)
+#if(defined(DOCTEST_CONFIG_IMPLEMENT) || defined(DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN)) &&           \
+        !defined(DOCTEST_CONFIG_DISABLE)
 #ifndef DOCTEST_LIBRARY_IMPLEMENTATION
 #define DOCTEST_LIBRARY_IMPLEMENTATION
 
@@ -672,11 +673,11 @@
 extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
 #endif // DOCTEST_PLATFORM_WINDOWS
 
-#ifdef DOCTEST_COLORS_ANSI
+#ifdef DOCTEST_CONFIG_COLORS_ANSI
 #include <unistd.h>
-#endif // DOCTEST_COLORS_ANSI
+#endif // DOCTEST_CONFIG_COLORS_ANSI
 
-#ifdef DOCTEST_COLORS_WINDOWS
+#ifdef DOCTEST_CONFIG_COLORS_WINDOWS
 
 // defines for a leaner windows.h
 #ifndef WIN32_MEAN_AND_LEAN
@@ -696,7 +697,7 @@
 #include <windows.h>
 #endif
 
-#endif // DOCTEST_COLORS_WINDOWS
+#endif // DOCTEST_CONFIG_COLORS_WINDOWS
 
 // main namespace of the library
 namespace doctest
@@ -1186,7 +1187,7 @@
         ContextParams* p = getCurrentContextParams();
         if(p->no_colors)
             return;
-#ifdef DOCTEST_COLORS_ANSI
+#ifdef DOCTEST_CONFIG_COLORS_ANSI
         if(isatty(STDOUT_FILENO)) {
             const char* col = "";
             // clang-format off
@@ -1209,10 +1210,9 @@
             // clang-format on
             printf("\033%s", col);
         }
-#endif // DOCTEST_COLORS_ANSI
+#endif // DOCTEST_CONFIG_COLORS_ANSI
 
-#ifdef DOCTEST_COLORS_WINDOWS
-#define set(x) SetConsoleTextAttribute(stdoutHandle, x | originalBackgroundAttributes)
+#ifdef DOCTEST_CONFIG_COLORS_WINDOWS
         static HANDLE stdoutHandle(GetStdHandle(STD_OUTPUT_HANDLE));
         static WORD   originalForegroundAttributes;
         static WORD   originalBackgroundAttributes;
@@ -1229,25 +1229,28 @@
                     ~(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
         }
 
+#define DOCTEST_SET_ATTR(x) SetConsoleTextAttribute(stdoutHandle, x | originalBackgroundAttributes)
+
         // clang-format off
         switch (code) {
-            case Color::White:       set(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;
-            case Color::Red:         set(FOREGROUND_RED);                                      break;
-            case Color::Green:       set(FOREGROUND_GREEN);                                    break;
-            case Color::Blue:        set(FOREGROUND_BLUE);                                     break;
-            case Color::Cyan:        set(FOREGROUND_BLUE | FOREGROUND_GREEN);                  break;
-            case Color::Yellow:      set(FOREGROUND_RED | FOREGROUND_GREEN);                   break;
-            case Color::Grey:        set(0);                                                   break;
-            case Color::LightGrey:   set(FOREGROUND_INTENSITY);                                break;
-            case Color::BrightRed:   set(FOREGROUND_INTENSITY | FOREGROUND_RED);               break;
-            case Color::BrightGreen: set(FOREGROUND_INTENSITY | FOREGROUND_GREEN);             break;
-            case Color::BrightWhite: set(FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;
+            case Color::White:       DOCTEST_SET_ATTR(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;
+            case Color::Red:         DOCTEST_SET_ATTR(FOREGROUND_RED);                                      break;
+            case Color::Green:       DOCTEST_SET_ATTR(FOREGROUND_GREEN);                                    break;
+            case Color::Blue:        DOCTEST_SET_ATTR(FOREGROUND_BLUE);                                     break;
+            case Color::Cyan:        DOCTEST_SET_ATTR(FOREGROUND_BLUE | FOREGROUND_GREEN);                  break;
+            case Color::Yellow:      DOCTEST_SET_ATTR(FOREGROUND_RED | FOREGROUND_GREEN);                   break;
+            case Color::Grey:        DOCTEST_SET_ATTR(0);                                                   break;
+            case Color::LightGrey:   DOCTEST_SET_ATTR(FOREGROUND_INTENSITY);                                break;
+            case Color::BrightRed:   DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_RED);               break;
+            case Color::BrightGreen: DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_GREEN);             break;
+            case Color::BrightWhite: DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;
             case Color::None:
             case Color::Bright: // invalid
-            default:                 set(originalForegroundAttributes);
+            default:                 DOCTEST_SET_ATTR(originalForegroundAttributes);
         }
 // clang-format on
-#endif // DOCTEST_COLORS_WINDOWS
+#undef DOCTEST_SET_ATTR
+#endif // DOCTEST_CONFIG_COLORS_WINDOWS
     }
 
     // depending on the current options this will remove the path of filenames
@@ -1398,9 +1401,9 @@
         return false;
     }
 
-    // parses a comma separated list of words after a pattern in one of the arguments in argv
-    void parseCommaSepArg(int argc, const char* const* argv, const char* pattern,
-                          Vector<String>& res) {
+    // the implementation of parseCommaSepArg()
+    bool parseCommaSepArgImpl(int argc, const char* const* argv, const char* pattern,
+                              Vector<String>& res) {
         String filtersString;
         for(int i = argc - 1; i >= 0; --i) {
             const char* temp = strstr(argv[i], pattern);
@@ -1423,19 +1426,33 @@
                     res.push_back(pch);
                 pch = strtok(0, ","); // uses the strtok() internal state to go to the next token
             }
+            return true;
         }
+        return false;
     }
 
-    enum paramType
+    // parses a comma separated list of words after a pattern in one of the arguments in argv
+    bool parseCommaSepArg(int argc, const char* const* argv, const char* pattern,
+                          Vector<String>& res) {
+#ifndef DOCTEST_CONFIG_NO_SHORT_FLAGS
+        if(!parseCommaSepArgImpl(argc, argv, pattern, res))
+            return parseCommaSepArgImpl(argc, argv, pattern + 3, res); // 3 for "dt-"
+        return true;
+#else // DOCTEST_CONFIG_NO_SHORT_FLAGS
+        return parseCommaSepArgImpl(argc, argv, pattern, res);
+#endif // DOCTEST_CONFIG_NO_SHORT_FLAGS
+    }
+
+    enum optionType
     {
         param_bool,
         param_int
     };
 
-    // parses an option from the command line (bool: type == 0, int: type == 1)
-    bool parseOption(int argc, const char* const* argv, const char* option, paramType type, int def,
-                     int& res) {
-        res = def;
+    // parses an option from the command line
+    bool parseOption(int argc, const char* const* argv, const char* option, optionType type,
+                     int defaultVal, int& res) {
+        res = defaultVal;
 
         Vector<String> parsedValues;
         parseCommaSepArg(argc, argv, option, parsedValues);
@@ -1551,30 +1568,23 @@
 
     int res = 0;
 
-    if(parseOption(argc, argv, "dt-count=", param_bool, 0, res) || withDefaults)
-        p.count = !!res;
-    if(parseOption(argc, argv, "dt-case-sensitive=", param_bool, 0, res) || withDefaults)
-        p.case_sensitive = !!res;
-    if(parseOption(argc, argv, "dt-no-overrides=", param_bool, 0, res) || withDefaults)
-        p.no_overrides = !!res;
-    if(parseOption(argc, argv, "dt-exit=", param_bool, 0, res) || withDefaults)
-        p.exit = !!res;
-    if(parseOption(argc, argv, "dt-first=", param_int, 1, res) || withDefaults)
-        p.first = !!res;
-    if(parseOption(argc, argv, "dt-last=", param_int, 0, res) || withDefaults)
-        p.last = !!res;
-    if(parseOption(argc, argv, "dt-no-exitcode=", param_bool, 0, res) || withDefaults)
-        p.no_exitcode = !!res;
-    if(parseOption(argc, argv, "dt-no-run=", param_bool, 0, res) || withDefaults)
-        p.no_run = !!res;
-    if(parseOption(argc, argv, "dt-no-colors=", param_bool, 0, res) || withDefaults)
-        p.no_colors = !!res;
-    if(parseOption(argc, argv, "dt-no-breaks=", param_bool, 0, res) || withDefaults)
-        p.no_breaks = !!res;
-    if(parseOption(argc, argv, "dt-hash-table-histogram=", param_bool, 0, res) || withDefaults)
-        p.hash_table_histogram = !!res;
-    if(parseOption(argc, argv, "dt-no-path-in-filenames=", param_bool, 0, res) || withDefaults)
-        p.no_path_in_filenames = !!res;
+#define DOCTEST_PARSE_OPTION(name, var, type, default)                                             \
+    if(parseOption(argc, argv, name, type, default, res) || withDefaults)                          \
+    p.var = !!res
+
+    DOCTEST_PARSE_OPTION("dt-count=", count, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-case-sensitive=", case_sensitive, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-no-overrides=", no_overrides, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-exit=", exit, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-first=", first, param_int, 1);
+    DOCTEST_PARSE_OPTION("dt-last=", last, param_int, 0);
+    DOCTEST_PARSE_OPTION("dt-no-exitcode=", no_exitcode, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-no-run=", no_run, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-no-colors=", no_colors, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-no-breaks=", no_breaks, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-hash-table-histogram=", hash_table_histogram, param_bool, 0);
+    DOCTEST_PARSE_OPTION("dt-no-path-in-filenames=", no_path_in_filenames, param_bool, 0);
+#undef DOCTEST_PARSE_OPTION
 }
 
 // allows the user to add procedurally to the filters from the command line
@@ -1730,10 +1740,10 @@
 } // namespace doctest
 
 #endif // DOCTEST_LIBRARY_IMPLEMENTATION
-#endif // DOCTEST_IMPLEMENT
+#endif // DOCTEST_CONFIG_IMPLEMENT
 
 // == THIS SUPPLIES A MAIN FUNCTION AND SHOULD BE DONE ONLY IN ONE TRANSLATION UNIT
-#if defined(DOCTEST_IMPLEMENT_WITH_MAIN) && !defined(DOCTEST_MAIN_CONFIGURED)
+#if defined(DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN) && !defined(DOCTEST_MAIN_CONFIGURED)
 #define DOCTEST_MAIN_CONFIGURED
 int main(int argc, char** argv) { return doctest::Context(argc, argv).runTests(); }
 #endif // DOCTEST_MAIN_CONFIGURED
diff --git a/examples/dev_testing/main.cpp b/examples/dev_testing/main.cpp
index 08da086..af9f99f 100644
--- a/examples/dev_testing/main.cpp
+++ b/examples/dev_testing/main.cpp
@@ -1,7 +1,7 @@
-//#define DOCTEST_DISABLE
+//#define DOCTEST_CONFIG_DISABLE
 
 //#include "doctest.h"
-#define DOCTEST_IMPLEMENT
+#define DOCTEST_CONFIG_IMPLEMENT
 #include "doctest.h"
 
 #include <cstdio>
@@ -12,7 +12,7 @@
 
     // overrides
     context.setOption("dt-case-sensitive", true);
-    context.setOption("dt-no-breaks", true);
+    context.setOption("no-breaks", true);
     //context.setOption("dt-no-colors", true);
     context.addFilter("dt-name", "zzz");
 
diff --git a/examples/dev_testing/test.cpp b/examples/dev_testing/test.cpp
index 2cfa23e..14b9e04 100644
--- a/examples/dev_testing/test.cpp
+++ b/examples/dev_testing/test.cpp
@@ -1,4 +1,4 @@
-//#define DOCTEST_DISABLE
+//#define DOCTEST_CONFIG_DISABLE
 
 #include "doctest.h"
 
diff --git a/examples/disabled/main.cpp b/examples/disabled/main.cpp
index 72a55d4..f047fd9 100644
--- a/examples/disabled/main.cpp
+++ b/examples/disabled/main.cpp
@@ -1,6 +1,6 @@
-#define DOCTEST_DISABLE
+#define DOCTEST_CONFIG_DISABLE
 
-#define DOCTEST_IMPLEMENT_WITH_MAIN
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
 #include "doctest.h"
 
 #include <cstdio>
diff --git a/examples/hello_world/main.cpp b/examples/hello_world/main.cpp
index 593b0de..1888cd3 100644
--- a/examples/hello_world/main.cpp
+++ b/examples/hello_world/main.cpp
@@ -1,4 +1,4 @@
-#define DOCTEST_IMPLEMENT_WITH_MAIN
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
 #include "doctest.h"
 
 #include <cstdio>
diff --git a/examples/multi_dll/common.h b/examples/multi_dll/common.h
index 1ee40bc..f80f65c 100644
--- a/examples/multi_dll/common.h
+++ b/examples/multi_dll/common.h
@@ -27,7 +27,7 @@
   #endif
 #endif
 
-#define DOCTEST_IMPLEMENT
+#define DOCTEST_CONFIG_IMPLEMENT
 #include "doctest.h"
 
 #include <cstdio>
diff --git a/examples/multiprocess/main.cpp b/examples/multiprocess/main.cpp
index 68eee7d..a2e32d3 100644
--- a/examples/multiprocess/main.cpp
+++ b/examples/multiprocess/main.cpp
@@ -1,4 +1,4 @@
-#define DOCTEST_IMPLEMENT_WITH_MAIN
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
 #include "doctest.h"
 
 //system("timeout /t 1 /nobreak");
diff --git a/examples/stress_test/main.cpp b/examples/stress_test/main.cpp
index 605ef5b..5bf4cfb 100644
--- a/examples/stress_test/main.cpp
+++ b/examples/stress_test/main.cpp
@@ -1,4 +1,4 @@
-#define DOCTEST_IMPLEMENT_WITH_MAIN
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
 #include "doctest.h"
 #include "stress.inl"
 #include "stress.inl"
diff --git a/examples/type_reporting/main.cpp b/examples/type_reporting/main.cpp
index 764bea7..692482f 100644
--- a/examples/type_reporting/main.cpp
+++ b/examples/type_reporting/main.cpp
@@ -1,4 +1,4 @@
-#define DOCTEST_IMPLEMENT_WITH_MAIN
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
 #include "doctest.h"
 
 #include <climits>
