Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: [BUG] Издевательство над комментариями 
Author Message
D1P



PostPosted: Mon Nov 09, 2009 03:10    Post subject: [BUG] Издевательство над комментариями Reply with quote

Не спрашивайте, как я это нашёл, и зачем.
Жмём Ctrl+Z на файле, вводим в редактор всякую многострочную фигню. Я вставлял список каталогов, полученный по cm_CopyFullNamesToClip. Желательно, кстати, чтобы комментариев к другим файлам в descript.ion не было, т.е. чтобы перед экспериментами он был пуст.
Итак, забиваем редактор многострочной фигнёй. В редактор может влезть не всё - пофиг, забиваем до максимального допустимого размера комментария (4096 символов, но по Ctrl+V вставляется и больше, такое чувство, что не считаются бекслеши \).
Затем открываем файл descript.ion, копируем из него часть комментария к файлу (это важно - т.к. данные там уже экранированы, и с правильными спецсимволами), и вставляем в конец имеющегося комментария. Вставляем несколько раз, чтобы коменнтарий был килобайт 50. Сохраняем descript.ion. Запоминаем размер.
Жмём Ctrl+Z на комментированном файле. И тут начинаются странности.
Во первых, уже открытый комментарий может не совпадать с тем, что был вначале (с теми 4096 символами, влезшими в редактор в первый раз). Ну это пофиг.
Зато, если нажать F2 и посмотреть на descript.ion, мы увидим, что файл уменьшился в размере. Причём размер, на который файл уменьшился, всегда разный - у меня, при экспериментах, получались цифры от 2537 до 4090 байт. Зависимости не выявил.
При повторном открытии комментарий может отобразиться, а может и нет (закономерность того, на каких данных коммента не видно, я поймал, но объяснить не могу). Если комментария нет, то и ввести его уже не получается, а при нажатии F2 файл descript.ion опять уменьшается в размере. Если открыть descript.ion в редакторе, видно, что сразу после имени файла идут символы 0x20 (пробел) и 0x4, а потом уже - каша "комментария" (которая, после каждого сохранения, опять меняется).
Если комментарий есть, то отредактировать его удаётся, однако при повторном открытии комментария видна смесь введённого комментария и прежней фигни. При нажатии F2 без изменения текста, размер descript.ion также уменьшается, и также - всегда на разное количество байт. Но повторное открытие\закрытие редактора комментариев уже к такому эффекту не приводит.

Подозреваю, что дело в наличии кучи экранированных бекслешей (\\), поскольку в качестве всякой фигни для забивания комментария использовался листинг каталога. С другим текстом воспроизводится лишь часть описанного издевательства.
Также чую, что тут замешан управляющий символ 0x4, но обосновать не могу =).
_________________
База знаний о Total Commander
Блог
View user's profile Send private message Visit poster's website ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group