Bugs / Найденные баги (1)
- Author
- Message
-
Offline
- Posts: 30
- Joined: Thu Aug 21, 2008 9:31 pm
Fr0sT
Не понял ответа, поэтому переформулирую вопрос.
Есть файл в кодировке 1251, открытый как 1251 (т. е. читабельный).
Надо часть текста перекодировать в 866, чтобы потом эта часть читалась при открытии файла как 866 (цель - нужная информация должна читаться при открытии файла в любой кодировке: и 1251, и 866).
Сейчас, чтобы получить нужный результат, приходится выполнять команду "Перекодировать из 866 в 1251", что довольно нелепо: весь текст и так в 1251, а в 866 ещё ничего и нет.
Казалось бы логичнее выполнять команду "Перекодировать из (текущей) 1251 в (другую) 866", не так ли?
Не понял ответа, поэтому переформулирую вопрос.
Есть файл в кодировке 1251, открытый как 1251 (т. е. читабельный).
Надо часть текста перекодировать в 866, чтобы потом эта часть читалась при открытии файла как 866 (цель - нужная информация должна читаться при открытии файла в любой кодировке: и 1251, и 866).
Сейчас, чтобы получить нужный результат, приходится выполнять команду "Перекодировать из 866 в 1251", что довольно нелепо: весь текст и так в 1251, а в 866 ещё ничего и нет.
Казалось бы логичнее выполнять команду "Перекодировать из (текущей) 1251 в (другую) 866", не так ли?
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Будем опираться на вашу логику: берем текущий текст в кодировке 1251, в результате имеем полученный текст UTF-16LE (AkelPad работает только с Unicode'ом). Затем мы приступаем к процессу конвертации. На этом шаге мы имеем две кодировки UTF-16LE и 866. И что теперь нам нужно указать в параметрах преобразования (имея только UTF-16LE и 866), чтобы в результате получить 1251?LEN wrote:Казалось бы логичнее выполнять команду "Перекодировать из (текущей) 1251 в (другую) 866", не так ли?
Чтобы более детально разобраться с механизмом конвертирования текста, см. функцию RecodeTextW в файле исходников Edit.c, иначе доводы будут биться о ваше представление о правильности.
-
Offline
- Posts: 30
- Joined: Thu Aug 21, 2008 9:31 pm
Instructor
Спасибо за ответ!
Детально разобраться с механизмом конвертирования текста по Edit.c мне не под силу, но достаточно того, что Вы поняли мои сомнения.
Правильно ли я понял, что последнее преобразование ("чтобы в результате получить 1251") нужно для отображения перекодированного в 866 текста в текущем (1251) окне Акелпада?
Спасибо за ответ!
Детально разобраться с механизмом конвертирования текста по Edit.c мне не под силу, но достаточно того, что Вы поняли мои сомнения.
Правильно ли я понял, что последнее преобразование ("чтобы в результате получить 1251") нужно для отображения перекодированного в 866 текста в текущем (1251) окне Акелпада?
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
LEN
Есть процесс конвертирования из А в Б, есть процесс "расконвертирования" из Б в А - они имеют разную направленность.
Например, открыт батник в кодировке 1251. Если нужно конвертировать русский текст, не меняя кодировку, указывается из 866 в 1251. Если нужно увидеть "каракули" в батнике, не меняя кодировку, указывается из 1251 в 866.
Есть процесс конвертирования из А в Б, есть процесс "расконвертирования" из Б в А - они имеют разную направленность.
Например, открыт батник в кодировке 1251. Если нужно конвертировать русский текст, не меняя кодировку, указывается из 866 в 1251. Если нужно увидеть "каракули" в батнике, не меняя кодировку, указывается из 1251 в 866.
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
При снятии галочки в настройке Coder-плагина у опции "Использовать кэш" AkelPad падает при включенном codefold
Подпись ошибки:
Последовательность действий:
1) Открыть какой-либо подсвечиваемый файл (например html) с включенными режимами highlight и codefold.
2) Вызвать настройку Coder-плагина вкладка общие.
3) Снять галочку "Использовать кэш", нажать [Применить] и [OK] ==> Падение AkelPad
Доп.инф.:
Опции CodeFold1: Список-Авто, Лимит-10000, Следовать за кареткой-Везде, Макс.документ-1000000симв.
Опции CodeFold2: Узел-Круг, [х]Отмечать тэги, [х]Сворачивать все при открытии.
Подпись ошибки:
Code: Select all
AppName: akelpad.exe AppVer: 4.8.4.0 ModName: coder.dll
ModVer: 11.3.0.0 Offset: 0000ed62
1) Открыть какой-либо подсвечиваемый файл (например html) с включенными режимами highlight и codefold.
2) Вызвать настройку Coder-плагина вкладка общие.
3) Снять галочку "Использовать кэш", нажать [Применить] и [OK] ==> Падение AkelPad
Доп.инф.:
Опции CodeFold1: Список-Авто, Лимит-10000, Следовать за кареткой-Везде, Макс.документ-1000000симв.
Опции CodeFold2: Узел-Круг, [х]Отмечать тэги, [х]Сворачивать все при открытии.
-
Offline
- Posts: 2
- Joined: Tue Jul 30, 2013 12:57 pm
мучает в последних версиях один баг. у меня в текстовом документе ссылка на файл и ниже пароль для него. когда я выделенный текст копирую Ctrl+C все копируется и вставляется нормально. Если я выбираю команду Копировать по правому щелчку мыши, то часто копируется только одна верхняя строка, документ простой, содержимое такого вида.
http://сайт
pass: пароль
http://сайт
pass: пароль
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Andrew
Вообще-то, чтобы добиться такого эффекта нужно еще постараться. У меня это получилось только при выделении справа-налево и снизу-вверх + при включенной опции "Показывать гиперссылки" + курсор при выделении не должен выйти за пределы гиперссылки. В таком случае вместо настроенного пользовательского контекстного меню вызывается куцее стандартное базовое и копируется не все выделение, а только сама гиперссылка.
Поэтому если Вас сильно мучает этот баг, то можете либо отключить показ гиперссылок (Настройки - Параметры... - [Редактор 2] - Гиперссылки [x] Показывать), либо захватывать в выделение еще и верхнюю пустую строку (если, конечно, таковая имеется), либо выделять сверху-вниз и слева направо.
Upd.:
Еще можно в начало каждой строки добавить 1 пробел ([Ctrl+A] + [Space]). Смысл тот же, что и при захвате в выделение верхней пустой строки (особенно если ее нет). И поменяйте способ открытия гиперссылок с одинарного клика на двойной (это безопаснее в плане ложных срабатываний).
Вообще-то, чтобы добиться такого эффекта нужно еще постараться. У меня это получилось только при выделении справа-налево и снизу-вверх + при включенной опции "Показывать гиперссылки" + курсор при выделении не должен выйти за пределы гиперссылки. В таком случае вместо настроенного пользовательского контекстного меню вызывается куцее стандартное базовое и копируется не все выделение, а только сама гиперссылка.
Поэтому если Вас сильно мучает этот баг, то можете либо отключить показ гиперссылок (Настройки - Параметры... - [Редактор 2] - Гиперссылки [x] Показывать), либо захватывать в выделение еще и верхнюю пустую строку (если, конечно, таковая имеется), либо выделять сверху-вниз и слева направо.
Upd.:
Еще можно в начало каждой строки добавить 1 пробел ([Ctrl+A] + [Space]). Смысл тот же, что и при захвате в выделение верхней пустой строки (особенно если ее нет). И поменяйте способ открытия гиперссылок с одинарного клика на двойной (это безопаснее в плане ложных срабатываний).
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Andrew
1) Там еще и третий вариант предлагался (выделять сверху-вниз), что вместе с переключением на двойной клик довольно незатратно.
2) "привыкнуть к Ctrl+A" это по-видимому опечатка если речь шла о копировании с клавиатуры. Кстати сам я предпочитаю вместо Ctrl+C/Ctrl+V пользоваться парой Ctrl+Insert/Shift+Insert (На стандартной, а не ноутбучной клавиатуре).
А теперь самое неприятное
3) Я еще раз посмотрел на Вашу проблему, и понял что "исправления" ждать придется очень и очень долго, поскольку, как оказалось, это и не баг вовсе. Так что мы оба ошибались. В действительности же там происходит вот что. Когда курсор оказывается на гиперссылке, то вызывается не "Меню окна редактирования" контекстного меню, а "Меню ссылок" контекстного меню. В нем ПЕРЕД стандартными операциями копирования/вставки идут три операции со ссылками и еще две с откатом...
Т.е. срабатывает элементарная невнимательность - мы видим первое слово "Копировать" (оно без иконки) и уже не замечаем ниже второго слова "Копировать" (оно c иконкой).
Понимание происходящего дает Вам новые возможности. Например, чтобы не надеяться на свою внимательность и в будущем, Вы можете подредактировать "Меню ссылок" контекстного меню так как Вам удобней (изменив порядок следования пунктов).
Добраться до настроек контекстного меню через "Настройки"-"Плагины..."-"ContextMenu::Show"-"Изменить меню..."
P.S. Приношу свои извинения за невольное введение Вас в заблуждение.
1) Там еще и третий вариант предлагался (выделять сверху-вниз), что вместе с переключением на двойной клик довольно незатратно.
2) "привыкнуть к Ctrl+A" это по-видимому опечатка если речь шла о копировании с клавиатуры. Кстати сам я предпочитаю вместо Ctrl+C/Ctrl+V пользоваться парой Ctrl+Insert/Shift+Insert (На стандартной, а не ноутбучной клавиатуре).
А теперь самое неприятное
3) Я еще раз посмотрел на Вашу проблему, и понял что "исправления" ждать придется очень и очень долго, поскольку, как оказалось, это и не баг вовсе. Так что мы оба ошибались. В действительности же там происходит вот что. Когда курсор оказывается на гиперссылке, то вызывается не "Меню окна редактирования" контекстного меню, а "Меню ссылок" контекстного меню. В нем ПЕРЕД стандартными операциями копирования/вставки идут три операции со ссылками и еще две с откатом...
Code: Select all
"Открыть" Link(1)
"Копировать" Link(2)
"Выделить" Link(3)
SEPARATOR
SET(8)
"" Command(4151) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 10)
"" Command(4152) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 11)
SEPARATOR
"" Command(4153) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 7)
"" Command(4154) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 8)
"" Command(4155) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 9)
"" Command(4156) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 25)
SEPARATOR
"" Command(4157)
UNSET(8)
Понимание происходящего дает Вам новые возможности. Например, чтобы не надеяться на свою внимательность и в будущем, Вы можете подредактировать "Меню ссылок" контекстного меню так как Вам удобней (изменив порядок следования пунктов).
Добраться до настроек контекстного меню через "Настройки"-"Плагины..."-"ContextMenu::Show"-"Изменить меню..."
P.S. Приношу свои извинения за невольное введение Вас в заблуждение.