diff --git a/macros.h b/macros.h index acf6a6c6bd..7d886fbe0b 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 */