И снова о русификации английских кодовых баз, основанных на Circle

Я только о том, чтобы мад воспринимал символы из второй половины таблицы ASCII. И строго говоря это не русификация и даже не кириллизация, а интернационализация и UTFизация

Возьмем, к примеру TBAMUD

Файл comm.c, в функции perform_socket_read

ищем строку с проверкой isascii(*ptr)&&isprint(*ptr)

и меняем ее на ((unsigned char)*ptr)>=32U

Почему так коряво, да потому что по умолчанию *ptr — это signed *char

Я там и единицу ставил (то есть всегда true), тоже работало, но лучше от символов, меньших пробела, защититься ;-)

Возможно есть и другие места, где придется слегка модифицировать код, чтобы нормально проходили старшие символы (>127). И не надо забывать, что char signed!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.