diff --git NuttX/nuttx/include/cxx/cwchar NuttX/nuttx/include/cxx/cwchar index 67716ab..bd21740 100755 --- NuttX/nuttx/include/cxx/cwchar +++ NuttX/nuttx/include/cxx/cwchar @@ -46,13 +46,115 @@ // Namespace //*************************************************************************** +/* N.B. The following definitions are enabled at this time to allow the PX4 + * development to continue until there is a SAFE solution to foreign + * (non-nuttx) header file inclusion. There is a potential of a binary + * incompatibility and runtime errors, memory overwrites or corruption + * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + */ namespace std { -#if 0 /* Not defined */ +#if __cplusplus >= 201103L using ::mbstate_t; #endif +/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/ + using ::wint_t; using ::size_t; }; +/* N.B. The following definitions are enabled at this time to allow the PX4 + * development to continue until there is a SAFE solution to foreign + * (non-nuttx) header file inclusion. There is a potential of a binary + * incompatibility and runtime errors, memory overwrites or corruption + * + * These functions are not implemented, but listed here to allow compilation + * Any resulting linker error will require the implementation of the offending + * function(s) Code contributions are welcome. + * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + */ + +#if __cplusplus >= 201103L + +wint_t btowc(int); +int fwprintf(FILE *, const wchar_t *, ...); +int fwscanf(FILE *, const wchar_t *, ...); +int iswalnum(wint_t); +int iswalpha(wint_t); +int iswcntrl(wint_t); +int iswdigit(wint_t); +int iswgraph(wint_t); +int iswlower(wint_t); +int iswprint(wint_t); +int iswpunct(wint_t); +int iswspace(wint_t); +int iswupper(wint_t); +int iswxdigit(wint_t); +int iswctype(wint_t, wctype_t); +wint_t fgetwc(FILE *); +wchar_t *fgetws(wchar_t *, int, FILE *); +wint_t fputwc(wchar_t, FILE *); +int fputws(const wchar_t *, FILE *); +int fwide(FILE *, int); +wint_t getwc(FILE *); +wint_t getwchar(void); +int mbsinit(const mbstate_t *); +size_t mbrlen(const char *, size_t, mbstate_t *); +size_t mbrtowc(wchar_t *, const char *, size_t, + mbstate_t *); +size_t mbsrtowcs(wchar_t *, const char **, size_t, + mbstate_t *); +wint_t putwc(wchar_t, FILE *); +wint_t putwchar(wchar_t); +int swprintf(wchar_t *, size_t, const wchar_t *, ...); +int swscanf(const wchar_t *, const wchar_t *, ...); +wint_t towlower(wint_t); +wint_t towupper(wint_t); +wint_t ungetwc(wint_t, FILE *); +int vfwprintf(FILE *, const wchar_t *, va_list); +int vwprintf(const wchar_t *, va_list); +int vswprintf(wchar_t *, size_t, const wchar_t *, + va_list); +size_t wcrtomb(char *, wchar_t, mbstate_t *); +wchar_t *wcscat(wchar_t *, const wchar_t *); +wchar_t *wcschr(const wchar_t *, wchar_t); +int wcscmp(const wchar_t *, const wchar_t *); +int wcscoll(const wchar_t *, const wchar_t *); +wchar_t *wcscpy(wchar_t *, const wchar_t *); +size_t wcscspn(const wchar_t *, const wchar_t *); +size_t wcsftime(wchar_t *, size_t, const wchar_t *, + const struct tm *); +size_t wcslen(const wchar_t *); +wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); +int wcsncmp(const wchar_t *, const wchar_t *, size_t); +wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); +wchar_t *wcspbrk(const wchar_t *, const wchar_t *); +wchar_t *wcsrchr(const wchar_t *, wchar_t); +size_t wcsrtombs(char *, const wchar_t **, size_t, + mbstate_t *); +size_t wcsspn(const wchar_t *, const wchar_t *); +wchar_t *wcsstr(const wchar_t *, const wchar_t *); +double wcstod(const wchar_t *, wchar_t **); +wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **); +long int wcstol(const wchar_t *, wchar_t **, int); +unsigned long int wcstoul(const wchar_t *, wchar_t **, int); +wchar_t *wcswcs(const wchar_t *, const wchar_t *); +int wcswidth(const wchar_t *, size_t); +size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); +int wctob(wint_t); +wctype_t wctype(const char *); +int wcwidth(wchar_t); +wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); +int wmemcmp(const wchar_t *, const wchar_t *, size_t); +wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); +wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); +wchar_t *wmemset(wchar_t *, wchar_t, size_t); +int wprintf(const wchar_t *, ...); +int wscanf(const wchar_t *, ...); +int vfwscanf(FILE *, const wchar_t *, va_list); +int vswscanf(const wchar_t *, const wchar_t *, va_list); +int vwscanf(const wchar_t *, va_list); +float wcstof(const wchar_t *, wchar_t **); +#endif +/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/ #endif // __INCLUDE_CXX_CWCHAR diff --git NuttX/nuttx/include/wchar.h NuttX/nuttx/include/wchar.h index 90e3d4f..f7dee97 100644 --- NuttX/nuttx/include/wchar.h +++ NuttX/nuttx/include/wchar.h @@ -96,7 +96,25 @@ typedef int wint_t; /* wctype_t * A scalar type of a data object that can hold values which represent * locale-specific character classification. - * + */ + +/* N.B. The following definitions are enabled at this time to allow the PX4 + * development to continue until there is a SAFE solution to foreign + * (non-nuttx) header file inclusion. There is a potential of a binary + * incompatibility and runtime errors, memory overwrites or corruption + * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + */ +#ifndef _WCTYPE_T +#define _WCTYPE_T +# ifdef _AEABI_PORTABLE +typedef void *wctype_t; +# else +typedef int wctype_t; +# endif +#endif /* !_WCTYPE_T */ +/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/ + +/* * mbstate_t * An object type other than an array type that can hold the conversion * state information necessary to convert between sequences of (possibly @@ -105,7 +123,13 @@ typedef int wint_t; * state, the results are unspecified. */ -#if 0 /* Not used */ +/* N.B. The following definitions are enabled at this time to allow the PX4 + * development to continue until there is a SAFE solution to foreign + * (non-nuttx) header file inclusion. There is a potential of a binary + * incompatibility and runtime errors, memory overwrites or corruption + * VVVVVVVVVVVVVVVVVVVVVVVVVV Begin Warning VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + */ +#if __cplusplus >= 201103L /* Commented out because this is dangerous. This defines a type that would * be internal to some wchar implementation. NuttX does not implement the * wchar functions. Having this definition is a time bomb: If this header @@ -128,6 +152,7 @@ struct mbstate_s typedef struct mbstate_s mbstate_t; #endif +/*^^^^^^^^^^^^^^^^^^^^^^^^^ End Warning ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/ /* FILE * As described in .