Allows c++ code to compile with or without CONFIG_LIBC_LOCALE

and will generate a link error if CONFIG_LIBC_LOCALE is not defined
and setlocale is referneced. With CONFIG_LIBC_LOCALE defined
setlocale will act as if MB string is not supported and return
"C" for POSIX. C and ""
This commit is contained in:
David Sidrane
2016-10-19 06:49:19 -10:00
parent b852bb3403
commit b1ed7910f0
3 changed files with 4 additions and 7 deletions
+1 -2
View File
@@ -46,11 +46,10 @@
// Namespace
//***************************************************************************
#ifdef CONFIG_LIBC_LOCALE
namespace std
{
using ::setlocale;
using ::localeconv;
}
#endif
#endif // __INCLUDE_CXX_CLOCALE
-3
View File
@@ -43,8 +43,6 @@
#include <nuttx/config.h>
#include <nuttx/compiler.h>
#ifdef CONFIG_LIBC_LOCALE
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
@@ -109,5 +107,4 @@ FAR struct lconv *localeconv(void);
}
#endif
#endif /* CONFIG_LIBC_LOCALE */
#endif /* __INCLUDE_LOCALE_H */
+3 -2
View File
@@ -43,6 +43,7 @@
#include <locale.h>
#ifdef CONFIG_LIBC_LOCALE
#include <string.h>
/****************************************************************************
* Public Functions
@@ -62,8 +63,8 @@
FAR char *setlocale(int category, FAR const char *locale)
{
/* NULL indicates the the locale was not changed */
return NULL;
return ((strcmp (locale, "POSIX") == 0 || strcmp (locale, "C") == 0 ||
strcmp (locale, "") == 0) ? "C" : NULL);
}
#endif