I've got this little bit of simple code, and it produces lots of "C2001: newline in constant" errors.
The odd thing is that the source code file is in Unicode (UTF-8) and the program is being compiled in Unicode mode (Character Set: Use Unicode Character Set). So why is it complaining?
Code:
#define ARROW_DOWN 138 /* '\x8A' */
#define ARROW_LEFT 139 /* '\x8B' */
#define ARROW_RIGHT 140 /* '\x8C' */
#define ARROW_UP 141 /* '\x8D' */
#ifdef WINDOWS
# define ARROW_N __T('↑')
# define ARROW_E __T('→')
# define ARROW_S __T('↓')
# define ARROW_W __T('←')
# define ARROW_NE __T('↗')
# define ARROW_SE __T('↘')
# define ARROW_SW __T('↙')
# define ARROW_NW __T('↖')
# define ARROW_WAIT __T('↻')
/* Analogous to isdigit() etc in ctypes */
# define isarrow(c) ( \
(((int)c >= ARROW_DOWN) && ((int)c <= ARROW_UP)) \
|| (((int)c >= ARROW_W) && ((int)c <= ARROW_S)) \
|| (((int)c >= ARROW_NW) && ((int)c <= ARROW_SW)) \
|| ((int)c >= ARROW_WAIT) \
)
#else
# define isarrow(c) ( \
(((int)c >= ARROW_DOWN) && ((int)c <= ARROW_UP)) \
)
#endif /* WINDOWS */
I need to have lots of Unicode text in my project or I will be put to a great deal of additional effort. If it's going to do this all the time I'll be really annoyed.