From 01d269879f127dff8db5367f3c341d983db3ab40 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Thu, 14 Jul 2011 00:11:51 +0000
Subject: [PATCH] Add new STRINGIFY() and STRINGIFY_EXPANDED() convenience
 macros.

---
 LUFA/Common/Common.h        | 20 ++++++++++++++++++++
 LUFA/ManPages/ChangeLog.txt |  1 +
 2 files changed, 21 insertions(+)

diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index d46f92153..162d8516c 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -181,6 +181,26 @@
 			#if !defined(MIN) || defined(__DOXYGEN__)
 				#define MIN(x, y)               ((x < y) ? x : y)
 			#endif
+			
+			#if !defined(STRINGIFY) || defined(__DOXYGEN__)
+				/** Converts the given input into a string, via the C Preprocessor. This macro puts literal quotation
+				 *  marks around the input, converting the source into a string literal.
+				 *
+				 *  \param[in] x  Input to convert into a string literal.
+				 *
+				 *  \return String version of the input.
+				 */
+				#define STRINGIFY(x)            #x
+
+				/** Converts the given input into a string after macro expansion, via the C Preprocessor. This macro puts
+				 *  literal quotation marks around the expanded input, converting the source into a string literal.
+				 *
+				 *  \param[in] x  Input to expand and convert into a string literal.
+				 *
+				 *  \return String version of the expanded input.
+				 */
+				#define STRINGIFY_EXPANDED(x)   STRINGIFY(x)
+			#endif
 
 			#if (ARCH == ARCH_AVR8) || defined(__DOXYGEN__)
 				/** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 2a283380f..3b01ffeb7 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -27,6 +27,7 @@
   *   - Added new USB_Host_ConfigurationNumber global variable to indicate the selected configuration in an attached device
   *   - Added new USB_Host_GetDeviceStatus() function to the host standard request function set
   *   - Added AVR USB XMEGA architecture port (currently incomplete/experimental)
+  *   - Added new STRINGIFY() and STRINGIFY_EXPANDED() convenience macros
   *  - Library Applications:
   *   - Added RNDIS device mode to the Webserver project
   *   - Added new incomplete AndroidAccessoryHost Host LowLevel demo
-- 
GitLab