Изменено: улучшена работа с плагинами:
- упорядочены внутренние сообщения;
- изменено 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 - не запоминать позицию каретки последних файлов.
<<Скачать>>
Релиз AkelPad 3.2.0
- Author
- Message
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
А в этой версии исправлена ошибка в функции 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.
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
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
DV
Например, hex code русского символа "Б" будет выглядеть "0411", т.е. 4 символа (4 wchar_t). Затем hex2decW преобразует из L"0411" в 0x0411 == L'Б'И каким образом это может работать, если whex должно состоять из 2-х wchar_t, а не 4-х?
Добавил.И, между прочим, пользователь может влепить пробел не только перед ], но и после \[, поэтому следует добавить
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine