summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--macros.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/macros.h b/macros.h
index acf6a6c6b..7d886fbe0 100644
--- a/macros.h
+++ b/macros.h
@@ -167,7 +167,11 @@ static inline void swap_tile(TileIndex *a, TileIndex *b) { TileIndex t = *a; *a
/* IS_INT_INSIDE = filter for ascii-function codes like BELL and so on [we need an special filter here later] */
static inline bool IsValidAsciiChar(byte key)
{
- return IS_INT_INSIDE(key, ' ', 256);
+ // XXX This filter stops certain crashes, but may be too restrictive.
+ return IS_INT_INSIDE(key, ' ', 127) ||
+ (IS_INT_INSIDE(key, 160, 256) &&
+ key != 0xAA && key != 0xAC && key != 0xAD && key != 0xAF &&
+ key != 0xB5 && key != 0xB6 && key != 0xB7 && key != 0xB9);
}
#endif /* MACROS_H */