D1P

|
Posted: Mon Nov 09, 2009 03:10 Post subject: [BUG] Издевательство над комментариями |
|
|
Не спрашивайте, как я это нашёл, и зачем.
Жмём 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
Блог |
|