И снова о русификации английских кодовых баз, основанных на Circle
Я только о том, чтобы мад воспринимал символы из второй половины таблицы ASCII. И строго говоря это не русификация и даже не кириллизация, а интернационализация и UTFизация
Возьмем, к примеру TBAMUD
Файл comm.c, в функции perform_socket_read
ищем строку с проверкой isascii(*ptr)&&isprint(*ptr)
и меняем ее на ((unsigned char)*ptr)>=32U
Почему так коряво, да потому что по умолчанию *ptr — это signed *char
Я там и единицу ставил (то есть всегда true), тоже работало, но лучше от символов, меньших пробела, защититься ;-)
Возможно есть и другие места, где придется слегка модифицировать код, чтобы нормально проходили старшие символы (>127). И не надо забывать, что char signed!
Возьмем, к примеру TBAMUD
Файл comm.c, в функции perform_socket_read
ищем строку с проверкой isascii(*ptr)&&isprint(*ptr)
и меняем ее на ((unsigned char)*ptr)>=32U
Почему так коряво, да потому что по умолчанию *ptr — это signed *char
Я там и единицу ставил (то есть всегда true), тоже работало, но лучше от символов, меньших пробела, защититься ;-)
Возможно есть и другие места, где придется слегка модифицировать код, чтобы нормально проходили старшие символы (>127). И не надо забывать, что char signed!