Релиз AkelPad 3.2.0

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Релиз AkelPad 3.2.0

Post by Instructor »

Изменено: улучшена работа с плагинами:
- упорядочены внутренние сообщения;
- изменено AKDN_MAIN_ONSTART_PRESHOW;
- заменены AKD_GETEDITWINDOW, AKD_GETFILE, AKD_GETCODEPAGE, AKD_GETMODIFY, AKD_GETREADONLY, AKD_GETTABSTOPINFO на AKD_GETEDITINFO;
- убраны AKD_SETCODEPAGE, AKD_SETREADONLY;
- добавлены AKDN_OPENDOCUMENT_START, AKDN_SAVEDOCUMENT_START.
Обновите используемые вами плагины.

Добавлено: Drag'n'Drop для вкладок (MDI).
Добавлено: параметр "SaveCodepages":
1 - запоминать кодировку последних файлов;
0 - не запоминать кодировку последних файлов;
параметр "SavePositions":
1 - запоминать позицию каретки последних файлов;
0 - не запоминать позицию каретки последних файлов.


<<Скачать>>

Offline
Posts: 30
Joined: Tue Nov 28, 2006 7:26 am

Post by SpellCaster »

Круто! Приятно сознавать, что хоть кто-то в новогодние каникулы не просто пьянствует и дебоширит, а делает что-то полезное )).
Однако, к сожалению, баг с неизменением времени редактирования файла так и остался...

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

SpellCaster
Если снять галочку "Настройки->Сохранять время файла", то время изменения файла будет изменяться :)

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

А в этой версии исправлена ошибка в функции EscapeStringToEscapeDataW? Честно говоря, я сам заметил это только сейчас:
else if (*a == '[')
{
--b, ++a;

do
{
whex[0]=*a;
if (*a == 0) goto Error;
whex[1]=*++a;
if (*a == 0) goto Error;
whex[2]=*++a;
if (*a == 0) goto Error;
whex[3]=*++a;
if (*a == 0) goto Error;
*++b=hex2decW(whex);
if (*b == -1) goto Error;
while (*++a == ' ');
}
while (*a && *a != ']');

И каким образом это может работать, если whex должно состоять из 2-х wchar_t, а не 4-х? При данной реализации преобразование вида \[0D 0A] в строку вообще невозможно!
И, между прочим, пользователь может влепить пробел не только перед ], но и после \[, поэтому следует добавить

else if (*a == '[')
{
--b, ++a;
while (*a == ' ') a++; // вот эту строку надо добавить!

do
{
...

Это последнее замечание касается и EscapeStringToEscapeDataA.

Offline
Posts: 30
Joined: Tue Nov 28, 2006 7:26 am

Post by SpellCaster »

Instructor wrote:SpellCaster
Если снять галочку "Настройки->Сохранять время файла", то время изменения файла будет изменяться :)
Ааааа, так вон оно что! Я-то грешным делом все время считал, что "Сохранять" здесь в смысле "Сохранять изменения" а не "Сохранять неизменным"!
Теперь усё понял )))

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

DV
И каким образом это может работать, если whex должно состоять из 2-х wchar_t, а не 4-х?
Например, hex code русского символа "Б" будет выглядеть "0411", т.е. 4 символа (4 wchar_t). Затем hex2decW преобразует из L"0411" в 0x0411 == L'Б'
И, между прочим, пользователь может влепить пробел не только перед ], но и после \[, поэтому следует добавить
Добавил.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

А-а-а, ясно. Только это ж еще надо догадаться, что в 2000/XP для, например, пробела вместо \[20] надо написать \[0020]. Так сразу и не въедешь.
Еще остаётся спорный вопрос: стоит ли разрешать запись вида \[00 20] - всё-таки в данном случае пробел разделяет байты.
Post Reply