CI: Build on Arch (bleeding-ege) and Ubuntu (stable) AVR-GCC toolchains.
[pub/USBasp.git] / LUFA / Common / Common.h
index 38afb85..0eee969 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2014.
+     Copyright (C) Dean Camera, 2018.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2018  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
                        #define pgm_read_byte(x)         *x
                        #define memcmp_P(...)            memcmp(__VA_ARGS__)
                        #define memcpy_P(...)            memcpy(__VA_ARGS__)
                        #define pgm_read_byte(x)         *x
                        #define memcmp_P(...)            memcmp(__VA_ARGS__)
                        #define memcpy_P(...)            memcpy(__VA_ARGS__)
+                       #define strlen_P(...)            strlen(__VA_ARGS__)
                        // =================================================
 
                        typedef uint32_t uint_reg_t;
                        // =================================================
 
                        typedef uint32_t uint_reg_t;
 
        /* Public Interface - May be used in end-application: */
                /* Macros: */
 
        /* Public Interface - May be used in end-application: */
                /* Macros: */
-                       /** Macro for encasing other multi-statement macros. This should be used along with an opening brace
-                        *  before the start of any multi-statement macro, so that the macros contents as a whole are treated
-                        *  as a discrete block and not as a list of separate statements which may cause problems when used as
-                        *  a block (such as inline \c if statements).
-                        */
-                       #define MACROS                  do
-
-                       /** Macro for encasing other multi-statement macros. This should be used along with a preceding closing
-                        *  brace at the end of any multi-statement macro, so that the macros contents as a whole are treated
-                        *  as a discrete block and not as a list of separate statements which may cause problems when used as
-                        *  a block (such as inline \c if statements).
-                        */
-                       #define MACROE                  while (0)
+                       #if !defined(__DOXYGEN__)
+                               // Obsolete, retained for compatibility with user code
+                               #define MACROS                  do
+                               #define MACROE                  while (0)
+                       #endif
 
                        /** Convenience macro to determine the larger of two values.
                         *
 
                        /** Convenience macro to determine the larger of two values.
                         *