BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/lj/archive/2007/2609.2234.html

стингряное
26.09.07 22:34 // оригинал
Я уже разок писал о неприятном глюке CGXFont, который при сохранении в файл либо экспорте в LOGFONT умудрялся записать имя шрифта с длиной, превышающей LF_FACESIZE, что при чтении регулярно приводило к катастрофе. Тогда я это обошел принудительной записью нуля в lfFaceName[LF_FACESIZE-1], сегодня же в процессе ловли других глюков с шрифтами докопался до причины того поведения. Оказывается, эти умники в случае charset, отличного от default или ansi, просто лепят в конец имени шрифта строчку, соответствующую чарсету - " (Cyrillic)", " (Кириллический)" в русских виндах и т.п. Размер строки при этом, разумеется, не контролируется, в результате какой-нибудь "Microsoft Sans Serif (Кириллический)" и вылезает за допустимые границы. Самая же прелесть в том, что если сохранить имя шрифта в русских виндах, а потом считать в английских, есть все шансы огрести что-то типа "Microsoft Sans Serif (Кирилличе (Cyrillic)", что и приводило к очередным жестоким шрифтовым глюкам вплоть до вылета программы (у CGXFont раком вставали всякие внутренние хэши).

 
теги: глюки, stingray  |  обсудить  |  все отзывы (0)  |  обсудить в LJ [1727]
назад «  » вперед

аналогичные материалы
регистрационнонервное // 08.05.19 00:41
яндекснодорожное // 14.12.11 21:58
уникальноэзернетное // 30.08.10 00:07
файрфоксное // 29.07.10 14:58
файрфоксное // 28.07.10 03:09
мапное // 20.07.10 19:56
отечественннное // 20.07.10 18:03
офиснотелефонное // 19.04.10 20:10
офисное // 18.04.10 14:18
аварийное // 19.01.10 17:27
 
последние записи
апгрейднософтовое // 17.08.25 21:48
отпускное // 20.07.25 18:53
апгрейднофинальное // 12.07.25 10:21
денежнозаботливое // 10.07.25 20:31
апгрейдноглючное // 10.07.25 12:14
апгрейдное // 09.07.25 20:31
каникулярное // 30.01.25 16:26
авиаэкспертное // 19.01.25 19:10
ihrkampfное // 02.10.24 16:30
отпускное // 08.07.24 23:02





  Copyright © 2001-2025 Dmitry Leonov Design: Vadim Derkach