Page 57 of 99
Posted: Wed Dec 26, 2012 8:47 am
by FeyFre
Fr0sT, ну дык фича. Атомарность. Тут скорее баг что оно вернуло вообще что-то, а не дождалось полного открытия. Вот сижу смотрю и не вижу где же крутится паразитный оконный цикл.
Posted: Wed Dec 26, 2012 1:38 pm
by Fr0sT
Не воспроизводится
И в самом деле, ложная тревога. Прошу прощения.
AKDN_OPENDOCUMENT_START, AKDN_OPENDOCUMENT_FINISH
Да, эти я знаю, но для нового пустого документа они не работают. Поэтому я цепляюсь к AKDN_EDIT_ONSTART.
В итоге сделал проверку по флагу, чтобы между START и FINISH имя не отображалось.
Тут скорее баг что оно вернуло вообще что-то, а не дождалось полного открытия
Да нет уж, еще не хватало - дедлока до окончания загрузки!
Posted: Wed Dec 26, 2012 2:44 pm
by FeyFre
Да нет уж, еще не хватало - дедлока до окончания загрузки!
1. Дедлок - это дедлок, из него не выходят нормально, на нем зависают раз и навсегда.
2. Если Вы о своём плагине, то я не вижу где там может быть дедлок. Просто негде.
Posted: Thu Dec 27, 2012 6:12 am
by Fr0sT
Ну да, не дедлок, а просто лок. Всё равно не особо приятно.
P.S. А оконный цикл крутится, видимо, чтобы дать возможность отменить загрузку файла (поработаем за К.О., мда).
Posted: Thu Dec 27, 2012 9:36 am
by FeyFre
Когда докумен недозагружен и кто-то уже лезет за его содержимым - тоже не совсем приятно.
Я знаю зачем там оконный крутится, я найти не мог где именно он крутится.
Нашел цепочку
DoFileOpen -> OpenDocument -> FileStreamIn -> SendMessage(...,AEM_STREAMIN,...) -> AE_StreamIn -> AE_NotifyProgress -> SendMessageA(..., WM_NOTIFY,..) -> EditParentMessages(AEN_PROGRESS)
и вот в этой последней функцейке крутятся парочка циклов, один из которых обрабатывает лишние сообщения. По коду видно не должны, отладчиком я туда не ходил, так что статус ХЗ по прежнему.
Posted: Fri Dec 28, 2012 1:59 pm
by diksen
4.8 не работает REAL MDI
WinXP 32b SP3
4.7.9 REAL MDI работает
Posted: Fri Dec 28, 2012 6:33 pm
by FeyFre
REAL MDI - просвятите нас - быдло что это такое?
Posted: Sat Dec 29, 2012 9:21 am
by diksen
FeyFre wrote:REAL MDI - просвятите нас - быдло что это такое?
Простите великодушно меня непосвящённого. Не знал что вы быдло.
REAL MDI настоящий многооконный интерфейс (настоящий всмысле "НЕ ПСЕВДО")
______________
Не работают кнопочки дочерних окон: [_][^][x] свернуть, развернуть, закрыть.
Posted: Sat Dec 29, 2012 12:50 pm
by DV
diksen wrote:Не работают кнопочки дочерних окон: [_][^][x] свернуть, развернуть, закрыть.
Это упоминается в первом же сообщении в теме по 4.8.0. И несколькими сообщениями ниже ссылка на обновлённую (пробную) версию от Instructor.
Posted: Mon Dec 31, 2012 11:52 pm
by Diskretor
В режиме "На весь экран" F11 надо бы заблокировать (не отслеживать) клавишу F4, иначе при последующем нажатии F11 -> F4 "слетает" исходный размер окна (которое не в полный размер экрана), а то и даже становится минимальным.
Posted: Fri Jan 11, 2013 6:39 am
by Fr0sT
Поймал странное поведение при смешении кодировок.
Имеется файл с основным текстом в utf8 и строчкой в cp1251.
Это он открыт как cp1251:
При открытии как utf8 строчка cp1251 превращается в китайские иероглифы (конкретно эта - всего в один!). Диалог перекодировки сильно озадачивается при попытке перегнать эту строчку в нужную кодировку. Ни utf8 => cp1251, ни наоборот не дают нужного результата.
Вопрос1: как можно (и можно ли вообще) перегнать такую строку стредствами Акеля? Очевидный вариант "открыть как cp1251, вырезать, открыть как utf8, вставить" - очевиден.
Вопрос2: есть у меня подозрение, что конвертирование из utf8 тихо пропускает символы, не являющиеся utf8. Возможно, стоит добавить хотя бы предупреждение о том, что в файле встретились косячные символы
Posted: Fri Jan 11, 2013 10:25 am
by FeyFre
Вопрос2: есть у меня подозрение, что конвертирование из utf8 тихо пропускает символы, не являющиеся utf8. Возможно, стоит добавить хотя бы предупреждение о том, что в файле встретились косячные символы
Ну так оно и есть. utf8 сделан так что-бы спокйоно проигнорировать мусор и оставить уцелевшие символы.
Posted: Fri Jan 11, 2013 10:29 am
by Fr0sT
FeyFre да не сказал бы. Он сделан так, чтобы можно было с некой долей уверенности отличить utf8 символ от не-utf8 мусора, а уж как реагировать на последний - на усмотрение программиста
Posted: Fri Jan 11, 2013 2:02 pm
by FeyFre
> некой долей уверенности
Не с "некой долей" а 100% уверенности. Порча и выпадание 1 байта из текста портит только один utf8 символ.
> уж как реагировать на последний - на усмотрение программиста
Я не о той реакции. Я о реакции базового ридера utf8 - он никогда мусорые байты даже и не подумает смешать с настоящими и таким образом испортив весь текст.. Даже если выаадет один байт, то остальные символы не искажатся.
Posted: Fri Jan 11, 2013 2:14 pm
by Fr0sT
Не с "некой долей" а 100% уверенности. Порча и выпадание 1 байта из текста портит только один utf8 символ.
Я не о том. Может встретиться байт, который не является частью utf8 символа, но будет соответствовать требованиям кодировки (ну, тут вопрос скорее смысловой нагрузки, нежели фактического значения).
Я о реакции базового ридера utf8 - он никогда мусорые байты даже и не подумает смешать с настоящими и таким образом испортив весь текст
Это все замечательно, но:
1) Неплохо было бы знать, что в файле есть некорректные для utf8 данные
2) Что же в итоге делать в описанном случае?