drkns 16.08.2014 01:21:40 +0200 - build 4046

1. Рефакторинг.

zg 12.08.2014 01:30:09 +0200 - build 4045

1. с форума: MCTL_GETAREA в горизонтальном меню теперь возвращает MACROAREA_OTHER (вместо MACROAREA_MAINMENU).

2. рефакторинг.

drkns 11.08.2014 23:51:38 +0200 - build 4044

1. В режиме /e и /v плагины получали управление ещё до полной инициализации менеджера.

drkns 11.08.2014 20:24:09 +0200 - build 4043

1. Продолжение 4039.

drkns 10.08.2014 19:54:12 +0200 - build 4042

1. Продолжение 4040.

drkns 10.08.2014 11:18:55 +0200 - build 4041

1. Продолжение 4039 и 4040.

drkns 10.08.2014 00:47:12 +0200 - build 4040

1. Рефакторинг.

drkns 09.08.2014 17:31:49 +0200 - build 4039

1. Продолжаем трясти оконную систему.
   Теперь то, что видно под панелями (userscreen) - это отдельное окно.

2. Рефакторинг.

drkns 06.08.2014 18:59:06 +0200 - build 4038

1. Уточнение 4036.

drkns 06.08.2014 09:01:30 +0200 - build 4037

1. С форума: В 4036 с экрана пропали комманды, запускаемые из ком. строки

drkns 05.08.2014 22:59:59 +0200 - build 4036

1. Рефакторинг.

drkns 04.08.2014 19:57:16 +0200 - build 4035

1. Более тщательная обработка ошибок при запуске вспомогательного процесса в Elevation.

2. Если диалог атрибутов вызван для буквы диска, покажем имя соответствующего тома.

drkns 02.08.2014 14:47:23 +0200 - build 4034

1. В диалоге атрибутов не всегда отображалась информация для DFS-ресурсов.

drkns 01.08.2014 21:36:24 +0200 - build 4033

1. 0002445: Копирование зашифрованных (EFS) файлов

drkns 31.07.2014 22:45:46 +0200 - build 4032

1. Cppcheck warnings.

drkns 31.07.2014 00:18:41 +0200 - build 4031

1. Ещё немного Clang.

drkns 30.07.2014 21:07:46 +0200 - build 4030

1. Уточнение 4018.2.

drkns 29.07.2014 21:22:25 +0200 - build 4029

1. Первая попытка компиляции в Clang. Естественно, не взлетело, но кое-что всплыло:
   - пара глупых багов в редакторе;
   - неиспользуемые переменные;
   - поиск во вьювере зачем-то пытался заменить в искомом \xffff на \0. Мало того, что сие прелэстно само по себе, так при этом ещё и падало.

2. Пара мелочей.

drkns 26.07.2014 15:29:52 +0200 - build 4028

1. Из соображений абстрактного совершенства компилим hook_wow64 как C++.

drkns 25.07.2014 23:09:46 +0200 - build 4027

1. Рефакторинг.

zg 25.07.2014 13:55:39 +0200 - build 4026

1. уточнение 4025 для ACTL_GETWINDOWTYPE.

2. уточнение 4025 для редактора.

zg 25.07.2014 12:40:09 +0200 - build 4025

1. уточнение 3981.

drkns 24.07.2014 23:19:41 +0200 - build 4024

1. При определении кодовой страницы юникод выбирается только в том случае, если текст явно не похож на ASCII.
   Должно уменьшиться количество ложных определений юникода (а количество ложных определений ASCII, соответственно, вырасти).

zg 24.07.2014 12:53:54 +0200 - build 4023

1. уточнение 4020: в горизонтальном меню не работала активация последнего пункта по shift-f10 и активация меню мышью.

zg 24.07.2014 01:40:17 +0200 - build 4022

1. уточнение 4020: не показываем список окон в горизонтальном меню и граббере.

zg 24.07.2014 00:20:25 +0200 - build 4021

1. удалён неиспользуемый код в оконном менеджере.

zg 23.07.2014 23:11:32 +0200 - build 4020

1. горизонтальное меню и граббер - честные окна.

2. при изменении размеров консоли граббер закрывается. раньше падал.

3. gcc warning.

drkns 23.07.2014 19:55:47 +0200 - build 4019

1. Размер буфера для встроенной функции копирования теперь 32 К, а не 64.

drkns 23.07.2014 03:30:09 +0200 - build 4018

1. Уточнение 3978.

2. В автоназначении горячих клавиш в меню творилась какая-то дичь. Не факт, что поправлено везде.

drkns 22.07.2014 23:18:52 +0200 - build 4017

1. Продолжение 4015:
   - восстановим попытки обработать переполнение стека.

drkns 22.07.2014 20:15:47 +0200 - build 4016

1. 0002741: ECTL_CLEARSESSIONBOOKMARKS приводит к падению

drkns 22.07.2014 01:04:14 +0200 - build 4015

1. Exception mix:
   - обрабатываем std::exception при вызове плагинов
   - неправильно работал вызов отладчика
   - рефакторинг

drkns 21.07.2014 21:28:10 +0200 - build 4014

1. Минус ещё один самодельный список.

svs 21.07.2014 11:49:01 +0400 - build 4013

1. Mantis#0002743: Не хватает ECTL_GETTITLE в дополнение к ECTL_SETTITLE
     ECTL_GETTITLE
     Получить заголовок редактора.
     Param1 - размер буфера в символах, который выделил плагин для данных.
     Param2 указывает на буфер, выделенный плагином, куда будет помещен заголовок редактора.
     Функция возвращает требуемый размер буфера в символах, с учетом завершающего нуля.
     Если Param2 = NULL или Param1 меньше требуемого размера, функция просто вернет необходимый размер буфера. 

zg 20.07.2014 23:32:48 +0200 - build 4012

1. уточнение 4003.

drkns 20.07.2014 21:59:46 +0200 - build 4011

1. Рефакторинг.

drkns 19.07.2014 20:04:59 +0200 - build 4010

1. Рефакторинг.

drkns 19.07.2014 13:01:14 +0200 - build 4009

1. Уточнение эмуляции std::make_unique: параметры передавались по значению.

zg 18.07.2014 01:59:14 +0200 - build 4008

1. уточнение 4006.

drkns 18.07.2014 01:49:25 +0200 - build 4007

1. Не работало получение закладок в редакторе. И уже давно.

zg 18.07.2014 01:06:52 +0200 - build 4006

1. при удалении редактора внутри события EE_READ, редактор удаляется только после окончания обработки этого события.

2. при удалении просмотра внутри события VE_READ, просмотр удаляется только после окончания обработки этого события.

zg 17.07.2014 02:44:33 +0200 - build 4005

1. 0002734: Сломали диалоги.
   вылез древний баг: при удалении неактивного окна, активное окно исчезает.

2. редактор и просмотр при определённых условиях могли портить память.

shmuel 16.07.2014 18:15:38 +0200 - build 4004

1. Дополнение доступа плагина LuaMacro к буферу экрана.

zg 16.07.2014 01:13:27 +0200 - build 4003

1. с форума: некоректный заголовок консоли при вызове macrobrowser'а через Plugin.Menu.

zg 15.07.2014 21:39:44 +0200 - build 4002

1. с форума: падние в ACTL_GETWINDOWINFO.

shmuel 14.07.2014 20:56:15 +0200 - build 4001

1. Plugin.Menu(), Plugin.Config() и Plugin.Command() возвращают false при неудаче.

drkns 14.07.2014 14:39:33 +0200 - build 4000

1. 0002709: Запрос привилегий администратора может быть невидим если вызван макросом

zg 13.07.2014 14:50:01 +0200 - build 3999

1. уточнение 3992: диалоги показывались только один раз после создания.

drkns 13.07.2014 14:24:22 +0200 - build 3998

1. Опция Interface.FormatNumberSeparators теперь имеет строковый тип.

2. В отладочном билде включен SmallerTypeCheck.

3. Рефакторинг.

drkns 12.07.2014 20:33:45 +0200 - build 3997

1. Уточнение 3996 и ещё пара мелочей.

drkns 12.07.2014 14:18:49 +0200 - build 3996

1. Добавлена опция /set:<parameter>=<value>, позволяющая переопределять основные настройки (см. far:config).

drkns 12.07.2014 09:45:28 +0200

1. Во внешний DialogBuilder добавлена поддержка списков.

zg 11.07.2014 22:11:38 +0200 - build 3995

1. уточнение 3993: при переходе по +/- в просмотре не вызывался EE_READ.

zg 11.07.2014 19:21:21 +0200 - build 3994

1. уточнение 3981 для горизонтального меню.

zg 10.07.2014 22:54:11 +0200 - build 3993

1. VE_READ вызывается, когда окно просмотра полностью сконструировано.

zg 10.07.2014 20:54:25 +0200 - build 3992

1. уточнение 3981.

zg 10.07.2014 15:49:53 +0200 - build 3991

1. уточнение 3985: в EE_CLOSE не работали ECTL_GETINFO и ECTL_GETBOOKMARKS.

zg 10.07.2014 13:54:25 +0200 - build 3990

1. при переоткрытии файла в редакторе мог удалятся не тот фрейм. вплоть до панелей.

drkns 10.07.2014 09:14:35 +0200 - build 3989

1. Древний баг, но начал проявляться только при недавних падениях при выходе:
   - нельзя закрывать хендлы, которые кто-то ещё ждёт по WaitForMultipleObjects.

zg 10.07.2014 03:05:00 +0200 - build 3988

1. уточнение 3981: не работал ключ /v.

2. уточнение 3986: падение при выходе.

drkns 09.07.2014 22:10:05 +0200 - build 3987

1. Рефакторинг.

zg 09.07.2014 21:38:08 +0200 - build 3986

1. редкое падение при переоткрытии файла в редакторе.

2. зависание при последовательном открытии/закрытии редактора через апи.

3. уточнение 3981.

zg 09.07.2014 15:36:33 +0200 - build 3985

1. с форума "ACTL_GETWINDOWTYPE и ACTL_GETWINDOWINFO не работают, будучи вызваны из EE_CLOSE/VE_CLOSE".

zg 09.07.2014 12:47:11 +0200 - build 3984

1. уточнение 3981: иногда при закрытии одних окон активировались не те окна, которые ожидались.

drkns 09.07.2014 00:54:24 +0200 - build 3983

1. Рефакторинг.

zg 08.07.2014 21:06:45 +0200 - build 3982

1. уточнение 3981.

zg 08.07.2014 13:53:39 +0200 - build 3981

1. рефакторинг оконного менеджера. теперь есть общая очередь сообщений.
   используя очередь сообщений теперь можно выполнять любой код асинхронно.
   пример - в реализации EE_READ.

svs 07.07.2014 13:58:08 +0400 - build 3980

1. EMenu всегда вызывался с OPEN_LEFTDISKMENU

drkns 06.07.2014 15:24:29 +0200 - build 3979

1. Рефакторинг.

drkns 04.07.2014 22:46:04 +0200 - build 3978

1. Внутренний конвертер utf8 -> utf16 некорректно преобразовывал 4-байтные символы.

drkns 03.07.2014 19:16:23 +0200 - build 3977

1. Уточнение 3869.

drkns 03.07.2014 00:19:44 +0200 - build 3976

1. Во внешний DialogBuilder добавлена поддержка комбинированных списков.

drkns 02.07.2014 23:55:43 +0200 - build 3975

1. Интерфейс класса Thread немного приближен к стандартному: теперь туда можно пихать что угодно, а не только uint(void*).

drkns 01.07.2014 19:49:09 +0200 - build 3974

1. Продолжение 3970, ещё пара мелочей.

drkns 01.07.2014 15:43:01 +0200 - build 3973

1. Продолжение 3970. Инициализируем импорты не сразу, а когда надо.

drkns 01.07.2014 12:29:19 +0200 - build 3972

1. Продолжение 3970.

drkns 01.07.2014 00:43:59 +0200 - build 3971

1. VS14 по умолчанию считает, что %s - это char*, что, в принципе, правильно, но всё ломает.
   Хороший повод окончательно вычистить *printf, а пока определим _CRT_STDIO_LEGACY_WIDE_SPECIFIERS.

drkns 30.06.2014 19:07:38 +0200 - build 3970

1. Рефакторинг.

drkns 29.06.2014 19:09:47 +0200 - build 3969

1. Рефакторинг.

2. Уделён неипользуемый код в tvar.?pp.

zg 29.06.2014 16:27:02 +0200 - build 3968

1. 0002723: ECTL_GETINFO не работает при вызове редактора из редактора

drkns 28.06.2014 02:43:22 +0200 - build 3967

1. Рефакторинг.

drkns 27.06.2014 19:53:08 +0200 - build 3966

1. Восстановим поломанный GCC билд.

2. GCC warning.

3. Рефакторинг.

svs 26.06.2014 14:23:24 +0400 - build 3965

1. Mantis#0002692: Невозможно прервать операцию, если она запущена из макроса
   Откат build 3963 до лучших времен. Жуки вылезли.

w17 26.06.2014 00:16:21 +0400 - build 3964

1. Ещё уточнение 3956.
   Через Plugin API пока не работает.

2. M#2540: Viewer Search always starts from the beginning of the file
   НЕЗАВЕРШЕНО!

svs 25.06.2014 11:17:19 +0400 - build 3963

1. Mantis#0002692: Невозможно прервать операцию, если она запущена из макроса
   Закомметим и посмотрим.

w17 25.06.2014 00:16:56 +0400 - build 3962

1. Уточнение 3960.

drkns 24.06.2014 19:41:46 +0200 - build 3961

1. Уточнение 3958.

w17 24.06.2014 20:02:53 +0400 - build 3960

1. M#2706: При конвертировании в UTF-7 не обрабатываются ошибки

w17 23.06.2014 14:41:05 +0400 - build 3959

1. Уточнение 3956.

drkns 21.06.2014 15:51:25 +0200 - build 3958

1. При запуске по Far.exe /p%FARPROFILE%\Plugins не загружались плагины.

drkns 20.06.2014 20:12:27 +0200 - build 3957

1. Если плагин содержит на своей панели объекты с атрибутом FILE_ATTRIBUTE_REPARSE_POINT - считаем, что это симлинки.

w17 20.06.2014 13:46:02 +0400 - build 3956

1. Experimental. M#2684: Возможность смены кодировки путём перечитывания файла

drkns 19.06.2014 09:33:50 +0200 - build 3955

1. Потенциальная проблема в SyncedQueue и пара мелочей в Thread и MultiWaiter для улучшения читаемости.

drkns 19.06.2014 08:46:39 +0200 - build 3954

1. В 3842 погнулся запускатель в некоторых хитрых случаях.

zg 18.06.2014 10:56:30 +0200 - build 3953

1. после 3895 не работало alt-d в редакторе.

w17 16.06.2014 23:43:57 +0400 - build 3952

1. M#2708: Regexp "^(.*?\-\-)" != "^(.*?\-{2})"

shmuel 10.06.2014 11:38:11 +0200 - build 3951

1. Уточнение 3949.

shmuel 10.06.2014 00:45:54 +0200 - build 3950

1. При выгрузке плагина LuaMacro в результате exception ручная запись макросов запрещалась не сразу.

drkns 09.06.2014 22:12:24 +0200 - build 3949

1. Поддежка VS 14 (CTP), пока с варнингами.

shmuel 08.06.2014 22:47:12 +0200 - build 3948

1. Мелкий рефакторинг.

svs 07.06.2014 11:16:01 +0400 - build 3947

1. SQLite 3.8.5

shmuel 06.06.2014 21:35:19 +0200 - build 3946

1. Мелкий рефакторинг.

drkns 06.06.2014 19:00:44 +0200 - build 3945

1. far:ver -> far:about

shmuel 06.06.2014 16:21:30 +0200 - build 3944

1. Запуск Фара far /m запрещает только начальную загрузку макросов, в дальнейшем макросы могут быть
   загружены любым из известных способов.

w17 06.06.2014 12:37:17 +0400 - build 3943

1. ver -> far:ver

drkns 05.06.2014 20:51:49 +0200 - build 3942

1. С форума: ошибка создания автофильтра, если в имени файла присутствовали символы ,;

w17 05.06.2014 16:23:29 +0400 - build 3941

1. M#2250: Непоказ текста в 1251 внутри файла в UTF8
   Можно сменить кодировку при открытии файла, если в текущей файл не может быть открыт без потерь.

drkns 05.06.2014 01:06:34 +0200 - build 3940

1. Падение фара при удалении кастомного panel view mode, если он был установлен на пассивной панели.

2. Туда же добавлено конпкосочетание CtrlShiftEnter - установить режим на пассивной панели.

drkns 04.06.2014 20:11:04 +0200 - build 3939

1. И ещё.

shmuel 04.06.2014 13:52:16 +0200 - build 3938

1. Уточнение 3925.

drkns 03.06.2014 17:35:54 +0200 - build 3937

1. Ещё пара багов в 3934.

drkns 03.06.2014 09:15:51 +0200 - build 3936

1. Пара багов в 3934.

drkns 03.06.2014 03:21:08 +0200 - build 3935

1. GCC.

drkns 03.06.2014 02:42:03 +0200 - build 3934

1. Рандомный рефакторинг.

2. Far обрабатывает команду 'ver', отображая свою версию, версии используемых библиотек и установленных плагинов.

drkns 03.06.2014 02:16:43 +0200 - build 3933

1. 0002687: Меню кодировок: пропадает сепаратор --Other--

shmuel 02.06.2014 18:15:07 +0200 - build 3932

1. Рефакторинг.

shmuel 02.06.2014 00:17:53 +0200 - build 3931

1. Рефакторинг.

shmuel 31.05.2014 17:30:49 +0200 - build 3930

1. Рефакторинг.

shmuel 30.05.2014 23:19:36 +0200 - build 3929

1. Уточнение 3925.

shmuel 30.05.2014 21:32:26 +0200 - build 3928

1. Уточнение 3925 (была утечка памяти).

shmuel 29.05.2014 13:38:28 +0200 - build 3927

1. Уточнение 3825 (DI_FIXEDIT).

shmuel 28.05.2014 16:10:23 +0200 - build 3926

1. Уточнение 3925.

shmuel 28.05.2014 13:00:02 +0200 - build 3925

1. Экспериментально: M#2674: Возврат хэндла панели при работе из макроса.

shmuel 26.05.2014 20:22:56 +0200 - build 3924

1. Завершение рефакторинга, начатого в 3896.

shmuel 26.05.2014 18:44:24 +0200 - build 3923

1. Продолжение 3896.

shmuel 25.05.2014 21:13:55 +0200 - build 3922

1. Продолжение 3896.

shmuel 25.05.2014 18:15:52 +0200 - build 3921

1. Продолжение 3896.

w17 25.05.2014 10:20:35 +0400 - build 3920

1. Ещё уточнение 3913
   Добавлен флаг MLF_HOLDTARGET в plugin.h

shmuel 24.05.2014 20:04:56 +0200 - build 3919

1. Починим вложенные макросы.

shmuel 24.05.2014 17:25:47 +0200 - build 3918

1. Продолжение 3896.

w17 24.05.2014 14:16:12 +0400 - build 3917

1. Уточнение 3913

drkns 24.05.2014 12:11:56 +0200 - build 3916

1. "Починим" пока симлинки как было.

drkns 24.05.2014 10:03:45 +0200 - build 3915

1. 0002686: Debug build crashes in editor

shmuel 23.05.2014 19:52:03 +0200 - build 3914

1. Продолжение 3896.

w17 23.05.2014 15:50:39 +0400 - build 3913

1. M#2675: Symlink создается только с абсолютным путем. Нет возможности задать относительный путь

shmuel 23.05.2014 01:44:13 +0200 - build 3912

1. Продолжение 3896.

shmuel 21.05.2014 23:35:44 +0200 - build 3911

1. Продолжение 3896.

shmuel 21.05.2014 18:07:34 +0200 - build 3910

1. Продолжение 3896.

drkns 18.05.2014 17:19:57 +0200 - build 3909

1. Откат 3908.1 до лучших времён.

drkns 18.05.2014 16:22:09 +0200 - build 3908

1. Рефакторинг. Вынесем из macro.hpp всё, без чего там можно обойтись.

2. GCC warning.

shmuel 17.05.2014 23:58:06 +0200 - build 3907

1. Продолжение 3896.

drkns 17.05.2014 14:43:09 +0200 - build 3906

1. Падение при ввыборе черно-белой цветовой схемы.

zg 16.05.2014 14:27:13 +0200 - build 3905

1. после 3895 не работали клавиши выделения в комстроке.

drkns 15.05.2014 23:57:23 +0200 - build 3904

1. Поиcк теперь умеет сам решать, в какой кодировке надо искать текст. Слава роботам!

drkns 15.05.2014 01:45:08 +0200 - build 3903

1. Уточнение детектирования юникодного текста.

shmuel 15.05.2014 00:13:09 +0200 - build 3902

1. Продолжение 3896.

shmuel 14.05.2014 01:10:59 +0200 - build 3901

1. Уточнение 3896 (Фар падал при определённых обстоятельствах).

shmuel 13.05.2014 17:28:47 +0200 - build 3900

1. В 3896 сломалось возвращаемое значение Plugin.Call.

shmuel 13.05.2014 00:33:38 +0200 - build 3899

1. Продолжение 3896.

shmuel 12.05.2014 16:14:04 +0200 - build 3898

1. В 3896 сломалось возвращаемое значение Plugin.Menu.

zg 12.05.2014 13:39:44 +0200 - build 3897

1. 0002672: Неправильное поведение при работе с буфером обмена.
   при вставке пустой строки устанавливался признак наличия выделения, а само выделение - нет.

shmuel 12.05.2014 13:05:51 +0200 - build 3896

1. Рефакторинг в системе макросов.

zg 09.05.2014 00:19:23 +0200 - build 3895

1. рефакторинг ProcessKey.

svs 08.05.2014 20:34:04 +0400 - build 3894

1. Mantis#0002669: Гуид для меню с результатами поиска всех вхождений

    EditorFindAllListId         = {9BD3E306-EFB8-4113-8405-E7BADE8F0A59}  --> Menu.Id
    Редактор. Список всех найденных вхождений (F7 <All>).

w17 08.05.2014 16:17:06 +0400 - build 3893

1. M#2667: Вылет FAR при использовании регэкспа "[A-Z\\]+"

drkns 07.05.2014 00:00:37 +0200 - build 3892

1. Неправильно работала сортировка по расширению файлов с ':' в имени (да, и такое бывает).

drkns 05.05.2014 19:03:55 +0200 - build 3891

1. Уточнение 3890.

drkns 05.05.2014 18:52:24 +0200 - build 3890

1. Команда "title" добавляла лишний пробел в заголовок.

svs 05.05.2014 16:48:11 +0400 - build 3889

1. Уточнение build 3888
   1. Выключаем панели.
   2. title[Enter] --> в заголовке видим " - Far 3.0.3888 x86 Administrator", то-есть отсутствует показ папки панели.

svs 05.05.2014 12:38:16 +0400 - build 3888

1. Mantis#0002523: Команда title не отрабатывает при погашенных панелях

shmuel 04.05.2014 02:08:54 +0200 - build 3887

1. Откат 3885.

drkns 03.05.2014 19:13:31 +0200 - build 3886

1. Поиск по всем кодовым страницам не работал в x64.

2. Для поиска можно выбирать страницы из всего списка.

3. В поиск добавлена возможность поиска файлов, НЕ содержащих искомый текст.

4. Опция поиска в ADS перенесена в основной диалог.

5. Скрытая опция CollectFiles удалена.

6. Рефакторинг.

shmuel 03.05.2014 17:51:18 +0200 - build 3885

1. Экспериментально:
   Перед обработкой комстроки Фар передаёт её плагину LuaMacro, который вызывает глобальную функцию
   ProcessFarCommandLine(CmdLine), если таковая существует. Если функция не существует, либо возвращает
   false/nil/ничего, Фар продолжает обработку комстроки. Если возвращает стринг, то Фар обрабатывает
   его как новое значение комстроки. Если возвращает true, дальнейшая обработка комстроки Фаром не
   производится.

zg 02.05.2014 03:16:49 +0200 - build 3884

1. откат 3883.

zg 01.05.2014 12:28:01 +0200 - build 3883

1. 0002657: Некорректная работа при изменении последней строки файла из плагина.

svs 28.04.2014 16:43:42 +0400 - build 3882

1. По мотивам Mantis#2562.
   - убрана помесь из ECC_* и XC_*
   - добавлены XC_ALREADY_EXISTS, XC_OPEN_NEWINSTANCE и XC_RELOAD.
   - в FileEditor уточнение по кодам возврата в зависимости от EF_OPENMODE_*
   - в API::Editor новые коды возврата пока не позиционируются (ограничены макросом MANTIS_0002562);
     есть вероятность поломки плагинов ("архивных"), которые ожидают только EEC_OPEN_ERROR, EEC_MODIFIED и EEC_NOT_MODIFIED.
     (хотя... EEC_LOADING_INTERRUPTED уже "в строю" :-))

svs 28.04.2014 15:11:54 +0400 - build 3881

1. Mantis#0002663: Far падает, если показать модальный диалог из обработчика события viewer'а VE_Read
     FileViewer::Init(...NamesList *ViewNamesList,..)
     {
     ...
     (1) if (!View.OpenFile(strName,TRUE))
     ...
         if (ViewNamesList)
     (2)    View.SetNamesList(*ViewNamesList);

     В (1) ViewNamesList еще живой. В (2) уже мертвяк.
     После чего идет трап (что естественно, т.к. объект "Редактор" уже убит)

2. Трап, если в DI_*BOX указан X1==X2==0 и есть заголовок.
   Информация для заголовка консоли берется как обычно из соответствующего элементов диалога,
   но текст для такого элемента показан не будет.

shmuel 28.04.2014 00:58:52 +0200 - build 3880

1. Уточнение build 3770:
   lua:far.Show(...) показывал один аргумент (nil), а должен показывать отсутствие аргументов.

shmuel 26.04.2014 17:43:33 +0200 - build 3879

1. Продолжение 3878, документация обновлена:
   -- "языковые" флаги в FARKEYMACROFLAGS (структуры MacroSendMacroText, MacroAddMacro, MacroExecuteString).
   -- команды lm:post2 и lm:check2 в плагине LuaMacro.

shmuel 25.04.2014 21:32:52 +0200 - build 3878

1. Поддержка MoonScript в API плагинов (документация ещё не обновлена).

svs 23.04.2014 14:14:46 +0400 - build 3877

1. При попытке выйти через .. из сетевой шары на уровень сервера получаю контекстное меню из Emenu.
   http://forum.farmanager.com/viewtopic.php?p=118299#p118299

drkns 22.04.2014 22:16:51 +0200 - build 3876

1. Параметр Editor.FileSizeLimitHi удалён.

2. GUID'ы luamacro, arclite, netbox вынесены в конфиг.

svs 22.04.2014 18:52:29 +0400 - build 3875

1. Mantis#0002651: TechInfo #52: Saved???/HistoryCount

2. Падение, если размер строки настройки System.ShowStatusInfo был меньше числа секций в InfoPanel

drkns 20.04.2014 17:14:22 +0200 - build 3874

1. Рефакторинг.

w17 19.04.2014 22:47:13 +0400 - build 3873

1. Немного более постоянные постоянные блоки в комстроке и полях ввода диалогов.

w17 18.04.2014 13:07:22 +0400 - build 3872

1. M#1465: Редакторы комстроки/диалога не учитывают выделение, установленное плагином

drkns 18.04.2014 10:43:09 +0200 - build 3871

1. "Любимые кодовые страницы" -> "Избранные кодовые страницы".

drkns 17.04.2014 20:06:46 +0200 - build 3870

1. В 3868 погнулись подтверждения отключения виртуальных и subst дисков.

drkns 17.04.2014 19:24:04 +0200 - build 3869

1. Более корректное определение UTF8 / UTF16LE / UTF16BE.

svs 17.04.2014 11:00:21 +0400 - build 3868

1. GUID`ы

    DisconnectDriveId           = {A1BDBEB1-2911-41FF-BC08-EEBC44040B50}  --> Dlg.Id
    Диалог "Отключение сетевого устройства" (Del на сетевом диске в мен выбора дисков).

    SUBSTDisconnectDriveId      = {75554EEB-A3A7-45FD-9795-4A85887A75A0}  --> Dlg.Id
    Диалог "Отключение SUBST-диска"

    VHDDisconnectDriveId        = {629A8CA6-25C6-498C-B3DD-0E18D1CC0BCD}  --> Dlg.Id
    Диалог "Отключение VHD-диска"

    ChangeDriveModeId           = {F87F9351-6A80-4872-BEEE-96EF80C809FB}  --> Dlg.Id
    Диалог "Настройка меню выбора диска"


drkns 15.04.2014 22:31:59 +0200 - build 3867

1. В 3857 немного погнулся переход по +/- во вьювере.

svs 15.04.2014 12:37:20 +0400 - build 3866

1. Mantis#0002647: DM_SETFOCUS работает неправильно в присутствии элемента с DIF_NOFOCUS
    Перед сменой фокуса принудительно очистим флаг DIF_FOCUS у всех элементов.

2. Mantis#0002608: функция Editor: не всегда учитывается что заданный файл уже может быть загружен

    Если файл уже открыт, то повторное открытие в модальном режиме сопровождается сообщением
    "already loaded. How to open this file?" и две кнопки "{ New instance }" и "[ Cancel ]".
    В АПИ: из режимов EF_OPENMODE_* поддерживать только EF_OPENMODE_QUERY, EF_OPENMODE_NEWIFOPEN и
    EF_OPENMODE_BREAKIFOPEN (т.е. те самые кнопки "New instance" и "Cancel").

    (пока частичное решение)

3. GUID`ы
    EditorReloadModalId         = {D6F557E8-7E89-4895-BD75-4D3F2C30E382}  --> Dlg.Id
    Редактор. Диалог-предупреждение переоткрытия открытого файла в модальном редакторе
    (у не модальных - GUID==EditorReloadId)

    EditorCanNotEditDirectoryId = {CCA2C4D0-8705-4FA1-9B10-C9E3C8F37A65}  --> Dlg.Id
    Редактор. Предупреждение о попытке редактировать каталог

    EditorFileLongId            = {E3AFCD2D-BDE5-4E92-82B6-87C6A7B78FB6}  --> Dlg.Id
    Редактор. Предупреждение о превышении размера редактируемого файла (см. настройку Editor.FileSizeLimit и Editor.FileSizeLimitHi)

    EditorFileGetSizeErrorId    = {6AD4B317-C1ED-44C8-A76A-9146CA8AF984}  --> Dlg.Id
    Редактор. Невозможно получить размер редактируемого файла (если заданы Editor.FileSizeLimit и Editor.FileSizeLimitHi)


drkns 13.04.2014 12:41:13 +0200 - build 3865

1. Продолжение 0002645.

drkns 12.04.2014 19:15:45 +0200 - build 3864

1. Продолжение 0002645.

2. Опция EditorF7Rules удалена во имя консистентности.

drkns 12.04.2014 14:26:37 +0200 - build 3863

1. 0002591: Не устанавливается время в диалоге атрибутов файла.

drkns 12.04.2014 13:29:05 +0200 - build 3862

1. 0002645: Повторный поиск (ShiftF7) работает неправильно с опцией "Cursor at end"

2. 0002646: Повторный поиск (ShiftF7), если ничего не найдено, сдвигает курсор

zg 11.04.2014 16:02:53 +0200 - build 3861

1. gcc warnings.

drkns 11.04.2014 08:32:40 +0200 - build 3860

1. Уточнение 3859.1.

drkns 10.04.2014 22:20:10 +0200 - build 3859

1. Количество конструкций !?<title>?<init>! в user menu теперь не ограничено.

2. Туда же добавлены кнопки Ok и Cancel.

3. В некоторых случаях в полях ввода производилась запись за границей буфера.

drkns 10.04.2014 09:18:34 +0200 - build 3858

1. Опечатка в 3857.

drkns 09.04.2014 22:19:59 +0200 - build 3857

1. Если в процессе удаления файла/каталога кто-то удалил его раньше нас - не показываем ошибки типа "файл не найден", считаем работу выполненной.

2. Во вьювере, открытом из диалога перезаписи, работает переход по Add/Subtract.

3. В редакторе при "Cursor at end" не работал обратный поиск.

4. Не собиралась отладочная версия - в 3856 не до конца был вычищен DN_ACTIVATEAPP.

5. Рефакторинг.

zg 09.04.2014 17:49:08 +0200 - build 3856

1. DN_ACTIVATEAPP убрана. вместо неё давно есть DN_INPUT+FOCUS_EVENT.

svs 09.04.2014 09:11:50 +0400 - build 3855

1. Mantis#0001722: DN_EDITCHANGE приходит лишний раз и с ложной информацией

   Подробности:

   1. При старте диалога у "этой" строки редактирования выставлен флаг FEDITLINE_CLEARFLAG (серые буковки).
      В момент ввода символа (вставка или очистка поля ввода) идет сброс флага FEDITLINE_CLEARFLAG и
      очистка содержимого строки. Диалоговая процедура видит это как "PtrData указывает на пустую строку".
      Следом приходит второй DN_EDITCHANGE с теми данными, которые ввели.


   2. unchanged _технически_ похож на выбранный текст с той разницей, что информация (DN_EDITCHANGE)
      для выбранного текста  об удаленном блоке не поступает в диалоговую процедуру.


svs 07.04.2014 16:26:57 +0400 - build 3854

1. Mantis#0001470: Edit-box: состояние "Unchanged" появляется уже после того, как было сброшено

2. Mantis#0001464: Едит-контролы - сбрасывать unchanged, если плагин меняет позицию курсора
   Unchanged-состояние теперь сбрасывается так же для DM_SETSELECTION и DM_SETCURSORPOS.

3. DN_ACTIVATEAPP "публикуем".
   Событие DN_ACTIVATEAPP (0x3FFF/16383) приходит в диалоговую процедуру, когда консольное окно Far Manager становится активным или пассивным.
   Param1 = 1 - окно получило фокус ввода
            0 - окно стало пассивным
   Param2 = 0
   Return = 0

4. Публикуем некоторые "древние" флаги из EDITOR_FLAGS (EF_OPENMODE_*)
    EF_OPENMODE_MASK         = 0x00000000F0000000ULL,
      Маска для EF_OPENMODE_*
    EF_OPENMODE_QUERY        = 0x0000000000000000ULL,
      Запрашивать пользователя в случае если файл открыт в редакторе
    EF_OPENMODE_NEWIFOPEN    = 0x0000000010000000ULL,
      Открыть файл в новом редакторе, если он уже открыт
    EF_OPENMODE_USEEXISTING  = 0x0000000020000000ULL,
      Переключиться на открытый в редакторе файл
    EF_OPENMODE_BREAKIFOPEN  = 0x0000000030000000ULL,
      Прервать операцию открытия файла, если он открыт в редакторе
    EF_OPENMODE_RELOADIFOPEN = 0x0000000040000000ULL,
      Переоткрыть, если файл уже открыт в редакторе.

   fileedit.hpp::FEOPMODEEXISTFILE удалены, вместо этих флагов использованы EDITOR_FLAGS.


svs 07.04.2014 11:56:50 +0400 - build 3853

1. Mantis#0002641: Не обновляется панель с кнопками во время поиска
   Добавлен флаг DMODE_NEEDUPDATE - "при случае обновить не конкретный элемент, а весь диалог".

   Решение закрывает репорт.
   Для избавления от костыля необходимо "немного" изменять ядро...
   ...вводить очередь сообщений (например, Frame: std::vector<Message*> MsgQueue) с последствиями.

2. Bug: Некорректная отрисовка в диалоге результатов поиска (Alt-F7) при изменении размеров консоли.
   Не изменялась координата Bottom у элементов диалога.

drkns 05.04.2014 12:56:05 +0200 - build 3852

1. M#2639: При запуске из панели (с пустой ком.строкой) не должны применяться командные алиасы

2. В 3819 погнулось перемещение курсора в панелях колесом мыши.

svs 04.04.2014 16:50:40 +0400 - build 3851

1. Mantis#0002615: Нужен способ идентификации выпадающих историй

   Один GUID для всех историй в полях ввода:

    SelectFromEditHistoryId  = {4406C688-209F-4378-8B7B-465BF16205FF}  --> Dlg.Id

w17 04.04.2014 16:07:24 +0400 - build 3850

1. M#2637: перестала работать в панелях сортировка по дате создания файла

svs 04.04.2014 11:39:31 +0400 - build 3849

1. SQLite 3.8.4.3

drkns 04.04.2014 00:30:15 +0200 - build 3848

1. Рефакторинг.

svs 03.04.2014 21:49:06 +0400 - build 3847

1. Mantis#0001301: Ошибки при выполнении DM_LISTUPDATE, DN_LISTCHANGE

   Обработка изменения позиций в листах вынесена в класс VMenu (DN_LISTHOTKEY и DN_LISTCHANGE)

   Для хоткеев теперь так:
   if(DN_LISTHOTKEY)
    if(DN_LISTCHANGE)
      изменяем позицию

   Ловим баги :-)

drkns 30.03.2014 12:21:55 +0200 - build 3846

1. 0002628: Предупреждение с непонятными следствиями выбора

2. В 3843 отвалилось управление комбобоксом с клавиатуры.

drkns 29.03.2014 20:20:06 +0200 - build 3845

1. M#0002631: Переполнение буфера при просмотре файлов с шириной окна и строки > 512 символов.

2. Новая версия universal charset detector'а.

3. Рефакторинг.

svs 27.03.2014 10:14:07 +0400 - build 3844

1. SQLite 3.8.4.2

svs 27.03.2014 09:09:23 +0400 - build 3843

1. Mantis#0001301: Ошибки при выполнении DM_LISTUPDATE, DN_LISTCHANGE

   DN_LISTCHANGE - в документации было неверное описание работы события (копи-паст из DN_EDITCHANGE).
   В DI_LISTBOX отсутствовал возврат позиционирования курсора в предыдущее состояние, если диалоговая процедура возвращала 0.
   В DI_COMBOBOX - обработка самостоятельная (vmenu.cpp), посыл сообщения DN_LISTCHANGE (и реакция на него) после визуального отображения;
     в классе VMenu при отображении не учитывалось наличие "хозяина" (диалог) и признака комбинированного списка (VMENU_COMBOBOX).

drkns 23.03.2014 21:51:18 +0200 - build 3842

1. Рефакторинг.

shmuel 22.03.2014 21:27:21 +0200 - build 3841

1. Уточнение 3838 (DM_GETDIALOGTITLE).

drkns 21.03.2014 20:28:49 +0200 - build 3840

1. Передвинем DN_DRAWDLGITEMDONE в правильное место.

svs 21.03.2014 16:28:10 +0400 - build 3839

1. Уточнение относительно DN_DRAWDLGITEMDONE
   Схема следующая:
      1. Отрисовка всего диалога:
          DN_DRAWDIALOG
          DN_CTLCOLORDIALOG
          CountItem раз {
            DN_DRAWDLGITEM
            DN_CTLCOLORDLGLIST
            DN_DRAWDLGITEMDONE
          }
          DN_DRAWDIALOGDONE

      2. Отрисовка одного элемента:
          DN_DRAWDLGITEM
          DN_CTLCOLORDLGLIST
          DN_DRAWDLGITEMDONE

2. Mantis#2511: ACTL_GETWINDOWINFO зависает при вызове для диалога при недавнем наличии другого диалога
   (from NightRoman)

svs 21.03.2014 13:59:21 +0400 - build 3838

1. Dialog API. Добавка:

    Сообщение DM_GETDIALOGTITLE (67) позволяет получить заголовок диалога.
      Param1 = 0
      Param2 = Указатель на структуру FarDialogItemData
      Return = Размер заголовка в символах, без завершающего символа конца строки '\0'

    Far для заголовка диалога (в т.ч. для заголовка консольного окна) берёт данные
    из первого попавшегося "текста" (элементы типа DI_TEXT, DI_DOUBLEBOX, DI_SINGLEBOX)
    или "списка" (элемент типа DI_LISTBOX).
    Если в массиве элементов диалога отсутствует хотя бы один из перечисленных
    элементов, то заголовок пустой.


2. Dialog API. Добавка:

    Событие DN_DRAWDLGITEMDONE (68) посылается в конце отрисовки элемента диалога (парный DN_DRAWDLGITEM).
      Param1 = ID
      Param2 = 0
      Return = 0

    Ранее для сигнала конца отрисовки одного элемента всегда приходил DN_DRAWDIALOGDONE
    (так же как и для отрисовки всего диалога).

    Сейчас
      1. Отрисовка всего диалога:
          DN_DRAWDIALOG
          DN_CTLCOLORDIALOG
          CountItem раз {
            DN_DRAWDLGITEM
            DN_CTLCOLORDLGLIST
          }
          DN_DRAWDIALOGDONE

      2. Отрисовка одного элемента:
          DN_DRAWDLGITEM
          DN_CTLCOLORDLGLIST
          DN_DRAWDLGITEMDONE


3. Mantis#0002586: События: нет возможности отследить открытие комбобокса

   Dialog API. Добавка:

   Событие DN_DROPDOWNOPENED (4119) посылается перед открытием Combobox или History и после закрытия.
      Param1 = ID
      Param2 = 1 - открыт, 0 - закрыт
      Return = 0

   Здесь возможно необходимо уточнение места вызова.


svs 19.03.2014 16:17:34 +0400 - build 3837

1. Mantis#0000327: [X] Save bookmarks не работает без [X] Save file position

   Опции стали независимы, но!

   Вариант без переделки структуры history.db.
   Сейчас таблицы editorposition_history/viewerbookmarks_history зависят от
   editorposition_history/viewerposition_history (в последних храниться имя файла).

   В editorposition_history/viewerposition_history делается запись если
   "запоминать позицию" ИЛИ "запоминать букмарк" выставлены.
   Если есть "запоминать букмарк", но нет "запоминать позицию", то в таблицы
   editorposition_history/viewerposition_history информация о положении записывается нулями.

2. Косметика (UCase) для GUID

svs 18.03.2014 15:20:34 +0400 - build 3836

1. GUID для диалога запроса логина и пароля.

    GetNameAndPasswordId  = {CD2AC546-9E4F-4445-A258-AB5F7A7800E0}  --> Dlg.Id

    Появляется (опционально) при переходе на примапленный диск из меню выбора дисков.

2. Уточнения в SysLog и немного логирования в диалогах.

3. <АХТУНГ!>

   Флаг диалога DMODE_DRAWING очищался перед посылкой DN_DRAWDIALOGDONE, что в некоторых
   случаях приводило к зацикливанию операции отрисовки диалога (с переполнением стека и
   последующим вылетом Far).

   Очистка флага DMODE_DRAWING перенесена в конец DMODE_DRAWING Dialog::ShowDialog().

   </АХТУНГ!>


svs 14.03.2014 12:20:09 +0400 - build 3835

1. Mantis#0002613: Требуются гуиды для меню дисков, меню ассоциаций

    EditorSwitchUnicodeCPDisabledId = {15568DC5-4D6B-4C60-B43D-2040EE39871A} --> Dlg.Id
       Сообщение "Нельзя изменить юникодную кодовую страницу"
       Появляется, когда при редактировании файла в Unicode-кодировке (например, 1200) пытаемся поменять кодовую страницу.

2. Mantis#0002570: Обработка некорректного значения в диалоге настроек
   В DlgBuilder добавлен функционал работы с unsigned int значениями.

svs 13.03.2014 20:13:49 +0400 - build 3834

1. Mantis#0002613: Требуются гуиды для меню дисков, меню ассоциаций

    ChangeDiskMenuId      = {252CE4A3-C415-4B19-956B-83E2FDD85960}  --> Menu.Id
       Меню выбора диска

    FileAssocMenuId       = {F6D2437C-FEDC-4075-AA56-275666FC8979}  --> Menu.Id
       Меню редактирования ассоциаций
    SelectAssocMenuId     = {D2BCB5A5-6B82-4EB5-B321-1AE7607A6236}  --> Menu.Id
       Меню выбора из списка ассоциаций
    FileAssocModifyId     = {6F245B1A-47D9-41A6-AF3F-FA2C8DBEEBD0}  --> Dlg.Id
       Диалог редактирования очередной ассоциации

drkns 13.03.2014 11:55:36 +0200 - build 3833

1. После 3819 не работало логическое связывание элементов диалога.

zg 13.03.2014 02:20:45 +0200 - build 3832

1. 0002620: Залипшая клавиша Shift при посылке ECTL_PROCESSINPUT.

svs 12.03.2014 16:03:57 +0400 - build 3831

1. SQLite 3.8.4.1

2. Mantis#0002619: Не хватает горизонтальной линии в хелпе
   В разметку хелпа добавлена конструкция:
     @=[Символ] (в начале строки)
     Рисует горизонтальную линию из символов "Символ" цветом обычного текста.
     Линия рисуется на всю ширину окна Помощи с отсупами по одному символу слева и справа.
     Если "Символ" не указан, будет отрисована горизонтальная одинарная линия (символом 0x2500).
     Остаток строки игнорируется.

3. Не работал DIF_SEPARATORUSER (по крайней мере для горизонтального сепаратора)

svs 11.03.2014 10:24:41 +0400 - build 3830

1. Bug: Некорректно отрабатывает запуск с панелей файлов, содержащих в начале имени символ '@'.
   Например, "@@@@howl_by_tomape.jpg" в процессе прохода по внутренним функциям превращается в "@@@howl_by_tomape.jpg"
   Т.е. символ "@" в начале строки воспринимается как признак тихого режима, потом усекается на -1 символ.

   Ныне: Enter на элементе файловой панели пропускает механизм определения символа '@' в начале имени.
         Если в ком.строке '@@@@howl_by_tomape.jpg' - будет выдано предупреждение, что файла "@@@howl_by_tomape.jpg" нет.
         Если в ком.строке '"@@@@howl_by_tomape.jpg"' (имя в кавычках) - будет запущен файл '@@@@howl_by_tomape.jpg'.


svs 10.03.2014 22:56:53 +0400 - build 3829

1. SQLite 3.8.4

drkns 10.03.2014 19:37:56 +0200 - build 3828

1. Ключ "/rw" переименован в "/ro-".

2. После 3821 debug build детектировал ложную утечку памяти. Лучше избегать глобальных std-объектов.

3. Расставляем NonCopyable, избавляемся от некоторых глобальных объектов и прочий рефакторинг.

drkns 10.03.2014 01:28:52 +0200 - build 3827

1. Ещё пара оптимизаций отрисовки.

drkns 10.03.2014 01:08:07 +0200 - build 3826

1. Очень старый баг, внесённый ещё в 2.0.1077.
   В некоторых случаях оптимизация работала не так, как ожидалось, и становилось в разы медленнее.

shmuel 09.03.2014 15:08:27 +0200 - build 3825

1. Из форума: DI_FIXEDIT + DIF_HISTORY для строк больше двух символов.
   (Наличие флага DIF_HISTORY позволяло ввести на 1 символ больше, чем длина поля ввода).

shmuel 08.03.2014 23:07:41 +0200 - build 3824

1. Из форума: Неверный результат работы FSF.TruncStr().

zg 08.03.2014 18:40:47 +0200 - build 3823

1. уточнение 3821. для DM_GETFOCUS и DM_LISTADDSTR в случае отсутствия диалога возвращается -1.

drkns 07.03.2014 02:38:36 +0200 - build 3822

1. VC10 fix.

2. Warning.

zg 07.03.2014 02:13:56 +0200 - build 3821

1. 0002614: SendDlgMessage: не падать при невалидном hDlg.

drkns 05.03.2014 22:41:01 +0200 - build 3820

1. 0002604: Translate in file menu Add, Subtract, Multiply...

drkns 04.03.2014 01:22:32 +0200 - build 3819

1. С форума: преобразование длинных имен в короткие не работало для имен длиннее 255 символов.

2. Рефакторинг.

shmuel 02.03.2014 09:53:50 +0200 - build 3818

1. Кастомная сортировка в панелях: индикатор сортировки в некоторых ситуациях не устанавливался на пустой панели.

shmuel 21.02.2014 18:11:56 +0200 - build 3817

1. M#0002607. Ещё одно уточнение.

svs 21.02.2014 08:05:46 +0400 - build 3816

1. Mantis#0002607. Уточнение.
   DM_SETITEMPOSITION вернёт false, если координаты заданы неверно.

svs 20.02.2014 21:33:03 +0400 - build 3815

1. Mantis#0002607: DM_SETITEMPOSITION вызывает падение Фара, если Right < Left - 1

w17 19.02.2014 16:59:31 +0400 - build 3814

1. M#2605: Освобождение памяти после редактирования

w17 18.02.2014 18:54:03 +0400 - build 3813

1. fix $#nn (с форума)

drkns 17.02.2014 22:47:09 +0200 - build 3812

1. 0002603: Падение по вызове FCTL_GETCURRENTPANELITEM на PTYPE_QVIEWPANEL и PTYPE_INFOPANEL

2. Рефакторинг.

drkns 17.02.2014 00:03:05 +0200 - build 3811

1. Уточнение 3810.

drkns 16.02.2014 19:18:25 +0200 - build 3810

1. Некорректно устанавливались флаги 0x10 и 0x20 в Editor.State.

2. Некорректно переключался язык интерфейса.

3. Рефакторинг.

drkns 15.02.2014 13:30:44 +0200 - build 3809

1. Сторонние библиотеки (UCD, sqlite, tinyxml) переехали в thirdparty.

drkns 14.02.2014 19:33:07 +0200 - build 3808

1. 0002600: Far doesn't load plugins with the same dll-name

svs 14.02.2014 09:40:25 +0400 - build 3807

1. SQLite 3.8.3.1

drkns 13.02.2014 20:56:37 +0200 - build 3806

1. Размер буфера копирования не мог быть меньше 64 К.

2. Копированиие в nul не использовало системную функцию.

drkns 13.02.2014 00:23:02 +0200 - build 3805

1. VC10.

drkns 13.02.2014 00:10:00 +0200 - build 3804

1. GCC-билд мог причудливо падать при создании плагином диалога с обработчиком.

2. Теперь ошибка переключения языка не приводит к завершению процессса.

3. Рефакторинг.

shmuel 12.02.2014 18:00:50 +0200 - build 3803

1. Не инициализировалось состояние чекбокса "Size" в диалоге создания фильтра файлов.

w17 11.02.2014 17:41:29 +0400 - build 3802

1. Уточнение 3801

w17 11.02.2014 13:59:15 +0400 - build 3801

1. Длинные имена в диалоге удаления (с форума)

drkns 08.02.2014 12:39:25 +0200 - build 3800

1. 0002577: Не работает сдвиг блока для строки с одним символом

zg 08.02.2014 03:38:56 +0200 - build 3799

1. уточнение 3794:
   при смене кодировки в редакторе любая пустая строка вызывает сообщение:
   "Редактор содержит символы, которые невозможно корректно преобразовать, используя выбранную кодовую страницу."

zg 06.02.2014 23:38:11 +0200 - build 3798

1. DM_GETDLGITEM для элементов DI_LISTBOX и DI_COMBOBOX возвращает текущий список, а не список,
   которым они инициализировались при создании.

w17 06.02.2014 01:14:29 +0400 - build 3797

1. vc++ 2010 fix

drkns 05.02.2014 20:45:24 +0200 - build 3796

1. Уточнение 3794.

svs 05.02.2014 12:25:36 +0400 - build 3795

1. SQLite 3.8.3

drkns 05.02.2014 09:43:50 +0200 - build 3794

1. Analyzer warnings.

2. Рефакторинг.

drkns 03.02.2014 20:20:22 +0200 - build 3793

1. 0002593: Far Manager v3.0 build 3791 x86 (3792) некорректно работает выделение блока.

drkns 03.02.2014 08:35:23 +0200 - build 3792

1. Уточнение 3791.

drkns 02.02.2014 17:48:43 +0200 - build 3791

1. Рефакторинг.

3. Убрана перегрузка new/delete в Release, уточнена в Debug.

3. PVS & cppcheck warnings.

drkns 31.01.2014 08:42:27 +0200 - build 3790

1. 0002588: При изменении каталога в диалоге и нажатии Enter переходим в прежний каталог

drkns 29.01.2014 23:43:43 +0200 - build 3789

1. Во имя перфекционизма не запрашиваем информацию о кодовых страницах до тех пор, пока она не понадобится.

shmuel 29.01.2014 18:45:16 +0200 - build 3788

1. Рефакторинг в системе макросов.

zg 27.01.2014 21:37:49 +0200 - build 3787

1. 0002579: DM_GETTEXT в некоторых случаях возвращает мусор (LuaFAR)

drkns 27.01.2014 21:09:26 +0200 - build 3786

1. 0002578: Проблема выделения памяти при поиске с фильтром

zg 25.01.2014 04:09:09 +0200 - build 3785

1. 0002567: навигация по архиву после поиска
   в SetDirectoryW передавался путь со слэшем на конце.

drkns 21.01.2014 22:47:59 +0200 - build 3784

1. 0002568: Exception при попытке ввода строки в поля рассчитанные на числовые значения

w17 21.01.2014 23:14:25 +0400 - build 3783

1. M#2569: В диалоге настроек Viewer неверно работает шорткат AltM

shmuel 21.01.2014 19:26:55 +0200 - build 3782

1. Рефакторинг в системе макросов.

drkns 19.01.2014 23:03:16 +0200 - build 3781

1. #0002294: Удален неиспользуемый код.

drkns 19.01.2014 21:18:14 +0200 - build 3780

1. Уточнение 3779.

drkns 19.01.2014 19:58:42 +0200 - build 3779

1. PVS & cppcheck warnings.

2. Рефакторинг.

drkns 19.01.2014 02:39:29 +0200 - build 3778

1. Рефакторинг.

shmuel 18.01.2014 20:50:43 +0200 - build 3777

1. Рефакторинг в системе макросов.

w17 17.01.2014 14:12:54 +0400 - build 3776

1. M#2557: Подверждение удаления нескольких файлов

   Добавлены 2 настройки (far:config):

   a) Interface.DelHighlightSelected -- bool, default = true
   true -- выделяем случай, когда список удаляемых объектов отличаеся от объекта под курсором.

   b) Interface.DelShowSelected -- int, default = 10
   При множественном удалении показываем имена. Не более чем заданное число,
   приведённое к диапазону 1..высота_экрана/2

   Старое поведение = (false, 1)

drkns 17.01.2014 09:50:47 +0200 - build 3775

1. Уточнение 3774.

drkns 16.01.2014 22:11:50 +0200 - build 3774

1. 0002565: Регрессия с повышением доступа и чтением папок

2. Рефакторинг.

w17 15.01.2014 16:38:20 +0400 - build 3773

1. Продолжение b3771

shmuel 14.01.2014 19:24:08 +0200 - build 3772

1. Рефакторинг в системе макросов.

w17 14.01.2014 16:58:53 +0400 - build 3771

1. M#2556: Crash in Help if macro has lots of keys assigned

shmuel 14.01.2014 11:15:34 +0200 - build 3770

1. Рефакторинг в системе макросов.

w17 13.01.2014 00:08:49 +0400 - build 3769

1. M#2558: Слияние блок Undo не учитывает сохранение файла (from CyberShadow)

drkns 12.01.2014 13:24:37 +0200 - build 3768

1. Уточнение 3767.

drkns 12.01.2014 00:21:01 +0200 - build 3767

1. Падение при отсутствии прав на запись в профиль.

2. "Правильными" плагинами могли считаться и неподдерживаемые, например от Far 2.

3. Рефакторинг.

shmuel 11.01.2014 23:43:43 +0200 - build 3766

1. M#2551: Object.Height/Width не работают в меню.

drkns 09.01.2014 00:20:44 +0200 - build 3765

1. Уточнение 3752 для плагиновых панелей.

drkns 08.01.2014 19:43:29 +0200 - build 3764

1. После 3751 некоррекно отображались скрытые файлы на панели плагина.

drkns 06.01.2014 17:13:09 +0200 - build 3763

1. Используем рекомендуемые MS проверки версии ОС вместо deprecated GetVersionEx.

2. Используем нативный thread_local в gcc.

drkns 05.01.2014 22:55:23 +0200 - build 3762

1. VC10.

drkns 05.01.2014 19:39:38 +0200 - build 3761

1. 0002553: Ненужные хоткеи F3/F4 в история команд (Alt-F8)

shmuel 05.01.2014 19:22:10 +0200 - build 3760

1. Рефакторинг кастомной сортировки.

drkns 03.01.2014 13:37:10 +0200 - build 3759

1. Продолжение 3756: убраны аллокации и немного упрощен код.

drkns 03.01.2014 11:23:21 +0200 - build 3758

1. Уточнение 3752.

t-rex 03.01.2014 11:08:14 +0200 - build 3757

1. мемори лик в 3756.

t-rex 03.01.2014 04:59:02 +0200 - build 3756

1. Фикс кастомной сортировки, уродливо но чтоб намёк был понят.

drkns 03.01.2014 04:00:21 +0200 - build 3755

1. "Восстановим" кастомные режимы сортировки.

drkns 02.01.2014 18:06:05 +0200 - build 3754

1. Оптимизация перемещения внутренних классов.

drkns 02.01.2014 04:33:52 +0200 - build 3753

1. Продолжение 3752.

drkns 02.01.2014 02:55:55 +0200 - build 3752

1. Оптимизация, аналогичная 3401: каждый элемент файловой панели занимает примерно на 200 байт меньше памяти.

drkns 31.12.2013 16:06:31 +0200 - build 3751

1. Рефакторинг.

2. Уточнение 3749.

3. Нажатие ShiftF9 всегда принудительно сохраняет настройки, "не занимаясь эвристикой и оптимизацией".

drkns 31.12.2013 03:05:45 +0200 - build 3750

1. Нажатие F4 в меню групп масок приводило к падению.

drkns 31.12.2013 00:38:12 +0200 - build 3749

1. Рефакторинг.

drkns 30.12.2013 21:25:21 +0200 - build 3748

1. Рефакторинг.

drkns 26.12.2013 19:36:19 +0200 - build 3747

1. Уточнение 3746.

drkns 26.12.2013 01:21:42 +0200 - build 3746

1. Рефакторинг.

drkns 21.12.2013 22:00:20 +0200 - build 3745

1. Уточнение 3744.1.

drkns 21.12.2013 21:20:13 +0200 - build 3744

1. Рефакторинг.

2. Утечки памяти при запуске с ключом /v или /e.

drkns 15.12.2013 04:54:32 +0200 - build 3743

1. Уточнение 3738.

drkns 13.12.2013 22:15:29 +0200 - build 3742

1. Уточнение 3738.

svs 13.12.2013 12:06:12 +0400 - build 3741

1. Mantis#0002545: GUID для меню параметров плагинов

    PluginsConfigMenuId   =  {B4C242E7-AA8E-4449-B0C3-BD8D9FA11AED} --> Menu.Id

drkns 13.12.2013 09:23:31 +0200 - build 3740

1. Уточнение 3738.

drkns 13.12.2013 01:21:33 +0200 - build 3739

1. VC10 fix.

drkns 13.12.2013 00:57:54 +0200 - build 3738

1. Рефакторинг.

drkns 09.12.2013 20:56:45 +0200 - build 3737

1. В 3733 погнулась раскраска файлов.

w17 09.12.2013 14:03:54 +0400 - build 3736

1. Уточнение 3678 (M#2496)

w17 09.12.2013 13:43:23 +0400 - build 3735

1. M#2543: неверная работа Panel.SetPosIdx при включенном фильтре в панели

svs 09.12.2013 10:55:43 +0400 - build 3734

1. SQLite 3.8.2

drkns 08.12.2013 23:04:44 +0200 - build 3733

1. Рефакторинг.

svs 06.12.2013 14:31:24 +0400 - build 3732

1. Mantis#0002331: Хоткеи и\или GUID для Folder Shortcuts

    FolderShortcutsDlgId  = {DC8D98AC-475C-4F37-AB1D-45765EF06269} --> Dlg.Id
      Диалог редактирования пути.
    FolderShortcutsMoreId = {601DD149-92FA-4601-B489-74C981BC8E38} --> Menu.Id
      Меню, показываемое, когда на один шорткат навешено больше одного пути.
      Ранее введенный FolderShortcutsId - это меню общего списка шорткатов (F9 c d).

2. В "построитель" DialogBuilder добавлены функции SetId/GetId присвоения GUID`а диалогу.

svs 05.12.2013 17:07:29 +0400 - build 3731

1. Mantis#0002537: лист с флагом DIF_LISTNOBOX в диалоге странно прокручивается мышью
   ...аналогичное поведение было и у PgDn

svs 05.12.2013 14:43:33 +0400 - build 3730

1. SysLog. Выходной файл в UTF-8; корректировка открытия/закрытия файла (с отладочной инфой по завершению работы программы)

drkns 04.12.2013 20:32:29 +0200 - build 3729

1. Рефакторинг.

2. В syslog'е использовались не те *printf-функции.

zg 29.11.2013 21:29:21 +0200 - build 3728

1. fg4bit и bg4bit при импорте экспорте были перепутаны местами.

drkns 27.11.2013 22:00:17 +0200 - build 3727

1. 0002533: не работает считывание настроек Xlat при старте Far

drkns 27.11.2013 21:13:16 +0200 - build 3726

1. 0002535: Crash при открытии History в маленьком EditBox

drkns 26.11.2013 23:03:45 +0200 - build 3725

1. Пара уточнений 3723.

drkns 25.11.2013 01:55:45 +0200 - build 3724

1. Пара уточнений 3723.

drkns 24.11.2013 21:37:36 +0200 - build 3723

1. Рефакторинг.

2. Удалён неиспользуемый код.

w17 21.11.2013 21:10:00 +0400 - build 3722

1. нажатия CtrlJ/C/F в панели, когда курсор стоит на .., вызывают исключения.

shmuel 21.11.2013 17:11:54 +0200 - build 3721

1. Уточнение билда 3708 (M#2440).

w17 20.11.2013 13:48:49 +0400 - build 3720

1. M#2527: Crash when restarting with rebuilding tree(fix b3673.2)

drkns 19.11.2013 21:18:07 +0200 - build 3719

1. 0002528: Падение при включении режима панели LCtrl8

svs 18.11.2013 15:42:46 +0400 - build 3718

1. Уточнения по TREEFILE_PROJECT (Mantis#0000186)

w17 18.11.2013 11:37:28 +0400 - build 3717

1. Уточнение 3713 (не пишем дубликаты команд из разных каталогов)

shmuel 16.11.2013 17:17:31 +0200 - build 3716

1. Уточнение 3713.

shmuel 16.11.2013 16:55:01 +0200 - build 3715

1. Уточнение 3714.

shmuel 16.11.2013 14:54:12 +0200 - build 3714

1. Добавлен тип события в Panel API: FE_CHANGESORTPARAMS.

w17 16.11.2013 03:05:43 +0400 - build 3713

1. M#2208: Запоминать, в какой папке была запущена команда (from fml2)

svs 15.11.2013 17:39:24 +0400 - build 3712

1. Уточнения (немного) по TREEFILE_PROJECT (Mantis#0000186)
   про сетевые пути

svs 15.11.2013 15:35:21 +0400 - build 3711

1. Уточнения (немного) по TREEFILE_PROJECT (Mantis#0000186)
   Изменены шаблоны tree-файлов:
    "LD.%D.%SN.tree"      шаблон имени файла-деревяхи для локальных дисков
    "ND.%D.%SN.tree"      шаблон имени файла-деревяхи для сетевых дисков
    "NP.%SR.%SH.tree"     шаблон имени файла-деревяхи для сетевых путей
    "RD.%SN.tree"         шаблон имени файла-деревяхи для сменных дисков
    "CD.%L.%SN.tree"      шаблон имени файла-деревяхи для CD/DVD/BD/etc дисков

   <АХТУНГ>

   1. Не надо ставить /D TREEFILE_PROJECT - проект в разработке. Только для тестирования.
   2. Идеи и замечания сюда - http://bugs.farmanager.com/view.php?id=186

   </АХТУНГ>

w17 13.11.2013 01:12:09 +0400 - build 3710

1. M#2524: Падает при переименовании файла на маковском сетевом диске
   Experimental workaround for buggy OSX SMB.

w17 12.11.2013 20:11:28 +0400 - build 3709

1. M#2525: Некорректное обрезание редактируемого файла на маковском сетевом диске
   Experimental workaround for buggy OSX SMB.

svs 11.11.2013 11:16:52 +0400 - build

1. Уточнения в хелпе про команду title

2. Из разделов хелпа про редактор и вьювер убраны упоминания про печать (Alt-F5) - в коде нет поддержки этой операции.

shmuel 08.11.2013 18:47:05 +0200 - build 3708

1. M#2440: akey(1) и одиночные нажатия модификаторов.

drkns 03.11.2013 01:25:39 +0200 - build 3707

1. 0002521: Far падает при запуске ANSI-плагина My Documents начиная с билда 3506

shmuel 02.11.2013 21:39:35 +0200 - build 3706

1. Find file (AltF7): падение при поиске на не-файловой плагиновой панели.

drkns 31.10.2013 22:34:33 +0200 - build 3705

1. Far самостоятельно обрабатывает команду "title".
   Переданная строка будет использоваться вместо стандартной логики формирования заголовка консоли до завершения текущего сеанса.
   Если строка не указана, будет восстановлено стандартное поведение.

w17 31.10.2013 02:35:53 +0400 - build 3704

1. Продолжение 3703: блокируем удаление если зажата клавиша

w17 30.10.2013 23:41:30 +0400 - build 3703

1. M#2419: Два почти идентичных диалога подтверждения множественного удаления (from SEt)

w17 28.10.2013 06:51:10 +0400 - build 3702

1. С форума: Use sort groups и Show selected first не могут быть принудительно включены или выключены

drkns 26.10.2013 21:11:58 +0200 - build 3701

1. Рефакторинг.

drkns 25.10.2013 09:03:21 +0200 - build 3700

1. Уточнение 3699.

drkns 24.10.2013 22:22:03 +0200 - build 3699

1. 0002517: Invalid line number supplied in "Go to position" dialog crashes Far Manager

w17 22.10.2013 22:30:45 +0400 - build 3698

1. M#2513: Far падает на файлах с пустым именем (from SEt)

svs 18.10.2013 11:41:12 +0400 - build 3697

1. SQLite 3.8.1

w17 18.10.2013 00:23:12 +0400 - build 3696

1. Уточнение 3300

drkns 07.10.2013 20:28:43 +0200 - build 3695

1. В 3694 забыли скальпель.

drkns 07.10.2013 20:15:52 +0200 - build 3694

1. Ещё раз на тему получения заголовка консоли.

w17 07.10.2013 14:31:23 +0400 - build 3693

1. M#2505: удвоение японских символов после исполнение команды

drkns 06.10.2013 13:26:56 +0200 - build 3692

1. Ввод некоторых букв в диалоге смены диска мог приводить к ислючительной ситуации.

drkns 04.10.2013 22:29:28 +0200 - build 3691

1. Ещё одно уточнение на тему CtrlZ в редакторе.

2. Рефакторинг.

drkns 04.10.2013 14:12:40 +0200 - build 3690

1. Уточнение 3654.

drkns 04.10.2013 12:40:35 +0200 - build 3689

1. Уточнение 3659.

w17 04.10.2013 07:04:27 +0400 - build 3688

1. С форума:
   Проблема 1. Фар запускается с %temp% только на одной панели, на другой какая-то старая папка.
   Проблема 2. Выходим из Фара --> в исходном cmd окне нет мигающего курсора.

drkns 02.10.2013 12:44:54 +0200 - build 3687

1. Динамически отслеживаем изменение формата даты и времени.

drkns 02.10.2013 11:23:30 +0200 - build 3686

1. Для формата даты с годом вначале годы отображались без лидирующего нуля.

drkns 01.10.2013 18:51:46 +0200 - build 3685

1. Восстановим обрезание пробелов при копировании текста с экрана.

2. Запуск с пустым заголовком консоли (start "" far.exe) приводил к зависанию.

w17 27.09.2013 18:12:55 +0400 - build 3684

1. M#2499: Exception при попытке поиска в файле в режиме просмотра

2. Editor Clipboard paste fix.vc10

svs 26.09.2013 13:02:27 +0400 - build 3683

1. Удалены политики (Policies.DisabledOptions)

drkns 25.09.2013 00:08:15 +0200 - build 3682

1. 0002498: Невозможность отключить фильтр, если среди расширений были похоже, но в разном регистре

w17 25.09.2013 00:36:10 +0400 - build 3681

1. уточнение 3680

drkns 24.09.2013 22:10:50 +0200 - build 3680

1. 0002497: Если не на последнем элементе меню нажать и удерживать стрелку вниз, то курсор убегает за пределы меню

w17 23.09.2013 20:33:42 +0400 - build 3679

1. M#2495: [Folders history] При отсутствии соответсвующего плагина в истории показывается пустая строка.
   (from Denis)

w17 23.09.2013 19:54:36 +0400 - build 3678

1. M#2496: Отключить подсветку горячих клавиш в историях, так как тормозит на большом количестве элементов
   (from Denis)

shmuel 22.09.2013 20:02:30 +0200 - build 3677

1. Макросы, экспериментально:
   - Plugin.Call() всегда работает в асинхронном режиме, то-есть как работал раньше после вызова mmode(3,1).
   - Если гарантированно нужен синхронный режим, пользуемся Plugin.SyncCall().
   - mmode(3,x) всегда возвращает 0 и ни на что не влияет.

drkns 22.09.2013 15:28:35 +0200 - build 3676

1. 0002492: Editor CtrlZ ещё раз.

drkns 22.09.2013 15:24:17 +0200 - build 3675

1. 0002492: Editor CtrlZ

2. Рефакторинг.

shmuel 21.09.2013 11:50:29 +0200 - build 3674

1. Рефакторинг.

drkns 20.09.2013 23:50:03 +0200 - build 3673

1. Рефакторинг.

2. Ручное обновление дерева папок приводило к падению.

drkns 20.09.2013 17:09:53 +0200 - build 3672

1. Рефакторинг.

w17 20.09.2013 16:53:54 +0400 - build 3671

1. vc10 build fix

drkns 20.09.2013 14:21:44 +0200 - build 3670

1. Уточнение 3668.

drkns 20.09.2013 13:56:44 +0200 - build 3669

1. Рефакторинг.

drkns 19.09.2013 20:07:18 +0200 - build 3668

1. Рефакторинг.

drkns 19.09.2013 13:31:43 +0200 - build 3667

1. Уточнение 3666.

drkns 19.09.2013 09:49:54 +0200 - build 3666

1. Уточнение 3656.

2. gcc warnings.

drkns 19.09.2013 09:31:02 +0200 - build 3665

1. 0002490: Editor kills end of line since ver. 3659

shmuel 19.09.2013 00:01:45 +0200 - build 3664

1. M#2486: Разрешить использование Plugin.Call в Condition.
   Добавлена макрофункция Plugin.SyncCall, см. macroapi_manual.chm.

drkns 18.09.2013 23:15:01 +0200 - build 3663

1. Рефакторинг.

drkns 18.09.2013 18:43:08 +0200 - build 3662

1. Рефакторинг.

w17 18.09.2013 17:12:50 +0400 - build 3661

1. Уточнение 3660 (from Denis)

w17 18.09.2013 13:23:02 +0400 - build 3660

1. M#2488: Special Symbols aren't shown in DialogTilte of "!?<title>?<init>!"
   Metasymbols replaced in the dialog caption (same as in the top level usermenu).

drkns 17.09.2013 20:50:44 +0200 - build 3659

1. Рефакторинг.

w17 17.09.2013 11:41:16 +0400 - build 3658

1. с форума: Перестал работать тест очистки буфера обмена

drkns 17.09.2013 00:07:58 +0200 - build 3657

1. Рефакторинг.

drkns 16.09.2013 21:51:26 +0200 - build 3656

1. Не создаём папки в профиле при ReadOnlyConfig==true.

shmuel 16.09.2013 20:04:27 +0200 - build 3655

1. Передача плагину LuaMacro значения опции Фара "ReadOnlyConfig", чтобы не создавал папки
   и не создавал/изменял/удалял файлы, когда нельзя.

drkns 16.09.2013 00:29:14 +0200 - build 3654

1. Переделка UCD-обёртки.
   Как выяснилось, UCD\nscore.h гадит в глобальное пространство всякими мутными дефайнами типа "#define typename"
   с предсказуемыми последствиями, поэтому уберём всё это из заголовков куда подальше.

drkns 15.09.2013 21:06:55 +0200 - build 3653

1. Рефакторинг.

shmuel 15.09.2013 21:01:09 +0200 - build 3652

1. Рефакторинг.

w17 12.09.2013 21:07:14 +0400 - build 3651

1. M#2483: Не работают &-модификаторы в главном меню.

drkns 12.09.2013 14:23:24 +0200 - build 3650

1. 0002482: Фар падает при попытке скопировать файлы с повышением прав.

2. Пара мелочей.

drkns 11.09.2013 23:06:23 +0200 - build 3649

1. Рефакторинг.

shmuel 10.09.2013 23:57:52 +0200 - build 3648

1. Переименование PluginPanelItemEx -> SortingPanelItem.

shmuel 10.09.2013 23:10:05 +0200 - build 3647

1. Кастомные сортировки в панелях используют структуру PluginPanelItemEx вместо PluginPanelItem.
   (Это ломающее изменение, пересмотрите свой код).

drkns 10.09.2013 20:40:20 +0200 - build 3646

1. Рефакторинг.

shmuel 10.09.2013 11:17:28 +0200 - build 3645

1. Кастомные сортировки панелей не получали значение 'ChangeTime'.

2. GCC warnings.

shmuel 10.09.2013 10:43:17 +0200 - build 3644

1. Уточнение 3643.

drkns 10.09.2013 09:48:29 +0200 - build 3643

1. Рефакторинг.

shmuel 08.09.2013 20:14:02 +0200 - build 3642

1. В 3641 сломалось направление сортировки при выборе режима сортировки из меню CtrlF12 по нажатию Enter.

drkns 08.09.2013 17:30:27 +0200 - build 3641

1. Рефакторинг.

2. cppcheck warnings.

3. уточение режима сортировки папок по расширению.

drkns 06.09.2013 13:04:00 +0200 - build 3640

1. С форума: "В интервале билдов 3597-3635 наблюдается падение при попытке вызвать операцию "Continue" плагина S&R в редакторе."

shmuel 05.09.2013 22:41:24 +0200 - build 3639

1. Рефакторинг.

drkns 05.09.2013 13:47:00 +0200 - build 3638

1. Пара уточнений 3636.

w17 05.09.2013 00:25:22 +0400 - build 3637

1. VC10 build fix.

2. -warnings.

drkns 04.09.2013 21:41:29 +0200 - build 3636

1. Рефакторинг.

2. cppcheck warnings.

shmuel 04.09.2013 19:31:48 +0200 - build 3635

1. Меню сортировок панели (CtrlF12) включает в себя и кастомные режимы сортировки, если таковые имеются.

w17 04.09.2013 12:57:16 +0400 - build 3634

1. Односимвольные префиксы плагинов допустимы, но с ограничениями:
   A-Z -- запрещены;
   остальные разрешены если в системе нет диска с таким именем (проверка через QueryDosDevice)

drkns 04.09.2013 00:06:16 +0200 - build 3633

1. При копировании в несколько приёмников кнопка на панели задач мигала после каждой операции.

svs 03.09.2013 23:42:01 +0400 - build 3632

1. SQLite 3.8.0.2

shmuel 03.09.2013 14:58:38 +0200 - build 3631

1. Если плагин, вызванный из макроса, вызывал MCTL_EXECSTRING, то после исполнения MCTL_EXECSTRING
   перерисовка экрана могла быть запрещена, и плагин не мог вывести на экран меню.

2. Мелкий рефакторинг.

shmuel 02.09.2013 11:19:10 +0200 - build 3630

1. FSF.CopyToClipboard() очищает буфер обмена при передаче Data==NULL.

shmuel 02.09.2013 07:25:59 +0200 - build 3629

1. Функция FSF.CopyToClipboard не копировала пустую строку.

zg 31.08.2013 04:12:54 +0200 - build 3628

1. с форума: Падение при вызове PCTL_GETPLUGININFORMATION.

drkns 30.08.2013 22:53:31 +0200 - build 3627

1. Посылка сообщений диалогу до выполнения DialogRun могла приводить к падению.

w17 29.08.2013 16:08:18 +0400 - build 3626

1. Уточнение 3261, допилим DialogBuilder

drkns 29.08.2013 10:01:04 +0200 - build 3625

1. Некорректно обрабатывался вызов OPEN_FINDLIST для ansi-плагинов.

t-rex 28.08.2013 20:06:09 +0200 - build 3624

1. Уточнение 3621, заюзаем DialogBuilder.

t-rex 28.08.2013 16:35:28 +0200 - build 3623

1. Уточнение 3621

2. sqlite 3.8.0

w17 28.08.2013 17:24:35 +0400 - build 3622

1. Уточнение 3621

w17 28.08.2013 14:59:22 +0400 - build 3621

1. Error text wrapping in ChDiskDlg error dialog

shmuel 20.08.2013 20:54:52 +0200 - build 3620

1. Кастомные сортировки панелей восстанавливаются при перезапуске Фара, если setup был сохранён,
   при условии, что соответствующие вызовы Panel.LoadCustomSortMode() производятся в процессе загрузки макросов.
   Восстановление происходит после окончания загрузки макросов, до начала исполнения автостартующих макросов.

t-rex 19.08.2013 14:09:16 +0200 - build 3619

1. $ как последний символ строки замены при поиске с регэкспами вставлял \x00 вместо того чтоб игнорироваться.

drkns 18.08.2013 13:22:27 +0200 - build 3618

1. Буфер экрана мог использовать больше памяти, чем требовалось.

shmuel 17.08.2013 11:56:31 +0200 - build 3617

1. M#2468: некорректная работа Editor.Value и Editor.GetStr() при наличии в строке символа \x00.

drkns 17.08.2013 01:36:21 +0200 - build 3616

1. Уточнение 1947.1 - копирование в буфер строк с позиции после нулевого символа приводило к падению.

t-rex 16.08.2013 23:42:58 +0200 - build 3615

1. Mantis#2465: символ \x00 нарушает поиск/замену с регэкспами.

svs 15.08.2013 12:09:54 +0400 - build 3614

1. Продолжение Mantis#0002442
   (from Smitis)

svs 15.08.2013 10:42:32 +0400 - build 3613

1. Корректировка System.Executor.ComSpecParams - пробелы сами добавим.

shmuel 15.08.2013 00:28:27 +0200 - build 3612

1. Рефакторинг.

svs 14.08.2013 18:52:13 +0400 - build 3611

1. Mantis#0002442: Добавить поддержку TakeCommand
   (from Smitis)
   Тестим.

2. Экспериментально: В запускаторе значение strComSpecParams (которое "/C ") перенесено в конфиг System.Executor.ComSpecParams

drkns 14.08.2013 09:40:14 +0200 - build 3610

1. Warnings.

w17 14.08.2013 04:32:30 +0400 - build 3609

1. Продолжение 3602

w17 12.08.2013 18:51:45 +0400 - build 3608

1. M#2462: Не работает выход в корень диска по cd\

2. -warnings

shmuel 10.08.2013 19:41:07 +0200 - build 3607

1. Продолжение 3604: кастомная сортировка в панелях уже работает.
   См. описание функции Panel.SetCustomSortMode в macroapi_manual.chm.

drkns 10.08.2013 18:58:13 +0200 - build 3606

1. Продолжение 3596. Для адаптеров добавлены функции BOOL Initialize(GlobalInfo*) (вызывается при загрузке)
   и void Free(ExitInfo*) (вызывается при выгрузке).
   Иметь надо обе, в Initialize надо правильно заполнить GlobalInfo.

drkns 09.08.2013 22:32:07 +0200 - build 3605

1. Уточнение загрузки плагинов.

2. Уточнение отрисовки заголовка панели.

3. В копире иногда использовались неинициализированные переменные.

shmuel 09.08.2013 20:01:49 +0200 - build 3604

1. Кастомная сортировка в панелях. Пока не работает.

w17 09.08.2013 11:15:48 +0400 - build 3603

1. Продолжение 3602. GetPathRoot некорректно работал для mountpoint-ов на XP

w17 09.08.2013 04:54:02 +0400 - build 3602

1. M#2461: auto-create directory on the file system mounted via NTFS folder

drkns 08.08.2013 21:19:33 +0200 - build 3601

1. Уточнение 3597.

w17 08.08.2013 17:46:03 +0400 - build 3600

1. Codepage names and typo (from Denis)

drkns 08.08.2013 14:46:51 +0200 - build 3599

1. В некоторых случаях не работал запуск URL из справки.

drkns 07.08.2013 23:21:18 +0200 - build 3598

1. far:config очень плохо работал с 64-битными числами.

2. Продолжаем истреблять FormatString.

drkns 07.08.2013 01:40:10 +0200 - build 3597

1. Частично переделан TPreRedrawFunc. Хранение указателей на что попало - это прекрасно,
   но данные по этим указателям вполне могут и не дожить до момента вызова.

2. Начинаем истреблять FormatString.

drkns 06.08.2013 19:28:53 +0200 - build 3596

1. Внедряем адаптеры плагинов.
   Подробности на http://forum.farmanager.com/viewtopic.php?t=8114, описание интерфейса там же.

shmuel 06.08.2013 11:44:50 +0200 - build 3595

1. В режиме панельной сортировки "Unsorted" при включенной опции "Show selected first" выделенные файлы
   показывались последними, а не первыми.

w17 05.08.2013 14:27:36 +0400 - build 3594

1. для параметра конфига Panel.Text.Highlight нет соответствующего пункта в меню настройки цветов (от ccaid)

w17 05.08.2013 09:33:40 +0400 - build 3593

1. Директория попадала в корзину при удалении по Alt-Del

drkns 04.08.2013 16:11:41 +0200 - build 3592

1. При отмене меню выбора плагина (CtrlPgDn) не освобождались ресурсы.

zg 04.08.2013 00:11:41 +0200 - build 3591

1. в DN_INPUT теперь приходит FOCUS_EVENT.

zg 01.08.2013 18:40:31 +0200 - build 3590

1. PluginStartupInfo.Menu падало если Title == nullptr.

drkns 01.08.2013 14:50:21 +0200 - build 3589

1. В колонке "владелец файла" владелец и домен были не в том порядке.

drkns 31.07.2013 21:56:29 +0200 - build 3588

1. Ещё на тему string и nullptr.

drkns 30.07.2013 20:58:19 +0200 - build 3587

1. Рефакторинг.

drkns 30.07.2013 19:28:34 +0200 - build 3586

1. Продолжение 3582.

w17 30.07.2013 18:13:20 +0400 - build 3585

1. fix copy to ..

drkns 30.07.2013 14:26:32 +0200 - build 3584

1. При получении списка с плагиновой панели могла дважды освобождаться память.

2. В ProcessOSAliases могли использоваться неинициализированные данные.

drkns 30.07.2013 10:31:31 +0200 - build 3583

1. Уточнение 3579.

drkns 30.07.2013 00:55:42 +0200 - build 3582

1. Рефакторинг.

drkns 29.07.2013 14:50:21 +0200 - build 3581

1. Заголовок правой панели некорректно центрировался при включенных часах.

drkns 28.07.2013 22:22:24 +0200 - build 3580

1. Уточнение предыдущего билда, были проблемы с копированием.

drkns 28.07.2013 19:55:27 +0200 - build 3579

1. Ещё немного на тему корректной обработки каталогов "." и ".." - убрано зацикливание при построении дерева с их участием.

drkns 28.07.2013 16:34:30 +0200 - build 3578

1. Ещё на тему поиска всех вхождений.

drkns 28.07.2013 15:56:53 +0200 - build 3577

1. Уточнение 3570.2.

w17 28.07.2013 15:17:50 +0400 - build 3576

1. Ещё уточнение 3475

drkns 28.07.2013 13:41:01 +0200 - build 3575

1. 0002453: Зависание ФАРа при удалении каталогов

drkns 28.07.2013 12:36:50 +0200 - build 3574

1. В некоторых случаях мог падать поиск всех вхождений в редакторе.

2. При поиске всех вхождений некорректно рассчитывался индикатор прогресса.

shmuel 28.07.2013 10:09:10 +0200 - build 3573

1. Падение при копировании через F5 на путь назначения ..\..

w17 28.07.2013 00:34:28 +0400 - build 3572

1. уточнение 3475

shmuel 27.07.2013 18:36:26 +0200 - build 3571

1. Ещё NullToEmpty (Фар падал с плагином Hash Calculator).

drkns 27.07.2013 16:48:32 +0200 - build 3570

1. Показывался не тот текст ошибки при попытке перейти на отстутствующий диск.

2. Пара мелочей во враппере.

drkns 27.07.2013 13:30:05 +0200 - build 3569

1. 0002452: Can't add new Mask to 'Groups of file masks' (since ver3566)

shmuel 27.07.2013 12:00:50 +0200 - build 3568

1. Ещё NullToEmpty (Фар падал с плагином AdvCmp).

shmuel 27.07.2013 07:27:14 +0200 - build 3567

1. Падение при вызове меню дисков.

2. GCC warnings.

w17 27.07.2013 01:23:56 +0400 - build 3566

1. -несколько 'весёлых' падений

drkns 26.07.2013 23:18:26 +0200 - build 3565

1. Расставляем NullToEmpty в нужных местах.

drkns 26.07.2013 22:25:11 +0200 - build 3564

1. Расставляем NullToEmpty в нужных местах.

drkns 26.07.2013 21:44:01 +0200 - build 3563

1. wstring включён по умолчанию. Возможны разнообразные весёлые падения.

drkns 26.07.2013 21:05:55 +0200 - build 3562

1. GetStringBuffer = 0;

2. В каком-то из предыдущих билдов сломался импорт настроек плагинов.

3. При выходе не сохранялась "информация под панелями".

shmuel 26.07.2013 17:46:54 +0200 - build 3561

1. Если Фар был запущен из существующей консоли, то, при завершении его из макроса, в консоли оставалось
   изображение панелей закрытого Фара.

drkns 25.07.2013 23:52:08 +0200 - build 3560

1. --GetStringBuffer

drkns 25.07.2013 23:04:09 +0200 - build 3559

1. --GetStringBuffer

drkns 25.07.2013 22:19:25 +0200 - build 3558

1. --GetStringBuffer

drkns 25.07.2013 21:32:10 +0200 - build 3557

1. --GetStringBuffer

w17 25.07.2013 12:23:31 +0400 - build 3556

1. fix fix 3551

w17 25.07.2013 11:11:29 +0400 - build 3555

1. fix 3551

w17 25.07.2013 10:55:50 +0400 - build 3554

1. GetStringBuffer -= 1

drkns 24.07.2013 22:04:58 +0200 - build 3553

1. --GetStringBuffer

drkns 24.07.2013 21:40:54 +0200 - build 3552

1. GetStringBuffer -= 2;

2. Рефакторинг array_ptr.

w17 24.07.2013 22:18:55 +0400 - build 3551

1. GetStringBuffer -= 2

drkns 24.07.2013 17:54:45 +0200 - build 3550

1. В настройках фильтров некорректно отображалась дата для локалей, использующих формат YYYY-MM-DD.

drkns 24.07.2013 12:33:57 +0200 - build 3549

1. --GetStringBuffer

w17 24.07.2013 12:43:43 +0400 - build 3548

1. GetStringBuffer -= 4

w17 24.07.2013 07:36:17 +0400 - build 3547

1. mf.date() UPPER

drkns 23.07.2013 23:38:13 +0200 - build 3546

1. В одном из предыдущих билдов погнулась mf.date() + ещё пара мелочей.

w17 24.07.2013 00:07:21 +0400 - build 3545

1. GetStringBuffer -= 1

drkns 23.07.2013 12:20:54 +0200 - build 3544

1. В некоторых колонках меню дисков мог отображаться мусор.

drkns 23.07.2013 01:05:58 +0200 - build 3543

1. Рефакторинг.

drkns 22.07.2013 22:15:54 +0200 - build 3542

1. Рефакторинг.

w17 22.07.2013 22:58:09 +0400 - build 3541

1. assertion -- lm:post Keys "a"

drkns 22.07.2013 20:24:28 +0200 - build 3540

1. 0002449: Far падает при выходе, инициированном макросом

drkns 20.07.2013 22:22:03 +0200 - build 3539

1. Уточнение 3528.

drkns 20.07.2013 21:45:17 +0200 - build 3538

1. Продолжение 3528.

drkns 20.07.2013 19:28:48 +0200 - build 3537

1. Продолжение 3528.

drkns 20.07.2013 19:14:34 +0200 - build 3536

1. Уточнение 3535.

drkns 20.07.2013 19:05:41 +0200 - build 3535

1. Продолжение 3528.

drkns 20.07.2013 16:57:35 +0200 - build 3534

1. Продолжение 3528.

drkns 20.07.2013 14:15:36 +0200 - build 3533

1. Продолжение 3528.

w17 20.07.2013 12:51:48 +0400 - build 3532

1. ещё 3528, CtrlPgDn на файлах

w17 20.07.2013 11:51:56 +0400 - build 3531

1. ещё 3528, ждём когда рефакторнесс избавится от deprecated...

drkns 20.07.2013 01:16:35 +0200 - build 3530

1. Продолжение 3528.

shmuel 19.07.2013 22:08:55 +0200 - build 3529

1. Уточнение 3509 для клавиши End.

drkns 19.07.2013 20:22:50 +0200 - build 3528

1. Рефакторинг.
   UnicodeString интерфейсно совместим с std::wstring, фар можно собрать со стандартными строками, используя дефайн USE_STD_STRING.
   Но делать этого пока что не рекомендуется, т. к. ещё присутствуют случаи инициализации строк нулевым указателем и обращения по индексу за пределами строки.

   Возможны баги, соблюдаем осторожность.

svs 18.07.2013 15:57:44 +0400 - build 3527

1. Уточнение 1609.3: Добавка кода для CF_HDROP на тему Cut ("здесь вырезали, в проводнике вставили - смувилось")
   Т.к. более приемлемое сочетание Ctrl-X для вырезания уже занято (прокрутка истории в ком.строке),
   то клавишу пока не назначили (место зарезервировано). Макрос?

drkns 18.07.2013 14:10:32 +0200 - build 3526

1. В CF_HDROP формате неправильно копировались файлы в буфер обмена.

shmuel 17.07.2013 21:51:48 +0200 - build

1. При загрузке макросов первым всегда исполняется макрофайл %FARPROFILE%\Macros\scripts\_macroinit.lua,
   если такой файл существует. Порядок исполнения прочих макрофайлов не определён.

drkns 17.07.2013 15:19:59 +0200 - build 3525

1. Продолжение M#2446: в событие EE_SAVE передаём не имя, а структуру EditorSaveFile.

shmuel 16.07.2013 14:59:58 +0200 - build 3524

1. M#2446: В событие EE_SAVE передавать параметром имя сохраняемого файла.

drkns 14.07.2013 19:12:10 +0200 - build 3523

1. refix refix. memset - типа плохо, да.

w17 14.07.2013 20:05:25 +0400 - build 3522

1. refix refactoring

drkns 14.07.2013 17:33:21 +0200 - build 3521

1. Поддержка компиляции в Intel C++ 14.

drkns 14.07.2013 12:17:59 +0200 - build 3520

1. Уточнение 3519.

drkns 14.07.2013 01:00:31 +0200 - build 3519

1. Рефакторинг.

shmuel 14.07.2013 00:25:05 +0200 - build 3518

1. Макросы: флаги "Selection" и "NoSelection" больше не применяются для областей редактора/вьювера/диалога.
   Для этих областей следует использовать соответственно "EVSelection" и "NoEVSelection".

drkns 13.07.2013 13:00:15 +0200 - build 3517

1. Рефакторинг.

2. Solution для VS2013 + для всех версий теперь используется общий far.vcxproj.

shmuel 13.07.2013 11:34:23 +0200 - build 3516

1. Рефакторинг.

drkns 13.07.2013 00:00:00 +0200 - build 3515

1. Рефакторинг.

shmuel 12.07.2013 21:16:04 +0200 - build 3514

1. Рефакторинг.

drkns 12.07.2013 12:49:43 +0200 - build 3513

1. Убраны проверки устаревших версий GCC.

shmuel 12.07.2013 12:04:01 +0200 - build 3512

1. Продолжение 3509:
   уточнение обработки одиночного нажатия клавиши Up на элементе в начале списка при активном VMENU_WRAPMODE.

drkns 12.07.2013 00:38:43 +0200 - build 3511

1. Уточнение 3510.

drkns 11.07.2013 22:07:42 +0200 - build 3510

1. Снято ограничение на количество колонок в панели.

shmuel 11.07.2013 17:00:14 +0200 - build 3509

1. В меню со скроллингом, при навигации клавишами End, PgDn, PgUp нельзя было сделать видимыми
   нефокусируемые элементы в начале или конце списка.

drkns 10.07.2013 23:48:04 +0200 - build 3508

1. Уточнение 3507.

drkns 10.07.2013 21:55:39 +0200 - build 3507

1. Рефакторинг.

2. Уточнение 3506.

drkns 10.07.2013 00:39:34 +0200 - build 3506

1. Рефакторинг.

svs 09.07.2013 16:52:15 +0400 - build

1. Уточнение хелпа, в т.ч. для TI:
    #26 System.CopyTimeRule

svs 09.07.2013 11:29:32 +0400 - build

1. Немного хелпа - про повышение полномочий.

drkns 08.07.2013 23:47:50 +0200 - build 3505

1. Рефакторинг.

shmuel 08.07.2013 20:15:33 +0200 - build 3504

1. Рефакторинг.

drkns 05.07.2013 18:34:35 +0200 - build 3503

1. Более надёжное сохранение состояния LastError / LastNtStatus для Message c MSG_ERRORTYPE.

2. 0002444: Поиск через "App Paths" перестал использовать %PathExt%.

drkns 04.07.2013 23:03:09 +0200 - build 3502

1. Рефакторинг.

2. Уточнение минимальной версии GCC (4.7.1).

w17 04.07.2013 16:45:06 +0400 - build 3501

1. gcc 4.7.1 compilation fix

shmuel 04.07.2013 15:27:46 +0200 - build 3500

1. Откат 3496. Той же цели можно достичь модификацией библиотеки LuaFAR.

drkns 04.07.2013 13:30:33 +0200 - build 3499

1. Рефакторинг.

drkns 04.07.2013 12:55:32 +0200 - build 3498

1. Рефакторинг.

drkns 04.07.2013 01:21:03 +0200 - build 3497

1. Рефакторинг.

shmuel 03.07.2013 21:13:37 +0200 - build 3496

1. Из форума: "Зачем фар создает каталоги с корне С".
   Внутренняя функция Фара CreatePath импортирована в плагин LuaMacro.

svs 03.07.2013 12:49:18 +0400 - build 3495

1. Уточнение хелпа, в т.ч. для TI:
    #80 XLat.Layouts
    #10 XLat.Flags
    описаны параметры "XLat.Table*" и "XLat.Rules*"

2. В xlat убираем баг с затиранием Правила3

drkns 03.07.2013 00:38:12 +0200 - build 3494

1. Не работал (или не всегда работал) запуск внешних ссылок из справки.

2. Прочие мелочи.

drkns 02.07.2013 16:34:23 +0200 - build 3493

1. Предотвращение рекурсии в группах масок файлов.

svs 02.07.2013 17:15:47 +0400 - build 3492

1. Уточнение в хелпе
   "так же" -> "также"
   @CopyAskOverwrite - не описана возможность F3 на элементах.
   @MaskGroupsSettings - не описаны клавиши управления списком.

2. Для диалога правки группы масок добавлена ссылка на "@MaskGroupsSettings"

svs 02.07.2013 11:40:49 +0400 - build

1. Уточнение в хелпе
   @MakeFolder
     создание связей
   @UserMenu
     описана возможность двигать пункты с помощью Ctrl-стрелки

drkns 02.07.2013 10:01:16 +0200 - build 3491

1. Уточнение 3490.

2. Рефакторинг.

drkns 02.07.2013 01:13:32 +0200 - build 3490

1. Рефакторинг.

svs 01.07.2013 16:30:04 +0400 - build 3489

1. Уточнение build 3488
   Убираем "отрицание". Теперь:
   В конфиге (far:config) ищем "Macros.ShowPlayIndicator", ставим false для отключения отображения 'P'
   По умолчанию 'P' показывать

svs 01.07.2013 15:09:19 +0400 - build 3488

1. Mantis#0002410: Optionally disable blinking 'P' macro execution indicator
   В конфиге (far:config) ищем "Macros.DisableShowPlayMacro", ставим true
   По умолчанию 'P' показывать

w17 01.07.2013 09:49:39 +0400 - build 3487

1. M#2439: Command line prompt format: environment variables don't work anymore

shmuel 30.06.2013 13:12:37 +0200 - build

1. Добавлена возможность вызывать скрипт-файлы с аргументами.
   Это касается: MCTL_SENDSTRING, MCTL_ADDMACRO, eval, lm:post, lm:check.

shmuel 30.06.2013 01:46:43 +0200 - build 3486

1. Рефакторинг.

zg 29.06.2013 22:58:03 +0200 - build 3485

1. уточнение 3482 для IsWordDiv: '\0' у нас всегда разделитель слов.

drkns 29.06.2013 14:58:18 +0200 - build 3484

1. Рефакторинг.

2. Поддержка компиляции в VC++ 2013.

shmuel 28.06.2013 23:29:19 +0200 - build 3483

1. Неправильные переименования некоторых констант в 3482.

drkns 28.06.2013 16:40:17 +0200 - build 3482

1. Рефакторинг.

w17 28.06.2013 16:12:45 +0400 - build 3481

1. 3475++, курсор не следовал за файлом при переименовании по Shift-F6

w17 28.06.2013 15:13:42 +0400 - build 3480

1. 3475++, M#2437: Copy/Move on a mapped drive doesn't work in nightly

w17 27.06.2013 20:08:50 +0400 - build 3479

1. Ещё одно уточнение 3475 -- работа с описаниями файлов

2. Добавлены кавычки для имени файла с лидирующими пробелами в диалоге установки атрибутов.

w17 27.06.2013 07:41:30 +0400 - build 3478

1. M#2435: При копировании файлов в директорию рядом с ней создается новая директория.
   Это фикс 3475.

drkns 26.06.2013 18:48:30 +0200 - build 3477

1. Добавим константности.

drkns 25.06.2013 21:41:36 +0200 - build 3476

1. Продолжение 3474.

w17 25.06.2013 19:24:28 +0400 - build 3475

1. M#2420: Проблема при перемещении файлов с временной панели по относительным путям

drkns 25.06.2013 14:15:35 +0200 - build 3474

1. Analyzer warnings.

2. Рефакторинг.

shmuel 24.06.2013 17:28:37 +0200 - build 3473

1. Рефакторинг.

shmuel 22.06.2013 15:16:19 +0200 - build 3472

1. Уточнения 3458.

lort 20.06.2013 18:59:22 +0400 - build 3471

1. Уточнение 3469.

drkns 20.06.2013 22:55:17 +0200 - build 3470

1. vc10.cpp/vc11.cpp теперь одним файлом.

lort 20.06.2013 20:50:11 +0400 - build 3469

1. Не работал вызов Menu.Filter(4) в макросах

drkns 20.06.2013 01:17:10 +0200 - build 3468

1. VC2012-сборка может запускаться в Windows 2000 SP4 + апдейты.

2. Ошибка инициализации дефолтной раскраски.

drkns 19.06.2013 20:11:42 +0200 - build 3467

1. Рефакторинг.

drkns 18.06.2013 23:40:14 +0200 - build 3466

1. Рефакторинг.

shmuel 18.06.2013 10:44:58 +0200 - build 3465

1. Имена флагов макросов перемещены из Фара в плагин LuaMacro.

drkns 17.06.2013 23:31:47 +0200 - build 3464

1. Рефакторинг.

w17 17.06.2013 14:53:30 +0400 - build 3463

1. Продолжение 3449 для каталогов. (M#2414: Не удаляется файл с длинным именем)

shmuel 15.06.2013 20:14:26 +0200 - build 3462

1. Уточнение 3461.

shmuel 15.06.2013 12:28:39 +0200 - build 3461

1. Plugins API: MCTL_EXECSTRING позволяет передавать аргументы вызываемому скрипту.

drkns 15.06.2013 02:40:00 +0200 - build 3460

1. Рефакторинг.

drkns 14.06.2013 20:12:14 +0200 - build 3459

1. Рефакторинг.

shmuel 14.06.2013 16:21:37 +0200 - build 3458

1. Добавление "типа" FMVT_NIL - расширяет возможности Plugin.Call и MacroControl(MCTL_EXECSTRING).
   Раньше при передаче из Lua в плагины делалось преобразование nil -> FMVT_BOOLEAN(0),
   а передать nil из плагинов в Lua было вообще невозможно.

drkns 14.06.2013 01:17:12 +0200 - build 3457

1. Рефакторинг.

shmuel 14.06.2013 00:06:14 +0200 - build 3456

1. Plugins API: в функцию MacroControl добавлена операция MCTL_EXECSTRING.

drkns 13.06.2013 21:35:16 +0200 - build 3455

1. Продолжение списка задач: добавляем только окна с непустым заголовком (как и было раньше) и сортируем по имени (как и было раньше),
   т. к. сортировка по PID особого смысла не имеет.

drkns 13.06.2013 17:27:23 +0400 - build 3454

1. Как-то не совсем понятен смысл предыдущего коммита: GetModuleFileNameEx есть в XP и уже используется в apiGetModuleFileNameEx.

w17 13.06.2013 18:23:56 +0400 - build 3453

1. Ещё уточнение 3451
   GetProcessImageNameW -- на xp есть

svs 13.06.2013 18:09:50 +0400 - build 3452

1. Уточнение 3451
   QueryFullProcessImageNameW -- на xp нет

svs 13.06.2013 13:34:37 +0400 - build 3451

1. Небольшие изменения в списке процессов (Ctrl-W).
   а) добавлено отображение PID процесса.
   б) клавишей F2 можно переключать вид:
      "PID + заголовок окна процесса"
      "PID + путь к исполняемому модулю процесса"
   в) список отсортирован по PID

   В список попадают дублированные элементы по PID - ничего страшного, "переход" в нужное окно осуществляется корректно.

drkns 12.06.2013 21:24:50 +0200 - build 3450

1. 0002424: Undo не восстанавливает закладки

w17 12.06.2013 15:06:41 +0400 - build 3449

1. M#2414: Не удаляется файл с длинным именем -- можно выбрать удаление без корзины

shmuel 12.06.2013 13:23:17 +0200 - build 3448

1. Рефакторинг.

shmuel 10.06.2013 14:38:45 +0200 - build 3447

1. Рефакторинг.

shmuel 10.06.2013 02:03:06 +0200 - build 3446

1. M#2307: При вызове msgbox из condition(), ключ закрытия msgbox передаётся дальше (не съедается).

svs 06.06.2013 16:03:29 +0400 - build

1. Про RAlt для фильтрации меню - в хелпе укажим.

drkns 06.06.2013 00:33:31 +0200 - build 3445

1. Рефакторинг.

2. Из диалогов локальных настроек редактора/вьювера убраны неактуальные элементы.

shmuel 04.06.2013 21:12:53 +0200 - build 3444

1. Рефакторинг.

2. GCC warnings.

w17 01.06.2013 17:07:58 +0400 - build 3443

1. Уточнение 3439.

drkns 01.06.2013 11:04:26 +0200 - build 3442

1. Уточнение 3440.

2. Пара мелочей.

w17 01.06.2013 09:41:07 +0400 - build 3441

1. gcc build fix

drkns 01.06.2013 01:31:00 +0200 - build 3440

1. Продолжаем ломать режимы панели:
   - в меню работают добавление и удаление (ins/del соответственно)

w17 31.05.2013 17:14:08 +0400 - build 3439

1. M#1511: кодировка Shift_jis -- должен работать просмотр для всех 2-х байтовых кодировок

w17 31.05.2013 11:51:32 +0400 - build 3438

1. M#2418: Проблема импорта shortcuts из Default.farconfig

drkns 30.05.2013 20:59:59 +0200 - build 3437

1. Продолжаем ломать режимы панели:
   - режим можно переименовывать;
   - режим можно сбросить к настройкам по умолчанию.

shmuel 30.05.2013 18:24:39 +0200 - build 3436

1. Plugins API:
   * KMFLAGS_DISABLEOUTPUT теперь является значением по умолчанию и игнорируется Фаром.
   * Добавлен новый флаг KMFLAGS_ENABLEOUTPUT.

shmuel 30.05.2013 11:29:22 +0200 - build 3435

1. Передача плагину LuaMacro точной информации о ключах запуска Фара /e или /v.

2. Уточнение 3434 (не собирался под VC).

drkns 30.05.2013 00:47:06 +0200 - build 3434

1. У нас теперь может быть сколько угодно режимов панели.
   Интерфейса для добавления/удаления режимов пока нет, но настоящие джедаи могут отредактировать panelmodes.db.

2. Переключать режимы можно по CtrlEnter в меню редактирования режимов панели.

shmuel 29.05.2013 17:52:04 +0200 - build 3433

1. Экспериментально: автостартующие макросы работают при запуске Фара с ключами /e и /v.

drkns 29.05.2013 17:12:23 +0200 - build 3432

1. Не работало чтение из стандартного входа во вьювере.

shmuel 28.05.2013 22:43:14 +0200 - build 3431

1. M#1662: Неадекватное поведение макросов с mmode().

w17 27.05.2013 12:24:16 +0400 - build 3430

1. GCC again -- динамическая загрузка NetDfsGetInfo, должны работать кривые сборки mingw

w17 27.05.2013 06:17:07 +0400 - build 3429

1. GCC++.

drkns 26.05.2013 19:53:59 +0200 - build 3428

1. GCC.

shmuel 26.05.2013 18:42:19 +0200 - build 3427

1. M#1663: Не работают макросы из user menu при большом количестве объектов на панели.

w17 26.05.2013 00:53:26 +0400 - build 3426

1. уточнение 3425 -- NetDfsGetInfo не нужна динамическая загрузка

w17 26.05.2013 00:04:03 +0400 - build 3425

1. M#2412: просмотр ссылок DFS по CtrlA

shmuel 24.05.2013 15:43:21 +0200 - build 3424

1. Из форума: После выполнения на файле макроса Keys("ShiftF6 End ! Enter")
              в заголовке Far'a остаётся "Rename/Move ..."

drkns 23.05.2013 23:02:08 +0200 - build 3423

1. Не работали определение и извлечение виртуальных дисков.

w17 23.05.2013 19:21:06 +0400 - build 3422

1. M#2413: Неправильно восстанавливается пометка после перемещения выделенного файла по ShiftF6

t-rex 22.05.2013 17:29:36 +0200 - build 3421

1. Поиск RegExp в просмотре некорректно использовал RegExp API, нельзя было использовать back reference (\NN).

2. Рефакторинг.

drkns 22.05.2013 01:35:24 +0200 - build 3420

1. В диалоге подтверждения замены криво отображались строки, содержащие кавычки.

drkns 20.05.2013 21:50:11 +0200 - build 3419

1. Рефакторинг.

svs 20.05.2013 21:13:22 +0400 - build 3418

1. SQLite 3.7.17

drkns 20.05.2013 17:31:22 +0200 - build 3417

1. Уточнение чтения конфигурации.

drkns 16.05.2013 20:30:12 +0200 - build 3416

1. Перенесём TreeList::FlushCache() в более подходящее место, дабы она при неудаче не блокировала выход.

drkns 16.05.2013 20:02:27 +0200 - build 3415

1. Опечатка в TreeList::FlushCache()

shmuel 16.05.2013 01:32:15 +0200 - build 3414

1. Уточнение 3412.

drkns 15.05.2013 23:43:01 +0200 - build 3413

1. Рефакторинг.

2. VC warning.

shmuel 15.05.2013 23:22:20 +0200 - build 3412

1. Рефакторинг (удалён enum MACROMODEAREA).

shmuel 15.05.2013 18:00:53 +0200 - build 3411

1. Рефакторинг.

t-rex 14.05.2013 23:43:54 +0200 - build 3410

1. Mantis#2409: FAR crashes when moving a directory (even with no plugin).

2. Эдакое расширение для анси плагинов, в VersionInfo можно задать GUID плагина в поле PluginGUID.
   Гуид должен быть строкой без {}.

w17 14.05.2013 23:16:28 +0400 - build 3409

1. Ещё одно уточнение 3388.

drkns 14.05.2013 16:47:32 +0200 - build 3408

1. Рефакторинг.

t-rex 14.05.2013 10:02:15 +0200 - build 3407

1. Разрешим плагинам создавать в своей базе значения с пустым именем, и заодно запретим создавать такие ключи.

drkns 14.05.2013 09:57:32 +0200 - build 3406

1. Рефакторинг.

shmuel 14.05.2013 09:33:00 +0200 - build 3405

1. Уточнение 3404.

shmuel 14.05.2013 09:03:57 +0200 - build 3404

1. GCC warnings.

w17 13.05.2013 14:54:22 +0400 - build 3403

1. Revert 3400

drkns 10.05.2013 14:49:03 +0200 - build 3402

1. Продолжение 3401.

drkns 10.05.2013 14:17:17 +0200 - build 3401

1. Продолжение 3157. Потребление памяти редакторной раскраской сокращено примерно на треть.

w17 08.05.2013 23:57:50 +0400 - build 3400

1. M#1479: The find function should let pass a not visible (hidden) files

w17 08.05.2013 17:27:18 +0400 - build 3399

1. M#2316: добавить FarGuid

w17 08.05.2013 15:09:55 +0400 - build 3398

1. M#2407: Allow to disable BOM generation for UTF codepages in new files

t-rex 07.05.2013 23:35:51 +0200 - build 3397

1. Коррекция 3342 + рефакторинг.
   Появлялся запрос повышения привилегий при заходе например в c:\Users\user\Application Data.

w17 07.05.2013 21:02:44 +0400 - build 3396

1. multiarc + folder shortcut

drkns 07.05.2013 17:13:55 +0200 - build 3395

1. Уточнение 3393.

shmuel 07.05.2013 16:42:49 +0200 - build 3394

1. M#2222: MacroControl MCTL_SENDSTRING возвращает 0 при "Keys('F11') Menu.Select('FarNet', 2) Keys('Enter')"

drkns 07.05.2013 15:05:37 +0200 - build 3393

1. Продолжение 3388: вынесем работу с versioninfo в отдельный класс.

w17 07.05.2013 14:52:09 +0400 - build 3392

1. Уточнение+ 3388 (unused code removed should fix gcc compilation)

w17 07.05.2013 11:05:10 +0400 - build 3391

1. fix gcc build

w17 07.05.2013 10:21:05 +0400 - build 3390

1. Уточнение 3388

t-rex 07.05.2013 00:03:07 +0200 - build 3389

1. Для ECTL_SAVEFILE можно задавать CodePage=CP_DEFAULT чтоб сохранить в текущей кодировке.

2. ECTL_SAVEFILE из анси плагинов не выставлял кодировку что могло портить файлы.

w17 06.05.2013 18:05:16 +0400 - build 3388

1. M#2079: Не запоминаются в ссылках на папки ссылки на FTP папки

drkns 04.05.2013 16:01:20 +0200 - build 3387

1. Уточнение 3358.1: трансляция исключений не выполнялась для неосновых нитей.

drkns 03.05.2013 16:44:16 +0200 - build 3386

1. Рефакторинг.

drkns 03.05.2013 01:07:27 +0200 - build 3385

1. Рефакторинг.

drkns 02.05.2013 22:08:17 +0200 - build 3384

1. С форума: ошибка в Help::MkTopic.

drkns 02.05.2013 17:47:12 +0200 - build 3383

1. Уточнение 3367.1.

drkns 02.05.2013 16:42:48 +0200 - build 3382

1. Грамматика в справке.

2. Поиск всех вхождений в редакторе теперь показывает всю строку и подсвечивает искомое.

drkns 02.05.2013 12:18:40 +0200 - build 3381

1. Криво работало дополнение в модальном режиме.

drkns 01.05.2013 16:06:56 +0200 - build 3380

1. cppcheck warnings.

drkns 30.04.2013 22:17:54 +0200 - build 3379

1. Продолжение 0002294.

drkns 30.04.2013 21:22:39 +0200 - build 3378

1. Продолжение 0002294.

zg 30.04.2013 09:19:06 +0200 - build 3377

1. EditorControl(EditorID,...) работает для текущего редактора при реальном EditorID из EE_READ и EE_CLOSE.

w17 30.04.2013 08:56:12 +0400 - build 3376

1. M#2403: Current file after deletion

drkns 29.04.2013 22:43:33 +0200 - build 3375

1. Рефакторинг.

t-rex 29.04.2013 17:25:29 +0200 - build 3374

1. Рефакторинг.

drkns 29.04.2013 00:30:39 +0200 - build 3373

1. Рефакторинг.

t-rex 28.04.2013 15:57:33 +0200 - build 3372

1. Mantis#2382: far /clearcache

t-rex 28.04.2013 12:04:51 +0200 - build 3371

1. Мелкое ломающее изменение в API.
   Эвент редактора EE_CHANGE теперь не посылается по умолчанию, плагин который заинтересован получать этот эвент
   должен на него подписаться. Подписка происходит для конкретной сессии редактора.
   Чтоб подписаться на эвент:

   EditorSubscribeChangeEvent esce = { sizeof(EditorSubscribeChangeEvent), PluginGuid };
   Info.EditorControl(EditorID, ECTL_SUBSCRIBECHANGEEVENT, 0, &esce);

   И отписаться (если нужно):
   Info.EditorControl(EditorID, ECTL_UNSUBSCRIBECHANGEEVENT, 0, &esce);

   P.S. Внутреняя имплемантация вроде как не ахти, но пока других идей нету.

t-rex 27.04.2013 23:30:06 +0200 - build 3370

1. Подготовка к переводу EE_CHANGE на подписываемый эвент,
   ибо он почти никому не нужен а при посылке всем и всегда приводит к тормозам.
   Пока что только заготовка, ничего не поменялось ещё.

t-rex 27.04.2013 22:33:02 +0200 - build 3369

1. Удалим вообще эти макросы из plugin.hpp, смысла в них особо нету.

t-rex 27.04.2013 17:23:23 +0200 - build 3368

1. Исправлены несколько редко используемых макросов в plugin.hpp.

drkns 25.04.2013 22:28:30 +0200 - build 3367

1. Осторожно пощупаем "оконную подсистему". Пока что просто удаление неиспользуемого кода.

2. В некоторых случаях наблюдалось зависание при закрытии консоли.

3. Пара мелочей.

t-rex 25.04.2013 14:06:10 +0200 - build 3366

1. Mantis#2395: Невозможно добавить фильтр если список фильтров пустой.
   Для FFT_CUSTOM.

t-rex & drkns 25.04.2013 10:12:00 +0200 - build 3365

1. Рефакторинг FileSystemWatcher, оптимизация и также решает странную проблему с плагинами типа PicView при просмотре в QuickView, появившеюся в 3348.

w17 23.04.2013 18:48:10 +0400 - build 3364

1. M#2370: артефакты в редакторе/просмотрщике при вызове из usermenu

w17 23.04.2013 01:00:56 +0400 - build 3363

1. 2394: FAR 3 build 3348: панели рисуются в то время как активен редактор -- next try

t-rex 21.04.2013 23:51:13 +0200 - build 3362

1. Оптимизация поиска в редакторе.

drkns 21.04.2013 19:52:22 +0200 - build 3361

1. Уточнение 3301.

t-rex 21.04.2013 00:13:24 +0200 - build 3360

1. В 3342 не заметил что StartFSWatcher() виртуальная.
   Могло приводить к странным глюкам перерисовки в неопределённых случаях (Mantis#2394).

w17 20.04.2013 20:29:56 +0400 - build 3359

1. С форума: приводим настоящие имена областей кейбаров в соответствие с макро-апи.

drkns 20.04.2013 17:32:12 +0200 - build 3358

1. Обрабатываем структурные исключения как C++-исключения.

2. Ключа /x и параметра ExceptRules больше нет.

drkns 20.04.2013 02:39:36 +0200 - build 3357

1. Пара мелочей.

drkns 20.04.2013 02:30:33 +0200 - build 3356

1. Рефакторинг.

drkns 18.04.2013 23:11:39 +0200 - build 3355

1. В 3322 погнулась асинхронная работа с БД.

t-rex 18.04.2013 16:43:02 +0200 - build 3354

1. Корекция 3349, фар падал при наличие больше одного плагина с одним и тем же GUID.

drkns 18.04.2013 16:37:58 +0200 - build 3353

1. Откат 3352.

drkns 18.04.2013 16:24:32 +0200 - build 3352

1. Уточнение 3351.

t-rex 18.04.2013 16:04:54 +0200 - build 3351

1. Не очень важный мемори лик.

svs 18.04.2013 15:31:10 +0400 - build 3350

1. Уточнение 3346

t-rex 18.04.2013 13:14:37 +0200 - build 3349

1. Корекция 3343.1, должно также исправить разные странные глюки которые появились после 3343.

t-rex 18.04.2013 11:30:20 +0200 - build 3348

1. Ещё немного Mantis#2350.
   Асинхронная подписка на change notification.

drkns 18.04.2013 09:39:27 +0200 - build 3347

1. 0002377: Far Manager v3.0 build 3345 создает пустые файлы при копировании

svs 18.04.2013 09:29:05 +0400 - build 3346

1. UserMenu. Если пункт меню выводит диалог запроса доп.параметров, то в заголовке диалога показываем имя этого пункта меню.

   <inside>
     fnparce.cpp::SubstFileName()    - первым параметром идет то, что будет в качестве заголовка диалога.
     fnparce.cpp::ReplaceVariables() - рамка диалога перемещена в позицию 0 (раньше была последней). Это про возможные глюки :-)
   </inside>


drkns 17.04.2013 23:54:41 +0200 - build 3345

1. Уточнение 3343.2.

drkns 17.04.2013 23:00:51 +0200 - build 3344

1. 0000501: apiCreateFile rights for the Editor.

drkns 17.04.2013 22:39:03 +0200 - build 3343

1. 0002373: в PluginsControl ошибочно доступна информация о незагруженных плагинах.

2. Сторонние библиотеки (UCD, sqlite, tinyxml) помещены в соответствующие неймспейсы.

3. Прочий мелкий рефакторинг.

t-rex 17.04.2013 19:41:06 +0200 - build 3342

1. Ещё немного Mantis#2350.

drkns 17.04.2013 13:36:23 +0200 - build 3341

1. 0002371: Ошибка копирования по F5

drkns 17.04.2013 01:01:52 +0200 - build 3340

1. Пара мелочей.

drkns 16.04.2013 21:29:44 +0200 - build 3339

1. Рефакторинг.

w17 16.04.2013 16:56:10 +0400 - build 3338

1. M#2184: Некорректно работает UNDO во внутреннем редакторе.

svs 16.04.2013 15:27:59 +0400 - build 3337

1. Продолжаем править ShowHelp.
   Теперь, если (есть флаг FHELP_GUID и (параметр ModuleName == пустой_строке или ModuleName == GUID_из_нулей/FarGuid))
   то действие аналогично флагу FHELP_FARHELP.

drkns 16.04.2013 00:28:35 +0200 - build 3336

1. Рефакторинг.

shmuel 15.04.2013 21:20:44 +0200 - build 3335

1. При выходе из Фара плагин LuaMacro выгружается последним (иначе могут не обрабатываться
   запросы MCTL_XXX из ExitFARW других плагинов).

t-rex 15.04.2013 20:57:00 +0200 - build 3334

1. Ещё раз Mantis#2350.

svs 15.04.2013 16:20:00 +0400 - build 3333

1. Mantis#0001413: hlf:%farhome%\filename [topic]

   API: Для ShowHelp добавлен флаг FHELP_GUID
   В этом случае первый параметр рассматривается как GUID на плагин, тему которого нужно показать, в зависимости от языка интерфейса (hint:FHELP_CUSTOMPATH)

shmuel 15.04.2013 14:43:27 +0200 - build 3332

1. Предотвращение падений на выходе из Фара в случае, если плагины вызывают MCTL_XXX из ExitFARW.

drkns 14.04.2013 18:16:54 +0200 - build 3331

1. Уточнение 3318.

t-rex 14.04.2013 14:07:27 +0200 - build 3330

1. Mantis#2350: Притормаживает при доступе по Samba к Android.

drkns 14.04.2013 12:26:10 +0200 - build 3329

1. Ещё раз 0002367.

drkns 13.04.2013 22:57:39 +0200 - build 3328

1. 0002367: Проблема с запуском программ из папок, являющихся Junction/Symlink

svs 12.04.2013 21:35:09 +0400 - build 3327

1. SQLite 3.7.16.2

drkns 12.04.2013 13:49:34 +0200 - build 3326

1. 0002366: FAR виснет при поиске текста в архиве с паролем

drkns 12.04.2013 12:49:34 +0200 - build 3325

1. Уточнение перерисовки заголовка консоли.

shmuel 12.04.2013 01:15:24 +0200 - build 3324

1. Рефакторинг.

2. Уточнение 3323.

drkns 12.04.2013 00:45:48 +0200 - build 3323

1. Рефакторинг.

drkns 11.04.2013 23:11:05 +0200 - build 3322

1. Используем ключевое слово 'override' в производных классах.

2. Пара мелочей.

drkns 10.04.2013 21:46:38 +0200 - build 3321

1. 0002146: Privilege API for NetBox plugin

t-rex 10.04.2013 13:47:20 +0200 - build 3320

1. Асинхронная история позиций редактора/просмотра.

drkns 10.04.2013 12:15:01 +0200 - build 3319

1. В GetPanelItem не заполнялось ChangeTime.

drkns 10.04.2013 11:30:59 +0200 - build 3318

1. В FarGetDirList не заполнялось ChangeTime.

drkns 10.04.2013 00:18:55 +0200 - build 3317

1. Ещё порция рефакторинга.

drkns 09.04.2013 19:53:37 +0200 - build 3316

1. Рефакторинг.

t-rex 09.04.2013 19:12:39 +0200 - build 3315

1. Мелкий рефакторинг.

t-rex 09.04.2013 18:45:22 +0200 - build 3314

1. Мелкий рефакторинг.

t-rex 09.04.2013 18:01:37 +0200 - build 3313

1. Забыл проинициализировать ThreadCounter в 3311 что приводило иногла к застреванию фара при выходе.

shmuel 09.04.2013 17:51:59 +0200 - build 3312

1. Если закешированный плагин, экспортирующий ProcessDialogEventW, требовал более новой версии Фара,
   то при попытке вывода любого диалога из макроса, у которого нет флага EnableOutput, выводился НЕВИДИМЫЙ диалог
   "This plugin requires more recent version of Far".

t-rex 09.04.2013 16:37:04 +0200 - build 3311

1. В 3310 фар застревал при запуске.

2. Потенциальная проблема статической инициализации CancelIoInProgress в interf.cpp.

3. Mantis#2364: Асинхронная запись в базу данных.
   Сохранение HierarchicalConfig баз происходит асинхронно, т.е. настройки плагинов, подсветка, шорткаты и ещё пару баз.

t-rex 09.04.2013 13:58:04 +0200 - build 3310

1. Рефакторинг классов синхронизации.

2. Доделка и рефакторинг асинхронной истории.

drkns 09.04.2013 13:47:32 +0200 - build 3309

1. Команда, выбранная из меню дополнения, не запускалась, если меню было закрыто мышью.

svs 09.04.2013 12:08:51 +0400 - build

1. Косметика без билда (lower VS upper в GUID`ах)

shmuel 08.04.2013 23:36:09 +0200 - build 3308

1. M#2363: mf.flock в момент нажатия всегда возвращает 1.

t-rex 08.04.2013 19:18:40 +0200 - build 3307

1. Экспериментально: пишем историю асинхронно, должно сильно помочь тем у кого очень медленные диски.
   Держать энтер на папке разницу не покажет, ибо при последующем доступе к истории сначало ожидается окончание асинхронной обработки,
   т.е. польза должна быть чисто в реалестичных юзкэйсах.

drkns 07.04.2013 20:11:40 +0200 - build 3306

1. В некоторых случаях могли криво читаться lng.

drkns 07.04.2013 14:17:22 +0200 - build 3305

1. Продолжение 3301.

drkns 07.04.2013 11:36:42 +0200 - build 3304

1. Продолжение 3301.

drkns 07.04.2013 10:30:14 +0200 - build 3303

1. Уточнение 3301.

drkns 07.04.2013 01:28:41 +0200 - build 3302

1. Уточнение 3301.

drkns 07.04.2013 00:42:28 +0200 - build 3301

1. Продолжение 2303.1.

w17 05.04.2013 17:22:48 +0400 - build 3300

1. M#2360: Крэш при редактировании команды айтема пользовательського меню

drkns 05.04.2013 09:37:43 +0200 - build 3299

1. Уточнение 3298.

drkns 04.04.2013 23:52:41 +0200 - build 3298

1. Экспериментально: в масках файлов можно смешивать обычные маски и регулярные выражения, например:
   *.ext1, *.ext2, /re1/, *.ext3, /re2/|/re3/,*.ext4

drkns 03.04.2013 23:25:19 +0200 - build 3297

1. Рефакторинг.

drkns 03.04.2013 14:08:23 +0200 - build 3296

1. 0002357: Постоянно сообщает "Доступ запрещён" если в переменной PATH есть недоступные каталоги

drkns 02.04.2013 22:55:14 +0200 - build 3295

1. Рефакторинг.

2. Почистим немного regexp.?pp.

drkns 02.04.2013 17:01:23 +0200 - build 3294

1. Уточнение надписей в диалоге удаления.

svs 02.04.2013 12:45:12 +0400 - build 3293

1. Mantis#0002355: Требуются гуиды

    ScreensSwitchId        = {72EB948A-5F1D-4481-9A91-A4BFD869D127} --> Menu.Id
    SelectSortModeId       = {B8B6E1DA-4221-47D2-AB2E-9EC67D0DC1E3} --> Menu.Id
    HistoryCmdId           = {880968A6-6258-43E0-9BDC-F2B8678EC278} --> Menu.Id
    HistoryFolderId        = {FC3384A8-6608-4C9B-8D6B-EE105F4C5A54} --> Menu.Id
    HistoryEditViewId      = {E770E044-23A8-4F4D-B268-0E602B98CCF9} --> Menu.Id
    PanelViewModesId       = {B56D5C08-0336-418B-A2A7-CF0C80F93ACC} --> Menu.Id
    PanelViewModesEditId   = {98B75500-4A97-4299-BFAD-C3E349BF3674} --> Dlg.Id
    CodePagesMenuId        = {78A4A4E3-C2F0-40BD-9AA7-EAAC11836631} --> Menu.Id
    EditorReplaceId        = {8BCCDFFD-3B34-49F8-87CD-F4D885B75873} --> Dlg.Id
    EditorSearchId         = {5D3CBA90-F32D-433C-B016-9BB4AF96FACC} --> Dlg.Id
    HelpSearchId           = {F63B558F-9185-46BA-8701-D143B8F62658} --> Dlg.Id
    FiltersMenuId          = {5B87B32E-494A-4982-AF55-DAFFCD251383} --> Menu.Id

shmuel 02.04.2013 11:30:36 +0200 - build 3292

1. M#2356: Menu.FilterStr(0) не работает.

lort 01.04.2013 20:49:51 +0400 - build 3291

1. Не проглатываем CtrlTab и CtrlShiftTab если невозможно переключиться из текущего фрейма (M#2353)

shmuel 01.04.2013 15:55:51 +0200 - build 3290

1. M#2343: Menu.Select неправильно работает с задисабленными пунктами.

drkns 30.03.2013 13:20:21 +0200 - build 3289

1. Уточнение 3283.2.

2. Рефакторинг.

svs 29.03.2013 21:21:04 +0400 - build 3288

1. SQLite 3.7.16.1

w17 29.03.2013 01:33:56 +0400 - build 3287

1. Добавлен параметр "Panel.ShortcutAlwaysChdir", управляет поведением при нажатии RCtrl-0..RCtrl-9 при невидимых панелях.
   false - имя папки (если назначена) появляется в командной строке ('как раньше' и по-умолчанию)
   true  - всегда осуществляется переход на папку, связанную с нажатой клавишей

drkns 28.03.2013 22:42:42 +0200 - build 3286

1. Продолжение 3285.

2. Рефакторинг.

drkns 28.03.2013 20:46:57 +0200 - build 3285

1. Уточнение обработки SEH-исключений.

drkns 28.03.2013 20:02:12 +0200 - build 3284

1. Уточнение поиска для [x] Process alternate data streams.

drkns 28.03.2013 15:58:11 +0200 - build 3283

1. Убрана кнопка "Break link" из диалога подтверждения удаления симлинка.

2. Разрывать ссылки теперь можно через диалог атрибутов, снятием флажка "Reparse point".

svs 28.03.2013 13:58:10 +0400 - build 3282

1. Mantis#0001199: link:[/msg]
   ...в части вывода сообщений при создании хардлинков

drkns 28.03.2013 09:58:16 +0200 - build 3281

1. vc10.

svs 28.03.2013 11:16:18 +0400 - build

1. Уточнения (немного) по TREEFILE_PROJECT (Mantis#0000186)
   без билда, т.к. влияния на основной код не оказывает.

2. Уточнения в хелпе про связи.
   Видимо требуется разжевать кусок по поводу симлинков
   (обсуждение здесь - http://forum.farmanager.com/viewtopic.php?f=4&t=3588 )

drkns 27.03.2013 22:36:11 +0200 - build 3280

1. Folder shortcuts теперь считываются при каждом запросе и пишутся сразу после изменения.

2. Рефакторинг.

drkns 27.03.2013 00:12:11 +0200 - build 3279

1. Рефакторинг.

shmuel 27.03.2013 00:02:08 +0200 - build 3278

1. Из форума: Editor.Pos(1,1,*) вызывал перерисовку экрана при отсутствующем флаге EnableOutput.

drkns 25.03.2013 21:54:56 +0200 - build 3277

1. Ещё одно уточнение отрисовки для far /w

2. gcc.

drkns 25.03.2013 15:55:42 +0200 - build 3276

1. Оптимизация: push_<front|back> => emplace_<front|back>.

2. Уточнение отрисовки для far /w.

drkns 25.03.2013 00:02:58 +0200 - build 3275

1. 0002348: Exception в EditControl/ECTL_SAVEFILE при Param2.FileName = NULL

drkns 24.03.2013 17:19:41 +0200 - build 3274

1. Частичный откат 3269. Пока рано.

drkns 24.03.2013 16:21:07 +0200 - build 3273

1. Ещё одно уточнение.

2. 0002345: Небольшая недоработка в справочной информации

drkns 24.03.2013 11:45:49 +0200 - build 3272

1. И ещё.

drkns 23.03.2013 19:59:25 +0200 - build 3271

1. Ещё пара уточнений.

drkns 23.03.2013 17:28:05 +0200 - build 3270

1. Уточнение 3269.

drkns 23.03.2013 16:17:18 +0200 - build 3269

1. Рефакторинг.

drkns 23.03.2013 00:40:11 +0200 - build 3268

1. Рефакторинг.

w17 23.03.2013 00:02:37 +0400 - build 3267

1. уточнение 3259.

svs 22.03.2013 18:21:38 +0400 - build

1. Уточнения (немного) по TREEFILE_PROJECT (Mantis#0000186)
   без билда, т.к. влияния на основной код не оказывает.

   <АХТУНГ>

   1. Не надо ставить /D TREEFILE_PROJECT - проект в разработке.
   2. Идеи и замечания сюда - http://bugs.farmanager.com/view.php?id=186

   </АХТУНГ>

svs 22.03.2013 15:40:09 +0400 - build 3266

1. Mantis#0002341: Нужны GUID-ы

    AdvancedConfigId  = {A204FF09-07FA-478C-98C9-E56F61377BDE} --> Dlg.Id
    FolderShortcutsId = {4CD742BC-295F-4AFA-A158-7AA05A16BEA1} --> Menu.Id

2. В хелпе описан параметр "System.Executor.~"

3. Mantis#0001535: Добавление справки по Ctrl-Alt-F (фильтрация элементов меню)

svs 22.03.2013 14:45:14 +0400 - build 3265

1. Mantis#0002340: Добавить в АПИ команду FCTL_SETACTIVEPANEL

   Panel API: Команда FCTL_SETACTIVEPANEL - сделать "вот эту панель" активной.

     hPanel = HANDLE | PANEL_ACTIVE | PANEL_PASSIVE
        HANDLE - "эта панель" станет активной
        PANEL_ACTIVE - пустая трата времени - "она" уже активна :-)
        PANEL_PASSIVE - пассивная станет активной
     Command = FCTL_SETACTIVEPANEL
     Param1 = 0
     Param2 = 0

     Return = TRUE (всё ок) | FALSE (нет такой панели или она "скрыта")

shmuel 21.03.2013 22:51:47 +0200 - build 3264

1. Рефакторинг.

drkns 21.03.2013 21:29:29 +0200 - build 3263

1. Рефакторинг.

drkns 21.03.2013 02:27:47 +0200 - build 3262

1. Ещё одно уточнение 3260.

w17 21.03.2013 03:58:50 +0400 - build 3261

1. уточнение 3260.

drkns 20.03.2013 23:09:07 +0200 - build 3260

1. Рефакторинг.

drkns 20.03.2013 02:07:58 +0200 - build 3259

1. Рефакторинг.

drkns 19.03.2013 00:02:25 +0200 - build 3258

1. Рефакторинг.

svs 18.03.2013 18:58:10 +0400 - build 3257

1. SQLite 3.7.16

w17 18.03.2013 17:45:12 +0400 - build 3256

1. m#1905 - убираем надписи wrap... с кейбара вьювера для hex и dump режимов.

drkns 17.03.2013 22:54:00 +0200 - build 3255

1. Рефакторинг.

drkns 17.03.2013 18:35:35 +0200 - build 3254

1. Продолжение 3253 - список задач можно было вызвать дважды, если первый вызов был из главного меню.

w17 17.03.2013 20:06:26 +0400 - build 3253

1. ShowProcessList() мог быть вызван многократно (с ru.board)

drkns 17.03.2013 14:35:40 +0200 - build 3252

1. Продолжение M#0002294: рефакторинг кода, добавлен хелп.

drkns 16.03.2013 22:39:28 +0200 - build 3251

1. Рефакторинг.

drkns 16.03.2013 01:18:08 +0200 - build 3250

1. Удалён связанный с M#0000466 код.

2. Не работал gcc debug x86 билд.

3. Рефакторинг.

shmuel 15.03.2013 16:22:25 +0200 - build 3249

1. Восстановим поведение асинхронного вызова Plugin.Call, в соответствии с комментарием к билду 2899.

w17 15.03.2013 07:03:24 +0400 - build 3248

1. Рефакторинг.

w17 14.03.2013 15:40:18 +0400 - build 3247

1. Синхронизация кейбаров и языкового файла

drkns 14.03.2013 00:40:53 +0200 - build 3246

1. Рефакторинг.

drkns 13.03.2013 21:37:15 +0200 - build 3245

1. Уточнение 3243.

drkns 13.03.2013 21:26:34 +0200 - build 3244

1. gcc.

drkns 13.03.2013 21:15:45 +0200 - build 3243

1. 0002330: утечки памяти UserData при работе с AnalyseW

2. 0002334: утечки памяти при работе с sqlite

t-rex 13.03.2013 17:08:47 +0200 - build 3242

1. Mantis#2334: утечки памяти при работе с sqlite.

drkns 13.03.2013 02:34:54 +0200 - build 3241

1. Рефакторинг.

drkns 12.03.2013 23:31:23 +0200 - build 3240

1. Рефакторинг.

2. 0002332: Индикатор "admin" посередине экрана (по высоте)

drkns 12.03.2013 01:52:54 +0200 - build 3239

1. Рефакторинг.

shmuel 09.03.2013 22:50:25 +0200 - build 3238

1. MCTL_LOADALL и far.MacroLoadAll возвращают true только если не было ни одной ошибки при загрузке.

drkns 09.03.2013 13:12:45 +0200 - build 3237

1. Рефакторинг.

w17 09.03.2013 13:17:54 +0400 - build 3236

1. Export/Import для localconfig.db

shmuel 08.03.2013 11:51:14 +0200 - build

1. Макросы: добавлено событие 'EditorInput', т.е. в спецификации события надо указывать group="EditorInput".
   Параметры функций action и condition, а также возвращаемое значение функции action - согласно описанию
   функции export.ProcessEditorInput в мануале LuaFAR.

drkns 08.03.2013 01:52:56 +0200 - build 3235

1. Удалим немного неиспользуемого кода.

w17 07.03.2013 00:30:54 +0400 - build 3234

1. Уточнение 3232 - имя мьютекса зависит от полного пути к db.

w17 06.03.2013 19:26:54 +0400 - build 3233

1. M#2329: error drawing editor lines

t-rex 05.03.2013 15:14:09 +0200 - build 3232

1. Mantis#1813: Проблемы с БД при одновременном старте/закрытии нескольких копий фар.

drkns 04.03.2013 23:31:07 +0200 - build 3231

1. 0002322: Неверная отрисовка в viewer/editor

zg 04.03.2013 00:01:33 +0200 - build 3230

1. на (num|caps|scroll)lock и их сочетания с модификаторами теперь можно вешать макросы.

drkns 03.03.2013 01:12:28 +0200 - build 3229

1. Рефакторинг.

drkns 02.03.2013 22:18:14 +0200 - build 3228

1. Рефакторинг.

drkns 02.03.2013 21:38:22 +0200 - build 3227

1. pushd c:\ + popd приводили к падению.

shmuel 02.03.2013 01:17:54 +0200 - build 3226

1. Продолжение 3222: mf.usermenu. Описание - в macroapi_manual.chm.

drkns 28.02.2013 22:15:33 +0200 - build 3225

1. Рефакторинг.

shmuel 28.02.2013 21:37:28 +0200 - build 3224

1. Продолжение 3222: расширение функциональности mf.usermenu. Полное описание - в macroapi_manual.chm.

shmuel 28.02.2013 17:22:41 +0200 - build 3223

1. Продолжение 3222: добавлена макрофункция mf.usermenu(filename [,mode]).
   Если 'mode' равен 0 или не задан, файл открывается "как есть", т.е. по заданному 'filename'.
   Если 'mode' равен 1, файл открывается в %farprofile%\Menus (папка создаётся автоматически).

svs 28.02.2013 11:46:34 +0400 - build 3222

1. Mantis#0002270: Пользовательское меню из любого файла
   Часть 1: внутренняя реализация.
   Добавлен конструктор UserMenu(filename). Ожидается, что filename - полный путь к файлу с меню.


   Можно реализовывать упомянутую макрофункцию Menu.Open(filemenu [,mode]) :-)

zg 27.02.2013 01:14:16 +0200 - build 3221

1. с форума: "Операцию подсчёта размера папок можно прервать по Esc. Но при этом, если на Esc назначен макрос,
   например, гашения панелей, этот макрос выполняется, вместо того,
   что бы просто прервать подсчёт и закрыть диалог."

shmuel 27.02.2013 00:19:09 +0200 - build

1. Макросы: добавлено событие 'DialogEvent', т.е. в спецификации события надо указывать group="DialogEvent".
   Параметры функций action и condition, а также возвращаемое значение функции action - согласно описанию
   функции export.ProcessDialogEvent в мануале LuaFAR.

shmuel 26.02.2013 18:14:23 +0200 - build

1. Макросы: добавлено событие 'ExitFAR', т.е. в спецификации события надо указывать group="ExitFAR".
   Обработчики события вызываются при любой выгрузке плагина LuaMacro.

drkns 26.02.2013 02:15:17 +0200 - build 3220

1. 0002248: ANSI плагины не дают запускать приложения из папок являющихся связью

2. Рефакторинг.

shmuel 22.02.2013 20:10:21 +0200 - build 3219

1. Продолжение 3217: вызов mmode(1,1) мог блокировать экран при последующем вызове диалога ошибки.

drkns 22.02.2013 19:09:39 +0200 - build 3218

1. Не работал запуск по CtrlAltEnter.

shmuel 22.02.2013 17:38:36 +0200 - build 3217

1. Вызов mmode(1,1) мог приводить к неперерисовке экрана после завершения макроса.

drkns 21.02.2013 23:44:34 +0200 - build 3216

1. Частичный откат 3171.2, глюков оказалось слишком много.

w17 20.02.2013 17:52:10 +0400 - build 3215

1. Продолжение 3206 (M#2303) -- автоопределение способа копирования ссылок.

shmuel 20.02.2013 09:48:22 +0200 - build 3214

1. Уточнение 3209 для MSSC_POST.

drkns 20.02.2013 02:06:02 +0200 - build 3213

1. Рефакторинг. Добавим константности.

drkns 19.02.2013 22:23:51 +0200 - build 3212

1. Продолжение 3208. UserDefinedList больше нет, есть функция StringToList, создающая стандартный список по той же логике.

w17 19.02.2013 12:13:40 +0400 - build 3211

1. Уточнение 3206.
   a) разделение флагов SPARSE и REPARSEPOINT в строке атрибутов
   b) символ для SPARSE изменён '$' -> 'P' -- отпишитесь, если это 'плохо'
   c) если строка атрибутов слишком длинная - убираем из неё пробелы

w17 19.02.2013 08:36:13 +0400 - build 3210

1. vc10 compilation fix.

shmuel 18.02.2013 23:49:37 +0200 - build 3209

1. Макросы: флаг "DisableOutput" больше не существует.
   Появился новый флаг "EnableOutput", по умолчанию неактивный.
   API плагинов и макросов этим изменением не затронуто.

drkns 18.02.2013 23:29:22 +0200 - build 3208

1. Рефакторинг.

drkns 18.02.2013 22:10:06 +0200 - build 3207

1. Ещё немного на тему запускателя.

w17 18.02.2013 17:33:55 +0400 - build 3206

1. M#2303: Новые типы Reparse Point в Windows 8/2012

drkns 17.02.2013 21:06:25 +0200 - build 3205

1. Рефакторинг.

drkns 17.02.2013 18:01:04 +0200 - build 3204

1. Уточнение 3197.

shmuel 16.02.2013 23:01:07 +0200 - build

1. Макросы: функция condition() вызывается с одним аргументом-строкой: имя ключа.
   * Это не касается макросов, вызываемых во время 'RunAfterFARStart'.
   * Это не касается событий.
   * Это сделано потому, что akey() не работает, будучи вызвана из condition().

drkns 16.02.2013 20:14:37 +0200 - build 3203

1. Длина промпта не восстанавливалась при убирании $#nn из формата.

drkns 16.02.2013 15:19:37 +0200 - build 3202

1. Ещё раз 0002306.

2. Падение в инфопанели.

3. gcc.

drkns 16.02.2013 14:57:06 +0200 - build 3201

1. 0002306: не инициализируется панель

drkns 16.02.2013 13:22:34 +0200 - build 3200

1. 0002306: не инициализируется панель

drkns 16.02.2013 12:07:09 +0200 - build 3199

1. Уточнение 3197.

drkns 16.02.2013 03:37:17 +0200 - build 3198

1. Падения при слишком мелких размерах буфера консоли.

drkns 16.02.2013 02:44:09 +0200 - build 3197

1. Экспериментальная поддержка раскраски промпта.
   Формат:
   ([[T]FFFFFFFF][:[T]BBBBBBBB])
   FFFFFFFF - цвет текста в формате aarrggbb.
   BBBBBBBB - цвет фона в формате aarrggbb.
   T - "признак труколорности", если отсутствует - цвет считается консольным индексом (0-F).
   Если цвет текста или фона не указан, берется значение по умолчанию.

   Примеры:
   (A) - ярко-зеленый текст на дефолтном фоне
   (:F) - дефолтный текст на белом фоне
   (C:2) - ярко-красный на зеленом
   () - дефолтный текст на дефолтном фоне
   (T00CCCC:TE34234) - яйца дрозда на киновари

   Указанный цвет красит промпт до конца либо до следующего вхождения цвета.

   Пример использования:
   (a)%username%(f)@(c)%computername%() $p$g

drkns 15.02.2013 23:09:33 +0200 - build 3196

1. 0002304: Запуск внешнего редактора стирает комстроку.
   Запускатель в очередной раз немного переделан, возможны глюки.

drkns 14.02.2013 21:11:45 +0200 - build 3195

1. В GetReparsePointInfo() неизвестные науке reparse points трактовались как junctions, со всеми вытекающими.

2. Умеем определять reparse points с тегами DEDUP и NFS.

t-rex 14.02.2013 20:37:28 +0200 - build 3194

1. Убираем предыдущее, теперь настройка ширины идёт через строку промпта - $#nn.

svs 14.02.2013 17:26:41 +0400 - build 3193

1. Уточнение 3192.
   У промтера добавка:
   $W - текущий рабочий каталог (без указания пути)

svs 14.02.2013 17:05:40 +0400 - build 3192

1. Убираем АПИ из 3190 (перебор)
   Вместо этого в макросы: MCODE_F_CMDLINE_PROMTSIZE
   N=Cmdine.PromtSize([Size])
   Size - требуемый размер в процентах от ширины консольного окна, min=5, max=95
   Если Size, функция просто возвращает текущее значение (в процентах от ширины консольного окна)
   Возвращает пред.значение

   Нужна доработка со стороны luamacro.

2. У промтера добавка:
   $M - Отображение полного имени удаленного диска, связанного с именем
        текущего диска, или пустой строки, если текущий диск не является сетевым.

t-rex 14.02.2013 13:40:43 +0200 - build 3191

1. Настройка Cmdline.PromptSize для предыдущего билда.

svs 14.02.2013 14:58:04 +0400 - build 3190

1. Mantis#0002302: Сократить отображаемую часть промпт
   Решение Инца состоит из двух частей (здесь первая часть)

   В API добавлены две команды:

    FCTL_SETCMDLINEPROMPTSIZE
      Установить отображаемый размер приглашения командной строки.
      Param1 = требуемый размер в процентах от ширины консольного окна, min=5, max=95
               при старте размер равен 50%
      Param2 = nullptr (игнорируется)
      Возвращает TRUE
    FCTL_GETCMDLINEPROMPTSIZE
      Получить отображаемый размер приглашения командной строки (в процентах от ширины консольного окна).
      Param1 = 0 (игнорируется)
      Param2 = указатель на int
      Возвращает TRUE, если Param2 не равен nullptr, иначе FALSE

     Вторая часть решение - добавка функционала в плагин luamacro.

drkns 13.02.2013 22:22:04 +0200 - build 3189

1. Рефакторинг.

2. Уточнение 3174.1.

drkns 13.02.2013 20:41:59 +0200

1. Убраны дефайны для vc9 и ниже, мы всё равно их не поддерживаем.

2. 0002280: Размытые пиктограммы в заголовке окна и панели задач.

drkns 13.02.2013 12:41:34 +0200 - build 3188

1. Уточнение 3185 для пещерных ос.

2. Уточнение 3185 для ущербных sdk.

lort 13.02.2013 14:16:45 +0400 - build 3187

1. Уточнение 3184

drkns 12.02.2013 23:59:04 +0200 - build 3186

1. Попробуем избежать появления горизонтальной прокрутки после AltF9 при windowmode==true.

drkns 12.02.2013 23:47:00 +0200 - build 3185

1. Экспериментально: попробуем сделать так, чтобы при windowmode==true и максимизированном окне скроллбар не перекрывал информацию.

lort 13.02.2013 01:32:35 +0400 - build 3184

1. 0002297: Флаг FMENU_SHOWAMPERSAND работает неправильно

drkns 12.02.2013 23:15:47 +0200 - build 3183

1. Адекватная прокрутка в начало/конец буфера для windowmode==true.

drkns 12.02.2013 21:48:26 +0200 - build 3182

1. 0002294: При замене в редакторе доступна опция "Preserve style".

w17 12.02.2013 12:37:49 +0400 - build 3181

1. уточнение 3180

w17 12.02.2013 08:58:04 +0400 - build 3180

1. M#2299: Падение Far при использовании поиска папки(Alt-F10)

drkns 12.02.2013 01:29:37 +0200 - build 3179

1. Продолжим 3157.

drkns 11.02.2013 22:15:28 +0200 - build 3178

1. Уточнение 2607. На всякий случай, напоминаю: не надо пихать в lng-файлы %d, %s и т. п.

2. ShiftF8 - Automatic Detection. Если определить не удавалось, редактору срывало крышу.

drkns 11.02.2013 21:02:37 +0200 - build 3177

1. Рефакторинг.

drkns 11.02.2013 19:57:46 +0200 - build 3176

1. Продолжение 3171.

shmuel 11.02.2013 18:53:29 +0200 - build

1. Макросы: очерёдность в событиях - определяется динамическими приоритетами.
   * Динамический приоритет определяется так же, как и для макросов, при помощи полей
     'condition' и 'priority'.
   * Вызывается функция action() для всех событий, исключая те, для которых вызов
     condition() вернул false/nil/ничего, в порядке убывания динамических приоритетов.

t-rex 11.02.2013 16:16:30 +0200 - build 3175

1. Продолжим 3157. MaxLength переехал в Editcontrol.

t-rex 11.02.2013 12:16:10 +0200 - build 3174

1. Глюки с LeftPos в последних билдах.
   Надо вообще переделать всё чтоб Edit небыл вообще ScreenObject а его рисовал Editor.

2. Кореекция 3173.

shmuel 11.02.2013 11:27:48 +0200 - build

1. Макросы: новая спецификация событий, несовместимая с предыдущей.
   1.1. Проверка флагов не делается, поле 'flags' не используется.
   1.2. Отменяется поле 'name'.
   1.3. Функции condition() и action() получают 3 аргумента: Id,Event,Param
        (см. мануал LuaFAR, ф-ции ProcessEditorEvent, ProcessViewerEvent).

t-rex 11.02.2013 11:24:05 +0200 - build 3173

1. Не собирался с gcc.

drkns 10.02.2013 22:22:59 +0200 - build 3172

1. Продолжение 3171.

drkns 10.02.2013 19:50:21 +0200 - build 3171

1. Уточнение 3169.

2. Рефакторинг хранения состояний панели. Возможны разнообразные глюки.

shmuel 10.02.2013 16:55:25 +0200 - build

1. Макросы (спецификация событий):
   В группе ViewerEvent поле 'name' может иметь следующие значения: 'Read', 'Close', 'KillFocus', 'GotFocus'.

shmuel 10.02.2013 15:46:55 +0200 - build 3170

1. Рефакторинг.

drkns 10.02.2013 04:31:36 +0200 - build 3169

1. Продолжим 3157. Ещё минус 8/16 байт.

drkns 10.02.2013 03:06:35 +0200 - build 3168

1. Продолжим 3157. Ещё минус 20 байт в x86 и 32 в x64.

t-rex 08.02.2013 16:52:35 +0200 - build 3167

1. SCTL_ENUM возвращал не то что надо.

w17 08.02.2013 18:51:02 +0400 - build 3166

1. 0002292: ESPT_CODEPAGE портит файл

drkns 08.02.2013 01:56:40 +0200 - build 3165

1. Рефакторинг.

shmuel 08.02.2013 01:25:45 +0200 - build

1. Макросы: продолжение.
   * В группе EditorEvent, 'name' может иметь следующие значения:
     'Read', 'Save', 'Change', 'Close', 'Redraw', 'KillFocus', 'GotFocus'.
   * Во всех ныне реализованных событиях функция action() получает 2 аргумента:
     1. ID - идентификатор окна редактора или просмотрщика (число).
     2. Param - в соответствии с документацией LuaFAR на функции export.ProcessEditorEvent, export.ProcessViewerEvent.

shmuel 07.02.2013 20:15:14 +0200 - build

1. Макросы: новая спецификация обработчика событий (модифицирует спецификацию от 05.02.2013).
   * Ключ key="Read" в таблице-параметре функции Macro отменяется.
   * Новая загрузочная функция 'Event'; также, как и функция 'Macro', она принимает единственный параметр - таблицу.
   * Отличия полей от полей таблицы-параметра функции Macro: вместо полей 'area' и 'key' - поля 'group' и 'name'.
   * 'group' на данный момент может иметь следующие значения: 'EditorEvent' и 'ViewerEvent'.
   * В группе EditorEvent, 'name' может иметь значения 'Read' и 'Save'.
   * В группе ViewerEvent, 'name' может иметь значение 'Read'.
   * Новая функция NoEvent аналогичная NoMacro.
   * Из функции action нельзя вызывать функции, перечисленные в статье
     "Ограничения в использовании некоторых функций" мануала MacroAPI.
     Если эти функции необходимы, можно их вызвать посредством far.MacroPost().
   * Пример:
       Event {
         group="EditorEvent"; name="Read";
         action=function() ...... end;
       }

t-rex 07.02.2013 16:44:49 +0200 - build 3164

1. Продолжим 3157.

t-rex 07.02.2013 14:53:35 +0200 - build 3163

1. From Denis: http://forum.farmanager.com/viewtopic.php?p=103451#p103451
   А куда пропал "Если текст в диалоговом поле ввода заканивается пробелами или табуляциями - подсветим их."?

t-rex 07.02.2013 04:14:49 +0200 - build 3162

1. Выбор дефолтной кодировки в настройках программы просмотра (теперь работает).

2. Выбор дефолтной кодировки в настройках редактора.

drkns 07.02.2013 01:13:11 +0200 - build 3161

1. Уточнение враппера.

t-rex 07.02.2013 00:01:22 +0200 - build 3160

1. Выбор дефолтной кодировки в настройках программы просмотра (пока не работает).

drkns 06.02.2013 23:47:36 +0200 - build 3159

1. Рефакторинг.

trex 06.02.2013 20:13:18 +0200 - build 3158

1. Продолжим 3157. Теперь в классе Edit нет понятия codepage.

drkns 06.02.2013 01:28:10 +0200 - build 3157

1. Уменьшен размер класса Edit, редактор должен использовать немного меньше памяти при большом количестве строк.

shmuel 05.02.2013 17:11:26 +0200 - build

1. Спецификация макросов: новое опциональное поле "filemask" типа string.
   * Для областей Editor и Viewer, при наличии этого поля, проверяется
     соответствие имени файла (без пути) заданной маске файла.
   * Маска должна соответствовать правилам, применяемым для масок файлов
     в диалоге поиска файлов (Alt-F7 из панелей).
   * При проверке макроса на запуск, данное поле проверяется в первую очередь,
     то-есть до проверки флагов и вызова функции condition.

2. В областях Editor и Viewer спецификации макросов обрабатывается специальный
   ключ "Read". Это значит, что макрос может сработать по событию загрузки
   файла соответственно в редактор или просмотрщик. Для подобных макросов
   производятся следующие действия:

     a) Проверяется соответствие поля "filemask" (если оно указано) имени файла.
     b) Проверяются условия по флагам.
     c) Если есть функция condition, то она вызывается, и ей передаётся параметр
        ID (идентификатор данного экземпляра редактора или просмотрщика).
     d) Если условия (a,b,c) не препятствуют, то вызывается функция action.

   * Поле priority не используется.
   * При вызове condition() имеет значение только логическая истинность
     возвращаемого значения.
   * Данные макросы исполняются один за другим, то-есть все, а не один из всех.

drkns 05.02.2013 08:32:09 +0200 - build 3156

1. Уточнение 3155.

drkns 05.02.2013 02:11:39 +0200 - build 3155

1. Используем стандартные стеки и очереди.

drkns 04.02.2013 23:38:27 +0200 - build 3154

1. Рефакторинг.

lort 04.02.2013 21:52:31 +0400 - build 3153

1. Неправильно работала подгонка по высоте меню вызванного макрофункцией Menu.Show

drkns 04.02.2013 03:18:25 +0200 - build 3152

1. Рефакторинг.

drkns 04.02.2013 02:45:41 +0200 - build 3151

1. Рефакторинг.

drkns 03.02.2013 22:59:12 +0200 - build 3150

1. Уточнение 3094.

shmuel 03.02.2013 16:56:54 +0200 - build 3149

1. При записи макросов в файл в качестве разделителей флагов используются пробелы.
   При чтении макросов из файла разделителями флагов считаются как пробелы, так и символы '|'.

drkns 03.02.2013 09:32:05 +0200 - build 3148

1. Уточнение 3094.

shmuel 02.02.2013 23:13:23 +0200 - build 3147

1. Из форума: Если из макроса вызывается Panel.SetPosIdx(0,-1,1), а выделенных файлов в панели нет, FAR виснет.

shmuel 02.02.2013 22:36:31 +0200 - build 3146

1. M#2228: Пункты меню съезжают вправо, если в Menu.Show использовать автонумерацию пунктов.

drkns 02.02.2013 16:50:15 +0200 - build 3145

1. И ещё раз.

drkns 02.02.2013 16:20:21 +0200 - build 3144

1. Уточнение 3141.

t-rex 01.02.2013 21:23:22 +0200 - build 3143

1. RCtrlH не работал в far:config.

drkns 01.02.2013 18:50:55 +0200 - build 3142

1. Не работало переназначение клавиш записи макроса.

drkns 01.02.2013 17:36:21 +0200 - build 3141

1. Если элементы панели равны с точки зрения текущего критерия сортировки (и, следовательно, сортируются по имени) то изменение направления сортировки их не затронет.

t-rex 01.02.2013 12:24:37 +0200 - build 3140

1. Уточнение 3134.

drkns 01.02.2013 10:22:46 +0200 - build 3139

1. Уточнение 3138.

2. Рефакторинг.

drkns 31.01.2013 02:45:16 +0200 - build 3138

1. Добавим в UnicodeString поддержку move semantics.

t-rex 31.01.2013 01:59:09 +0200 - build 3137

1. Mantis#2247. Более понятный дисплэй прогресса во время поиска строки в файлах.

t-rex 30.01.2013 23:45:01 +0200 - build 3136

1. Предыдущий фикс должен работать только при replace all.

t-rex 30.01.2013 22:48:47 +0200 - build 3135

1. Mantis#1376: Undo replace all.
   При replace, undo востанавливает все изменения разом.

t-rex 30.01.2013 22:04:15 +0200 - build 3134

1. Mantis#2281: Заканчивается память во время поиска с заменой в редакторе.
   Теперь есть лимит на количество памяти используемой для хранения undo в редакторе, по дефолту 100MB.
   Настраивается через Editor.UndoDataSize (размер в байтах), старая и никчемная настройка Editor.EditorUndoSize удалена.

w17 30.01.2013 15:33:36 +0400 - build 3133

1. operator< should be const (заодно ещё раз починим выбор в панели)

drkns 30.01.2013 00:27:32 +0200 - build 3132

1. Добавим хитрых макросов для упрощения работы с шаблонными контейнерами.

drkns 29.01.2013 20:56:19 +0200 - build 3131

1. Рефакторинг.

shmuel 29.01.2013 19:03:01 +0200 - build 3130

1. Из форума: если после far.MacroLoadAll() встречается вызов Keys(), то после Keys макрос завершается.

shmuel 29.01.2013 10:46:39 +0200 - build 3129

1. При отмене меню выбора макроса ключ передавался Фару для дальнейшей обработки.

w17 29.01.2013 09:13:35 +0400 - build 3128

1. Experimental. Сепараторы и заголовок подменю в шорткатах.
   Если поле фолдер в подменю шорткатов пустое, то
   a) если имя = "--" это сепаратор
   b) если нет и это первый пункт - заголовок подменю, иначе - просто игнорируется

w17 29.01.2013 08:49:52 +0400 - build 3127

1. Panel selection fix.

drkns 28.01.2013 22:53:29 +0200 - build 3126

1. Более корректный "ещё раз".

w17 28.01.2013 19:49:34 +0400 - build 3125

1. Ещё раз...

w17 28.01.2013 18:27:46 +0400 - build 3124

1. Уточнение рефакторинга (не знаю которого из ......)

drkns 28.01.2013 01:20:00 +0200 - build 3123

1. Рефакторинг.

shmuel 27.01.2013 17:48:50 +0200 - build 3122

1. Функции 'akey' и 'mmode', будучи вызваны из функции 'condition' макроса, возвращают false.

drkns 26.01.2013 21:15:16 +0200 - build 3121

1. Уточнение сохранения файла дерева.

drkns 26.01.2013 18:04:57 +0200 - build 3120

1. Уточнение 3119.

drkns 26.01.2013 17:54:44 +0200 - build 3119

1. Рефакторинг.

drkns 26.01.2013 15:03:56 +0200 - build 3118

1. Уточнение 3117.1.

drkns 26.01.2013 12:06:30 +0200 - build 3117

1. Рефакторинг.

2. Уточнение сортировки по временам/размерам/числу ссылок и потоков.
   "Прямая" сортировка теперь по убыванию, "обратная" - по возрастанию.
   Ctrl-Fx и выбор из меню по умолчанию включают обратную сортировку для этих режимов.

w17 25.01.2013 12:14:49 +0400 - build 3116

1. gcc build fix

drkns 24.01.2013 23:55:14 +0200 - build 3115

1. Рефакторинг.

drkns 23.01.2013 23:57:06 +0200 - build 3114

1. Рефакторинг.

drkns 23.01.2013 20:15:10 +0200 - build 3113

1. Уточнение 3112.2.

drkns 22.01.2013 23:14:46 +0200 - build 3112

1. В shortcuts menu работают CtrlUp и CtrlDown.

2. Из user menu, associations menu и filters menu убраны пустые строки, т. к. есть CtrlUp и CtrlDown.

drkns 22.01.2013 00:53:06 +0200 - build 3111

1. Рефакторинг far:config.

drkns 21.01.2013 23:05:46 +0200 - build 3110

1. И ещё раз.

drkns 21.01.2013 22:08:36 +0200 - build 3109

1. И ещё раз.

drkns 21.01.2013 21:39:57 +0200 - build 3108

1. Уточнение уточнения уточнения 3102.

w17 21.01.2013 20:58:56 +0400 - build 3107

1. Уточнение уточнения 3102 (usermenu).

svs 21.01.2013 17:37:30 +0400 - build 3106

1. Mantis#0002266: Нужны GUID-ы
     Редактор: перезапись файла только для чтения.
               {3F9311F5-3CA3-4169-A41C-89C76B3A8C1D}
     ФАР: диалог подтверждения закрытия ФАРа.
               {72E6E6D8-0BC6-4265-B9C4-C8DB712136AF}
     Редактор: сохранение файла, при изменении его внешней программой (и при удалении).
               {40A699F1-BBDD-4E21-A137-97FFF798B0C8}
     Редактор: сохранение файла при закрытии.
               {F776FEC0-50F7-4E7E-BDA6-2A63F84A957B}
     Редактор: запрос открытия файла с атридутами RSH
               {D8AA706F-DA7E-4BBF-AB78-6B7BDB49E006}
     Редактор: сохранение файла при переключение во вьювер, если файл (или каталог, где был файл) был удален.
               {85532BD5-1583-456D-A810-41AB345995A9}
     Редактор: сохранение файла и выход из редактора, если файл (или каталог, где был файл) был удален.
               {2D71DCCE-F0B8-4E29-A3A9-1F6D8C1128C2}
     Редактор: Запрос на перезапись файла
               {4109C8B3-760D-4011-B1D5-14C36763B23E}


w17 21.01.2013 14:25:04 +0400 - build 3105

1. Уточнение 3102 (usermenu).

drkns 21.01.2013 08:55:54 +0200 - build 3104

1. Уточнение 3102.

w17 21.01.2013 04:06:32 +0400 - build 3103

1. Уточнение 3102.

drkns 20.01.2013 23:13:49 +0200 - build 3102

1. Рефакторинг.

drkns 20.01.2013 21:47:14 +0200 - build 3101

1. Пара утечек в фильтрах.

2. Уточнение справки.

drkns 20.01.2013 21:26:25 +0200 - build 3100

1. Немного оптимизации: не пытаемся считывать количество жестких ссылок и информацию о потоках, если ФС это не поддерживает.

drkns 20.01.2013 20:08:29 +0200 - build 3099

1. Уточнение 3094.

w17 20.01.2013 16:30:39 +0400 - build 3098

1. M#2265: Ошибки Scrollbar'ов в редакторе/viewer'е

drkns 19.01.2013 21:18:14 +0200 - build 3097

1. Уточнение 3094.

shmuel 18.01.2013 21:07:42 +0200 - build 3096

1. Рефакторинг.

drkns 18.01.2013 15:38:50 +0200 - build 3095

1. Рефакторинг.

drkns 18.01.2013 14:41:12 +0200 - build 3094

1. Рефакторинг описаний.

2. 0002261: Expand environment variables in folder shortcuts menu

shmuel 18.01.2013 12:25:16 +0200 - build 3093

1. Во время воспроизведения макроса было возможно начать запись макроса.

drkns 17.01.2013 23:40:28 +0200 - build 3092

1. Продолжение 3087 - фокус панели переехал в локальные настройки.

drkns 17.01.2013 22:37:25 +0200 - build 3091

1. Ещё одно уточнение 3076.

drkns 17.01.2013 22:12:27 +0200 - build 3090

1. Уточнение 3076 и откат 3089. Просьба не нервничать и не спешить, никто не забыт и ничто не забыто.

shmuel 17.01.2013 16:34:27 +0200 - build 3089

1. Частичный откат 3076 (Undo/Redo в редакторе).

shmuel 16.01.2013 23:53:39 +0200 - build 3088

1. GCC warnings.

drkns 16.01.2013 22:58:06 +0200 - build 3087

1. 0001969: Отделить настройку "Сохранять состояние панелей" от остальных настроек и сделать локальной

svs 16.01.2013 23:56:44 +0400 - build 3086

1. Mantins#0002260: нужен GUID к диалогу переоткрытия файла
     EditorReloadId={AFDAD388-494C-41E8-BAC6-BBE9115E1CC0}

drkns 15.01.2013 23:37:28 +0200 - build 3085

1. Уточнение 3084.

drkns 15.01.2013 22:03:55 +0200 - build 3084

1. 0002256: Fix warnings: member variable is not initialized in constructor

shmuel 15.01.2013 00:27:59 +0200 - build 3083

1. Рефакторинг.

w17 15.01.2013 00:33:06 +0400 - build 3082

1. Highlight Ctrl-Up/Down fix = уточнение 3076

w17 14.01.2013 21:28:05 +0400 - build 3081

1. M#2254: В окне - PgDn в меню = уточнение 3076

w17 14.01.2013 18:14:07 +0400 - build 3080

1. уточнение 3076 - shortcuts fix

w17 14.01.2013 06:39:14 +0400 - build 3079

1. уточнение 3076

shmuel 13.01.2013 11:40:40 +0200 - build 3078

1. Изменения, связанные с макросами.

1.1. Интерпретация нажатия ключа, появление левосторонних модификаторов.
     При поступлении ключа, он рассматривается с различением лево- и правосторонних модификаторов.
     То-есть, не может поступить "CtrlX", а может либо "LCtrlX", либо "RCtrlX".

1.2. "Точные" и "обобщённые" модификаторы в спецификациях ключей.
     * Точные модификаторы - это LCtrl, LAlt, RCtrl и RAlt. Обобщённые модификаторы - это Ctrl и Alt.
     * Каждый из обобщённых модификаторов обозначает "любой", т.е. левый или правый модификатор.
       Таким образом, спецификация "CtrlAltX" эквивалентна спецификации "LCtrlLAltX LCtrlRAltX RCtrlLAltX RCtrlRAltX".
     * В одной и той же спецификации ключа могут указываться как точные модификаторы, так и обобщённые,
       например, "CtrlRAltX".

1.3. Ключи, заданные регулярным выражением.
     * При поступлении ключа, производится регистронезависимое сопоставление его имени (см. п.1) регулярному выражению,
       по правилам регулярных выражений Фара.
     * Регулярное выражение "/CtrlX/" никогда не сработает, поскольку на сопоставление может поступить
       либо "LCtrlX", либо "RCtrlX".
     * Примеры регулярных выражений, независимых от типа модификатора: "/.CtrlX/" или "/[LR]CtrlX/".
       У кого есть макросы со спецификациями ключей типа "/R?CtrlX/" - нужно поправить, как указано выше.

1.4. Спецификации ключей не имеют приоритетов друг перед другом.
     Если есть макросы 1 (key="RCtrlX"), 2 (key="CtrlX") и 3 (key="/.CtrlX/"), то при нажатии RCtrlX все они
     будут рассматриваться на одинаковых основаниях, а выбор будет производиться по совокупности заданных полей:
     flags (включая возможный вызов callback для макросов MCTL_ADDMACRO), condition и priority.

1.5. При записи макросов с клавиатуры, всегда используются обобщённые модификаторы ключей, то-есть нельзя
     с клавиатуры назначить макрос на LCtrlX или RCtrlX, а только на CtrlX.

1.6. Макросы, назначенные на область "Common", имеют приоритет по умолчанию = 40.

drkns 13.01.2013 02:23:07 +0200 - build 3077

1. gcc.

drkns 13.01.2013 00:28:46 +0200 - build 3076

1. Рефакторинг. Повсеместно используем стандартные списки и массивы, немного лямбд и ещё по мелочи. Возможны сказочные глюки.

zg 12.01.2013 04:49:12 +0200 - build 3075

1. 0002252: Несоответствие выделения и перемещения курсора в блочном режиме.

shmuel 11.01.2013 17:46:00 +0200 - build 3074

1. Из форума: если при старте ФАРа на одной из панелей открывается сетевая папка, _может_ быть выдано такое сообщение:
   attempt to index upvalue 'Areas' (a nil value).

drkns 10.01.2013 21:38:44 +0200 - build 3073

1. Рефакторинг.

w17 10.01.2013 12:03:54 +0400 - build 3072

1. gcc build fix

drkns 10.01.2013 02:03:43 +0200 - build 3071

1. Рефакторинг.

drkns 10.01.2013 00:25:12 +0200 - build 3070

1. Рефакторинг.

svs 09.01.2013 22:04:32 +0400 - build 3069

1. Mantis#0002245: Добавить GUID для окна результатов поиска на панелях
     FindFileResultId={536754EB-C2D1-4626-933F-A25D1E1D110A}

2. Mantis#0002243: Нельзя узнать, что сепаратор был задан с выравниванием по центру, если это задано с Х=-1
      Для указанных DIF_SEPARATOR или DIF_SEPARATOR2 если X1 или Y1=-1, то FAR центрирует текст и
      ставит принудительно флаг DIF_CENTERTEXT. В этом случае координаты сепаратора уже не -1.

svs 09.01.2013 21:49:38 +0400 - build 3068

1. SQLite 3.7.15.2

zg 07.01.2013 05:12:25 +0200 - build 3067

1. RECTL_SEARCHEX для ненайденных скобок устанавливал RegExpMatch.start в значение, отличное от -1.

lort 04.01.2013 18:02:57 +0400 - build 3066

1. Mantis#0002240: Некорректная работа Ctrl-Enter в меню результатов поиска

shmuel 04.01.2013 15:52:07 +0200 - build 3065

1. M#2220: MoreHistory -> View/Edit history -> F4 Esc Esc -> Random crash
   (от Michael Lukashov).

shmuel 03.01.2013 23:35:20 +0200 - build 3064

1. Из форума: макросы типа AltQ не вызываются, если раскладка русская.

drkns 02.01.2013 20:44:40 +0200 - build 3063

1. Рефакторинг.

drkns 02.01.2013 18:45:01 +0200 - build 3062

1. Рефакторинг.

shmuel 02.01.2013 07:50:55 +0200 - build 3061

1. Не собиралось в Visual C++.

shmuel 02.01.2013 00:50:13 +0200 - build 3060

1. Рефакторинг.

shmuel 01.01.2013 13:42:42 +0200 - build 3059

1. Рефакторинг.

zg 31.12.2012 01:16:38 +0200 - build 3058

1. при включённом mmode 3 после вызова Plugin.Call портилась память, если макрос заканчивался раньше чем вызов плагина.

shmuel 30.12.2012 21:29:27 +0200 - build 3057

1. В хелпе не отображались макросы из ShellAutoCompletion и DialogAutoCompletion.

2. Рефакторинг.

shmuel 30.12.2012 20:00:01 +0200 - build 3056

1. В хелпе не отображались макросы, введенные с клавиатуры.

2. Рефакторинг.

shmuel 30.12.2012 00:14:45 +0200 - build 3055

1. Рефакторинг.

shmuel 29.12.2012 15:17:57 +0200 - build 3054

1. 'area' в описании макроса может включать несколько областей, разделённых пробелами.

2. 'key' в описании макроса может включать несколько ключей, разделённых пробелами.

3. 'key' в описании макроса может быть обозначен как фаровское регулярное выражение, обрамлённое слешами (/).
   * В этом случае /Ctrl/ не сработает при нажатии RCtrl, надо явно обозначать /R?Ctrl/ и т.п.
   * Также в этом случае необходимо соблюдать порядок в последовательности Ctrl,Alt,Shift, например /AltCtrlF1/
     никогда не сработает.

4. Допустимо более одного макроса на сочетание (key,area). В этом случае выполняется только макрос с наибольшим
   приоритетом (как описано в 4a,4b,4c). Если есть более одного макроса с одинаковым приоритетом - выводится меню.
   Для автостартующих макросов - выполняются все, независимо от приоритета.

4a. Опциональное поле 'priority' в описании макроса: число от 0 до 100. Значение по умолчанию = 50.

4b. Опциональное поле 'condition' в описании макроса: функция. Eсли возвращает false/nil/ничего, то макрос
    не исполняется. Если возвращает число, то это число используется вместо 'priority'. При других значениях
    возврата (например, true) используется 'priority'.

4c. Макросы, добавляемые посредством MCTL_ADDMACRO, имеют приоритет = 50.

5. Макросы, записанные с клавиатуры, обрабатываются особо. Их может быть не более одного на сочетание (key,area).
   Их приоритет выше приоритета любых других макросов.

6. Формат макросов, записываемых с клавиатуры, изменился. Если у кого-то есть такие макросы, сохранённые в папке
   Macros/internal, перенесите эти файлы в папку Macros/scripts.

7. ОЧЕНЬ ВОЗМОЖНЫ НЕДОДЕЛКИ И БАГИ. Поэтому пользователям-не разработчикам лучше подождать пару недель, прежде чем
   переходить на новую версию.

lort 28.12.2012 18:36:32 +0400 - build 3053

1. Уточнение 2941.3

svs 25.12.2012 18:44:49 +0400 - build 3052

1. Врапер Viewer для отображения файлов описаний панелей (class DizViewer) вынесен в отдельный файл dizviewer.hpp
   Врапер предназначен для отслеживания рекурсивность вызова методов DizView (приминительно к InfoList) и... случайно не удалить "вьювер" во время вызова.
   Врапер необходим для решения Mantis#0000604

svs 25.12.2012 18:31:20 +0400 - build 3051

1. При вызове API::GetDirList (или интёрнал GetPluginDirInfo/GetPluginDirList) плагину не передавался флаг OPM_QUICKVIEW, если противоположная панель QuickView.
   Надо бы пересмотреть везде применение OPM_*

shmuel 25.12.2012 12:36:38 +0200 - build 3050

1. M#2235: Вызов функций LuaMacro приводит к перерисовке панели, несмотря на флаг запрета вывода на экран.
   Пока лечение ограничилось поправкой mf.waitkey.

drkns 25.12.2012 00:19:17 +0200 - build 3049

1. Откат 3041.1.

drkns 23.12.2012 22:43:29 +0200 - build 3048

1. Продолжение 3047.

drkns 23.12.2012 19:32:14 +0200 - build 3047

1. Еще один глюк в меню.

drkns 23.12.2012 18:20:07 +0200 - build 3046

1. Уточнение выгрузки плагинов.

w17 23.12.2012 17:00:33 +0400 - build 3045

1. Управление типом EOL при вставке текста в редактор.
   Добавлен параметр Editor.KeepEditorEOL,
   если значение = true (default) - пытаемся сохранить тип переводов строк редактируемого файла,
   если файл пуст или параметр = false - текст вставляется без изменений.

w17 23.12.2012 14:22:48 +0400 - build 3044

1. M#0002232: Find/Replace is off by word length

drkns 22.12.2012 13:53:21 +0200 - build 3043

1. Утечка памяти в vmenu при удалении пункта.

drkns 22.12.2012 10:04:19 +0200 - build 3042

1. Уточнение 3041.

drkns 21.12.2012 22:41:03 +0200 - build 3041

1. При выгрузке плагина закроем все хендлы, созданные им по SCTL_CREATE, если он не позаботился об этом сам.

2. Игнорировался флаг disableoutput у автостартующих макросов.

svs 21.12.2012 16:15:36 +0400 - build 3040

1. Mantis#0002207: SetDirectoryW() всегда передает в поле SetDirectoryInfo->UserData NULL
   Изменения (не критичные) в АПИ.

   В SetDirectoryInfo (UserData был, FreeData "не был")
     а) "intptr_t UserData" стал "intptr_t Reserved"
     б) добавился "struct UserDataItem UserData"

   В OpenPanelInfo
     а) добавился "struct UserDataItem UserData"
        эта компонента относится к OpenPanelInfo::CurDir; плагин должен (если заполняет)
        сюда помещать данные, относящиеся к CurDir, FAR будет именно эти значения в SetDirectoryInfo помещать.

   Непонятки:
     а) PluginManager::CallPlugin() - здесь UserData = {0,0}
        (непонятное решение)
     б) Panel::ExecShortcutFolder() - здесь UserData = {0,0}
        (непонятное решение)
     в) GetPluginDirList()          - здесь UserData = {0,0}
        здесь непонятка в том, что плагин говорит "хочу инфу вот по этой дире на вон той панели" - упираемся в "Имя" каталога, а не в элемент панели.
     г) не хватает вызовов FreeData для OpenPanelInfo
        разбираться отдельно...


   АХТУНГ!
   Если плагины юзали SetDirectoryInfo.Reserved (бывший SetDirectoryInfo.UserData), перекомпильте с учетом новшества.


drkns 21.12.2012 01:39:53 +0200 - build 3039

1. Продолжение 3028.

drkns 21.12.2012 00:59:22 +0200 - build 3038

1. Рефакторинг.

drkns 20.12.2012 23:11:35 +0200 - build 3037

1. Коррекция осовобождения памяти во враппере.

drkns 20.12.2012 22:59:42 +0200 - build 3036

1. Продолжение 3028.

svs 20.12.2012 11:31:27 +0400 - build 3035

1. SQLite 3.7.15.1

2. Артефакты прорисовки в InfoPanel

drkns 19.12.2012 22:50:44 +0200 - build 3034

1. В menu2 "нажимались" grayed & disabled элементы.

2. Продолжение 3028.

svs 19.12.2012 13:13:17 +0400 - build 3033

1. Mantis#0002207: SetDirectoryW() всегда передает в поле SetDirectoryInfo->UserData NULL
   Продолжаем. Переделан механизм - ищем UserData не по имени, а берем из конкретного элемента панели.
   Поисковик по прежнему отдает NULL.

drkns 19.12.2012 02:42:37 +0200 - build 3032

1. Продолжение 3028.

svs 18.12.2012 11:28:12 +0400 - build 3031

1. Mantis#0002224: фильтрацию элементов меню оуществлять и по RAlt
   (from samlyukov)

2. Mantis#0002226: Транслитерация в фильтрах меню
   (from DAtaMan)

drkns 17.12.2012 21:17:21 +0200 - build 3030

1. При изменении групп масок файлов раскраска обновляется незамедлительно.

2. Не работала мышь в меню групп масок.

lort 17.12.2012 19:13:09 +0400 - build 3029

1. Проблемы с F11 и F12 в меню (Mantis#0002225)

2. Диалогам теперь приходит F11 через DN_CONTROLINPUT

drkns 16.12.2012 21:55:11 +0200 - build 3028

1. Расширим и углубим встроенный детектор утечек памяти.
   Для debug-билдов при выходе статистика выводится на экран.

2. Утечки памяти в классе Language и функции GetVHDName().

3. Добавлен аналогичный счетчик для аллокаций/освобождений, выполняемых плагином. Пока что только для SCTL_CREATE/SCTL_FREE.

shmuel 16.12.2012 20:48:37 +0200 - build 3027

1. Рефакторинг.

drkns 15.12.2012 20:37:00 +0200 - build 3026

1. В user menu некорректно обрабатывался hotkey '}'.

shmuel 16.12.2012 08:50:59 +0200 - build 3025

1. Уточнение 3016.1.

drkns 15.12.2012 20:37:00 +0200 - build 3024

1. В user menu некорректно обрабатывался hotkey ':'.

2. Добавим const в ImportedFunctions.

shmuel 15.12.2012 19:44:50 +0200 - build 3023

1. Рефакторинг.

drkns 15.12.2012 19:15:29 +0200 - build 3022

1. Уточнение 3021.

   Напоминаю, что для динамической линковки существует специальный класс ImportedFunctions, в котором уже всё есть.
   Изобретать велосипеды нет необходимости.

w17 15.12.2012 20:54:59 +0400 - build 3021

1. Уточнение 3019.

drkns 15.12.2012 12:32:56 +0200 - build 3020

1. С форума: Неудобное поведение списка автодополнения в диалогах

w17 15.12.2012 13:20:40 +0400 - build 3019

1. M#0002223: Bad date time format at time 00:01
   Правильный показ времени. Должно совпадать с win7 explorer.
   Note: dir и xp explorer показывают время неправильно, если время файла из daylight текущее время std и наоборот.
	Если где-то быдет показывать неверно - собщайте (обращайте внимание на FAT...)

drkns 15.12.2012 00:38:42 +0200 - build 3018

1. Analyzer warnings.

drkns 14.12.2012 21:27:36 +0200 - build 3017

1. Уточнение 2059.

shmuel 14.12.2012 20:06:29 +0200 - build 3016

1. После перезагрузки плагина LuaMacro вызовы макросов приводили к ошибкам.
   Теперь после перезагрузки плагина макросы не загружены, но их можно загрузить командой lm:load.

2. Плагин LuaMacro: новая команда lm:unload - выгружает все макросы.

lort 14.12.2012 17:54:22 +0400 - build 3015

1. Не заполнялось поле FarGetPluginInformation.GInfo->MinFarVersion при вызове PCTL_GETPLUGININFORMATION

svs 14.12.2012 17:00:22 +0400 - build 3014

1. SQLite 3.7.15

svs 14.12.2012 16:33:53 +0400 - build 3013

1. Mantis#0002210: DIF_SEPARATOR всегда центрирует текст
   Центрирование происходит если указан флаг DIF_CENTERTEXT или X1=-1, иначе текст рисуется с позиции X1.

2. Mantis#0000269: Добавить "умный" DIF_SEPARATOR
   "Вернемся к нашим баранам".
   Это называется
       DIF_SEPARATORUSER = 0x0000000000080000ULL

   DI_TEXT и DI_VTEXT с флагом DIF_SEPARATORUSER:
      а) должны быть указаны обе координаты X1 и X2 (Y1 и Y2 для DI_VTEXT)
      б) в FarDialogItem::Mask содержится набор из трех символов, описывающих сепаратор - ожидается Це-строка в 3 символа "Лево-Середина-Право"/"Верх-Середина-Низ".
         Недостающие до 3-х символы для такого сепаратора будут содержать пробелы.
         Если FarDialogItem::Mask=nullptr, то используются стандартные сепараторы.

3. Dialog API: Добавлен флага DIF_RIGHTTEXT
	DIF_RIGHTTEXT  = 0x0000000400000000ULL

   DIF_RIGHTTEXT - выравнивание текста (для рамок - заголовка) по правому краю.
      Применим для DI_TEXT, DI_VTEXT, DI_SINGLEBOX, DI_DOUBLEBOX
      При указании этого флага вы должны обязательно корректно заполнить координаты X1,X2 (для DI_TEXT) и Y1,Y2 (для DI_VTEXT).

4. Mantis#0000002: DIF_WORDWRAP
	DIF_WORDWRAP   = 0x0000000800000000ULL

   DIF_WORDWRAP - перенос текста по словам.
      Применим для DI_TEXT
      Здесь учитывается вся геометрия элемента (X1, Y1, X2, Y2)
      Усекает очередное слово, если оно не вмещается по ширине элемента.
      Совместно с DIF_WORDWRAP можно применять DIF_RIGHTTEXT, DIF_CENTERTEXT и DIF_SHOWAMPERSAND (остальное в игнор).
      Разделителем строк считается символ '\n'.


   АХТУНГ! ...в плане прорисовки там, где был полный игнор координат для DI_TEXT/DI_VTEXT


zg 14.12.2012 02:09:58 +0200 - build 3012

1. уточнение 3010.

drkns 14.12.2012 00:44:47 +0200 - build 3011

1. Для шоткатов на плагиновые папки теперь выводится подробная информация, их можно переименовывать и редактировать.

2. Рефакторинг.

shmuel 14.12.2012 00:32:18 +0200 - build 3010

1. Восстановим работу фичи из 2882, поломанную в 2999.

svs 13.12.2012 15:21:08 +0400 - build 3009

1. Mantis#0002207: SetDirectoryW() всегда передает в поле SetDirectoryInfo->UserData NULL

   Есть вызовы такие:

    SetDirectory(0)
    SetDirectory("..")
    SetDirectory("\")
    SetDirectory(ИМЯ)

   только в последнем случае ФАР передает UserData (пока так)

   Есть тонкие моменты. Включать путем добавки ключа компиляции /DMANTIS_0002207 (для проверки!)
     Это про поисковик и PluginManager::CallPlugin

drkns 12.12.2012 23:46:06 +0200 - build 3008

1. 0002201: При вводе\редактировании в меню новой команды или меню нет запроса на подтверждение выхода по нажатию ESC, если данные не сохранены.

drkns 12.12.2012 23:16:57 +0200 - build 3007

1. 0002221: Unable to see "Network path" for disconnected drive

shmuel 12.12.2012 16:28:12 +0200 - build 3006

1. Рефакторинг.

svs 12.12.2012 17:55:40 +0400 - build 3005

1. SetDirectoryInfo::UserData.
   Добавка необязательного параметра intptr_t UserData (=0) во внутренние функции PluginManager::SetDirectory, PluginA::SetDirectory и Plugin::SetDirectory.

drkns 12.12.2012 01:10:26 +0200 - build 3004

1. При сохранении макросов вместо флагов записывался мусор и производились попытки сохранять ненужные флаги.

shmuel 10.12.2012 16:18:18 +0200 - build 3003

1. Уточнение 3002.1.

shmuel 09.12.2012 23:31:07 +0200 - build 3002

1. При начальной загрузке макросов была индикация исполнения макроса в левом верхнем углу экрана.

2. Если при начальной загрузке макросов происходила ошибка, Фар показывался с пустыми панелями.

shmuel 09.12.2012 15:57:57 +0200 - build 3001

1. Макросы переехали из macros.db в папку %FARPROFILE%\Macros и содержатся в Lua-файлах.

drkns 08.12.2012 23:28:08 +0200 - build 3000

1. 0002219: Ошибка PCTL_GETPLUGININFORMATION

2. Ещё немного рефакторинга.

shmuel 08.12.2012 22:57:29 +0200 - build 2999

1. far.MacroPost() работал из плагинов, но не из макросов.

lort 07.12.2012 17:12:09 +0400 - build 2998

1. Assertion в отладочной сборке после упаковки файлов.

w17 05.12.2012 16:44:28 +0400 - build 2997

1. продолжение продолжения 2995

w17 05.12.2012 15:31:40 +0400 - build 2996

1. продолжение 2995

w17 05.12.2012 14:53:22 +0400 - build 2995

1. Рефакторинг.

shmuel 05.12.2012 02:46:44 +0200 - build 2994

1. Рефакторинг.

drkns 04.12.2012 21:09:45 +0200 - build 2993

1. Параметр System.QuotedName по умолчанию равен 1 (заключать в кавычки только при вставке в редактор/комстроку).

w17 04.12.2012 17:02:23 +0400 - build 2992

1. Экспериментально. Возвращаем старое поведение...
   При нажатии клавиши с модификаторами RCtrl/RAlt будет исполняться макрос
   назначенный на эту клавишу с модификаторами Ctrl/Alt (если он есть и нет
   макроса явно привязанного к правым модификаторам).

drkns 04.12.2012 01:04:09 +0200 - build 2991

1. Меню не закрывались по клику мыши вне меню. Настройка кликов вне меню тоже не работала.

svs 03.12.2012 17:22:51 +0400 - build 2990

1. Уточнение хелпа, в т.ч. для TI:
   #33 System.MsWheelDelta* & System.MsHWheelDelta*
   #30 Policies.ShowHiddenDrives

drkns 02.12.2012 12:42:54 +0200 - build 2989

1. Продолжение 2987.

drkns 02.12.2012 01:20:47 +0200 - build 2988

1. Продолжение 2987.

drkns 01.12.2012 23:53:07 +0200 - build 2987

1. 0002212: Обрезаются длинные метки дисков
   Ширина всех колонок меню дисков теперь рассчитывается автоматически.

w17 01.12.2012 14:01:35 +0400 - build 2986

1. fix(2985) - фар падал при сохранении файла в редакторе

drkns 30.11.2012 22:50:38 +0200 - build 2985

1. Продолжаем рефакторинг.

w17 30.11.2012 05:44:35 +0400 - build 2984

1. vs 2010 buildable fix(2983). gcc < 4.6.1 is not supported anymore

drkns 29.11.2012 23:30:26 +0200 - build 2983

1. Продолжение 2953.

lort 29.11.2012 18:13:34 +0400 - build 2982

1. Неправильно работало DM_SETEDITPOSITION если в EditorSetPosition какой-либо парамет установлен в -1.

drkns 29.11.2012 01:00:22 +0200 - build 2981

1. Продолжение 2953.

w17 29.11.2012 02:57:41 +0400 - build 2980

1. M#1494: Вылет при последовательном закрытии и открытии редактора из плагина.

w17 28.11.2012 19:22:32 +0400 - build 2979

1. не работал поиск в редакторе после '\0'

drkns 28.11.2012 00:23:56 +0200 - build 2978

1. Продолжение 2953.

shmuel 27.11.2012 15:58:53 +0200 - build 2977

1. Продолжение 2976: переименования секций в базе.
   "farconfig/macros/variables" --> "farconfig/macros/modules".
   "farconfig/macros/variables/variable" --> "farconfig/macros/modules/module".
   Если кто-то уже успел создать модули, нужно сделать экспорт из 2976, переименовать секции, импорт в 2977.

shmuel 25.11.2012 19:08:41 +0200 - build 2976

1. Экспериментально: использование секции "farconfig/macros/variables" базы данных для Lua-модулей (библиотек).
   Каждая переменная - модуль. Имена модулей регистрозависимы.
   Например: <variable name="shmuel.utils" type="text"> ...... </variable>
   Пример использования в макросе: utils=require "shmuel.utils"
   ВНИМАНИЕ: "variables" больше не грузятся при старте Фара. Используйте для этого "constants".

svs 25.11.2012 20:06:39 +0400 - build 2975

1. Уточнение GetSearchReplaceString - скрываем кнопку All.

shmuel 25.11.2012 10:44:34 +0200 - build 2974

1. Macro API: добавлено свойство Mouse.LastCtrlState, которое (в отличие от Mouse.CtrlState)
   обновляется как по мышиным, так и по клавиатурным событиям.

drkns 24.11.2012 15:48:39 +0200 - build 2973

1. Продолжение 2972.

w17 23.11.2012 18:15:56 +0400 - build 2972

1. Продолжение 2791
   Не работали [System Properties] в диалоге атрибутов файла на старых версиях Windows

shmuel 23.11.2012 11:51:43 +0200 - build 2971

1. Plugins API: в функциях GetDirList и FSF.FarRecursiveSearch некоторые поля структуры PluginPanelItem
   содержали мусор.

shmuel 22.11.2012 19:58:34 +0200 - build 2970

1. Из форума: Menu.Show(Items,"",0x8+0x80,Idx) не происходит позиционирование на пункт с номером Idx.

drkns 22.11.2012 19:41:01 +0200 - build 2969

1. Лишний вызов SetCurrentDirectory в запускателе.

lort 22.11.2012 21:06:41 +0400 - build 2968

1. Падение при копировании выделенного блока во вьювере.

shmuel 21.11.2012 23:59:49 +0200 - build 2967

1. Уточнение 2966.

shmuel 21.11.2012 22:19:38 +0200 - build 2966

1. M#2163: LUA: не работает флаг DisableOutput

w17 21.11.2012 22:16:55 +0400 - build 2965

1. Отвалился truemod aka нет регуляркам (from sonar)

drkns 21.11.2012 00:02:24 +0200 - build 2964

1. Продолжение 2953.1.

drkns 20.11.2012 21:44:24 +0200 - build 2963

1. 0002203: Не работал импорт

drkns 20.11.2012 21:31:35 +0200 - build 2962

1. 0002202: Падение при загрузке/выгрузке плагина

svs 20.11.2012 13:03:29 +0400 - build 2961

1. Дубликаты хоткеев в диалоге "Параметры менеджера плагинов" и настройки вьювера

2. Уточнение хелпа, в т.ч. для TI:
   #15 System.SetAttrFolderRules
   #29 System.WipeSymbol
   #31 System.FlagPosixSemantics
   #37 System.ShowCheckingFile
   #63 System.PluginMaxReadData
   #51 System.SilentLoadPlugin
   #17 System.ExceptRules
   #23 System.CopyBufferSize
   #36 System.SubstNameRule
   #42 System.SubstPluginPrefix
   #69 System.CopySecurityOptions
   #25 Interface.CursorSize1..Interface.CursorSize4
   #1  Editor.WordDiv
   #19 Editor.ReadOnlyLock
   #20 Editor.FileSizeLimit
   #16 XLat.WordDivForXlat

3. Удалена опция Options::MaxPositionCache ("System.MaxPositionCache", TechInfo #11) - не удаленный раритет.

4. Удалена опция Options::Dialogs.SelectFromHistory ("Dialog.SelectFromHistory", TechInfo #41) - не удаленный раритет.

svs 20.11.2012 12:48:10 +0400 - build 2960

1. Очепятки

2. Одинаковые хоткеи в диалоге настройки редактора

svs 20.11.2012 11:01:50 +0400 - build 2959

1. Содержимое Edit::Search() перенесено в SearchString()

2. Переделан GetSearchReplaceString()
   Добавлены парамтры Title и SubTitle
   Параметры Case, WholeWords, Reverse и Regexp теперь поинтеры.
   Если один из этих параметров равен nullptr, то соответствующая опция в диалоге переводится в Disable (или надо прятать?)

2. Help: продолжаем мучать поиск.
   Теперь доступны опции Case, WholeWords и Regexp
   Первоначальные опции берутся из глобальных значений:

      Case             Global->GlobalSearchCase         (как у редактора)
      WholeWords       Global->GlobalSearchWholeWords   (как у редактора)
      Regexp           Global->Opt->HelpSearchRegexp    (самостоятельная, "Help.HelpSearchRegexp" типа Bool)

   Дальше:
     Необходимо очередную строку файла "очищать" от элементов разметки перед подачей в SearchString()

drkns 19.11.2012 23:08:59 +0200 - build 2958

1. С форума: если в диалоге far:config нажать Enter на булевой величине, то падаем.

drkns 19.11.2012 23:04:39 +0200 - build 2957

1. Продолжаем давить глобальные переменные.

drkns 19.11.2012 13:47:53 +0200 - build 2956

1. Уточнение 2953.1.

w17 19.11.2012 14:53:38 +0400 - build 2955

1. Уточнение 2926
   В результате рефакторинга потерялся флаг 'plugin' из-за чего не грузились настройки плагинов из умолчательного конфига.

shmuel 19.11.2012 12:11:54 +0200 - build 2954

1. Макрофункция Far.Cfg_Get() работает для всех настроек, которые выводятся по far:config.

drkns 18.11.2012 20:44:29 +0200 - build 2953

1. Скажем "нет!" наркоти^W глобальным переменным и особенно глобальным объектам, инициализирующимся в случайном порядке.
   Часть 1: Теперь есть один глобальный объект Global, просьба всё пихать в него, а не по hpp-файлам.
   Продолжение следует.

2. В качестве бонуса к п. 1 - функция-обработчик диалога и функция-исполнятор треда теперь могут быть членами класса.

drkns 18.11.2012 09:55:22 +0200 - build 2952

1. Уточнение выравнивания для отладочных билдов.

shmuel 18.11.2012 01:29:46 +0200 - build 2951

1. Фар падал, если в макросе сразу после Plugin.Call() вызывался msgbox(), а в нём нажимали Esc,
   при том, что в диалогах на Esc был назначен макрос.

svs 13.11.2012 20:32:42 +0400 - build 2950

1. Первое приближение поиска в хелпе.
   Как обычно клавиша F7.
   Результаты - в виде ссылок на найденные темы.

   Поиск пока туп, ищет вхождение введенной подстроки в очередной строке считываемой из текущего файла помощи.

   Дальше:
   1. Выловить жуков
   2. Вместо GetString(...) заюзать GetSearchReplaceString(false,...) со всеми свистелками и перд... (поля Case, WholeWords и Regexp)
   3. что-то еще

zg 12.11.2012 15:08:38 +0200 - build 2949

1. с форума: Far.DisableHistory только у меня перестал работать ?

lort 11.11.2012 16:47:46 +0400 - build 2948

1. Если меню не помещается по высоте, рисуем его вверх.

w17 11.11.2012 16:31:30 +0400 - build 2947

1. Ещё уточнение 2943

lort 11.11.2012 15:27:16 +0400 - build 2946

1. Уточнение 2944

w17 11.11.2012 09:54:32 +0400 - build 2945

1. Уточнение 2943

t-rex 11.11.2012 03:34:35 +0200 - build 2944

1. Исправились различные баги в новом меню, например:
   - right click в меню дисков вызывал emenu два раза
   - при фильтре (CtrlAltF) в меню фильтров, BS не редактировал фильтр
   Смысл исправления таков: VMenu2:Call() (т.е. функция обработки меню)
   должна возвращать true если она обработала событие и дальше ничего делать не надо
   (вне зависимости что говорит енц. о кодах возврата различных DN_*).
   До этого была какая то мешанина.

w17 10.11.2012 22:33:19 +0400 - build 2943

1. Fix for viewer search with persistent selection off.

drkns 10.11.2012 20:17:07 +0200 - build 2942

1. Очередной глюк новых меню - у обычных диалогов InitDialogObjects() вызывалась дважды, иногда с интересными последствиями.

lort 09.11.2012 23:06:48 +0400 - build 2941

1. Не убиралось с экрана окно печати (M#2193.1)

2. Неправильно расчитывались координаты меню.

3. Во врапере не работали ECTL_REALTOTAB, ECTL_TABTOREAL и ECTL_SELECT

t-rex 09.11.2012 17:29:21 +0200 - build 2940

1. Настройка в "Right click selects files" в "Panel Settings".

shmuel 08.11.2012 18:25:29 +0200 - build 2939

1. M#2192: артефакты после ошибок загрузки макросов.

shmuel 08.11.2012 10:38:50 +0200 - build 2938

1. Уточнение 2923 (перенос вызова _control87 из Фара в плагин LuaMacro).

t-rex 07.11.2012 20:33:12 +0200 - build 2937

1. При запуске файлов по ассоциациям, когда ассоциированная аппликация не успешно определялась фаром
   но запуск происходил успешно, показывалась ошибка запуска.
   Особенно актуально в Windows 8 при ассоциациях на метро аппликации.

lort 07.11.2012 21:56:16 +0400 - build 2936

1. При открытом меню автодополнения нельзя было ввести "." с цифровой клавиатуры.

shmuel 06.11.2012 21:41:14 +0200 - build 2935

1. M#2189: Keys('CtrlX') в редакторе всегда использует виндовый клипборд.

lort 06.11.2012 20:21:06 +0400 - build 2934

1. Не работали Dlg.Id и Dlg.Owner при открытом меню автодополнения.

2. Уточнение 2897.3

w17 06.11.2012 14:08:45 +0400 - build 2933

1. viewer dump mode autodetect fixed

w17 06.11.2012 09:49:47 +0400 - build 2932

1. уточнение 2915

shmuel 05.11.2012 18:00:53 +0200 - build 2931

1. Уточнение 2923 ("debug asserion failed" на x64).

w17 05.11.2012 18:18:43 +0400 - build 2930

1. M#2187: Не рабочий "@" и SilentExternal для вызова внешнего Вьювера и\или Просмотрщика

w17 05.11.2012 06:29:56 +0400 - build 2929

1. M#2185: Ошибка при установке цветов раскраски файлов групп сортировки

shmuel 04.11.2012 01:06:54 +0200 - build 2928

1. M#2183: Не возможно макросом вставить конец строки.

drkns 03.11.2012 19:26:52 +0200 - build 2927

1. Ещё пара мелочей.

drkns 03.11.2012 17:42:08 +0200 - build 2926

1. Продолжим рефакторинг configdb.

2. Рефакторинг BitFlags.

zg 03.11.2012 17:01:30 +0200 - build 2925

1. уточнение VCTL_SETKEYBAR и Param2=-1.

drkns 02.11.2012 23:59:11 +0200 - build 2924

1. Уточнение 2920.

shmuel 02.11.2012 23:03:34 +0200 - build 2923

1. Экспериментально: предотвращение падений при делении на ноль из-за плагинов, включающих FPU exceptions.

shmuel 02.11.2012 17:59:31 +0200 - build 2922

1. Упорядочена структура FarMacroCall.

drkns 02.11.2012 02:18:10 +0200 - build 2921

1. Продолжение 2920.

drkns 02.11.2012 02:05:17 +0200 - build 2920

1. Порефакторим немного configdb.

zg 01.11.2012 23:05:49 +0200 - build 2919

1. удалена OPEN_FROM_MASK за ненужностью.

zg 01.11.2012 22:16:49 +0200 - build 2918

1. ViewerMode.Type -> ViewerMode.ViewMode.

2. VSMT_HEX -> VSMT_VIEWMODE.

w17 01.11.2012 18:06:23 +0400 - build 2917

1. уточнение 2913, 2914, 2916 - не загружались 'panelmodes'

w17 01.11.2012 16:05:57 +0400 - build 2916

1. уточнение 2913, 2914
   Имя параметра в Far.exe.ini изменено на TemplateProfile.
   По умолчанию это путь к ФАЙЛУ (%FARHOME%\Default.farconfig).

w17 01.11.2012 12:52:48 +0400 - build 2915

1. M#2181: падение после VE_READ.

w17 31.10.2012 11:54:41 +0400 - build 2914

1. уточнение 2913 - чиним поломаный экспорт

w17 30.10.2012 20:12:55 +0400 - build 2913

1. M#2177: Сделать возможность создания настроек/профиля по умолчанию
   Настройки импортируются из файла Default.farconfig, его расположение
   можно задать в параметре TemplateProfileDir Far.exe.ini (умолчание %FARHOME%\Default),
   или в командной строке '/t "TemplateDir"'.  Настройки импортируются в момент первого
   открытия файлов б.д. настроек и только если файл отсутствует.

zg 30.10.2012 00:20:23 +0200 - build 2912

1. в OpenShortcutInfo добавлено поле Flags. FOSF_ACTIVE устанавливается,
   если OPEN_SHORTCUT вызывается для активной панели
   и не устанавливается для пассивной панели.

2. от Alexey Samlyukov: FarMacroValue.Length -> FarMacroValue.Size

lort 29.10.2012 18:35:55 +0400 - build 2911

1. Вернем перерисовку экрана в деструкторе диалога.

2. Меню истории оставалось на экране после запуска команды, которая ничего на экран не выводит.

shmuel 29.10.2012 16:02:33 +0200 - build 2910

1. Если макрос, запущенный из редактора или вьювера, начинался с mf.waitkey(0),
   то не появлялся символ исполнения макроса 'P' в левом верхнем углу экрана.

drkns 28.10.2012 21:40:06 +0200 - build 2909

1. Warnings.

zg 28.10.2012 17:11:29 +0200 - build 2908

1. gcc warnings.

zg 28.10.2012 01:57:25 +0200 - build 2907

1. ACTL_GETWINDOWINFO неверно возвращал Type и TypeName для меню.

2. ACTL_GETWINDOWTYPE неверно возвращал Type для меню.

3. получение заголовков для меню не работало.

zg 27.10.2012 23:55:03 +0200 - build 2906

1. регрессия 1605.2.

zg 27.10.2012 22:54:17 +0200 - build 2905

1. уточнение 2882.

shmuel 27.10.2012 20:52:46 +0200 - build 2904

1. Если плагин при вызове OPEN_FROMMACRO возвращает 1 или INVALID_HANDLE_VALUE, то Plugin.Call возвращает true.

shmuel 25.10.2012 22:48:24 +0200 - build 2903

1. Уточнение 2898.

2. Из форума: во время работы макроса срабатывают другие макросы - то есть, вместо узнавания
   имени клавиши происходит исполнение макроса (если он есть).

shmuel 25.10.2012 12:10:48 +0200 - build 2902

1. Уточнение 2898.

w17 25.10.2012 13:41:27 +0400 - build 2901

1. M#2179, RCtrlIns/Num0 не обрабатываются в FastFind (для получения текста достаточно CtrlIns)

lort 24.10.2012 19:07:51 +0400 - build 2900

1. Исправление перерисовки в автодополении.

2. Запретим CtrlF5 в истории и F11 в меню плагинов.

shmuel 24.10.2012 01:52:21 +0200 - build 2899

1. Асинхронный вызов Plugin.Call возвращает:
   - false, если плагин не найден
   - true, если вызов по факту оказался асинхронным
   - иначе, как при синхронном вызове

shmuel 24.10.2012 00:16:56 +0200 - build 2898

1. M#2170: Не работает "асинхронный" режим Plugin.Call, который должен включаться командой mmode(3, 1).

lort 23.10.2012 19:19:23 +0400 - build 2897

1. Все меню переделаны на основе диалогов, класс VMenu используется теперь только для реализации
   DI_LISTBOX и DI_COMBOBOX, в остальных местах VMenu2.

2. DN_LISTHOTKEY теперь приходит только когда действительно была нажата горячая клавиша.

3. Списки без флага DIF_LISTNOCLOSE закрывают диалог при отпускании кнопки мыши, а не при нажатии.

shmuel 21.10.2012 10:41:54 +0200 - build 2896

1. Если у макроса флаг DisableOutput, и Plugin.Call() выводил диалог, то он не появлялся на экране.

shmuel 20.10.2012 19:43:21 +0200 - build 2895

1. К четырём типам данных, которые может возвращать Plugin.Call, добавился ещё один:
   "бинарная величина" - это string, который может содержать любые данные и который
   не подвергается преобразованию UTF-16LE -> UTF-8.

zg 20.10.2012 11:21:39 +0200 - build 2894

1. уточнение 2893.

shmuel 20.10.2012 08:21:04 +0200 - build 2893

1. Plugin.Call может возвращать одну или более величин, каждая из которых может быть:
   целым 64-битным числом, числом с плавающей точкой, строкой или булевой величиной.
     - Для этого вызываемый плагин должен заполнить структуру FarMacroCall и возвратить указатель на неё.
     - Данная структура должна быть либо статической, либо аллоцированной, т.е. нельзя размещать её
       в стеке функции OpenW.
     - Если в структуре указан не нулевой Callback, то эта функция будет вызвана.
       На момент вызова Callback данные уже скопированы, и их можно освобождать.
   Если плагин хочет просто вернуть true или false, он должен вернуть соответственно 1 или 0.
   Изменение, введенное в билде 2891, данным изменением отменяется.

shmuel 19.10.2012 15:49:37 +0200 - build 2892

1. Рефакторинг.

shmuel 18.10.2012 23:55:32 +0200 - build 2891

1. Plugin.Call возвращает 0, если плагин не найден (то-есть, как это было до перехода на Lua).

svs 15.10.2012 17:47:39 +0400 - build 2890

1. "Очепятки"

svs 15.10.2012 12:09:58 +0400 - build 2889

1. ФАРоконстанты (для MsX и еже с ним выделены константы в "правильных местах")

2. SZLOG удален - юзаем стд., например, _SHMUEL (подробнее в SYSLOG-RU)

3. Удалены MACRO_OP_*

shmuel 15.10.2012 01:36:45 +0200 - build 2888

1. Рефакторинг.

shmuel 14.10.2012 15:29:04 +0200 - build 2887

1. Немного упрощён протокол передачи данных Far->LuaFAR->LuaMacro.

zg 14.10.2012 04:05:26 +0200 - build 2886

1. если при инициализации макроса произошла ошибка, то после этого верхний левый символ экрана "замораживался".

shmuel 13.10.2012 14:23:03 +0200 - build 2885

1. Если макрос, запущенный из плагина, начинался в панелях, а его последним действием был
   переход в редактор или вьювер, то неправильно отображался верхний левый символ экрана.

zg 12.10.2012 03:04:19 +0200 - build 2884

1. уточнение 2882.

zg 12.10.2012 01:24:21 +0200 - build 2883

1. уточнение 2882.

zg 11.10.2012 23:22:48 +0200 - build 2882

1. экспериментально.
   в интерактивных объектах, таких как диалоги, созданныx из макросов, работают макросы.

zg 11.10.2012 21:24:04 +0200 - build 2881

1. фар падал при отсутствии плагина luamacro и наличии макросов.

shmuel 11.10.2012 17:14:46 +0200 - build 2880

1. Восстановлена работа функции MacroControl(MCTL_GETLASTERROR), со следующими изменениями:
   - ErrCode может иметь только 2 значения: MPEC_SUCCESS и MPEC_ERROR.
   - ErrPos.X не несёт никакой информации; должен игнорироваться.

shmuel 09.10.2012 11:34:47 +0200 - build 2879

1. Функция MacroControl(MCTL_SENDSTRING,MSSC_CHECK) проверяет также и файлы, если Sequence[0]=='@'.

t-rex 08.10.2012 21:26:43 +0200 - build 2878

1. Исправления во враппере для ECTL_EXPANDTABS, ECTL_GETBOOKMARKS и ECTL_GETSTACKBOOKMARKS.

2. BookmarkCount и SessionBookmarkCount теперь size_t в EditorInfo, для однообразия с EditorBookmarks.
   (На работу плагинов не влияет).

shmuel 08.10.2012 08:29:17 +0200 - build 2877

1. Fix: (в редакторе) "после вызова макроса текст выводиться на экран тока если нажать какую то клавишу".

t-rex 07.10.2012 15:56:20 +0200 - build 2876

1. Ворнинги, выставлен тип MACROMODEAREA везде где надо.

shmuel 07.10.2012 09:13:46 +0200 - build 2875

1. Из форума: Кавычки (") в макросах больше не поддерживаются.

shmuel 07.10.2012 00:43:45 +0200 - build 2874

1. Выдадим сообщение при попытке записи макроса при незагруженном плагине LuaMacro.
   (M#2161: Не работают макросы, если отустствует необходимый набор dll луо).

zg 07.10.2012 00:17:08 +0200 - build 2873

1. ECTL_EXPANDTABS - Param2 ожидается как поинтер на intptr_t.
   x64 плагины надо подправить, если используется ECTL_EXPANDTABS.

2. ошибка в ECTL_SETKEYBAR, когда Param2==-1.

t-rex 06.10.2012 20:40:23 +0200 - build 2872

1. x64 warnings in DialogBuilder.

t-rex 06.10.2012 18:48:30 +0200 - build 2871

1. Для FSF функций убрал intptr_t там где совсем нет смысла,
   x64 плагины надо пересобрать и подправить если юзаеться qsort/bsearch/FarRecursiveSearch.

svs 05.10.2012 13:55:08 +0400 - build 2870

1. SQLite 3.7.14.1

shmuel 05.10.2012 01:49:35 +0200 - build 2869

1. M#2159: Plugin.Menu ожидает закрытия меню и НЕ дает работать Keys() для выбора хоткея в меню

2. Макрофункции Plugin.Menu, Plugin.Config и Plugin.Command возвращают false/true.

w17 04.10.2012 16:37:06 +0400 - build 2868

1. Visible leading space(s) in dialog static text

w17 04.10.2012 15:26:15 +0400 - build 2867

1. 0002167: Crash on Copy File/Folder Interrupt

zg 04.10.2012 05:41:56 +0200 - build 2866

1. ECTL_SETPOSITION не работала во врапере.

w17 03.10.2012 23:49:25 +0400 - build 2865

1. Viewer assert for looooooooooong lines

shmuel 03.10.2012 16:05:55 +0200 - build 2864

1. Запретим запись макросов при незагруженном плагине LuaMacro.
   (M#2161: Не работают макросы, если отустствует необходимый набор dll луо).

w17 03.10.2012 12:50:50 +0400 - build 2863

1. Сломался локальный [x] ShowWhiteSpace в редакторе (и не только)

drkns 02.10.2012 22:11:59 +0200 - build 2862

1. 0002165: Отмена выбора кодировки

shmuel 02.10.2012 18:40:00 +0200 - build 2861

1. По ошибке были стёрты изменения билда 2859.

shmuel 02.10.2012 17:40:00 +0200 - build 2860

1. M#2160: Macro with Menu.Select works in Shell but not in Dialog and Editor.

svs 02.10.2012 17:43:33 +0400 - build 2859

1. Macro: Panel.Item(typePanel,Index,TypeInfo) возвращает true/false для
    TypeInfo = 8 (Selected) и 10 (SortGroup)

2. Macro: panel.setpath(), fexist(), beep(), Window.Scroll() возвращает true/false

shmuel 02.10.2012 14:30:00 +0200 - build 2858

1. M#2162: Фар, используемый как редактор в Git падает при старте (возможно из-за нового макродвижка).

zg 01.10.2012 16:18:35 +0200 - build 2857

1. FAR_LUA убран полностью. код под него не попадавший - тоже.

svs 01.10.2012 16:05:34 +0400 - build 2856

1. Macro: Plugin.Exist(GUID) теперь возвращает true/false.
   Вместо
     if Plugin.Exist(GUID) > 0 then
   пишем
     if Plugin.Exist(GUID) then

shmuel 01.10.2012 03:25:00 +0200 - build 2855

1. Уточнение 2854 для более общего случая.

shmuel 01.10.2012 02:05:00 +0200 - build 2854

1. Ошибка с Dlg.GetValue (from Aidar).

shmuel 30.09.2012 13:50:00 +0200 - build 2853

1. Issue#13: Plugin.Menu ожидает закрытия меню вместо возврата управления сразу после отображения меню.

zg 30.09.2012 03:41:42 +0200 - build 2852

1. убраны FAR_LUA из plugin.hpp.

zg 30.09.2012 03:26:20 +0200 - build 2851

1. слияние с проектом Spring (https://github.com/shmuz/Spring).
   в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
   все макросы перестали работать.

drkns 29.09.2012 15:20:18 +0200 - build 2850

1. Уточнение 2844 для полей с маской ввода.

2. После изменений в api падал far:config.

3. Проекты для vs 2012.

zg 29.09.2012 13:35:44 +0200 - build 2849

1. уточнение 2848: не освобождалась UserData.Data для элементов, не удовлетворявших критериям поиска.

zg 29.09.2012 03:30:26 +0200 - build 2848

1. уточнение 2807.1: освобождение UserData.Data в поиске и некоторых других местах.

drkns 29.09.2012 00:47:40 +0200 - build 2847

1. Закончим (надеюсь) эту возню с codepage. На будущее просьба править нормально, а не расставлять затычки.

w17 28.09.2012 08:45:42 +0400 - build 2846

1. M#2157: Alt-F7: поиск по содержимому файлов безрезультатен на свежих 64-разрядных версиях (aka 2838 continue)

w17 28.09.2012 08:09:25 +0400 - build 2845

1. Вместо пустой строки GETTEXT возвращал L"\0";

drkns 27.09.2012 22:45:22 +0200 - build 2844

1. Если текст в диалоговом поле ввода заканивается пробелами или табуляциями - подсветим их.

drkns 27.09.2012 19:13:43 +0200 - build 2843

1. Из ProcessConsoleInputInfo удален HANDLE hPanel.

w17 27.09.2012 11:58:13 +0400 - build 2842

1. M#2156: Shift-F4: содержимое файла теряется после сохранения (aka 2838 continue)

w17 26.09.2012 10:49:55 +0400 - build 2841

1. ещё одна лишняя

w17 26.09.2012 10:14:11 +0400 - build 2840

1. одна 'опечатка' поправлена зря - вернём

w17 26.09.2012 10:00:52 +0400 - build 2839

1. -typos in dialog.cpp (thnx sonar)

w17 25.09.2012 19:48:01 +0400 - build 2838

1. x64 Editor fix

svs 24.09.2012 11:32:50 +0400 - build 2837

1. Mantis#0001687: ProcessConsoleInput
   Открыто.
   Баги в рамках новых Инцов.

w17 24.09.2012 10:52:12 +0400 - build 2836

1. Debug build fix

zg 23.09.2012 21:22:44 +0200 - build 2835

1. удалена ACTL_EJECTMEDIA.

zg 23.09.2012 20:56:39 +0200 - build 2834

1. от Alexey Samlyukov:
   PluginPanelItem.UserData.UserData -> PluginPanelItem.UserData.Data
   PluginPanelItem.UserData.Callback -> PluginPanelItem.UserData.FreeData

drkns 23.09.2012 20:31:24 +0200 - build 2833

1. intptr_t & DlgBuilder

2. Оставим vswscanf для gcc.

zg 23.09.2012 20:03:02 +0200 - build 2832

1. в vc vswscanf нет.

zg 23.09.2012 19:12:13 +0200 - build 2831

1. в апи некоторые UINT/DWORD заменены на uintptr_t.

zg 23.09.2012 17:19:39 +0200 - build 2830

1. во всём апи int заменён на intptr_t.

zg 23.09.2012 03:09:28 +0200 - build 2829

1. добавлены Reserved в паре структур.

2. поле StructSize добавлено в следующие структуры:
   FarDialogEvent
   FarList

zg 23.09.2012 01:52:19 +0200 - build 2828

1. переделана ViewerMode. Wrap&WordWrap -> Flags. Hex -> Type.

zg 23.09.2012 00:37:48 +0200 - build 2827

1. из PanelMode убрано поле StructSize.

2. из некоторых структур убраны поля Reserved.

drkns 23.09.2012 00:00:16 +0200 - build 2826

1. В настройках редактора новая опция - "cusror at end", если вкл - при поиске курсор установится в конец найденного фрагмента

2. Опция "select found" переехала из диалога поиска в диалог настроек редактора.

zg 22.09.2012 22:38:35 +0200 - build 2825

1. в InfoPanelLine Separator заменён на Flags. добавлен флаг IPLFLAGS_SEPARATOR.
   все нативные плагины перестали работать.

zg 22.09.2012 21:37:30 +0200 - build 2824

1. в ECTL_SETKEYBAR/VCTL_SETKEYBAR вместо KeyBarTitles должна передаваться FarSetKeyBarTitles.

zg 22.09.2012 04:39:38 +0200 - build 2823

1. From Shmuel Zeigerman: уточнение 2822.

zg 22.09.2012 02:25:21 +0200 - build 2822

1. по очевидным причинам поля PInfo и GInfo в FarGetPluginInformation сделаны указателями.
   в работе PCTL_GETPLUGININFORMATION ничего не изменилось.

zg 22.09.2012 01:17:59 +0200 - build 2821

1. поле StructSize добавлено в следующие структуры:
   FarSettingsItem
   FarSettingsEnum
   FarSettingsValue
   все нативные плагины перестали работать.

zg 21.09.2012 17:01:33 +0200 - build 2820

1. по аналогии с редактором из ViewerInfo убрано поле FileName.

2. для получения имени файла добавлен VCTL_GETFILENAME, полностью аналогичный ECTL_GETFILENAME.

3. уточнение 2816 для анси плагинов.

4. все нативные плагины перестали работать.

w17 21.09.2012 13:02:47 +0400 - build 2819

1. M#1870: при Show selected first выделение последнего элемента приводит к "прыжку" курсора на этот элемент

zg 21.09.2012 02:25:27 +0200 - build 2818

1. удалена ACTL_ENABLEREDRAW.

zg 21.09.2012 02:15:53 +0200 - build 2817

1. в EditorInfo добавлено поле SessionBookmarkCount.

zg 21.09.2012 02:01:45 +0200 - build 2816

1. для ECTL_GETFILENAME в Param1 необходимо указывать размер передаваемого буфера.

zg 21.09.2012 00:43:26 +0200 - build 2815

1. EditorBookMarks -> EditorBookmarks. в Size размер выделенной памяти по аналогии с FarGetPluginPanelItem.
   нужный размер можно узнать вызвав ECTL_GETBOOKMARKS/ECTL_GETSESSIONBOOKMARKS.
   в Count возвращается количество букмарк.

zg 20.09.2012 22:32:55 +0200 - build 2814

1. уточнение 2807.1.

zg 20.09.2012 21:24:01 +0200 - build 2813

1. FSF.DeleteBuffer убрана.

2. FSF.CopyToClipboard добавлен 1 параметр - тип блока, кладущегося в клипбоард. FCT_STREAM - потоковый. FCT_COLUMN - вертикальный.
   в случае удачи возвращает TRUE, иначе FALSE.

3. FSF.PasteFromClipboard записывает в Data максимум Length символов, включая '\0', содержимого клипборда. возвращает нужный размер буфера.
   если содержимого нужного типа нет в клипбоарде - возвращает 0.
   FCT_ANY - вернуть любой блок.
   FCT_STREAM - вернуть только потоковый блок.
   FCT_COLUMN - вернуть только вертикальный блок.

4. все нативные плагины перестали работать.

w17 20.09.2012 16:44:39 +0400 - build 2812

1. size_t in Read/Write

zg 20.09.2012 13:28:23 +0200 - build 2811

1. изменения в ProcessPanelEventInfo от Alexey Samlyukov.
   все нативные плагины перестали работать.

2. убраны GetVirtualFindDataInfo, FreeVirtualFindDataW и GetVirtualFindDataW.

lort 19.09.2012 19:52:41 +0400 - build 2810

1. Добавлена команда ACTL_ENABLEREDRAW, Param1=1 - разрешить перерисовку окна фара, Param1=0 - запретить перерисовку.
   Возвращает предыдущее состояние, для получения текущего состояния Param1=-1

w17 19.09.2012 13:40:39 +0400 - build 2809

1. уточнение 2794

zg 19.09.2012 00:47:09 +0200 - build 2808

1. уточнение 2807.1.

zg 18.09.2012 22:33:00 +0200 - build 2807

1. 0001699: Облегчить использование UserData для хранения данных панельным плагинам
   UserData в PluginPanelItem структура.
   UserData - указатель на что угодно.
   Callback - функция, удаляющая UserData.
2. в связи с тем, что плагинописатели не хотят в UserData хранить хендл плагина и требуют его передачи в Callback,
   в FreePluginDirList добавился соответствующий параметр.
   все нативные плагины перестали работать.

zg 17.09.2012 16:55:00 +0200 - build 2806

1. уточнение 2799.

w17 17.09.2012 12:54:32 +0400 - build 2805

1. поправка 2797.1

zg 17.09.2012 03:15:55 +0200 - build 2804

1. DM_GETTEXTLENGTH & DM_GETTEXTPTR удалены.
   некоторые нативные плагины перестали работать.

zg 16.09.2012 20:27:31 +0200 - build 2803

1. в API для длинстрок и смещений внутри строк тип изменен с int на intptr_t.
   все нативные x64 плагины перестали работать. в фаре x64 тоже возможны побочные эффекты.

2. в ViewerSelect тип BlockLen __int64.
   все нативные плагины перестали работать.

zg 16.09.2012 18:29:46 +0200 - build 2802

1. для OPEN_COMMANDLINE вместо указателя на строку передаётся указатель на OpenCommandLineInfo.
   все нативные плагины перестали работать.

zg 16.09.2012 17:12:23 +0200 - build 2801

1. поле StructSize добавлено в следующие структуры:
   EditorServiceRegion
   EditorSetParameter
   EditorUndoRedo
   EditorGetString
   EditorSetString
   EditorInfo
   EditorBookMarks
   EditorSetPosition
   EditorSelect
   EditorConvertPos
   EditorSaveFile
   все нативные плагины перестали работать.

zg 16.09.2012 15:48:35 +0200 - build 2800

1. поле StructSize добавлено в следующие структуры:
   ViewerSetMode
   ViewerSelect
   ViewerSetPosition
   все нативные плагины перестали работать.

zg 16.09.2012 14:35:28 +0200 - build 2799

1. поле StructSize добавлено в следующие структуры:
   FarGetPluginPanelItem
   PanelRedrawInfo
   CmdLineSelect
   ActlEjectMedia
   ActlMediaType
   FarGetValue
   FarSetColors
   ProgressValue
   все нативные плагины перестали работать.

w17 12.09.2012 01:00:31 +0400 - build 2798

1. Editor [Shift]F8 and KeyBar

w17 11.09.2012 18:33:46 +0400 - build 2797

1. M#868: Порча текста при смене кодировки на "несовместимую" -- добавлена кнопка [Show]

2. M#1555: Если доступ к файлу запрещен, то количество хардлинков всегда 1

svs 07.09.2012 16:44:59 +0400 - build 2796

1. Долой "FARCONFIGMODE"

2. Немного хелпа для TI:
     #9  System.CmdHistoryRule
     #27 System.ConsoleDetachKey
     #34 System.QuotedSymbols
     #50 System.QuotedName
     #38 Interface.AltF9
     #61 Dialog.CBoxMaxHeight
     #44 Editor.EditorUndoSize
     #32 Editor.CharCodeBase
     #13 Editor.BSLikeDel
     #18 Editor.EditorF7Rules
     #67 Editor.AllowEmptySpaceAfterEof
     #24 Interface.ShiftsKeyRules

3. Удалены Interface.ShowTimeoutDACLFiles и Interface.ShowTimeoutDelFiles

4. Добавлена общая Interface.RedrawTimeout

svs 07.09.2012 14:09:44 +0400 - build 2795

1. Немного хелпа для TI:
     #75 Panel.ShellRightLeftArrowsRule
     #43 Panel.Layout.ScrollbarMenu
     #14 Panel.CtrlFRule
     #8  Panel.CtrlAltShiftRule
     #6  Panel.RightClickRule
     #79 System.ExcludeCmdHistory
     #45 System.Executor.RestoreCP
     #49 System.Executor.UseAppPath
     #54 System.Executor.ExcludeCmds
     #74 System.Executor.FullTitle
     #78 Interface.FormatNumberSeparators
     #73 System.Executor.BatchType

2. ФАР выставляет переменную среды FARCONFIGMODE = RO, если работает с базами конфигурации
   в readonly-режиме (указан параметр ком.строки "/ro").
   В нормальном режиме работы с базами переменная FARCONFIGMODE отсутствует.

w17 05.09.2012 16:19:47 +0400 - build 2794

1. M#2135: typing 'shift + letter' diacritic sequence also outputs the + character
   (from Maximus)

svs 04.09.2012 20:02:31 +0400 - build 2793

1. SQLite 3.7.14

2. Mantis#0002141: Не работает $AKey в макросах на MsWheelUp/MsWheelDown

3. Немного хелпа для TI:
     #12 Help.ActivateURL
     #47 Confirmations.EscTwiceToInterrupt
     #7  System.AllCtrlAltShiftRule
     #68 System.CASRule

w17 04.09.2012 19:41:42 +0400 - build 2792

1. M#2147 -- UTF7 excluded from FindFile 'AllCodepages'

drkns 27.08.2012 15:26:16 +0200 - build 2791

1. Не работал вызов свойств из меню дисков в старых версиях Windows.

drkns 25.08.2012 23:22:21 +0200 - build 2790

1. В некоторых случаях открытие информационной панели могло приводить к падению.

w17 14.08.2012 20:17:00 +0400 - build 2789

1. M#0002144: Не сохраняется изменение переключателя Interface.CtrlPgUp

w17 13.08.2012 13:40:46 +0400 - build 2788

1. continue 2787

w17 09.08.2012 17:32:48 +0400 - build 2787

1. far:config hex int editor

2. far:config BOOLEAN3 (3-state checkbox)

3. far:config help

4. other help corrections and minor code fix

w17 08.08.2012 15:51:16 +0400 - build 2786

1. M#2142: Задавать каталог для хранения настроек раздельно для историй/кэша и остальных настроек
   В Far.exe.ini добавлен параметр UserLocalProfileDir, также его можно задать в комстроке

w17 06.08.2012 08:23:39 +0400 - build 2785

1. уточнение 2782

w17 31.07.2012 13:43:58 +0400 - build 2784

1. FileList fix (M#2114)
   Инициализируем всех мемберов, корректируем номера отмеченных элементов при обновлении.

w17 30.07.2012 22:12:25 +0400 - build 2783

1. VMENU_WRAPMODE снова используется для DI_LISTBOX
   Если есть флаг - wrap-stop, иначе wrap-нет:)

w17 29.07.2012 13:54:09 +0400 - build 2782

1. M#2139: inconsistent error message when trying to create a file with same name as existing directory

w17 28.07.2012 22:39:24 +0400 - build 2781

1. снова 2754

w17 28.07.2012 19:35:45 +0400 - build 2780

1. ещё поправка для 2766

w17 25.07.2012 17:59:51 +0400 - build 2779

1. M#2138 Не работает Shift-F1 для смены архиватора

w17 25.07.2012 15:52:30 +0400 - build 2778

1. ещё 2766 - не все проверки были отключены

w17 25.07.2012 14:31:47 +0400 - build 2777

1. уточнение wrap-stop для custom с DN_GETVALUE.

w17 25.07.2012 13:20:38 +0400 - build 2776

1. ещё раз уточнение 2754

w17 25.07.2012 12:56:49 +0400 - build 2775

1. продолжение 2766
   VMENU_WRAPMODE игнорируется - все списки (custom с DN_GETVALUE тоже) в режиме wrap-stop.
   если возражений не будет - VMENU_WRAPMODE кандидат на полное удаление.

w17 25.07.2012 00:57:48 +0400 - build 2774

1. M#0002137: VCTL_GETINFO возвращает true, даже если нет открытых вьюверов

w17 24.07.2012 12:36:10 +0400 - build 2773

1. keyboard.cpp - убран ненужный(?) кусок кода

w17 23.07.2012 13:36:10 +0400 - build 2772

1. Запускатель и Opt.Clock

drkns 20.07.2012 13:32:50 +0200 - build 2771

1. Уточнение запускателя.

w17 20.07.2012 01:10:43 +0400 - build 2770

1. уточнение 2675

drkns 19.07.2012 23:35:49 +0200 - build 2769

1. Если не удалось получить размер свободного места на диске - показываем в статусной строке панели "?", а не "0".

zg 14.07.2012 16:42:43 +0200 - build 2768

1. при копировании файлов больше 4gb при отключённой функции системного копирования они бились.

w17 13.07.2012 22:29:29 +0400 - build 2767

1. уточнение 2766

w17 13.07.2012 18:10:04 +0400 - build 2766

1. M#0001841, изменено поведение для VMENU_WRAPMODE.
   По мотивам предложения Maximus`a -- http://forum.farmanager.com/viewtopic.php?f=3&t=6563&p=85042&hilit=wrap#p88298

w17 11.07.2012 13:18:34 +0400 - build 2765

1. уточнение 2754.
   проверяйте не поломалось ли что то, что правилось для M#2128.

2. уточнение 2764.

w17 09.07.2012 13:32:49 +0400 - build 2764

1. имя plugincache.db меняется в зависимости от архитектуры процессора.
   x86: plugincache32.db, x64: plugincache64.db, IA64: plugincacheIA64.db

w17 09.07.2012 07:59:11 +0400 - build 2763

1. The clock is not working in Far 3 Viewer

w17 09.07.2012 06:50:52 +0400 - build 2762

1. ещё уточнение 2757

w17 08.07.2012 17:22:26 +0400 - build 2761

1. уточнение уточнения 2757 (10x Denis)

w17 08.07.2012 16:50:44 +0400 - build 2760

1. уточнение 2757 (from Shmuel)

drkns 05.07.2012 21:37:04 +0200 - build 2759

1. 0002132: При запуске far из directory junction не работает повышение привелегий

w17 05.07.2012 17:33:42 +0400 - build 2758

1. M#2130: Пропадает содержимое активной панели при открытой панели информации на другой панели.

w17 05.07.2012 11:43:50 +0400 - build 2757

1. M#2129: После запуска FAR отсутствует ".." в корне сетевой шары.

w17 04.07.2012 12:16:35 +0400 - build 2756

1. Редактор может читать и записывать файлы в 2-х байтовых кодировках (932, 936, ...)
   Поэтому незачем прятать их в диалогах для ShiftF2/ShiftF4.

svs 03.07.2012 13:37:10 +0400 - build 2755

1. SQLite 3.7.13

w17 03.07.2012 12:05:08 +0400 - build 2754

1. M#2128: Невозможен просмотр папок содержащих больше 128 файлов на сетевой шаре

w17 28.06.2012 17:15:04 +0400 - build 2753

1. продолжение продолжения 2751

w17 28.06.2012 16:02:33 +0400 - build 2752

1. продолжение 2751

w17 28.06.2012 14:21:36 +0400 - build 2751

1. зацикливание замены в редакторе при обратном поиске
   обратная замена например ';' на ';+' никогда не заканчивалась...

w17 27.06.2012 21:44:29 +0400 - build 2750

1. ещё уточнение 2748 - avoid code duplication

w17 27.06.2012 16:45:39 +0400 - build 2749

1. уточнение 2748

w17 27.06.2012 15:43:12 +0400 - build 2748

1. Изменено название "Use case sensitive sort"
   Лучшие варианты переименования приветствуются.

2. M#0821: Настройка "Сохранять позицию файла" влияет на запоминание кодировки
   Можно сохранять кодировку и не сохранять (точнее не восстанавливать) позицию, обратное невозможно.

3. M#0011: Сохранение wrar/wwrap/unwrap в истории
   В настройках вьювера 2 новые опции для сохранения кодировки и режима переноса.

drkns 24.06.2012 16:21:55 +0200 - build 2747

1. Уточнение 2738.

w17 23.06.2012 21:30:59 +0400 - build 2746

1. M#1632: Исправление позиции клика для кодовых страниц и Goto
   Добавлен клик на ViewMode

w17 22.06.2012 17:48:01 +0400 - build 2745

1. M#1607: ошибка установки времени при копировании на свою шару
   Обходим сюрприз от M$

w17 22.06.2012 01:38:30 +0400 - build 2744

1. Снова 2471 - строим таблицу сортировки, используя обычное упорядочение CompareString

w17 21.06.2012 15:23:20 +0400 - build 2743

1. ещё уточнение 2741

w17 21.06.2012 15:15:05 +0400 - build 2742

1. уточнение 2741

w17 21.06.2012 14:53:36 +0400 - build 2741

1. EXPERIMENTAL. M#1343,2019 Alternative sort mode for 'Use case sensitive sort'
   Это не совсем то, что было в старом фаре, правильнее было бы назвать - Uppercase First

drkns 20.06.2012 20:47:54 +0200 - build 2740

1. Уточнение отображения неизвестных reparse points.

w17 20.06.2012 21:43:35 +0400 - build 2739

1. FileList::Find -- case sensitive/insetsitive compare logic fixed

drkns 17.06.2012 22:01:04 +0200 - build 2738

1. Ключ /i (Set icon for FAR console window) перенесён в настройки интерфейса.
   Там же - возможность устанавливать отдельный значок при запуске от имени администратора.

drkns 17.06.2012 18:36:59 +0200 - build 2737

1. Не работал поиск в ADS.

drkns 17.06.2012 13:10:15 +0200 - build 2736

1. Падение при запуске при отсутствии доступа к стартовому каталогу.

drkns 16.06.2012 16:03:01 +0200 - build 2735

1. Panel.CtrlFRule (TI#14) по умолчанию выключено.

drkns 16.06.2012 01:36:09 +0200 - build 2734

1. Уточнение 2733.

drkns 15.06.2012 23:09:58 +0200 - build 2733

1. elevation: поддержка OpenVirtualDisk и косметические изменения.

w17 15.06.2012 15:30:17 +0400 - build 2732

1. EXPERIMENTAL. M#2103: This version of %1 is not compatible with the version of Windows you're running

svs 14.06.2012 12:58:15 +0400 - build 2731

1. Mantis#0002068: Глюк с размером панелей после выполнения команды (например "pause")

drkns 13.06.2012 09:15:54 +0200 - build 2730

1. cppcheck warnings.

2. В 2724 отвалилось отображение скорости при копировании в nul.

3. Используем более стандартные [u]intptr_t вместо <INT|LONG|DWORD>_PTR.

drkns 11.06.2012 16:18:00 +0200 - build 2729

1. При "auto save setup" некорректно сохранялись группы раскраски.

drkns 09.06.2012 19:34:06 +0200 - build 2728

1. Зацикливался поиск всех вхождений регулярного выражения /^$/m

zg 09.06.2012 18:44:36 +0200 - build 2727

1. 0002125: Ошибки с раскраской в редакторе

drkns 09.06.2012 14:02:57 +0200 - build 2726

1. Косметические правки в elevation и копире.

2. DialogBuilder не поддерживал ввод отрицательных чисел.

drkns 08.06.2012 15:36:03 +0200 - build 2725

1. В настройках не сохранялось третье состояние чекбоксов.

w17 08.06.2012 09:51:35 +0400 - build 2724

1. M#1666: информация о копирование нескольких файлов
	Если [ ] show total size и [x] show time, показываем скорость копирования текущего файла

w17 07.06.2012 13:35:13 +0400 - build 2723

1. M#2124: Регекс /$/m работает "нестандартно"

w17 05.06.2012 21:27:50 +0400 - build 2722

1. M#0000228: Чтобы по F6 в редакторе/ просмотрщике сохранялся флаг "удалить файл по закрытии"

2. FileViewer(__int64 ViewerStartPos)

3. help по far /ro [/rw]

svs 04.06.2012 16:21:07 +0400 - build 2721

1. Опечатка для Debug

2. SQLite 3.7.12.1

drkns 02.06.2012 14:54:41 +0200 - build 2720

1. Не работал вызов дополнения по CtrlSpace.

drkns 02.06.2012 00:32:29 +0200 - build 2719

1. Еще на тему %pathext% + пара мелочей.

drkns 01.06.2012 14:56:00 +0200 - build 2718

1. Уточнение проверки привилегий.

drkns 01.06.2012 14:15:50 +0200 - build 2717

1. В far:config добавлена обработка F4 и CtrlH.

drkns 01.06.2012 13:05:50 +0200 - build 2716

1. В группах масок не разворачивалась переменная %pathext%.

drkns 01.06.2012 08:05:48 +0200 - build 2715

1. Забытый отладочный код в 2702 :)

drkns 01.06.2012 00:09:33 +0200 - build 2714

1. Продолжение 2707.

drkns 31.05.2012 08:18:28 +0200 - build 2713

1. gcc build, способ есть.

w17 31.05.2012 01:08:59 +0400 - build 2712

1. gcc build (возможно есть способ лучше ?)

drkns 30.05.2012 20:57:08 +0200 - build 2711

1. Уточнение 2131.2.

drkns 30.05.2012 19:27:12 +0200 - build 2710

1. Опечатка в 2707.

w17 30.05.2012 20:16:33 +0400 - build 2709

1. 1108: При использовании Wipe (Alt-del) на папке, операция (и весь фар) зависает
   В far3 зависания нет, но частично проблема воспроизводилась.

2. минимальные правки вьювера после 2707

drkns 30.05.2012 18:20:05 +0200 - build 2708

1. Уточнение 2707.1.

drkns 30.05.2012 14:35:00 +0200 - build 2707

1. Перетрях конфига.
   - в generalconfig.db теперь пишется только то, что изменилось.
   - в far:config теперь bool вместо int везде, где надо.
   - дефолтное кнопкосочетание для детача консоли теперь CtrlShiftTab.

2. Macro: PanelItem удален, используйте Panel.Item.

3. Продолжаем давить printf.

4. Добавлен ключ "/w-" - принудительное отключение "window mode".

w17 30.05.2012 05:51:52 +0400 - build 2706

1. 2122: Некорректо сравниваются каталоги из пункта меню Commands - Compare Folders

w17 29.05.2012 13:30:08 +0400 - build 2705

1. 2115: Не работает просмотр файлов, найденный поиском на временной панели

drkns 25.05.2012 08:35:25 +0200 - build 2704

1. Уточнение 2702.2.

drkns 25.05.2012 00:34:44 +0200 - build 2703

1. Уточнение 2702.1.

drkns 25.05.2012 00:06:38 +0200 - build 2702

1. 0002113: Вьювер не переключается между файлами в списке результатов поиска

2. 0002116: Выскакивает сообщение при вызове диалога выбора диска.

drkns 24.05.2012 20:38:20 +0200 - build 2701

1. В некоторых случаях обновление файловой панели могло приводить к падению.

drkns 24.05.2012 10:59:24 +0200 - build 2700

1. 0002112: Отваливается автодополнение в ком. строке после использования диалога истории команд

w17 23.05.2012 09:54:59 +0400 - build 2699

1. Поправка для 2679.1

w17 23.05.2012 05:08:42 +0400 - build 2698

1. Уточнение 2676.1

drkns 21.05.2012 23:06:13 +0200 - build 2697

1. Немного сокращения кода в ImportedFunctions.

w17 21.05.2012 13:19:37 +0400 - build 2696

1. 2679.1 - после Esc то что отсканировано показываем без задержки

drkns 21.05.2012 10:12:45 +0200 - build 2695

1. Уточнение 2601.

w17 20.05.2012 12:08:44 +0400 - build 2694

1. 2107: Падение во время копирования

drkns 19.05.2012 23:08:50 +0200 - build 2693

1. Продолжение 2690.

drkns 18.05.2012 16:02:47 +0200 - build 2692

1. Продолжение 2689.

drkns 18.05.2012 15:24:56 +0200 - build 2691

1. Продолжение 2690.

drkns 18.05.2012 14:21:09 +0200 - build 2690

1. Дополнение можно более тонко настроить через far:config.
   Опции Interface.Completion.Use????, 1 - использовать всегда, 2 - только при вызове вручную.

drkns 18.05.2012 13:48:24 +0200 - build 2689

1. Не работал переход в пути вида cd \\?\GLOBALROOT\Device\Harddisk0\Partition1, \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3 и т.п.

drkns 18.05.2012 13:32:43 +0200 - build 2688

1. Настройки историй доступны через far:config.

2. Уточнение 2683.

w17 18.05.2012 12:50:35 +0400 - build 2687

1. 2679.1 - после прерывания по Esc тоже показываем результат неполного сканирования каталога

drkns 18.05.2012 09:49:36 +0200 - build 2686

1. Продолжение #0002102: ULF_UNIQUE без ULF_SORT мог приводить к неадекватному порядку элементов.

svs 18.05.2012 10:39:11 +0400 - build 2685

1. Mantis#0001491: CtrlStartPosChar не работает на первой строке (без учёта заголовка)
   NearTopicFound не сбрасывался в 0 в следующей строке после фиксированной области.

2. SQLite 3.7.12

drkns 17.05.2012 20:42:33 +0200 - build 2684

1. Уточнение 2683.

drkns 17.05.2012 20:18:36 +0200 - build 2683

1. Рефакторинг UserDefinedList. Теперь разделителей может быть сколько угодно, идущие подряд разделители ошибкой не считаются.
   Сюда же 0002102: Path environment variable not processed correctly isf it contains empty strings between semicolons

w17 17.05.2012 13:38:16 +0400 - build 2682

1. 2679.1 - кнопка WIN не прерывает сканирование каталога

w17 17.05.2012 13:12:53 +0400 - build 2681

1. 2679.1 - тильда

drkns 16.05.2012 21:45:11 +0200 - build 2680

1. Не включаем дополнение, пока в очереди консоли присутствуют события.

w17 16.05.2012 13:58:29 +0400 - build 2679

1. M#2101: "быстрый просмотр" отменяется любой кнопкой
   Если сканирование каталога не завершено - меняем цвет

2. 2676 - 'far /rw'

w17 16.05.2012 11:37:29 +0400 - build 2678

1. уточнение 2676

svs 16.05.2012 10:04:17 +0400 - build 2677

1. Mantis#0002096: Навигация по тексту в меню результатов поиска
   (from DAtaMan)

   - если включено "Выделять найденное", то после нажатия Enter найденное выделяется :)
   - Ctrl-Enter позиционирует курсор на найденный текст и выделяет его, если включено "Выделять найденное"
   - нажатие F5 переключает размер меню
   - Ctrl-Up/Down скроллирует текст редактора
   - Add - устанавливает стековую закладку
   - RCtrl-(0-9) - установить закладку 0..9 в текущей позиции, LCtrl-(0-9) - перейти к позиции закладки 0-9


w17 15.05.2012 19:31:43 +0400 - build 2676

1. M#2100: Проблемы с запуском FAR 3 с защищённого от записи носителя
   работа без изменения конфигурационных баз.
   'far -ro' или 'ReadOnlyConfig=1' в far.exe.ini, автоопределения нет

2. gcc -warning

w17 14.05.2012 14:17:56 +0400 - build 2675

1. 2673 продолжение...
   Опознавание FAT, опция для фичи отключения мониторинга каталога панелей при потере фокуса ввода.

svs 14.05.2012 13:54:16 +0400 - build 2674

1. Уточнение build 2672
   API: add MPEC_BREAK_OTL

2. Mantis#0002059: Макрофункции для обращения к строкам редактора по индексу
   Для Editor.SetStr() удален функционал позиционирования курсора. Для этого есть соответствующие функции.

w17 12.05.2012 19:24:42 +0400 - build 2673

1. M#2098: Файл, созданный внеш. прогр-мой, не появл-ся в актив. панели

svs 12.05.2012 14:00:53 +0400 - build 2672

1. Macro: добавлен оператор "$break" - завершение циклов $rep и $while.

2. Уточнение TVar::operator--() и TVar::operator++()

svs 11.05.2012 11:53:32 +0400 - build 2671

1. Mantis#0001891: Выравнивание расширения по правому краю
   (from samlyukov)

svs 11.05.2012 11:34:27 +0400 - build 2670

1. Mantis#0002097: Не работает VF_ENABLE_F6
   (from Denis)
   Вызов Viewer.SetEnableF6() был позже, чем надо.

2. Mantis#0001736: akey(1,0)==akey(1,1) Far 3.0.1931 far2.0.1807
   "мышыныя возня".

svs 10.05.2012 20:55:52 +0400 - build 2669

1. В TVar добавим isNumber() - число? (Integer/Real/StrNumber)

2. Mantis#0002059: Макрофункции для обращения к строкам редактора по индексу
   Теперь параметр Line может быть "числом" (Integer/Real/StrNumber), а не только Целым.
   Преобразования:
     Integer       -> Integer
     Real          -> Integer
     StrNumber     -> Integer
     Not StrNumber -> error (editor.[get|set|ins|del]str не сработают)

   Так же - если строка S не была указана, то она принимала значение "0".

drkns 10.05.2012 16:16:31 +0200 - build 2668

1. И ещё раз.

drkns 10.05.2012 16:12:43 +0200 - build 2667

1. Уточнение 2666.1.

drkns 10.05.2012 15:26:08 +0200 - build 2666

1. Всякое на тему автодополнения:
   - дополняются элементы, подходящие под условие %path%\<something>.%pathext% или упомянутые в App Paths (DIF_EDITPATHEXEC/FIB_EDITPATHEXEC в api);
   - ручной вызов переехал с CtrlShiftEnd на CtrlSpace;
   - переделан режим "без меню", теперь там работает последовательный перебор.

w17 10.05.2012 16:09:01 +0400 - build 2665

1. Фар падал при нажатии ShiftDel в меню автодополнения cmdline На файловых элементах

2. Не показываем задизэйбленую строку UTF-7 в меню выбора кодировки вьювера и редактора

svs 10.05.2012 15:06:25 +0400 - build 2664

1. Mantis#0002059: Макрофункции для обращения к строкам редактора по индексу
   (from DAtaMan)

    - Editor.GetStr работает и при залоченном редакторе
    + после Editor.SetStr позиция курсора не меняется

svs 10.05.2012 12:06:11 +0400 - build 2663

1. Mantis#0002059: Макрофункции для обращения к строкам редактора по индексу
   (from DAtaMan)

   1. Небольшая оптимизация Editor::GetStringByNumber

   2. Добавлены макрокоманды:

     N=Editor.DelLine([Line])
     S=Editor.GetStr([Line])
     N=Editor.InsStr([S[,Line]])
     N=Editor.SetStr([S[,Line]])

     если Line не задана, то функции работают с текущей строкой.

   Тестовый макрос - удаление пустых строк:

     $If(Selected)
       %StartLine=Editor.Sel(0, 0);
       %EndLine=Editor.Sel(0, 2);
     $Else
       %StartLine=1;
       %EndLine=Editor.Lines;
     $End

     %Count=%EndLine-%StartLine+1;
     %i=%StartLine;
     Editor.Undo(0);
     $Rep(%Count)
       $If(Len(Trim(Editor.GetStr(%i)))==0)
         Editor.DelLine(%i);
       $Else
         %i=%i+1;
       $End
     $End
     Editor.Undo(1);

svs 05.05.2012 16:18:15 +0400 - build 2662

1. Mantis#0002095: Падение при переходе по истории в плагин
   (from Maximus)

svs 04.05.2012 23:11:07 +0400 - build 2661

1. Уточнение 2660

svs 04.05.2012 12:55:16 +0400 - build 2660

1. Mantis#0001879: Фар игнорирует заданное плагином отсутствие EOL
   (from Maximus)
   ANSI плагины...

2. Mantis#0002094: Задваение Enter при вызове Eval (из макроса)
   Крайне экспериментально.
   Проверять надо.
   В т.ч. callplugin и еже с ним...

drkns 04.05.2012 11:11:26 +0200 - build 2659

1. SetErrorMode ставился позже, чем надо.

2. Пара мелочей.

svs 03.05.2012 15:03:42 +0400 - build 2658

1. Mantis#0001879: Фар игнорирует заданное плагином отсутствие EOL
   (from Maximus)
   без DropModified.diff

2. Немног хелпа для редакторной опции "Show white space"

svs 03.05.2012 10:04:23 +0400 - build 2657

1. Mantis#0001743: Возможность отключения истории
   Уточнение build 2338.

drkns 02.05.2012 21:30:43 +0200 - build 2656

1. Мониторим изменения в открытых на панелях папках только тогда, когда far в фокусе.

drkns 02.05.2012 18:23:04 +0200 - build 2655

1. Продолжение 2655 - переключатель "Использовать Ctrl-PgUp для выбора диска" теперь 3-позиционный.

drkns 02.05.2012 18:01:04 +0200 - build 2654

1. 0002093: Ctrl-PgUp дает только список дисков

svs 02.05.2012 10:25:17 +0400 - build 2653

1. Mantis#0002089: Падение при попытке вызвать меню плагинов в диалоге редактирования макроса.

   зацикливается в dialog.cpp#2782 при вызове
   return FrameManager->ProcessKey(Key);

   0. FrameManager->ProcessKey(KEY_F11); ==>
   1. Dialog::ProcessKey(KEY_F11) ==>
   2. Manager::ProcessKey(KEY_F11); здесь срабатывает "if (!IsProcessAssignMacroKey)" и весь блок пропускается ==> CurrentFrame->ProcessKey(KEY_F11);
   4. goto 1

   В диалоге изменения параметров макроса нефиг плагинам делать.
   Если "ай как нада", то
   1) Откатить этот патч (удалить "if (!IsProcessAssignMacroKey)" в Dialog::ProcessKey в обработке F11)
   2) в Manager::ProcessKey обработку KEY_F11 вынести перед "if (!IsProcessAssignMacroKey)"

   Но, IMHO, опять получим "цикл", если потом "закроется" обработка KEY_F11 в Manager::ProcessKey ("В диалогах по F11 могло вызываться панельное меню плагинов")

drkns 29.04.2012 16:19:25 +0200 - build 2652

1. 0002090: Far валится при DIF_USELASTHISTORY

w17 29.04.2012 12:30:17 +0400 - build 2651

1. M#2091: В меню не работает кнопка Home (M#2083)
   (from Maximus)

2. minimal 2605 correction

zg 28.04.2012 21:02:12 +0200 - build 2650

1. Проблемы с историей при работе в нескольких копиях фара.

2. gcc warnings.

svs 28.04.2012 09:46:51 +0400 - build 2649

1. Проверка на "far:config" теперь регистронезависимая.

2. Mantis#0001810: Запрос elevation в Info-панели игнорирует настройку
   См. опцию "Показывать параметры компакт-дисков" в диалоге "Настройка информационной панели".
   По умолчанию включена.

svs 27.04.2012 18:06:47 +0400 - build 2648

1. Mantis#0001876: Имя редактируемого/просматриваемого файла - в начале заголовка окна

   В Far:Config (пока) ищем "Interface" и TEXT-параметры "EditorTitleFormat" и "ViewerTitleFormat".
   По умолчанию формат: "%Lng %File".
   Здесь шаблонные символы "%File" - имя файла, "%Lng" - строка из lng-файла ("edit" или "view")
   Не забываем так же о том, что есть шаблон "TitleAddons", который добавляется в конец заголовка.

drkns 27.04.2012 13:46:30 +0200 - build 2647

1. Уточнение 2646.1.

drkns 26.04.2012 20:35:56 +0200 - build 2646

1. Ещё всякое на тему far:config.

t-rex 26.04.2012 19:44:06 +0200 - build 2645

1. System.BoxSymbols показывалось с мусором в far:config.

svs 26.04.2012 17:50:01 +0400 - build 2644

1. Mantis#0001620: Полные названия в линейке клавиш
   "Напощупать".
   Реализован вариант "Основа|окончание1|окончание2|окончание3".
   Формируется в зависимости от длины (чтобы максимально поместилось).

   Имеем "Просм|отр|отреть". В зависимости от ширины знакоместа под лейбак получаем один из 3-х вариантов:
   "Просм"          = "Просм"
   "Просм" + "отр"  = "Просмотр"
   "Просм"+"отреть" = "Просмотреть"
   т.е. первая часть будет по любому.

   Память под конкретную метку выделяется динамически (нет ограничения на 16 символов).

   Прежде чем кидаться лопатить farlang.templ.m4, подстаривая лейбаки для подобного поведения,
   имеет смысл "потренироваться на кошках":

   <?xml version="1.0" encoding="UTF-8" ?>
   <farconfig>
       <generalconfig>
           <setting key="KeyBarLabels.English.Shell" name="AltF4" type="text" value="Edit|..|Ext| Extern| External" />
           <setting key="KeyBarLabels.English.Shell" name="F4" type="text" value="Edit| File" />
       </generalconfig>
   </farconfig>

2. Добавлена тема помощи для диалога настройки меню выбора диска.

3. Mantis#0002013: Поведение "cd ~"

   Узаконена "cd ~" - теперь настраиваема в диалоге настройки ком.строки.
   По молчанию включена и нацелена на %FARHOME%.

w17 26.04.2012 17:39:15 +0400 - build 2643

1. Viewer CRCRLF (как в редакторе)

2. продолжение 2605

drkns 26.04.2012 00:34:11 +0200 - build 2642

1. И ещё раз.

drkns 26.04.2012 00:10:19 +0200 - build 2641

1. Уточнение 2640.1.

drkns 25.04.2012 20:34:13 +0200 - build 2640

1. "На поиграться" - far:config в комстроке покажет встроенный редактор конфигурации в стиле браузерных.
   Следует осознавать, что многие настройки применятся только после перезапуска.

svs 25.04.2012 18:33:36 +0400 - build 2639

1. Уточнение build 2626 в части возвращения инфы о макросе.

zg 25.04.2012 15:13:51 +0200 - build 2638

1. исправление gcc сборки при использовании winapi от mingw.org.

w17 25.04.2012 15:46:58 +0400 - build 2637

1. M#2087: Некорректная обработка Esc в диалоге ошибки копирования
   (from Maximus)

2. Убираем 'секретный' ключ Help.FollowMouse

3. changelog -typos

svs 25.04.2012 11:57:18 +0400 - build 2636

1. Mantis#0000651: В меню фара отсутствует пункт создания связей на папки и файлы

w17 25.04.2012 00:12:34 +0400 - build 2635

1. CtrlPgUp не работал в плагиновых панелях, если отключена опция Interface.CtrlPgUp
   и текущий каталог в файловой панели, с которой ушли в плагин - корень диска.

drkns 24.04.2012 21:18:03 +0200 - build 2634

1. Ещё пара уточнений 2632.

svs 24.04.2012 17:44:04 +0400 - build 2633

1. Уточнение 2632

svs 24.04.2012 17:16:28 +0400 - build 2632

1. Mantis#0001357: Показывать все типы Reparse Points в панелях

   Узнаем:
    IO_REPARSE_TAG_MOUNT_POINT  0xA0000003L = Directory Junction or Volume Mount Point
    IO_REPARSE_TAG_SYMLINK      0xA000000CL = Directory or File Symbolic Link
    IO_REPARSE_TAG_DFS          0x8000000AL = Distributed File System
    IO_REPARSE_TAG_DFSR         0x80000012L = Distributed File System Replication
    IO_REPARSE_TAG_HSM          0xC0000004L = Hierarchical Storage Management
    IO_REPARSE_TAG_HSM2         0x80000006L = Hierarchical Storage Management2
    IO_REPARSE_TAG_SIS          0x80000007L = Single Instance Storage
    IO_REPARSE_TAG_WIM          0x80000008L = Windows Imaging Format
    IO_REPARSE_TAG_CSV          0x80000009L = Cluster Shared Volumes

   {
     Прочие теги будут оттображаться как ":XXXXXXXX" (X - 16-ричная цифра).
     Т.к. слишком узкоспециализированная инфа, то вывод её отключен.
     Для включения: установите параметр "Panel.Layout\ShowUnknownReparsePoint" в 1:
      <?xml version="1.0" encoding="UTF-8" ?>
      <farconfig>
          <generalconfig>
              <setting key="Panel.Layout" name="ShowUnknownReparsePoint" type="qword" value="0000000000000001" />
          </generalconfig>
      </farconfig>
   }

   В настройках панели добавлена опция "Определять точки монтирования диска".
   Позволяет уточнять "Junction" в поле "размер" для каталогов (либо "Junction" либо "Volume").
   По умолчнию для панелей отключена, ибо операция дорогая и от того слишком медленная (особенно на сетевых дисках).

   В QView кусок по выводу инфы о Линках не выводится если нет доступа к файловому объекту, т.к. обламывается на вызове apiGetFileAttributes().

2. В диалоге установки аттрибутов поле для линков есть, но в режиме RO для неудачных попыток получить инфу и Reparse.

3. Macro: panel.item(XX,XX,23) - возвращает ReparseTag

drkns 22.04.2012 02:16:36 +0200 - build 2631

1. Не открывалось меню дисков при открытом в панели диске '@:'.

svs 20.04.2012 13:36:55 +0400 - build 2630

1. Mantis#0001687: ProcessConsoleInput
   (from Maximus)

svs 20.04.2012 12:10:58 +0400 - build 2629

1. Mantis#0002069: rep(n,string)
   Macro: добавлена функция S=StrPad(V,Cnt[,Fill[,Op]])
     v     - исходное выражение, если не указано или длина равна 0 - считается пустой строкой
     cnt   - размер результата
             если отрицательно или 0 - возвращается V
             если V указано и cnt меньше длины V - возвращается V
     Fill  - чем заполнять
     Op    - как заполнять: 0 - справа, 1 - слева, 2 - по центру.


w17 19.04.2012 15:45:53 +0400 - build 2628

1. gcc -warning

2. farlang minimal correction

w17 18.04.2012 18:27:12 +0400 - build 2627

1. И ещё раз 2605

svs 18.04.2012 18:06:58 +0400 - build 2626

1. Macro: снято ограничение на клавиши:

     <macro area="Shell" key="printFooBar"><text>print("FooBar")</text></macro>
     <macro area="Shell" key="CtrlP" flags="DisableOutput"><text>eval("printFooBar",2)</text></macro>

   Интерактивно "printFooBar" не удаляется.

svs 18.04.2012 17:18:43 +0400 - build 2625

1. Mantins#0002077: QView валится в плагиновой панели
   (from Maximus)

drkns 18.04.2012 16:16:13 +0200 - build 2624

1. Уточнение 2597.1.

w17 18.04.2012 16:53:54 +0400 - build 2623

1. Ещё раз 2605

drkns 18.04.2012 10:30:09 +0200 - build 2622

1. После вызова внешнего редактора/вьюера не перерисовывался экран.

2. Пара мелочей в usermenu.

svs 18.04.2012 10:18:49 +0400 - build 2621

1. Mantis#0002070: Ошибка обротки ProcessConsoleInputInfo
   (from Maximus)

drkns 17.04.2012 10:11:45 +0200 - build 2620

1. 0002074: Показывать и изменять Owner SID в диалоге Attributes

2. 0002078: Фар валится при некорректном lng-файле

svs 16.04.2012 19:20:40 +0400 - build 2619

1. Macro: уточнение "машины".

2. Корректировка KeyMacro::GetPlainText(). Ловим "жуков".

w17 16.04.2012 18:20:39 +0400 - build 2618

1. Уточнение 2605

drkns 16.04.2012 14:33:05 +0200 - build 2617

1. 2616 не собирался.

2. 0002076: Не работает переход в сетевые шары системы с CentOS-5.4

svs 16.04.2012 10:54:54 +0400 - build 2616

1. Macro: уточнение "машины".

2. Оптимизация класса TVarSet - убираем промежуточный класс TAbstractSet.

3. Уточнение класса TVar.

zg 15.04.2012 14:20:58 +0200 - build 2615

1. уточнение 2603.

w17 15.04.2012 10:55:54 +0400 - build 2614

1. M#1183: При Reload запоминание кодовой страницы должно происходить раньше считывания

w17 14.04.2012 10:21:14 +0400 - build 2613

1. Уточнение 2607

zg 13.04.2012 19:36:08 +0200 - build 2612

1. Far.Cfg.Get отдаёт только публичные настройки.

zg 13.04.2012 01:29:20 +0200 - build 2611

1. PCTL_FINDPLUGIN возвращает nullptr, PCTL_GETPLUGININFORMATION возвращает 0 для только что удалённых плагинов.

zg 12.04.2012 20:36:52 +0200 - build 2610

1. 0002071: Ошибка обработки регэкспов - \x00

drkns 12.04.2012 15:39:48 +0200 - build 2609

1. AltF4 в usermenu теперь открывает реальный файл, а не временный.

2. Опция для управления отображением ".." в корне.

drkns 12.04.2012 09:55:30 +0200 - build 2608

1. Уточнение 2601.2.

2. Уточнение 2604.1.

w17 12.04.2012 03:11:29 +0400 - build 2607

1. M#1773: Дадим возможность разрешать пункт AutoDetect в меню по Shift-F8
   АХТУНГ: CP_AUTODETECT переименована в CP_DEFAULT

2. M#1775: Shift-F4: Возможность пере-автоопределения кодировки при открытии файла

w17 12.04.2012 02:52:21 +0400 - build 2606

1. Уточнение 2605

w17 11.04.2012 23:14:16 +0400 - build 2605

1. 0002065: Управлению курсором с клавиатуры в системе помощи мешает положение курсора мыши.
   На пробу, АХТУНГ: поведение изменено - ссылки НЕ подсвечиваются при перемещении мыши.

drkns 11.04.2012 20:37:03 +0200 - build 2604

1. 0002067: Нелогичность реакции на колесо мышки в вертикальных меню

2. Ещё немного 2597.1.

zg 11.04.2012 17:38:32 +0200 - build 2603

1. 0002004: Не сохраняется история команд в пределах сеанса.

2. gcc warning.

w17 11.04.2012 15:39:21 +0400 - build 2602

1. откат 2599.2

drkns 11.04.2012 14:14:33 +0200 - build 2601

1. 0002020: Пропал переход на уровень вверх в панели отображения сети
   и ещё пара глюков 2597.1

2. В качестве эксперимента - ".." теперь отображается и в корневых каталогах тоже.

w17 11.04.2012 14:32:17 +0400 - build 2600

1. M#2066: Затирание длинного имени файла коротким

w17 10.04.2012 23:47:54 +0400 - build 2599

1. execute.cpp: fix image subsystem detection (from Maximus5)

2. open-as... для неправильно заданного имени (from Maximus5)

drkns 10.04.2012 21:58:06 +0200 - build 2598

1. Уточнение 2597.1.

drkns 10.04.2012 20:51:51 +0200 - build 2597

1. Немного переделан внутренний парсер путей. По идее будет лушче определяться корень и починятся всякие мелкие баги. Ну или появятся новые крупные, как повезет :)

2. Ещё раз 0002061: Date wrong in Attributes dialog.

w17 10.04.2012 20:21:20 +0400 - build 2596

1. Ещё ограничим SEE_MASK_INVOKEIDLIST - отключим для .exe файлов

w17 10.04.2012 19:30:17 +0400 - build 2595

1. !~ в ассоциациях заменялась на 1-ю букву короткого имени

svs 10.04.2012 18:38:40 +0400 - build 2594

1. Mantis#0002064: Глюк в HiText2Str

w17 06.04.2012 23:27:23 +0400 - build 2593

1. FSF.sprintf() fix for gcc 4.6+

drkns 06.04.2012 14:09:49 +0200 - build 2592

1. 0002061: Date wrong in Attributes dialog

zg 05.04.2012 02:36:51 +0200 - build 2591

1. исправлена визуальная несогласованость после ECTL_SELECT, если курсор стоял в неправильном месте для вертикальных блоков.

zg 05.04.2012 01:53:27 +0200 - build 2590

1. исправлена визуальная несогласованость после ECTL_SELECT, если курсор стоял в неправильном месте для потоковых блоков.

2. ECTL_SETPOSITION и ECTL_SETSTRING не сбрасывают признак выделения блока сразу, а только если при продолжении выделения окажется, что курсор расположен в неправильном месте.

zg 04.04.2012 23:02:53 +0200 - build 2589

1. уточнение 2589.

zg 04.04.2012 21:49:33 +0200 - build 2588

1. ECTL_SETPOSITION обновляет LeftPos до корректного значения сразу. иначе в ECTL_GETINFO могут приходить некорректные данные.

zg 04.04.2012 19:25:15 +0200 - build 2587

1. весьма экспериментально. вызов других FCTL_* не приводит к отмене FCTL_CLOSEPANEL.

zg 04.04.2012 18:11:47 +0200 - build 2586

1. ECF_TABMARKCURRENT работал некорректно, при ненулевом LeftPos в редакторе.

w17 04.04.2012 18:22:17 +0400 - build 2585

1. gcc 4.7.0 warnings, +build x64 far / x86 gcc

zg 04.04.2012 15:06:12 +0200 - build 2584

1. уточнение 2584. если в архив зашли минуя AnalyseW, то при выходе по FCTL_CLOSEPANEL не позиционировался курсор.

zg 03.04.2012 17:12:52 +0200 - build 2583

1. если Param2 у FCTL_CLOSEPANEL пустой, то переход осуществляется не фиксировано на файловые панели, а в предыдущую плагиновую панель, если такая существовала.

zg 02.04.2012 13:53:24 +0200 - build 2582

1. 0002060: Тех.инфо по плагину в меню дисков

drkns 01.04.2012 15:09:54 +0200 - build 2581

1. Не работал переход в надкаталог для unc-путей.

zg 01.04.2012 15:02:04 +0200 - build 2580

1. добавлен PFLAGS_SHORTCUT. отражает состояние OPIF_SHORTCUT.

2. FCTL_GETPANELDIRECTORY всегда возвращает данные о текущей директории. насколько безопасно ими можно пользоваться - смотреть по наличию PFLAGS_SHORTCUT.

3. warning.

svs 29.03.2012 14:03:42 +0400 - build 2579

1. Для Macro.Keyword(XXX,1) недоступны "Funcs","Consts","Vars", т.к. это служебные слова, к макрообластям имеют опосредованное отношение.

2. Macro.var|const параметры перепутаны мкстами и не был реализован отклик на "0" (узнать количество "объектов")

w17 28.03.2012 23:45:50 +0400 - build 2578

1. отдаём 'set prefix>file' и 'set prefix | command' cmd.exe

2. warning

svs 28.03.2012 19:59:45 +0400 - build 2577

1. Добавка обрабатываемого типа (второй параметр) для Macro.Const() и Macro.Var()
    Type:
      2 - вернуть числовое значение типа константы/переменной (0,1,2,3)
      3 - вернуть имя типа константы/переменной ("unknown","integer","text","real")

2. Для Macro.Keyword добавлен Type=4 - функция вернет тип переменой/константы (например, "unknown","integer","text","real")

svs 28.03.2012 17:39:50 +0400 - build 2576

1. Mantis#0002056: Ошибка в возврате plugin.call / callplugin
   (from Maximus)

2. Macro: Plugin.Cmdline переименована в Plugin.Command

3. Macro: "Переменная" MacroArea переименована в Macro.Area

4. Macro: добавлены макрофункции, позволяющие получить информацию о некоторых элементах макроязыка:

     S=Macro.Keyword(Index[,Type])
       Возвращает ключевое слово с индексом Index (начинается с 1). Если Index=0, то возвращается количество слов (число).
       Type:
         0 (по-умолчанию) - Far Keywords (те, что в массиве MKeywords, например, Far.Width, PPanel.OPIFlags и т.п.)
         1 - Area (те, что в массиве MKeywordsArea, например, Shell, MainMenu и т.п.)
         2 - Macro Flags (те, что в массиве MKeywordsFlags, например, DisableOutput, NoPluginPanels и т.п.)
         3 - Macro Operation (которые с '$' начинаются, например, $if, $SelWord и т.п.)

     S=Macro.Func(Index[,Type])
       Возвращает информацию о функции с индексом Index (начинается с 1). Если Index=0, то возвращается количество зарегистрированных макрофункций (число).
       Type:
         0 (по-умолчанию) - имя
         1 - синтаксис
         2 - GUID плагина, предоставляющего функцию

     S=Macro.Const(Index[,Type])
       Возвращает информацию о константе с индексом Index (начинается с 1). Если Index=0, то возвращается количество констант (число).
       Type:
         0 (по-умолчанию) - имя константы
         1 - значение

     S=Macro.Var(Index[,Type])
       Возвращает информацию о переменной с индексом Index (начинается с 1). Если Index=0, то возвращается количество переменных (число).
       Type:
         0 (по-умолчанию) - имя константы
         1 - значение

5. Macro: Удален "$Text", используйте "print"
   Временно остался вариант в виде самостоятельного текста, заключенного в двойные кавычки.


6. В массиве intMacroFunction имена функция сделаны CaseMixed...



   <АХТУНГ>

   Проверяйте свои макросы на предмет:
     1) Plugin.Cmdline -> Plugin.Command
     2) MacroArea -> в Macro.Area
     3) Удален "$Text", используйте "print"

   </АХТУНГ>


w17 28.03.2012 16:27:50 +0400 - build 2575

1. Mantis#1506: При поиске назад не работают регэкспы

drkns 26.03.2012 13:20:06 +0200 - build 2574

1. Опечатка в 2453.1

zg 25.03.2012 20:59:15 +0200 - build 2573

1. при обработке shift-f2 раньше для первого файла приходил OPM_TOPLEVEL, для всех последующих OPM_TOPLEVEL|OPM_SILENT.
   сейчас введено разделение по плагинам. OPM_SILENT добавляется начиная со второго файла обрабатываемого конкретным плагином.

zg 25.03.2012 19:11:55 +0200 - build 2572

1. OpenW возвращает NULL, если панель не создаётся. PANEL_STOP - если панель создаётся но надо прервать дальнейшую обработку. (HANDLE)-2 специально не обрабатывется.
   все нативные плагины перестали работать.

2. AnalyseW возвращает NULL, если формат не опознан. INVALID_HANDLE_VALUE теперь тоже считается за опознанный формат.
   все нативные плагины перестали работать.

zg 25.03.2012 17:30:47 +0200 - build 2571

1. FSF::qsort убрана. FSF::qsortex переименована в FSF::qsort и __cdecl изменён на WINAPI.
   все нативные плагины перестали работать.

2. FSF::bsearch изменена. __cdecl изменён на WINAPI. добавлен параметр user, который передаётся в функцию сравнения.
   все нативные плагины перестали работать.

3. убран FSF::Reserved.
   все нативные плагины перестали работать.

zg 25.03.2012 14:58:20 +0200 - build 2570

1. уточнение 2567.

drkns 25.03.2012 14:15:24 +0200 - build 2569

1. warning.

2. api: константа CURRENT_EDITOR == -1 для EditorControl.

zg 25.03.2012 04:17:02 +0200 - build 2568

1. исправлена реализация DM_LISTINFO во враппере.

zg 25.03.2012 02:23:52 +0200 - build 2567

1. поле StructSize добавлено в следующие структуры:
   FarListUpdate
   FarListInsert
   FarListGetItem
   FarListPos
   FarListFind
   FarListDelete
   FarListInfo
   FarListItemData
   FarListTitles
   FarDialogItemColors
   FarDialogItemData
   OpenDlgPluginData
   FarGetDialogItem
   все нативные плагины перестали работать.

svs 23.03.2012 17:09:23 +0400 - build 2566

1. Mantis#0000881: Неправильная работа $AKey.

drkns 23.03.2012 13:57:12 +0200 - build 2565

1. Уточнение 2564.

2. Warnings.

svs 22.03.2012 16:08:04 +0400 - build 2564

1. небольшое избавление от дергания GeneralCfg

2. Вызов ReadConfig() перенесен "выше".

3. sqlite 3.7.11

svs 22.03.2012 14:24:38 +0400 - build 2563

1. Mantis#0002053: Работают не все кнопкосочетания <RCtrl + LAlt + клавиша>

svs 22.03.2012 12:35:09 +0400 - build 2562

1. Подготовка к теме о хранение файлов-деревьев - новый диалог "Tree settings".

2. Опция "Auto change folder" перенесена из "Panel settings" в новый диалог "Tree settings".

3. Дерево теперь хранится в файле с именем tree3.far ("структура" пока не поменялась), а кэш - в каталоге tree3.cache.

4. Каталог tree3.cache теперь располагается в LocalProfilePath (раньше был в %FARHOME%)

svs 20.03.2012 13:31:49 +0400 - build 2561

1. Fix for 2557 (в части syslog.cpp)

2. Mantis#0001483: Сделать параметры Dlg.GetValue() опциональными

   Dlg.GetValue()==Dlg.GetValue(-1)

3. Mantis#0001903: Plugin.Menu(guid,menuGuid)

   <АХТУНГ>

   Plugin.Prefix переименован в Plugin.Cmdline

   </АХТУНГ>

svs 20.03.2012 11:17:53 +0400 - build 2560

1. Fix for 2557

zg 20.03.2012 03:51:54 +0200 - build 2559

1. ECTL_TURNOFFMARKINGBLOCK убрана. для всех ECTL_* что-то меняющих в редакторе требуемые действия производятся автоматически.

zg 20.03.2012 02:51:44 +0200 - build 2558

1. откат 2551.

2. удалена KMFLAGS_SAVEMACRO.

zg 20.03.2012 02:36:49 +0200 - build 2557

1. поле Private в PluginStartupInfo.

zg 19.03.2012 19:43:07 +0200 - build 2556

1. работа с шоткатами и историей в плагинах переделана.
   теперь при переходу по шоткату или из истории всегда приходит OpenW(OPEN_SHORTCUT,...). Data указывает на OpenShortcutInfo.
   для того чтобы папки плагина попадали в историю и шоткаты, необходимо в указать флаг OPIF_SHORTCUT в OpenPanelInfo.Flags.
   FCTL_GETPANELDIRECTORY для плагиновой панели без флага OPIF_SHORTCUT вернёт 0.

drkns 19.03.2012 14:01:43 +0200 - build 2555

1. Mantis#0002051: Ошибка при копировании на сетевую шару системы с CentOS-5.4.

2. Пара мелочей в копире.

zg 18.03.2012 01:23:01 +0200 - build 2554

1. фар закрывает панель плагина автоматически также если OpenPlanelInfo.CurDir==L"\\".

2. уточнение 2553.

svs 17.03.2012 15:17:38 +0400 - build 2553

1. После Mantis#1840 в базу начали писаться глобальные переменные и константы.
   Глобальные переменные должны попадать в "хранилище" только в двух случаях:
    а) через farconfig-файл
    б) посредством макрофункции msave().

   http://forum.farmanager.com/viewtopic.php?p=89561#p89561 п.1

   Код функции KeyMacro::WriteVarsConsts() пока "спрячем".

svs 17.03.2012 13:43:33 +0400 - build 2552

1. Macro: bug $SelWord
   macro:post ShiftF4 t e s t Enter t e s t $SelWord msgbox("","Не выделилось") Space Left $SelWord msgbox("","Выделилось")

   http://forum.farmanager.com/viewtopic.php?p=89561#p89561  п.5

zg 16.03.2012 20:06:10 +0200 - build 2551

1. добавлен OPM_SHORTCUT. приходит в AnalyseW при переходе по шоткату или истории.

svs 16.03.2012 10:56:28 +0400 - build 2550

1. Mantis#0001483: Сделать параметры Dlg.GetValue() опциональными

   V=Dlg.GetValue([Pos[,InfoID]])

   Если параметр(ы) не указаны, то подразумевается:
     Pos - получаем значения из текущего фокусного элемента
     InfoID - значение элемента (0)

svs 15.03.2012 10:20:11 +0400 - build 2549

1. Far.Cfg.Get("System.KnownIDs", "Network")
   возвращает ерунду
   Если поле GeneralConfig::TYPE_BLOB и это не "System.KnownIDs", то Far.Cfg.Get() выставит ошибку (макроконстанта) Far.Cfg.Err в 1

zg 15.03.2012 04:15:06 +0200 - build 2548

1. в 2351 перестал работать переход из истории на плагиновую панель.

zg 15.03.2012 02:17:13 +0200 - build 2547

1. в 2036 перестал роботать переход в ближайшую доступную папку в ссылках на папки.

zg 14.03.2012 23:16:28 +0200 - build 2546

1. плагинам доступны опции: FSSF_INTERFACE/"ShowMenuBar", FSSF_DIALOG/"EditBlock", FSSF_DIALOG/"EULBsClear", FSSF_DIALOG/"DelRemovesBlocks", FSSF_PANELLAYOUT/"ColumnTitles", FSSF_PANELLAYOUT/"StatusLine", FSSF_PANELLAYOUT/"SortMode".

svs 13.03.2012 15:12:25 +0400 - build 2545

1. Немного актуализации хелпа

2. Вернем потерянную опцию (про drag&drop) из диалога подтверждений...

3. Хелп для MaskGroupsSettings

zg 13.03.2012 12:20:04 +0200 - build 2544

1. плагинам доступна опция FSSF_SCREEN/"KeyBar".

svs 13.03.2012 11:16:01 +0400 - build 2543

1. Добавка DMODE_NOPLUGINS в PluginManager::CallPlugin и PluginManager::CallPluginItem

2. Macro: переименование: Plugin.Call -> Plugin.Menu, Plugin.Int -> Plugin.Call

3. Macro: Добавлена макрофункция N=Plugin.Exist(Guid)
   Возвращает 0 - нет плагина с индентификатором Guid, 1 - есть такой плагин.

zg 13.03.2012 01:52:57 +0200 - build 2542

1. плагинам доступна опция FSSF_CONFIRMATIONS/"RemoveConnection".

zg 13.03.2012 01:09:42 +0200 - build 2541

1. как было обещано, удалены ACTL_GETSYSWORDDIV, ACTL_GETSYSTEMSETTINGS, ACTL_GETPANELSETTINGS, ACTL_GETINTERFACESETTINGS, ACTL_GETCONFIRMATIONS, ACTL_GETDESCSETTINGS, ACTL_GETPLUGINMAXREADDATA и ACTL_GETDIALOGSETTINGS.
   плагины, которые вовремя не подготовились, могут работать не совсем корректно.

svs 12.03.2012 21:30:41 +0400 - build 2540

1. Mantis#0001903: Plugin.Menu(guid,menuGuid)
   (from Maximus)

     N=Plugin.Call(Guid[,MenuGuid])
       Аналог вызова плагина из меню плагинов по F11 без необходимости задавать
       горячие клавиши или искать плагин в списке.
     N=Plugin.Config(Guid[,MenuGuid])
       Аналог вызова плагина из меню "Параметры плагинов" без необходимости задавать
       горячие клавиши или искать плагин в списке. Работает только в панелях.
     N=Plugin.Prefix(Guid,Command)
       Аналог вызова плагина по префиксу из панелей без необходимости
       запоминать/очищать/восстанавливать текущее содержимое командной строки.
     N=Plugin.Int(Guid[,Item])
       алиас для callplugin

   mmode(3) не влияет на работу этих функций (кроме Plugin.Int)

   <АХТУНГ>

   Вылавливаем блох...

   </АХТУНГ>

2. mmode(3) по умолчанию включен!

zg 12.03.2012 14:02:00 +0200 - build 2539

1. добавлен новый флаг WIF_MODAL. ACTL_GETWINDOWINFO возвращает иформацию и о модальных окнах. ACTL_GETWINDOWCOUNT - общее число окон.

zg 12.03.2012 05:30:07 +0200 - build 2538

1. EditorControl(RealId,...) не работал для модальных редакторов.

w17 12.03.2012 00:04:46 +0400 - build 2537

1. уточнение 2536

2. M#2049: Не работает автодополнение, если в имени папки есть пробелы

w17 11.03.2012 14:38:39 +0400 - build 2536

1. M#2048: Поиск в каталогах с символом ;

w17 09.03.2012 11:31:30 +0400 build - 2535

1. M#2045 - Не работает комбинация Win+Up для разворота окна фара на весь экран

w17 07.03.2012 23:39:00 +0400 build - 2534

1. формально устранена причина крэша. что этот код делает - для меня загадка

drkns 07.03.2012 15:06:24 +0200 - build 2533

1. Класс GuardLastError теперь хранит и ntstatus.

w17 07.03.2012 09:12:30 +0400 - build 2532

1. уточнение 2531

drkns 06.03.2012 19:31:53 +0200 - build 2531

1. Обход бага в ShellExecuteEx.

zg 06.03.2012 17:53:49 +0200 - build 2530

1. при отключённом курсоре за пределами строки и табах не всегда работало alt-up.

2. уточнение 2525 для старого поведения вертикальных блоков.

zg 06.03.2012 17:31:05 +0200 - build 2529

1. откатим 2524.

drkns 06.03.2012 15:07:46 +0200 - build 2528

1. From Tim Sobolev: поиск в меню групп масок.

w17 06.03.2012 14:50:05 +0400 - build 2527

1. Ошибка чтения юникодного .hlf файла

drkns 06.03.2012 10:46:25 +0200 - build 2526

1. В некоторых случаях некорректно рассчитывалась необходимая ширина сообщений.

zg 06.03.2012 04:46:05 +0200 - build 2525

1. уточнение 2357.1. правильно считаем ширину вертикального блока. учитываем, что даже при наличии вертикального выделения в текущей строке его может и не быть.

zg 06.03.2012 04:05:03 +0200 - build 2524

1. переделаны вертикальные блоки. теперь блок привязан к символам, а не к позиции на экране.

zg 05.03.2012 20:23:08 +0200 - build 2523

1. Невозможно с помощью editor.sel выделить вертикальный блок нулевой ширины.

zg 05.03.2012 16:18:48 +0200 - build 2522

1. 0002043: Editor.Sel(1,1) в редакторе не работает в описанной ситуации

svs 05.03.2012 12:30:56 +0400 - build 2521

1. Переменные из Options в отдельную структуру ExecuteOptions
   В структуру ExecuteOptions добавлены strExcludeCmds и strHomeDir (cd ~)

2. В исполняторе избавляемся от GeneralCfg->GetValue()

svs 05.03.2012 11:48:02 +0400 - build 2520

1. Mantis#0002041: DN_LISTHOTKEY - некорректная работа в комбобоксах
    В диалогах при выборе пункта по хоткею в комбобоксе наблюдается неправильное позиционирование.
    Основная проблема из-за вот этого:
    "Modal::ExitCode = -1;" в "VMenu::DisplayObject()"

    При выборе по хоткею ExitCode устанавливается в нужное значение в функции VMenu::CheckKeyHiOrAcc() и ставится признак окончания цикла EndLoop.
    Плагин получает нотификацию DN_LISTHOTKEY из VMenu::ProcessKey(). Т.к. плагин в нормальной ситуации вернул false, то код возвращающий позицию в
    предыдущее значение не отрабатывает.
    После этого в VMenu::DisplayObject() ExitCode сбрасывается в -1.
    Далее в Dialog::SelectFromComboBox() цикл обработки Комбобокса завершается, происходит получение позиции "Dest=ComboBox->Modal::GetExitCode();",
    которое уже равно -1 ==> отрабатывает "ComboBox->SetSelectPos(OriginalPos,0);" (плагину про это не сообщается).

    Вторая проблема - плагин в ответ на DN_LISTHOTKEY вернул true.
    Здесь нужно уточнять Писание, т.к. фразы "TRUE - плагин сам отработал событие." для понимания сути маловато будет :-)

drkns 04.03.2012 21:22:30 +0200 - build 2519

1. Уточнение 2517.

drkns 04.03.2012 16:26:41 +0200 - build 2518

1. Опечатка в 2453.

drkns 04.03.2012 14:08:07 +0200 - build 2517

1. Продолжение 2488 - группы могут содержать другие группы.

drkns 02.03.2012 23:46:55 +0200 - build 2516

1. Уточнение 2515.1.

drkns 02.03.2012 13:58:31 +0200 - build 2515

1. Новая команда в FSF.ProcessName: PN_CHECKMASK - проверить валидность маски. Там же новый флаг: PN_SHOWERRORMESSAGE - показывать сообщения при неудаче.

2. Microsoft подложил нам свинью, добавив PS_PAUSED в shobjidl.h, поэтому константы из PROGRESSTATE теперь с префиксом TBPS_.

3. Совместимость с MSVC 11.

4. Зачатки ARM-сборки.

5. Завершение STACKBOOKMARK -> SESSIONBOOKMARK.

svs 02.03.2012 09:16:43 +0400 - build 2514

1. уточнение build 2508

2. Mantis#0002037: Мусор в MCTL_GETLASTERROR

3. Mantis#0002039: Глюк записи автостартующего макроса

4. Mantis#0002040: Ctrl. Ctrl. <key> Yes ShiftF9 не удаляет макрос

drkns 02.03.2012 00:25:26 +0200 - build 2513

1. Mantis#0002038 На чистом профиле не включается раскраска файлов панели

2. FSF.ProcessName(PN_CMPNAMELIST) теперь "полноценный" и умеет всё то же, что и Far.

w17 01.03.2012 22:14:13 +0400 build - 2512

1. уточнение 2511 - избавляемся от интеллекта

w17 01.03.2012 19:16:09 +0400 - build 2511

1. немного интеллекта при принятии решения о сохранении кодировки файла

w17 01.03.2012 18:12:05 +0400 - build 2510

1. MinGW gcc 4.5 build fixed

w17 01.03.2012 17:30:51 +0400 - build 2509

1. продолжение 2504

drkns 01.03.2012 12:42:56 +0200 - build 2508

1. from svs: уточнение build 2507.

drkns 01.03.2012 11:46:15 +0200 - build 2507

1. from svs: Переставали работать макросы, если последним в макропоследовательности был callplugin

w17 01.03.2012 12:37:57 +0400 - build 2506

1. фикс отображения текста после поиска для длинных строк/NO_WRAP/found=startline

svs 01.03.2012 09:13:01 +0400 - build 2505

1. приведение в соответствие закладок редактора STACKBOOKMARK -> SESSIONBOOKMARK
   (from samlyukov)
   http://forum.farmanager.com/viewtopic.php?p=85114#p85114

w17 01.03.2012 02:24:47 +0400 build - 2504

1. если база не открыта 'штатно' делаем Finalize() для всех её stmtXXXX,
   иначе она корректно не закрывается и не переименовывается

2. показываем имена баз фара (не плагинов), которые открыты 'нештатно' после стартапа

w17 29.02.2012 17:05:06 +0400 - build 2503

1. опечатка, валившая вьювер при обратном поиске текста

svs 29.02.2012 16:52:09 +0400 - build 2502

1. Добавлена Clipboard::InternalCopy().
   Бинарно копирует данные между внутренним и системным буферами обмена.
   Применена в макрофункции clip(3|4)

2. В Clipboard::CopyHDROP() добавлена возможность работы не только с системным буфером.


drkns 29.02.2012 13:55:44 +0200 - build 2501

1. Пара мелочей.

svs 29.02.2012 12:41:31 +0400 - build 2500

1. Продолжение 2498.
   Удаляем из конфига KeyMacros.CallPluginRules в пользу mmode(3)

drkns 29.02.2012 09:42:16 +0200 - build 2499

1. Продолжение 2493.

svs 29.02.2012 10:53:34 +0400 - build 2498

1. Macro: у функции mmode добавлен Action = 3 (CallPluginEnableMacro)
   Позволяет разрешать/запрещать макросы при вызове плагина макфункцией CallPlugin.
     mmode(3,0) - запретить
     mmode(3,1) - разрешить
     mmode(3,2) - менять режим (swap)
   Возвращает предыдущее значение.
   Имеет влияние только на текущеую макропоследовательность.
   По умолчанию запретить.

   Например, в редакторе рисуем с помощью DrawLine рисуем небольшой прямоугольник
   mmode(3,1) callplugin("C941E865-9C29-485C-99B3-0C710940F2D8","ShiftRight ShiftRight ShiftDown ShiftDown ShiftLeft ShiftLeft ShiftUp ShiftUp ShiftRight Esc")

drkns 28.02.2012 16:57:48 +0200 - build 2497

1. Продолжение 2493.

w17 28.02.2012 14:09:10 +0400 - build 2496

1. gcc build fix

drkns 27.02.2012 21:09:02 +0200 - build 2495

1. Продолжение 2493 - задействуем еще и интерфейс IFileIsInUse (плюшки: возможность переключиться в блокирующее приложение, возможность удаленно закрыть файл).

2. Уточнения в подборе размера диалога для Message - теперь кнопки не должны вылезать за пределы диалога.

drkns 26.02.2012 23:36:01 +0200 - build 2494

1. Уточнение 2493.

drkns 26.02.2012 22:28:58 +0200 - build 2493

1. При неудачной попытке удаления файла, заблокированного другим процессом, теперь, в некоторых случаях, можно узнать имя этого процесса.

drkns 26.02.2012 10:40:09 +0200 - build 2492

1. Продолжение 2488 - группа может являться регулярным выражением.

drkns 25.02.2012 20:10:24 +0200 - build 2491

1. Опечатка в 2470.

drkns 24.02.2012 21:11:56 +0200 - build 2490

1. Оптимизация и упрощение lng-читалки.

drkns 24.02.2012 14:57:54 +0200 - build 2489

1. Продолжение 2488.

drkns 24.02.2012 14:27:51 +0200 - build 2488

1. Новая сущность: "группы масок файлов" (Options - Groups of file masks).
   Произвольное количество масок файлов можно объединить в группу и присвоить ей имя.
   В дальнейшем имя группы, заключенное в угловые скобки ("<имя>"), может использоваться везде, где могут использоваться сами маски.

svs 23.02.2012 14:18:24 +0400 - build 2487

1. Уточнение 2486

svs 23.02.2012 09:44:26 +0400 - build 2486

1. Mantis#0000466: Расширение макроязыка плагинами
   Next step.
   До завершения осталось чуть-чуть :-)
   Предполагается, что в plugincache.db будут кешироваться имена макрофункций,
   предоставляемые плагином (формат как у префиксов): чтобы при старте и загрузке макросов
   не дергать плагины, имеющих ProcessMacroW().

drkns 22.02.2012 22:23:30 +0200 - build 2485

1. в 1881 сломалась очистка буфера по CopyToClipboard(0).

zg 22.02.2012 18:58:03 +0200 - build 2484

1. уточнение 2458. OPEN_FROMMACRO в PluginManager::CallPlugin.

zg 22.02.2012 18:45:43 +0200 - build 2483

1. 0001410: Добавить флаг в OpenFilePluginW для распознавания архивных операций (ShiftF3)
   добавлен флаг OPM_COMMANDS.

zg 22.02.2012 17:21:14 +0200 - build 2482

1. 0002031: Автоотступ не извещает плагины об изменении строки

drkns 22.02.2012 16:58:37 +0200 - build 2481

1. Внутренние перетасовки и упорядочивания.

zg 21.02.2012 19:51:28 +0200 - build 2480

1. 0001972: ShiftHome и editor.sel(0,2)

2. в диалоге редактирования макроса добавлена история для последовательности и описания.

zg 21.02.2012 16:14:47 +0200 - build 2479

1. добавлена FSSF_EDITOR. по "WordDiv" можно получить системный список список разделителей.
   ACTL_GETSYSWORDDIV будет удалён в ближайшее время.

zg 21.02.2012 04:40:45 +0200 - build 2478

1. продолжение 2328. имена настроек теперь совпадают с именем этих настроек в базе.
   добавлены FSSF_SYSTEM и FSSF_PANEL.
   посмотреть, что отдаётся на текущий момент можно в config.cpp::CFG.
   ACTL_GETSYSTEMSETTINGS, ACTL_GETPANELSETTINGS, ACTL_GETINTERFACESETTINGS, ACTL_GETCONFIRMATIONS,
   ACTL_GETPLUGINMAXREADDATA и ACTL_GETDIALOGSETTINGS будут удалены в ближайшее время.

w17 20.02.2012 23:34:49 +0400 build - 2477

1. Calling convention mismatch (Ещё опечатка?)

drkns 20.02.2012 10:42:54 +0200 - build 2476

1. Еще опечатка.

drkns 20.02.2012 03:15:12 +0200 - build 2475

1. Опечатка в 2474.

drkns 20.02.2012 02:17:59 +0200 - build 2474

1. Отменим пока 2470.2 - "есть нюансы".

drkns 19.02.2012 21:52:01 +0200 - build 2473

1. И ещё раз.

drkns 19.02.2012 21:49:02 +0200 - build 2472

1. Уточнение 2470.

drkns 19.02.2012 21:18:57 +0200 - build 2471

1. Mantis#0002028: Editor Search [All] - меню трактует амперсенды как хоткеи

drkns 19.02.2012 20:23:52 +0200 - build 2470

1. Все предоставляемые плагинам функции теперь находятся в plugapi/pluginA, а не равномерно размазаны по коду.

2. Там же - добавлена "защита" от вызова из неосновных нитей туда, где так делать нельзя.

svs 19.02.2012 14:51:36 +0400 - build 2469

1. Mantis#0002026: при clip(1,"") буфер обмена не опустошается

zg 17.02.2012 20:42:35 +0200 - build 2468

1. уточнение 2460.1.

drkns 17.02.2012 19:36:26 +0200 - build 2467

1. Корректно обрабатываем ситуацию "шибко умный плагин пытается выгрузить сам себя".

svs 17.02.2012 15:18:14 +0400 - build 2466

1. $TextFooBar - не ошибка. А $FooBar - ошибка.

   Виноват macro.cpp::KeyNameMacroToKey(). StrCmpNI там лишний, вполне достаточно StrCmpI

drkns 17.02.2012 11:05:50 +0200 - build 2465

1. Уточнение 2463.

svs 17.02.2012 09:38:04 +0400 - build 2464

1. Macro: у функции env появилось 2 необязательных.параметра:
   S=Env(S[,Mode[,Value]])
     S - имя переменной среды
     Mode - режим
        0 - get
        1 - set
     Value - значение

   Для Mode=1 возвращает предыдущее значение переменной среды S

   Примеры:
     1. Получить значение переменной среды Foo
        Env("Foo")
        Env("Foo",0)
        Env("Foo",0,пофигучто)
        Env("Foo",,пофигучто)
     2. Установить значение переменной среды Foo в "bar"
        Env("Foo",1,"Bar")
     3. Удалить переменную среды Foo
        Env("Foo",1)
        Env("Foo",1,"")
     4. Установить значение переменной среды Foo в "0"
        Env("Foo",1,"0")
        Env("Foo",1,0)


drkns 16.02.2012 13:11:18 +0200 - build 2463

1. Более наглядное представление цветов и раскраски файлов в xml.

zg 16.02.2012 04:04:19 +0200 - build 2462

1. AnalyseW теперь возвращает HANDLE. если файл не понравился плагину, надо вернуть INVALID_HANDLE_VALUE. любое другое значение говорит фару, что файл плагину понравился.
   если в итоге плагину приходит OpenW(OPEN_ANALYSE,...), то OpenAnalyseInfo.Handle будет равно значению возвращённому AnalyseW.
   иначе приходит CloseAnalyseW, где значение CloseAnalyseInfo.Handle тоже равно значению возвращённому AnalyseW.
   плагины, использующие AnalyseW будут работать некорректно.

drkns 15.02.2012 22:28:03 +0200 - build 2461

1. Настройка цветов вынесена из generalconfig.db в colors.db.

zg 15.02.2012 04:49:56 +0200 - build 2460

1. переделка работы функций в макроязыке. теперь все параметры всех функций опциональны и параметров может быть сколько угодно.
   лишние параметры вычисляются, но не используются.

2. в callplugin теперь можно передавать сколько угодно параметров. OpenMacroInfo изменена. Count - количество переданных параметров.
   Values - указатель на массив значений параметров.
   плагины, использующие OPEN_FROMMACRO будут работать некорректно.

drkns 14.02.2012 13:19:07 +0200 - build 2459

1. Ещё уточнение 2452.1.

zg 14.02.2012 03:46:37 +0200 - build 2458

1. убраны OPEN_FROMMACRO_MASK и OPEN_FROMMACROSTRING. убран идентификатор макрообласти в младшем слове. для этого есть MCTL_GETAREA.
   у OPEN_FROMMACRO новое значение.
   в OpenInfo.Data приходит указатель на OpenMacroInfo. соответственно можно отличать ситуацию без параметра и передачу числа с плавающей точкой.
   плагины, использующие OPEN_FROMMACRO будут работать некорректно.

zg 14.02.2012 01:32:13 +0200 - build 2457

1. gcc warnings.

drkns 13.02.2012 23:14:58 +0200 - build 2456

1. Продолжение 2455.

drkns 13.02.2012 19:45:37 +0200 - build 2455

1. Уточнение отображения white space.

drkns 13.02.2012 18:35:36 +0200 - build 2454

1. Уточнение 2452.1

drkns 13.02.2012 15:34:21 +0200 - build 2453

1. Истребляем printf-style форматные строки в языковых файлах.
   Вместо них теперь "вставки": %1, %2, %3 и так далее.
   Вставки можно менять местами (привет языкам с другой логикой построения предложений).

2. "Поиск всех вхождений" в редакторе ищет с начала файла.

drkns 12.02.2012 19:34:30 +0200 - build 2452

1. В диалоге поиска в редакторе добавлена кнопка "All" - поиск всех вхождений.

2. TechInfo #18 (EditorF7Rules) теперь по умолчанию 0.

3. В строках ввода работает комбинация Ctrl-A ("выделить всё").

zg 12.02.2012 15:26:20 +0200 - build 2451

1. уточнение 2443.

drkns 11.02.2012 20:13:59 +0200 - build 2450

1. Пара опечаток в 2449.

zg 11.02.2012 15:12:15 +0200 - build 2449

1. DM_GETDLGITEM возвращает копии имени истории и маски, а не ссылку на внутренние данные.

2. DM_SETDLGITEMSHORT не устанавливает имя истории и маску.

3. DM_GETDLGITEMSHORT не возвращает имя истории и маску.

4. DN_EDITCHANGE/DN_DRAWDLGITEM в Param2 передаётся копия на данные об элементе диалога.

zg 09.02.2012 21:01:34 +0200 - build 2448

1. экспериментально: ECTL_INSERTTEXT понимает '\n'. строка добавляется в отличии от '\r' с учётом настройки "Auto indent".

drkns 09.02.2012 16:45:52 +0200 - build 2447

1. В 2432 погнулось копирование пустых файлов.

2. Mantis#0002017: Фар не отображает содержимое «общих папок» WM

3. Восстанавливаем комстроку после CtrlG.

drkns 08.02.2012 20:15:12 +0200 - build 2446

1. Уточнение выгрузки плагинов.

drkns 08.02.2012 18:45:54 +0200 - build 2445

1. Уточнение выгрузки плагинов.

drkns 08.02.2012 16:43:20 +0200 - build 2444

1. Уточнение выгрузки плагинов.

zg 08.02.2012 02:03:12 +0200 - build 2443

1. в ситуации, когда плагин статически импортирует dll, расположенную в %FARHOME%, %FARHOME% отсутствует в %PATH% и фар запущен не из своей папки, плагин не загружался.

zg 07.02.2012 02:49:54 +0200 - build 2442

1. уточнение 2439.1 и 2439.2 для враппера.

2. в ProcessViewerEvent и ProcessEditorEvent анси плагинов отправляются только события, которые были в первом фаре.

zg 07.02.2012 01:20:05 +0200 - build 2441

1. продолжение 2435. не всегда перерисовывался экран.

zg 06.02.2012 23:05:23 +0200 - build 2440

1. уточнение 2439.1 и 2439.2.

zg 06.02.2012 22:39:15 +0200 - build 2439

1. в ProcessEditorEventInfo добавлено поле EditorID.
   соответственно у EE_GOTFOCUS, EE_KILLFOCUS и EE_CLOSE Param равен NULL.
   плагины, использующие эти события будут работать некорректно.

2. в ProcessViewerEventInfo добавлено поле ViewerID.
   соответственно у VE_GOTFOCUS, VE_KILLFOCUS и VE_CLOSE Param равен NULL.
   плагины, использующие эти события будут работать некорректно.

3. уточнение 2438.

zg 06.02.2012 21:16:55 +0200 - build 2438

1. для редактора добавлено событие EE_CHANGE. Приходит, когда в редакторе изменился текст. Param - указатель на EditorChange.
   EditorChange.Type - тип события: строка изменилась, добавилась или удалилась.
   EditorChange.StringNumber - номер изменившейся, добавленной или удалённой строки.
   EditorControl вызванная из этого события вернёт FALSE.

drkns 06.02.2012 15:56:52 +0200 - build 2437

1. Уточнение 2428.

2. Опции "[ ] Clear R/O attribute from CD files" больше нет, атрибут снимается всегда. FSS_CLEARROATTRIBUTE тоже нет.

w17 06.02.2012 16:23:04 +0400 - build 2436

1. debug build recovered

2. cosmetic

zg 06.02.2012 01:56:06 +0200 - build 2435

1. события EEREDRAW_CHANGE и EEREDRAW_LINE убраны. всегда приходит EEREDRAW_ALL.

drkns 04.02.2012 23:56:49 +0200 - build 2434

1. Ещё всякое на тему падений при выгрузке плагинов.

drkns 04.02.2012 17:37:35 +0200 - build 2433

1. Как выяснилось, выгрузка плагина при исключительной ситуации всегда валила следом и фар.
   Попутно должны прекратиться падения при выгрузке плагинов, открытых в данный момент на панели.

2. Mantis#0002011: Не получается зайти на расшаренный клиентский диск в терминальной сесии.

drkns 03.02.2012 21:43:07 +0200 - build 2432

1. "Правильный" вайп sparse-файлов - вайпаются только аллоцированные участки.

2. В связи с п. 1 - упрощение аналогичного кода в копире. Надо проверить, ничего ли не отпало :)

w17 02.02.2012 12:44:18 +0400 - build 2431

1. Продолжение Mantis#1953

2. Fixed 'set /?'

drkns 01.02.2012 20:20:46 +0200 - build 2430

1. В 2427 были попутаны местами глифы для отображения концов строк.

2. Warnings.

zg 01.02.2012 12:58:16 +0200 - build 2429

1. откат 2427.1 так как есть ACTL_GETWINDOWINFO и WindowInfo.Id.

drkns 31.01.2012 22:22:18 +0200 - build 2428

1. После вызова плагиновых функций принудительно устанавливается правильный режим консоли.

drkns 31.01.2012 13:32:28 +0200 - build 2427

1. Mantis#0001179: Нужен АПИ для получения хендла текущего диалога.
   Добавлена команда ACTL_GETCURRENTWINDOW. Если сейчас открыт диалог - вернется хендл, иначе - 0.

2. Чекбокс "[ ] Show white space" в настройках редактора теперь 3-позиционный: [?] - отображать пробелы, табуляции и EOF, [x] - отображать еще и EOL.
   В апи - EOPT_SHOWLINEBREAK, ESPT_SHOWWHITESPACE(1|2)

w17 28.01.2012 23:07:20 +0400 - build 2426

1. Mantis#2000 - XML Error (0,0) -- полшага назад

t-rex 28.01.2012 19:03:49 +0200 - build 2425

1. PCTL_FINDPLUGIN с PFM_MODULENAME теперь умеет работать с относительными путями.

drkns 27.01.2012 22:21:21 +0200 - build 2424

1. Уточнение PCTL_GETPLUGININFORMATION.

drkns 27.01.2012 19:46:03 +0200 - build 2423

1. Mantis#0002002: Far3 не хочет входить в папки на CD-ROM дисках.

drkns 27.01.2012 17:01:23 +0200 - build 2422

1. Mantis#0002005: Невозможен переход на сетевые ресурсы.

svs 27.01.2012 18:17:51 +0400 - build 2421

1. Уберем зависимость plugin.hpp и frame.hpp (WTYPE_* и MODALTYPE_*)

2. Mantis#0001999: Отдать плагинам ф-цию FileSizeToStr()
   В FSF добавлена функция FormatFileSize()
   (в макросах аналог Size2Str)

   size_t WINAPI FormatFileSize(unsigned __int64 Size, int Width, FARFORMATFILESIZEFLAGS Flags, wchar_t *Dest, size_t DestSize);

   Здесь
     Size       - размер для формативания
     Width      - требуемая ширина. -1 - "сколько есть". отрицательное значение ширины позволяет выравнивать слева
     Flags      - одно из следующих значений, определенных в FARFORMATFILESIZEFLAGS:
         FFFS_COMMAS            Вставлять разделитель между тысячами
         FFFS_FLOATSIZE         Показывать размер файла в стиле Windows Explorer (т.е. 999 байт будут показаны как 999, а 1000 байт как 0.97 K)
         FFFS_SHOWBYTESINDEX    Показывать суффиксы B,K,M,G,T,P,E
         FFFS_ECONOMIC          Экономичный режим, не показывать пробел перед суффиксом размера файла (т.е. 0.97K)
         FFFS_THOUSAND          Вместо делителя 1024 использовать делитель 1000
         FFFS_MINSIZEINDEX      Минимально допустимый индекс при форматировании
                                Индекс указывается в младшем байте и может быть только 0, 1, 2 или 3 (K,M,G,T),
                                например, 1 - "размер как минимум в мегабайтах"
     Dest       - месо назначения
     DestSize   - сколько "слить" в Dest

   Функция возвращает размер (с заключительным 0) строки, полученный после форматирования.
   Чтобы получить требуемый размер выставите параметры Dest в nullptr или DestSize в 0.

drkns 27.01.2012 15:01:22 +0200 - build 2420

1. Mantis#0002000: Far.exe /export создает файл с переводом строк 0A.

drkns 27.01.2012 09:58:17 +0200 - build 2419

1. PCTL_[FORCED]LOADPLUGIN теперь возвращают хендл загруженного плагина, при неудаче - 0, как и раньше.

svs 27.01.2012 09:15:50 +0400 - build 2418

1. Macro: новая макрофункция форматирования числа (например, размера файла) - по мотивам Mantis#0001999

    S=Size2Str(Size,Flags[,Width])

   здесь:

    Size  - что нужно преобразовать
    Flags - как форматировать число
            0x0010000000000000 - S2S_SHOWBYTESINDEX
                                 Показывать суффиксы:
                                    B - для байтов (так же без суффикса)
                                    K - для килобайтов
                                    M - для мегабайтов
                                    G - для гигабайтов
                                    T - для терабайтов
                                    P - для петабайтов
                                    E - для эксабайтов
            0x0800000000000000 - S2S_COMMAS
                                 Вставлять разделитель между тысячами
                                 Используется значение "Interface/FormatNumberSeparators" из конфига
                                 или виндовые LOCALE_STHOUSAND & LOCALE_SDECIMAL, если FormatNumberSeparators не указан.
            0x0080000000000000 - S2S_FLOATSIZE
                                 Показывать размер файла в стиле Windows Explorer
                                 (т.е. 999 байт будут показаны как 999, а 1000 байт как 0.97 K)
            0x0040000000000000 - S2S_ECONOMIC
                                 Экономичный режим, не показывать пробел перед суффиксом размера файла (т.е. 0.97K)
            0x0400000000000000 - S2S_THOUSAND
                                 Вместо делителя 1024 использовать делитель 1000
            0x0020000000000000 - S2S_MINSIZEINDEX
                                 Минимально допустимый индекс при форматировании
                                 Например, 0x0020000000000001 - "размер как минимум в мегабайтах"
                                 Может быть только 0, 1, 2 или 3 (K,M,G,T)
    Width - какую ширину задать (если не указан или равен 0, то подразумевается - "сколько получится")
            отрицательное значение ширины позволяет выравнивать слева:
            Size2Str(123,0, 5) ==> '  123'
            Size2Str(123,0,-5) ==> '123  '

2. Macro: новая функция "форматирования" текста StrWrap.
     Форматирует исходный текст по заданной ширине, используя разделительную строку (разбивает на строки с выравниваением влево).

     S=StrWrap(Text,Width[,Break[,Flags]])

   здесь:

     Text  - что форматируем
     Width - какой ширины
     Break - чем "рубить", если не указан или пустая строка, то принимается '\n'
     Flags - доп.указания к "форматированию"
             0x1 - строка всегда сворачивается по заданной ширине, даже если есть слово, которое больше заданной ширины
                  (в этом случае то оно будет разрезано на части).

   Если не указан флаг 0x1 и есть длинное слово, то такое слово займет ширину больше указанного Width.

   Примеры:
      StrWrap("Пример строки, которая будет разбита на несколько строк по ширине в 20 символов.", 7)
   вернет:
       1234567
      +-------+
      |Пример
      |строки,
      |которая
      |будет
      |разбита
      |на
     >|несколько
      |строк
      |по
      |ширине
      |в 20
     >|символов.
      +-------+

   добавив флаг 1
      StrWrap("Пример строки, которая будет разбита на несколько строк по ширине в 20 символов.", 7,,1)
   получаем:
       1234567
      +-------+
      |Пример
      |строки,
      |которая
      |будет
      |разбита
      |на
      |несколь
      |ко
      |строк
      |по
      |ширине
      |в 20
      |символо
      |в.
      +-------+

   Вызов
      StrWrap("Эта строка содержит оооооооооооооччччччччеееень длиное слово", 9,,0x1)
   вернет:
       123456789
      +---------+
      |Эта
      |строка
      |содержит
      |ооооооооо
      |ооооччччч
      |чччеееень
      |длиное
      |слово
      +---------+


drkns 26.01.2012 23:03:50 +0200 - build 2417

1. Поддерживаем определение и отключение виртуальных компакт-дисков в Windows 8.

drkns 26.01.2012 19:37:11 +0200 - build 2416

1. Mantis#0002001: В диалоге выбора дисков неверно отображается путь к файлу виртуального диска.

drkns 26.01.2012 19:11:04 +0200 - build 2415

1. По мотивам Mantis#01914:

     PCTL_GETPLUGINS: получить хендлы плагинов.
     Param2 - указатель на буфер, Param1 - размер буфера.
     Передав 0 в качестве Param1 или Param2 можно получить требуемый размер.

2. Warnings.

drkns 26.01.2012 16:11:41 +0200 - build 2414

1. По мотивам Mantis#01914:

     PCTL_FINDPLUGIN: возвращает по имени (Param2==PFM_MODULENAME) или гуиду (Param2==PFM_GUID) хендл плагина.

     PCTL_GETPLUGININFORMATION - получение суммарной информации о плагине.
     Handle - хендл плагина, полученный по PCTL_FINDPLUGIN.
     Param1 - размер буфера, в который будет помещена информация.
     Param2 - буфер, в начале которого лежит структура FarGetPluginInformation.

2. PCTL_UNLOADPLUGIN изменен - в Handle теперь надо передавать хендл, полученный по PCTL_FINDPLUGIN, Param1 и Param2 игнорируются.

drkns 26.01.2012 09:46:46 +0200 - build 2413

1. Научим EMenu вызываться из меню дисков.

2. Warnings.

drkns 25.01.2012 09:57:40 +0200 - build 2412

1. Неправильный формат "коротких" и "именованых" дат в режимах панели.

drkns 24.01.2012 19:42:05 +0200 - build 2411

1. Идентификаторы плагинов, "известных" фару (на сегодня это Network и EMenu) хранятся в БД и могут быть при необходимости изменены.

drkns 22.01.2012 14:19:41 +0200 - build 2410

1. Уточнение 2381.

svs 21.01.2012 13:43:11 +0400 - build 2409

1. Mantis#0001998: Поломался MCTL_ADDMACRO
   (from Maximus)

drkns 19.01.2012 21:09:33 +0200 - build 2408

1. Угловые скобки (<>) вокруг элементов списка "Up", "Folder", "Symlink", "Junction" вынесены в языковой файл.

drkns 19.01.2012 12:58:47 +0200 - build 2407

1. Mantis#0001995: During file editing some data was lost.

2. Уточнение 2405.

svs 19.01.2012 13:52:00 +0400 - build 2406

1. Macro: добавлен флаг KMFLAGS_SAVEMACRO.
   Если флаг указан, то макрос, добавленный командой MCTL_ADDMACRO, будет сохранен в хранилище (в базе).
   Следует учесть, что в хранилище не сохранятся компоненты структуры MacroAddMacro: Callback и Id.

drkns 19.01.2012 09:07:54 +0200 - build 2405

1. closeconsolerule больше нет.

t-rex 18.01.2012 21:35:50 +0200 - build 2404

1. И ещё немного рефакторинга в configdb.

t-rex 18.01.2012 17:34:22 +0200 - build 2403

1. Сделаем один и тот же хоткей для RegExp в диалогах поиска редактора и вьювера.

drkns 17.01.2012 23:24:42 +0200 - build 2402

1. Рефакторинг configdb.

t-rex 17.01.2012 23:07:03 +0200 - build 2401

1. Плагины могут хранить настройки и в localprofile.
   SettingsControl(SCTL_CREATE, PSL_LOCAL)

2. Настройки shortcuts переехали в localprofile.
   Скопируйте shortcuts.db из %FARPROFILE% в %FARLOCALPROFILE%.

svs 17.01.2012 16:16:32 +0400 - build 2400

1. Mantis#0001988: EF_CREATENEW не работает

svs 17.01.2012 12:09:27 +0400 - build 2399

1. Mantins#0001992: Падение по F4 в F11/AltShiftF9 если все строки - в фильтре
   (from Maximus)

zg 17.01.2012 03:18:47 +0200 - build 2398

1. 0001990: DE-locale: cannot press *.

drkns 17.01.2012 00:54:25 +0200 - build 2397

1. Warnings.

drkns 17.01.2012 00:19:46 +0200 - build 2396

1. sqlite 3.7.10.

zg 16.01.2012 23:44:52 +0200 - build 2395

1. 0001991: Параметры AnalyzeW. OpenInfo->Data для OPEN_ANALYSE содержит указатель для AnalyseInfo.

2. в gcc сборке sqlite.c перенесён в начало и c файлы компилируются раньше c++.
   даёт выигрышь времени компиляции при использовании make -j.

drkns 16.01.2012 19:08:55 +0200 - build 2394

1. Не работала история в макросах.

svs 16.01.2012 11:30:20 +0400 - build 2393

1. Уточнение Mantis#0001972

svs 15.01.2012 21:51:12 +0400 - build 2392

1. Mantis#0001989: Add Description field to Macro Settings dialog

drkns 15.01.2012 19:42:10 +0200 - build 2391

1. Для folder shortcuts можно задавать названия.

drkns 15.01.2012 19:16:05 +0200 - build 2390

1. В некоторых случаях не сохранялись folder shortcuts.

t-rex 15.01.2012 17:28:01 +0200 - build 2389

1. И ещё раз 2384. Теперь пустая строка будет и показывается в списке.

2. Настройка ClearType по дефолту включена.

drkns 15.01.2012 17:18:52 +0200 - build 2388

1. Не работало мышиное колесо в плагиновых меню.

t-rex 15.01.2012 13:53:19 +0200 - build 2387

1. Охтыжблин, ещё ошибка в 2384.

t-rex 15.01.2012 13:42:54 +0200 - build 2386

1. Ещё "последствия" Mantis#1801 - http://forum.farmanager.com/viewtopic.php?p=88686#p88686.

2. Заодно удалим немного неиспользуемого кода.

t-rex 15.01.2012 13:09:07 +0200 - build 2385

1. Ошибка в 2384.

t-rex 15.01.2012 12:53:32 +0200 - build 2384

1. История диалогов помнит если последний пункт был пустой.

drkns 15.01.2012 11:31:09 +0200 - build 2383

1. Вызываем EMenu по [Shift]RightClick и в дереве тоже.

drkns 15.01.2012 11:07:08 +0200 - build 2382

1. Продолжение 2381: вызываем emenu в панелях и по [Shift]Apps.

t-rex 15.01.2012 00:18:34 +0200 - build 2381

1. По RighClick или ShiftRightClick на файле в панелях автоматом вызывается плагин EMenu.
   По другим комбинациям, например CtrlRightClick будет пометка как и раньше.

drkns 14.01.2012 19:30:10 +0200 - build 2380

1. Починим 2377.1 :)

2. Cтруктура MacroAddMacro более оптимально размещается в x64.

t-rex 14.01.2012 12:53:19 +0200 - build 2379

1. Mantis#1985: Неправильно подсчитывается память для MCTL_GETLASTERROR.

t-rex 14.01.2012 11:37:20 +0200 - build 2378

1. Не все StructSize которые надо зоплнялись во враппере.

t-rex 13.01.2012 20:17:07 +0200 - build 2377

1. Сделаем чтоб "set | command" и "set > file" передавались в comspec.

2. Импортировался только первый макрос из xml.

t-rex 13.01.2012 19:20:54 +0200 - build 2376

1. Мелкое изменение в API:
   MacroCheckMacroText больше нет, MSSC_CHECK ожидает MacroSendMacroText.
   И новая команда, MCTL_GETLASTERROR ->  Param1=размер, Param2=MacroParseResult*.
   Возвращает требуемый размер.

2. Из за 1, исправился потенциальный хип корапшэн во враппере.

svs 13.01.2012 17:47:47 +0400 - build 2375

1. Обезопасим InfoList от случая, когда плагин из ProcessViewerEventW в ответ на VE_READ
   зовет Info.PanelControl(FCTL_REDRAWPANEL) - в итоге получаем переполнение стека :-(
   Схема такая.
   VE_READ честно кидается плагину 1 раз, но т.к. InfoPanel постоянно пересоздает вьювер (если есть diz-файл),
   то получаем множественное VE_READ со всеми вытекающими.

w17 13.01.2012 17:45:10 +0400 - build 2374

1. gcc build recovered

drkns 13.01.2012 14:24:42 +0200 - build 2373

1. Добавим кое-где в api проверок StructSize.

svs 13.01.2012 16:18:16 +0400 - build 2372

1. Mantis#0001982: Получить настройки фара в макросе: Far.Cfg.Get
   Macro: добавлено
    функция, позволяет получить основные настройки...
      V=Far.Cfg.Get(Key,Name)
    макроконстанта
      Far.Cfg.Err = 0, ошибок после вызова Far.Cfg.Get не было.
                  = 1, какая-то трабла (нет такого key или name или внтур.ошибка)

   Пока не все значения можно получить с помощью Far.Cfg.Get(), нужна переделка config.cpp.

2. Снова про "батарейки" (см. b.2297)
   Добавлено автообновление Info-панели в случае, если она видна и включен показ инфы про питание и эта инфа видна.
   Автообновление по процентам зарядки доступно только от Висты и выше.

3. Немного обновлен SysLog

t-rex 12.01.2012 20:22:49 +0200 - build 2371

1. Уточнение 2368.

drkns 12.01.2012 20:04:46 +0200 - build 2370

1. Уточнение 2369.

drkns 12.01.2012 19:00:38 +0200 - build 2369

1. Починим "far /? > file" и "far > file".

svs 12.01.2012 18:09:11 +0400 - build 2368

1. Диагностики импорта (constant, variable, macro)
   Например,

      Constant (5,13): <name> is empty or not found

svs 12.01.2012 16:26:01 +0400 - build 2367

1. Mantis#0001655: Неверное сообщение об ошибке при разборе макроса.
   Ахтунг: Не забываем, что для строки в макроса - аля Це.
           Это означает, что после символа '\' Far ожидает управляющий символ
           Так же помним, что для разных путей юзаем verb-строки
           (с символом '@' перед открывающей двойной кавычкой) или дублируем символ '\'.

     Ошибка: panel.setpath(0,"HKEY_CURRENT_USER\Software")
     Верно : panel.setpath(0,"HKEY_CURRENT_USER\\Software")
     Верно : panel.setpath(0,@"HKEY_CURRENT_USER\Software")

drkns 11.01.2012 22:46:51 +0200 - build 2366

1. В elevation получаем ntstatus от дочернего процесса вместе с lasterror.

t-rex 11.01.2012 22:25:49 +0200 - build 2365

1. RegExp: \/ не искался (если / именно последний символ строки поиска).

drkns 11.01.2012 21:50:32 +0200 - build 2364

1. Пара плюшек в Message:
   - для сообщений с MSG_ERRORTYPE по F3 доступна дополнительная информация об ошибке ( win32 error код и текст, nt status код и текст)
   - по CtrlC в буфер копируется содержимое сообщения (заголовок + строки + кнопки) по аналогии с winapi MessageBox.

2. Там же: убрана подмена текста для некоторых кодов ошибок.

t-rex 11.01.2012 21:53:39 +0200 - build 2363

1. Никаких action, буду бить. И вообще надо что то общее для всего импорта.
   Удаление при "пустышках" это самое простое и логичное, всё остальное нафиг.
   Для vars, consts и macro теперь есть тэг text в котором может быть CDATA, если тэга
   text нету, то происходит удаление.
     <variable name="%NAME%" type="%TYPE%"><text>%VALUE%</text></variable>
     <constant name="%NAME%" type="%TYPE%"><text>%VALUE%</text></constant>
     <macro area="%AREA%" key="%KEY%"><text>%SEQUENCE%</text></macro>

svs 11.01.2012 22:17:46 +0400 - build 2362

1. Mantis#0001949: Вызов макроса при включенном AutoCompletion
   Изменение в АПИ!!!

   В struct MacroAddMacro добавлено поле Area
   Теперь с помощью MCTL_ADDMACRO можно добавлять не только в область common

2. В xml раздел "macro" называется теперь "macros"
   http://forum.farmanager.com/viewtopic.php?p=88391#p88391

3. Импорт/Экспорт макропеременных, макроконстант и макропоследовательностей.
   Добавлен action = "add|delete|ignore"
     <variable name="%NAME%" type="%TYPE%" action="%ACTION%">%VALUE%</variable>
     <constant name="%NAME%" type="%TYPE%" action="%ACTION%">%VALUE%</constant>
   если action не указан, то подразумевается "add"
   "ignore" - при импорте будет пропущен
   "delete" - при импорте объект будет удален из базы
   %VALUE% может быть CDATA

4. Первые зачатки диагностики импорта.
   Пока в макросах - при обнаружении ошибок весь импорт макросов в базу отменяется.

5. Уточнение TranslateKeyToVK.
   Внутренние INTERNAL_KEY_BASE_2 транслируются на
   MENU_EVENT, FOCUS_EVENT и WINDOW_BUFFER_SIZE_EVENT

svs 11.01.2012 11:35:08 +0400 - build 2361

1. Mantis#0001915: Отображение ошибок в макросе при eval
   Macro: eval(,3) - чекит макропоследовательность и возвращает строковое значение:
      1) пустая строка - ошибок нет
      2) 4 строки, разделенные символом '\n', поясняющие ошибку:
         1: строка и позиция в строке (например, <Line 1, Pos 1>
         2: текст сообщения об ошибке (например, <Unrecognized keyword 'foo'>)
         3: кусок проблемной макропоследовательности (например, <"foo">)
         4: указатель - символ с кодом \x2191

   Для отображения строк разумнее применять msgbox с флагом 8 (выравнивание влево)
     msgbox(,eval("blahblahblah",3),8)

2. Немного замены BOOL на bool

t-rex 11.01.2012 01:32:22 +0200 - build 2360

1. Mantis#1968: Не сохранять настройки, если они не менялись.
   Теперь только generalconfig.db пишется всегда.

drkns 10.01.2012 16:41:31 +0200 - build 2359

1. Уточнение 2327.

svs 10.01.2012 15:51:05 +0400 - build 2358

1. Mantis#0001923: Падение при попытке редактирования фильтров (CtrlI) после их фильтрации (CtrlAltF)
   (from Maximus)

2. Mantis#0001921: Нереальные тормоза в ECTL_ADDCOLOR
   (from Maximus)

3. Mantis#0001917: Far валится при вызове CurPos для DI_LISTBOX
   (from Maximus)

svs 10.01.2012 15:31:57 +0400 - build 2357

1. Mantis#0001945: Не можем сдвинуть вертикальный блок с концом строки
   CurLine->GetSelection(...) не применим к вертикальным блокам :-)

svs 10.01.2012 15:12:03 +0400 - build 2356

1. Mantis#0001198: Неполадки с Editor.Set
   Баги с 12-й ("Символы разделители слов") и 16-й ("Редактировать открытые на запись файлы") опциями.

svs 10.01.2012 12:58:46 +0400 - build 2355

1. Mantis#0001972: ShiftHome и editor.sel(0,2)
   Возвращаем поведение ShiftHome, как было до 1.7x build 1541.
   Теперь ShiftHome не сбрасывает выделение, если курсор стоит в начале строки.

2. Macro: editor.sel(0,3) возвращал значение от 0 (должен от 1)

drkns 09.01.2012 17:14:54 +0200 - build 2354

1. Mantis#0001975: Фар3 юзер меню проглатывает хоткей

w17 09.01.2012 17:15:14 +0400 - build 2353

1. Mantis#1723,1927: загрузка CPU в режиме простоя на виртуальной машине
   (originated by sezal)

svs 07.01.2012 22:34:28 +0400 - build 2352

1. Macro: Shell.AutoCompletion не работал все время возвращался Dialog.AutoCompletion

t-rex 07.01.2012 13:43:07 +0200 - build 2351

1. Мелкие исправления в истории.

w17 03.01.2012 23:23:11 +0400 - build 2350

1. Mantis#1964: Viewer не находит текст в UTF8 файле
   С UTF-8 это никак не связано - просто ляп в поиске текста

w17 03.01.2012 22:13:00 +0400 - build 2349

1. Mantis#1966: Ошибка отображения при поиске

drkns 02.01.2012 22:26:12 +0200 - build 2348

1. В 2214 отвалилась обработка колеса мыши в меню.

2. Warnings.

3. Lng generator v1.3.

drkns 02.01.2012 15:48:46 +0200 - build 2347

1. В FSF.InputBox вместо int DestLength теперь size_t DestSize.

svs 31.12.2011 12:30:32 +0400 - build 2346

1. Mantis#0001959: Ошибка загрузки макросов через MCTL_ADDMACRO

zg 31.12.2011 01:12:13 +0200 - build 2345

1. бесконечная рекурсия при вызове из GetOpenPluginInfo - например Мультиарком попытатся открыть архив.

t-rex 30.12.2011 14:25:35 +0200 - build 2344

1. Mantis#1965: Регулярное выражение "A+" не работает.
   Именно для больших букв не работало.

2. Не собирался дебаг.

zg 30.12.2011 03:46:41 +0200 - build 2343

Все нативные плагины, использующие FCTL_SETPANELDIR/FCTL_GETPANELDIR - не работают.

1. FCTL_SETPANELDIR->FCTL_SETPANELDIRECTORY. Param1 - размер Param2. Param2 - указатель на FarPanelDirectory.
   возвращается необходимый размер.

2. FCTL_GETPANELDIR->FCTL_GETPANELDIRECTORY. Param1 - 0. Param2 - указатель на FarPanelDirectory.
   в случае успеха возвращается ненулевое значение.

drkns 30.12.2011 00:54:46 +0200 - build 2342

1. Альтернативное решение 2335.1.

drkns 29.12.2011 19:43:12 +0200 - build 2341

1. Ну вы поняли.

drkns 28.12.2011 13:15:35 +0200 - build 2340

1. Чиним поломанное.

drkns 27.12.2011 23:38:44 +0200 - build 2339

1. Чиним поломанное.

drkns 27.12.2011 21:24:05 +0200 - build 2338

1. По итогам http://forum.farmanager.com/viewtopic.php?t=5390: вернем обратно History.Disable().

drkns 27.12.2011 16:03:21 +0200 - build 2337

1. Mantis#0001961: Не открывается сетевая шара системы с CentOS-5.4

drkns 27.12.2011 11:19:34 +0200 - build 2336

1. Чиним поломанное.

drkns 26.12.2011 23:56:59 +0200 - build 2335

1. Очередной глюк копира. Интересно, что отвалится теперь.

2. Порежем концевые пробелы в исходниках.

t-rex 26.12.2011 17:00:10 +0200 - build 2334

1. Mantis#1957: Меню выбора ассоциаций.
   Показываем тока описание (если есть), а в меню редактирования не режим описание по длине.

2. xml -> farconfig

drkns 26.12.2011 16:31:23 +0200 - build 2333

1. Уточнения в InfoPanel.

zg 26.12.2011 14:47:18 +0200 - build 2332

1. не работал System.Executor\ExcludeCmds.

t-rex 25.12.2011 23:41:38 +0200 - build 2331

1. Не, лучше вернём режим ввода как и был, он такой был всегда.

t-rex 25.12.2011 23:32:34 +0200 - build 2330

1. Из за 2324 всплыл глюк не востановление режима консоли для хэндлов вывода после запуска внешних консольных прог.
   Некоторые проги их обнуляют что приводило к весёлым глюкам отрисовки при запуске последующих консольных прог.
   Также выставим более правильный режим для хэндла ввода на всякий пожарный.

drkns 25.12.2011 19:28:52 +0200 - build 2329

1. QuickView: allocated size правильно рассчитывается для нескольких жёстких ссылок внутри каталога. Экспериментально.

zg 25.12.2011 14:48:29 +0200 - build 2328

1. экспериментальное получение настроек подтверждения через SettingsControl(...,SCTL_GET,...).
   Root - FSSF_CONFIRMATIONS, Name - L"CopyOverwrite", L"MoveOverwrite" и т.д.

drkns 25.12.2011 14:17:13 +0200 - build 2327

1. Теперь нет понятия "упакованный размер файла" ("packed size"), есть более корректное понятие "выделенный размер файла" ("allocated size").
2. В связи с п. 1 изменения в QuickView: реальный размер == выделенный размер, правильно учитывается размер файлов, целиком хранящихся в MFT.

zg 25.12.2011 13:43:10 +0200 - build 2326

1. экспериментальное получение истории диалогов через SettingsControl. аналогично другим историям,
   за исключением того, что root получается:
     FarSettingsValue value={0,L"NewFolder"};
     root=Info.SettingsControl(Settings,SCTL_OPENSUBKEY,0,&value);

drkns 24.12.2011 23:50:51 +0200 - build 2325

1. Очепятка в 2324.

drkns 24.12.2011 21:39:08 +0200 - build 2324

1. Mantis#0001953 - попытка №2.

drkns 24.12.2011 19:34:24 +0200 - build 2323

1. В меню дисков для "искаробочных" плагинов по умолчанию устанавливаются горячие клавиши, совместимые с Far 1/2 (однократно).

t-rex 24.12.2011 19:15:47 +0200 - build 2322

1. Mantis#1955: Правка макросов.

drkns 24.12.2011 19:03:54 +0200 - build 2321

1. Лишнее обнуление структуры GlobalInfo (Mantis#0001956).

drkns 24.12.2011 18:53:03 +0200 - build 2320

1. Откат Mantis#0001953.

svs 24.12.2011 20:18:35 +0400 - build 2319

1. Mantis#0001953: Лишний вызов cmd.exe
   (from Maximus)

svs 24.12.2011 19:22:19 +0400 - build 2318

1. Уточнения некоторых мест, которые анализатору показались неприличными...

2. set USE_ANALYZE=1 "включает" анализатор (добавляет /analyze).

3. Mantis#0001951: Неправильный InputRecord в событии DN_CONTROLINPUT
   Уточнение: Bug: "При Ctrl+A получается CtrlShift+A"

svs 24.12.2011 15:33:15 +0400 - build 2317

1. Mantis#0001951: Неправильный InputRecord в событии DN_CONTROLINPUT

drkns 24.12.2011 12:59:03 +0200 - build 2316

1. Mantis#0001954: copying a directory to "admin" folder fails

t-rex 24.12.2011 11:50:29 +0200 - build 2315

1. В нескольких местах BOOL -> bool.

2. Сделаем так чтоб vc10wrapper.cpp можно было использовать в плагинах не копируя.

drkns 23.12.2011 23:43:51 +0200 - build 2314

1. Редизайн vc10.asm - <En|De>codePointer заменяются пустышками только в том случае, когда в ОС их действительно нет.

t-rex 23.12.2011 12:49:15 +0200 - build 2313

1. Mantis#1201: В Far 2 не работает переход на URL.

2. В нескольких внутрених функциях BOOL -> bool.

t-rex 23.12.2011 10:12:31 +0200 - build 2312

1. Mantis#1952: Не работает безопасное извлечение устройств по Shift-Del.

svs 22.12.2011 23:55:28 +0400 - build 2311

1. Mantis#0001949: Вызов макроса при включенном AutoCompletion
    1. Исправляем <akey(1,0) возвращает "рожицу" вместо ShiftEnter>
    2. Удаляем область "AutoCompletion", добавляем 2 новых "Shell.AutoCompletion" и "Dialog.AutoCompletion".

t-rex 22.12.2011 18:20:50 +0200 - build 2310

1. RCtrl и RAlt неправильно передавались в панели анси плагинов.

w17 22.12.2011 16:50:49 +0400 - build 2309

1. опечатка в конструкторе стринга

svs 22.12.2011 16:29:40 +0400 - build 2308

1. InfoPanel: убраны комбинации Ctrl-Цифра.
   Макросится через Ctrl-F12

drkns 22.12.2011 13:37:44 +0200 - build 2307

1. Ещё всякое на тему инфопанели.

drkns 22.12.2011 11:04:18 +0200 - build 2306

1. Уточнение отображения общего размера при копировании.

2. InfoPanel: добавлено описание компьютера (если есть), описание пользователя (если есть), уровень доступа пользователя (guest/user/admin).

t-rex 21.12.2011 21:24:04 +0200 - build 2305

1. Пару мелочей.

drkns 21.12.2011 20:58:55 +0200 - build 2304

1. Ещё одно уточнение в пропуске "." и ".." при чтении каталога.

drkns 21.12.2011 20:33:19 +0200 - build 2303

1. Внутренние функции в некоторых местах переделаны с const wchar_t* на const string&, т. к. и так почти везде передаётся string.CPtr().
   Должно сократить вызовы wcslen и т. п.

2. В шифровании/дешифровании работает elevation.

w17 21.12.2011 17:12:54 +0400 - build 2302

1. 0001950: Ошибочно переключается в Dump режим на юникодных файлах

w17 15.12.2011 22:40:32 +0400 - build 2301

1. Mantis #1235: Неверная работа Shift-Del на устройствах хранения с больше чем одним разделом
   (from Arty)

svs 15.12.2011 21:39:07 +0400 - build 2300

1. Уточнение build 2297

w17 15.12.2011 19:04:57 +0400 - build 2299

1. Mantis #1944 - fix

drkns 14.12.2011 13:20:46 +0200 - build 2298

1. Mantis#0001944: FAR падает при создании сиволической ссылки на файл или каталог

svs 13.12.2011 21:39:00 +0400 - build 2297

1. Mantis#0001943: Исправление некоторых дефектов функции Message
   (from shmuel)

2. InfoPanel:
   - разделы можно скрывать (Ctrl0..Ctrl9 или через меню Ctrl-F12)
   - добавлен (эксперимент) раздел Power Info - состояние питания (показ через настройки)
   - изменен help

zg 13.12.2011 17:39:38 +0200 - build 2296

1. откат 2286 b-f.

drkns 12.12.2011 15:20:01 +0200 - build 2295

1. Mantis#0001461: ShiftEnter на CD/DVD приводе без вставленного диска в Drive Menu - Черный Экран

w17 09.12.2011 14:37:30 +0400 - build 2294

1. Mantis #1151: Неверное назначение после Retry при копировании на флэшку папки с файлами

w17 09.12.2011 07:13:09 +0400 - build 2293

1. Mantis #1937 - Editor RCtrl+Alt+...

svs 08.12.2011 21:40:53 +0400 - build 2292

1. Mantis#0001940: Встроенный редактор макросов
   Кнопку Change поставим между Yes и No.

svs 08.12.2011 19:59:48 +0400 - build 2291

1. Mantis#0001940: Встроенный редактор макросов
   Если удаляем, то появляется кнопка "Change", нажав на которую попадаем в диалог настройки макроса.

2. Переделка macros.db.
   Вместо таблицы plugin_functions есть "functions", и в XML вместо plugin - function.

   Пред.базу удалить (восстановить можно через экспорт-импорт).

w17 08.12.2011 12:26:58 +0400 - build 2290

1. #1938: После ECTL_DELETESTRING перестают работать блоки в редакторе

w17 08.12.2011 00:07:18 +0400 - build 2289

1. Mantis #514 - продолжение
   скролл консольного буфера работет, если текущий режим не редактор и не вьювер. ScrollLock не проверяется.

w17 07.12.2011 23:53:06 +0400 - build 2288

1. Mantis #1939 Viewer - состояние прогресса поиска в таскбаре

svs 07.12.2011 16:15:27 +0400 - build 2287

1. При импорте в базу у макропоследовательности удаляются все незначащие внешние (Leading и Trailing) пробельные символы.

2. Переделка macros.db.
   В constants & variables добавлено поле type - тип содержимого в поле value.
   Строкое значение, может быть одним из:

    "unknown"  - неопределенное
    "integer"  - целочисленное (__int64)
    "text"     - строка
    "real"     - вещественное (double)

   Значение value в таблице по прежнему хранится в виде строки, после загрузки конвертится в заданный тип.
   Если type отлично от перечисленного, то в ядре такое значение будет как строка.
   Если в базе тип указан как "unknown", то предварительно значение преобразуется в "integer" (без оглядки на ошибки) и ему принудительно ставится тип vtUnknown.

   Примеры в XML:

        <constants>
            <constant name="ACTIVEPANEL" value="0" type="integer"/>
            <constant name="PI" value="3.14159265358979323846" type="real"/>
        </constants>
        <variables>
            <variable name="%%PI" value="3.14" type="text"/>
        </variables>


   Пред.базу удалить (восстановить можно через экспорт-импорт).

   TODO: необходимо при импорте организовать диагностику ошибок!

w17 07.12.2011 12:59:31 +0400 - build 2286

1. Mantis #514 - выделение блоков в редакторе.
   Изменения:
   a) скролл консольного буфера для 'far /w' работает только если горит ScrollLock
   b) Ctrl-Shift/Alt-Up/Down == Shift/Alt-Up/Down
   c) Копирование в клипборд не снимает выделение
   d) 'Заворот' строк для [Ctrl-]Shift-Left/Right
   e) Перемещение по Ctrl-Shift/Alt-Left/Right такое же как и по Ctrrl-Left/Right, кроме особых случаев -- переход через 'якорь' сначала снимает выделение; переход из-за пределов строки влево через конец строки
   f) За пределами строки Ctrl-Alt-Right == Alt-Right == сдвиг вправо на 1 позицию

drkns 07.12.2011 08:16:57 +0200 - build 2285

1. Уточнение 2284.

svs 06.12.2011 16:13:24 +0400 - build 2284

1. В базе macros.db новый формат.
   Поля area, key и flags теперь храняться в текстовом виде
   (что бы не было проблем в будущем от изменения этих значений внутри Far)

   Пред.базу удалить (восстановить можно через экспорт-импорт).

drkns 05.12.2011 18:56:56 +0200 - build 2283

1. Ещё на тему Mantis#0001221.

drkns 05.12.2011 17:05:29 +0200 - build 2282

1. Mantis#0001935: при импорте из xml переменные заносятся в раздел констант

1. Ещё на тему Mantis#0001221.

drkns 05.12.2011 13:21:32 +0200 - build 2281

1. Изменение формата описания макросов в xml. Теперь так: <macro area="%AREA%" key="%KEY%" flags="%FLAGS%" description="%DESC%">%SEQUENCE%</macro>

drkns 04.12.2011 15:46:27 +0200 - build 2280

1. Макросы можно удалять через импорт xml. Для этого атрибут sequence надо оставить пустым или не указывать.

drkns 04.12.2011 00:49:21 +0200 - build 2279

1. Продолжение 2278.

drkns 04.12.2011 00:11:58 +0200 - build 2278

1. Mantis#0001933: настройки макросов не восстанавливаются через far.exe /import

drkns 03.12.2011 19:38:39 +0200 - build 2277

1. Mantis#0001221: Раскраска hard link в панели

2. Mantis#0001932: невозможно удалить макрос

drkns 03.12.2011 01:01:16 +0200 - build 2276

1. Уточнение 2274.1.

w17 03.12.2011 02:30:31 +0400 - build 2275

1. чиним gcc 64 build

drkns 02.12.2011 22:08:21 +0200 - build 2274

1. Свершилось, Far окончательно не использует реестр для хранения настроек.
  - Mantis#0001840: Macro && DB. Где-то что-то могло отвалиться, соблюдаем осторожность.

2. В операционных системах, не поддерживающих аппаратный полноэкранный режим, доступно сочетание AltEnter (+модификаторы).

drkns 30.11.2011 21:41:38 +0200 - build 2273

1. К базам с настройками плагинов теперь цепляются описания.

drkns 27.11.2011 23:32:27 +0200 - build 2272

1. Некорректно обрабатывалась ошибка получения упакованного размера.

2. Поддержка повышения полномочий при получении упакованного размера.

w17 24.11.2011 00:13:34 +0400 - build 2271

1. Mantis #1925, #1326: Editor replace string selection fix.

drkns 19.11.2011 23:35:25 +0200 - build 2270

1. Некорректно обрабатывались флаги FMSG_MB_* во враппере.

w17 17.11.2011 02:55:35 +0400 - build 2269

1. Продолжение 2268

w17 16.11.2011 13:43:39 +0400 - build 2268

1. Выделение из makefile_gcc общей части для ислользования при сборке плагинов.

drkns 13.11.2011 00:51:23 +0200 - build 2267

1. Используем SetUnhandledExceptionFilter.

drkns 10.11.2011 16:28:04 +0200 - build 2266

1. Не применялась дефолтная раскраска файлов, если highlight.db открывалась в памяти.

svs 10.11.2011 12:29:47 +0400 - build 2265

1. Mantis#0001198: Неполадки с Editor.Set
   В Editor.Set() стали RW следующие опции: 8, 12, 13, 14, 17, 18

2. Mantis#0001912: Макрофункция для установки фокуса ввода элементу диалога, имевшему фокус до текущего.
   Добавлены:
    1. Dlg.PrevPos - номер предыдущего фокусного элемента (в дополнение к Dlg.CurPos)
    2. N=Dlg.SetFocus([ID]) - установить фокус на элемент с порядковым номером ID
       Если ID не указан, возвращает номер фокусного элемента
       Возвращает:
         -1 - внутренняя ошибка или функция применены вне диалога
          0 - попытка стать на нефокусный элемент
         >0 - номер предыдущего фокусного элемента

svs 09.11.2011 06:42:02 +0400 - build 2264

1. SQLite 3.7.9

2. Уточнение build 2246

w17 07.11.2011 22:30:08 +0400 - build 2263

1. HOSTTYPE по умолчанию Windows, Cygwin != Unix

drkns 07.11.2011 09:41:27 +0200

1. HOSTTYPE по умолчанию Windows.

w17 07.11.2011 11:30:15 +0400 - build 2262

1. 2252 - Vstudio build repaired

w17 07.11.2011 03:58:15 +0400 - build 2261

1. Ещё раз 2252 - возвращение -O3

w17 05.11.2011 01:02:42 +0400 - build 2260

1. gcc #pragma только для версии 4.6

w17 04.11.2011 21:49:00 +0400 - build 2259

1. Снова поправка для 2252 - msys mingw fix

w17 04.11.2011 20:09:02 +0400 - build 2258

1. Поправка для 2257.2 (__GNUC_MINOR__)

w17 04.11.2011 20:05:17 +0400 - build 2257

1. Уточнение 2252.2

2. nullptr для gcc < 4.6.1

drkns 04.11.2011 14:10:46 +0200 - build 2256

1. Попробуем немного ускорить UnicodeString за счет стекового буфера.

2. Всякие мелочи.

w17 04.11.2011 14:53:20 +0400 - build 2255

1. Уточнение 2252.2

w17 04.11.2011 14:14:30 +0400 - build 2254

1. Уточнение 2252.2

w17 04.11.2011 14:10:35 +0400 - build 2253

1. Уточнение 2252.1

w17 04.11.2011 11:14:20 +0400 - build 2252

MinGW gcc build
   Должны работать:
    сборки из под Windows через tdm-gcc 32/64, в том числе far32 через tdm64;
    сборки из под Cygwin/Linux через кросс MinGW 32/64, только 32-32 b 64-64;

   Проверялись версии MinGW 4.5.2 (нужна правка gcc-шного хидер файла), 4.6.1, 4.6.2

   АХТУНГ!
   флаг -mno-cygwin удалён, MinGW он не нужен, cygwin gcc после версии 1.7.6 его не поддерживает

drkns 31.10.2011 13:24:03 +0200 - build 2251

1. Уточнение 2224.1.

drkns 27.10.2011 13:08:21 +0300 - build 2250

1. Mantis#0001918: Фар валится при выборе "Standard association"

drkns 25.10.2011 20:14:28 +0200

1. Far.exe.ini -> Far.exe.example.ini

w17 25.10.2011 17:09:29 +0400 - build 2249

1. Вьювер - Исправлены ошибки и нормализована отрисовка скроллбара.

2. Вьювер - Упрощение логики запоминания предыдущего режима в далоге Goto (AltF8)

drkns 24.10.2011 15:07:04 +0300 - build 2248

1. Продолжение 2247.1.

drkns 24.10.2011 12:05:37 +0300 - build 2247

1. Mantis#0001916: Фар молча падает при несоответствии формата sqlite.
   Теперь "при несоответствии" пробуем бекапить старую базу и создавать правильную, если же и это не получится - база будет открыта в памяти.

zg 24.10.2011 00:38:08 +0200 - build 2246

1. человеческие имена для структур и их полей, связанных с DN_GETVALUE.

2. FarSettingsHistoryPlugin.->FarSettingsHistory.PluginId.

3. FARMACROVARTYPE нумеруется с 0.

zg 23.10.2011 21:11:21 +0200 - build 2245

1. при замене "folder shorcuts" с плагинового на реальный путь не все поля очищались.

zg 23.10.2011 20:56:26 +0200 - build 2244

1. получение информации о "folder shorcuts" аналогичным для историй образом.

zg 23.10.2011 19:47:51 +0200 - build 2243

1. для историй возвращаются дополнительные параметры.

zg 22.10.2011 23:54:52 +0200 - build 2242

1. выравнивание данных, возвращаемых FCTL_GET*PANELITEM.

zg 22.10.2011 03:52:53 +0200 - build 2241

1. уточнение 2240.2 для случая заглавных букв.

zg 22.10.2011 03:17:46 +0200 - build 2240

1. в 2127 сломали ввод RAlt+символ.

2. тогда же к символам, введённым через RAlt стало добавлятся CtrlRAlt.

3. KEY_CTRLALTSHIFTPRESS не приходит, если нажаты RAlt или RCtrl.

zg 21.10.2011 23:56:07 +0200 - build 2239

1. опция SavePluginFoldersHistory удалена.

2. плагины добавляются в историю всегда и если плагин корректно себя ведёт, переход из истории работает.
   старую history.db надо удалить.

3. исправлено падение, когда находясь внутри файла переходим по folder shortcut внутрь другого файла, обрабатываемого тем же плагином.

zg 21.10.2011 09:36:48 +0200 - build 2238

1. Folder Shortcuts для плагинов сохраняет Guid, а не имя модуля.

zg 20.10.2011 17:25:55 +0200 - build 2237

1. уточнение 2232.1. возвращаем время в UTC и залоченность.

zg 20.10.2011 15:58:27 +0200 - build 2236

1. сборка tdm64-gcc: make DIRBIT=64 -f makefile_gcc.

drkns 20.10.2011 14:15:52 +0300 - build 2235

1. Перед сменой кодовой страницы выполняется проверка корректности преобразования.

drkns 20.10.2011 09:40:46 +0300 - build 2234

1. Если смена кодовой страницы редактора испортила текст - не будем запоминать эту страницу.

w17 20.10.2011 09:49:18 +0400 - build 2233

1. Косметика для #1905

zg 20.10.2011 01:33:55 +0200 - build 2232

1. экспериментальное получение настроек фара через SettingsControl. Пока только истории.
   в качестве id нужно передавать FarGuid, получение с помощью SCTL_ENUM, Root должен быть
   установлен в одно из значений FARSETTINGS_SUBFOLDERS.

w17 19.10.2011 22:36:30 +0400 - build 2231

1. Mantis #1905 again

zg 19.10.2011 17:15:15 +0200 - build 2230

1. DM_ADDHISTORY падал для созданного, но не показанного диалога.

w17 19.10.2011 18:02:30 +0400 - build 2229

1. 1905: viewer dump mode

zg 19.10.2011 14:50:58 +0200 - build 2228

1. враппер: испрвлены DM_LISTGETDATA и DM_LISTSETDATA.

drkns 19.10.2011 08:39:52 +0300 - build 2227

1. [x] Clock in viewer and editor

drkns 18.10.2011 19:17:20 +0200 - build 2226

1. Возможность отмены ожидания для "far /v -".

drkns 18.10.2011 19:03:32 +0200 - build 2225

1. Уточнение 2224.1.

drkns 18.10.2011 14:33:06 +0300 - build 2224

1. Теперь можно прерывать синхронные операции ввода-вывода (привет network-плагину). Ctrl-Break.

w17 16.10.2011 12:39:32 +0400 - build 2223

1. Mantis#1791: "Cannot find the file" по F5 после Ctrl+Tab из сохранённого в редакторе файла

drkns 14.10.2011 18:30:56 +0200 - build 2222

1. Опции "Inactivity time" больше нет.

w17 14.10.2011 18:01:33 +0400 - build 2221

1. Mantis#1823: Автообновление вьювера на флешках

svs 13.10.2011 17:44:03 +0400 - build 2220

1. Mantis#0001882: Разрешить "перехват" макрофункций Dlg.GetValue и ItemCount/CurPos в диалогах.

   Уточнение DN_GETVALUE

   АХТУНГ!
      В макросе индексы начинаются с 1, в АПИ с 0.

   В макросе: dlg.getvalue(Index,TypeInf)

     Если (Index > 0  && Index <= DlgItemCount)
     {
        см. описание dlg.getvalue (только учесть, что в плагин пойдет Index-1)
        /*
           DlgItemCount получаем через dlggetvalueFunc(0,0)
        */
        В макрос возвращает в точности то, что вернул плагин.
        /*
          Здесь плагин может вернуть FMVT_INTEGER/FMVT_UNKNOWN или FMVT_DOUBLE или FMVT_STRING.
        */
     }

     Если (Index > DlgItemCount)
     {
        1) плагин в диалоговую процедуру получает (DN_GETVALUE,Index-1,{FMVT_INTEGER,TypeInf}).
           /*
              FMVT_INTEGER - именно так, дабы не усложнять жисть с описанием :-)
           */
        2) В макрос возвращает в точности то, что вернул плагин.
           /*
             Здесь плагин может вернуть FMVT_INTEGER/FMVT_UNKNOWN или FMVT_DOUBLE или FMVT_STRING.
           */
     }

     Если (Index == 0) // это про диалог
     {
        Если (TypeInf от 0 до 6)   // "6" - пока так, дальше смотря что потом добавим :-)
        {
           см. описание dlg.getvalue (только учесть, что в плагин пойдет Index-1, т.е. -1)
           В макрос возвращает в точности то, что вернул плагин.
           /*
             Здесь плагин может вернуть FMVT_INTEGER/FMVT_UNKNOWN или FMVT_DOUBLE или FMVT_STRING.
           */
        }
        Иначе
        {
           в диалоговую процедуру передается значение {FMVT_UNKNOWN, 0} (в плагин пойдет Index-1, т.е. -1)
        }
     }

     Если (текущая область не диалог) или (Index < DlgItemCount и произошла внутренняя ошибка)
     {
        плагин не получит DN_GETVALUE.
     }


svs 13.10.2011 15:23:12 +0400 - build 2219

1. Mantis#0001595: Проблемы с mmode(1,0) в редакторе
    mmode(1,0) разрешает отображение на экран.
    Однако в некоторых случаях именно из-за него редактор показывается нераскрашеным.

   Пока так... ловим баги ;-)

svs 12.10.2011 11:38:10 +0400 - build 2218

1. Не обновлялась Info-панель, если вносили изменения в диалог настройки информационной панели.

w17 11.10.2011 13:49:00 +0400 - build 2217

1. Mantis#1901: Сохранение позиции при переключении по F6 (редактор/вьювер)

2. Mantis#1766: новая версия вьювера
   Устранение артефактов при попадании искомого текста в область переноса WWrap

svs 10.10.2011 17:21:48 +0400 - build 2216

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus)

svs 09.10.2011 15:29:43 +0400 - build 2215

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from shmuel)
   "...отвалился ввод букв в русской раскладке в одном из плагинов..."

svs 06.10.2011 16:08:21 +0400 - build 2214

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus)

drkns 06.10.2011 13:33:04 +0200 - build 2213

1. И ещё.

drkns 05.10.2011 16:46:24 +0200 - build 2212

1. Ещё на тему #1899.

svs 05.10.2011 11:40:27 +0400 - build 2211

1. Mantis#0001899: Показать информацию от плагине (GUID и т.п.) из F11/F4
   (from Maximus)
   Клавиша F3 вызывает диалог с технической информацией по плагину.

svs 04.10.2011 10:07:48 +0400 - build 2210

1. Mantis#0001766: Новая версия вьювера
   (from 2useven10)

svs 03.10.2011 12:02:41 +0400 - build 2209

1. Mantis#0001529: Неправильное действие макрофункции setposidx

2. Обновим SQLite до "3.7.8"

3. По мотивам "0001897: Far 3.0 не собирается в gcc" - "Include".

svs 01.10.2011 10:20:58 +0400 - build 2208

1. Mantis#0001677: При запуске макроса через MCMD_POSTMACROSTRING задавать код "запускающей" клавиши

svs 30.09.2011 15:09:04 +0400 - build 2207

1. Mantis#0001898: Глюки отрисовки редактора после выполнения макросов
   (from Maximus)

svs 29.09.2011 09:49:28 +0400 - build 2206

1. Mantis#0001766: Новая версия вьювера
   (from 2useven10)

drkns 27.09.2011 21:38:14 +0200 - build 2205

1. Mantis#0001894: Неточности отображения списка плагинов.

drkns 26.09.2011 08:58:57 +0200 - build 2204

1. Коррекция типов в plugin.hpp

drkns 25.09.2011 19:11:11 +0200 - build 2203

1. FarListTitles.TitleLen => FarListTitles.TitleSize,
   FarListTitles.BottomLen => FarListTitles.BottomSize.

svs 23.09.2011 10:29:38 +0400 - build 2202

1. Mantis#0001888: [A|P]Panel.Format

2. Mantis#0001887: FCTL_GETPANELPREFIX
   Panel API: добавлен FCTL_GETPANELPREFIX

drkns 22.09.2011 11:03:59 +0200 - build 2201

1. Mantis#0001883: Spaces generated in editor when using numeric keypad.

drkns 20.09.2011 11:28:28 +0200 - build 2200

1. После запуска программ восстанавливается цвет консоли, который был до запуска.

svs 19.09.2011 09:48:39 +0400 - build 2199

1. Mantis#0001882: Разрешить "перехват" макрофункций Dlg.GetValue и ItemCount/CurPos в диалогах.

   Добавлено новое нотификационное сообщение для диалоговых процедур DN_GETVALUE (=4118)
   DN_GETVALUE посылается в диалоговую процедуру всякий раз, когда в макросах встречается
   Dlg.GetValue(), ItemCount и CurPos.

     Param1 = номер элемента диалога
     Param2 = указатель на структуру TFarGetValue (заполненные)

     Плагин возвращает:
       0 - макродвиг игнорирует
       1 - в Param2 модифицированные данные - макродвиг берет эти данные.

     Здесь TFarGetValue:

      struct FarMacroValue
      {
      	enum FARMACROVARTYPE type;
      	union
      	{
      		__int64  i;
      		double   d;
      		const wchar_t *s;
      	} Value;
      };

     тип переменной:

      enum FARMACROVARTYPE
      {
      	FMVT_UNKNOWN                = -1,
      	FMVT_INTEGER                = 0,
      	FMVT_STRING                 = 1,
      	FMVT_DOUBLE                 = 2,
      };

   Dlg.GetValue() вызов идет для любого элемента диалога.
   ItemCount и CurPos - только для ListBox, раскрытого Combobox и usercontrol.
   Макродвижок сначала "вычисляет" требуемые данные, затем спрашивает диалоговую
   процедуру "оно? если не оно - скорректируй". В случае положительного ответа (!= 0)
   подсовывает в стек данные, которые вернула диалоговая процедура.

2. Macro: Для Dlg.GetValue() добавлен Type = 11 для ListBox и раскрытого Combobox:
    Number, "вернуть количество элементов списка".

svs 13.09.2011 15:28:38 +0400 - build 2198

1. Mantis#0001785: Проблема с запуском если в командной строке присутствует знак "="
   (from 2useven10)

svs 12.09.2011 14:35:48 +0400 - build 2197

1. Mantis#0001873: Подсвеченные клавиши в Параметры - Системные параметры
   (from Raistlin)

2. Немного уточнений в lng (переводы, горячие клавиши)

drkns 12.09.2011 13:23:34 +0200 - build 2196

1. В некоторых случаях могла теряться часть консольного вывода после запуска программ.

svs 12.09.2011 09:46:52 +0400 - build 2195

1. Mantis#0001766: Новая версия вьювера
   (from 2useven10)

   "...стал замечать, что вьювер последних версий стал некорректно отображать
   первые строки при включенной опции [x] Save view and edit history.
   замечаю на файле changelog, т.е. смотрю его для текущей ревизии, через
   несколько дней делаю "svn up", открываем на просмотр файл changelog -
   первые строки на экране непонятно как плавают. делаем Home и
   переоткрытие - становится потребно..."

svs 09.09.2011 17:32:26 +0400 - build 2194

1. Mantis#0000698: Улучшение быстрого поиска
   Первое приближение. Пока не входит в состав основной компиляции (пока не указан дефайн Mantis_698)
   Реализован быстрый поиск по всем всем значениям видимых полей.

svs 05.09.2011 19:46:49 +0400 - build 2193

1. Mantis#0001869: panel.select(0,1,2,clip(0)) не помечает файлы, в имени которых есть запятая
   <АХТУНГ>

      Для строковых значений Items в panel.select():
      Элементы должны быть разделены с помощью Lf ("\n") или CrLf ("\r\n").

   </АХТУНГ>

svs 05.09.2011 19:05:38 +0400 - build 2192

1. Mantis#0001871: Глюк отрисовки в редакторе

drkns 05.09.2011 09:11:02 +0200 - build 2191

1. Новый флаг в EDITORCOLORFLAGS: ECF_TABMARKCURRENT. Подобен ECF_TAB1, но раскрашивается не первый символ табуляции, а совпадающий с горизонтальной координатой курсора редактора.

2. ECF_TAB1 переименован в ECF_TABMARKFIRST.

zg 04.09.2011 14:40:56 +0200 - build 2190

1. ACTL_WAITKEY: Param1=0, Param2 - указатель на INPUT_RECORD или NULL для любой клавиши.

zg 03.09.2011 13:06:29 +0200 - build 2189

1. FarMenuItem.AccelKey теперь имеет тип FarKey.

svs 02.09.2011 09:26:36 +0300 - build 2188

1. Уточнение build 2187

svs 01.09.2011 22:03:43 +0300 - build 2187

1. Mantis#0001743: Возможность отключения истории
   prompt() - если указан не пустой history, то принудительно выставляем историю (на время вызова этой функции).

svs 01.09.2011 17:34:54 +0300 - build 2186

1. мелочи дебажной компиляции

2. В хелп добавлены описания ключей ком.строки /clearcache, /export и /import

drkns 01.09.2011 15:07:03 +0200

1. Уточнение 2185.2 - синхронизация вручную.

drkns 01.09.2011 14:15:09 +0200 - build 2185

1. Include\DlgBuilder.hpp теперь генерируется аналогично остальным заголовкам.

2. При исполнении svn_tag_build.bat теперь производится попытка синхронизировать заголовки и в ..\plugins\common\unicode.

drkns 31.08.2011 15:55:08 +0200 - build 2184

1. ECTL_PROCESSKEY больше нет.

svs 30.08.2011 10:43:11 +0300 - build 2183

1. Mantis#0001866: Сделать все параметры prompt() необязательными
   уточнение build 2182

svs 30.08.2011 10:16:23 +0300 - build 2182

1. Mantis#0001863: Отсутствие строки как параметр функции

   !!!Крайне экспериментально, проверено только на prompt и msgbox!!!

   Теперь параметры можно не указывать :-)

   Например,
     prompt("Title","Text",0x08,,"History")
   работает так же, как и
     prompt("Title","Text",0x08,"","History")

2. Mantis#0001866: Сделать все параметры prompt() необязательными


svs 29.08.2011 14:39:57 +0300 - build 2181

1. Mantis#0001864: Падение отладочной версии при выполнении записанного макроса

2. Mantis#0001856: приведение к общему UserData
   (from samlyukov)

drkns 29.08.2011 08:42:09 +0200 - build 2180

1. Уточнение 2179.2.

drkns 28.08.2011 17:57:54 +0200 - build 2179

1. Mantis#0001865: Инициализация массивов цветов в dialog.cpp

2. Пара мелочей.

svs 28.08.2011 15:26:06 +0300 - build 2178

1. Mantis#0001766: Новая версия вьювера
   (from 2useven10)
   Оптимизация автоскролла для Win7.
   Не сбрасываем кеш, если файл просто растёт.
   На XP эффект почти нулевой.

2. Mantis#0001846: Некорректная реакция на клик мышки в F1

drkns 27.08.2011 16:40:43 +0200 - build 2177

1. Warnings.

2. Снова перетасовка структур, теперь и для x86.

drkns 27.08.2011 11:28:44 +0200 - build 2176

1. Уточнение 2175.1.

drkns 26.08.2011 16:54:08 +0200 - build 2175

1. Для обнуления структур и массивов теперь есть шаблоны ClearStruct() и ClearArray(), которые сами подставят правильный размер.
   <АХТУНГ>Используем их, а не memset.</АХТУНГ>

2. Не всегда заполнялся размер в PluginInfo.

zg 25.08.2011 23:22:28 +0200 - build 2174

1. Mantis#0001864: Падение отладочной версии при выполнении записанного макроса.

drkns 25.08.2011 22:47:06 +0200 - build 2173

1. Warnings.

2. Некоторые структуры перетасованы для более оптимального размещения в x64. Плагины надо пересобрать.

svs 25.08.2011 16:22:47 +0300 - build 2172

1. Mantis#0001858: Возвращать 0 при закрытии диалога prompt() по Esc

svs 25.08.2011 16:01:01 +0300 - build 2171

1. Переделка клавиатурного движка. Начало.

   Macro::ProcessKey(int) -> Macro::ProcessEvent(FAR_INPUT_RECORD)

    struct FAR_INPUT_RECORD
    {
      DWORD IntKey;
      INPUT_RECORD Rec;
    };
    если IntKey == 0, то смотрим Rec, иначе в IntKey содержится KEY_

drkns 25.08.2011 11:48:38 +0200 - build 2170

1. Опечатка в 2169.

drkns 25.08.2011 11:36:00 +0200 - build 2169

1. Mantis#0001862: Статический анализ кода.

svs 25.08.2011 11:32:30 +0300 - build 2168

1. Mantis#0001861: Раздел "Пометка файлов"
   (from Maximus)
   Доработан, дополнен раздел "Пометка файлов".

2. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus)
   Отвалился правый CtrlShiftDot при записи макроса.

drkns 25.08.2011 10:05:45 +0200 - build 2167

1. Mantis#0001833: Поиск файлов - не ThreadSafe.

drkns 25.08.2011 09:54:06 +0200 - build 2166

1. Mantis#0001860: В CtrlL текстовые метки из плагина отрисовываются цветом рамки.

drkns 24.08.2011 23:47:55 +0200 - build 2165

1. В PluginSynchro вместо мьютекса теперь критическая секция.

2. Пара мелочей.

svs 24.08.2011 17:15:00 +0300 - build 2164

1. FSF.FarNameToInputRecord возвращает TRUE, даже если передать несуществующее имя клавиши, например "foobar".

zg 23.08.2011 22:43:26 +0200 - build 2163

1. макросы, добавленные по MCTL_ADDMACRO всегда проверяются в одинаковом порядке.

zg 23.08.2011 22:11:33 +0200 - build 2162

1. MCTL_ADDMACRO: уточнение для нескольких макросов, добавленныйх на одно сочетание клавишь.

2. уточнение освобождения памяти, занятой макросами, при выходе из фара.

svs 23.08.2011 21:49:44 +0300 - build 2161

1. Mantis#0001858: Возвращать 0 при закрытии диалога prompt() по Esc
   - флаг 0x01 принудительно высталяется, т.е. prompt по Enter при пустой строке ввода возвращает таки пустую строку
   - для Esc возвращается не строка, а число = 0 (сделано в build 2160 :-)

zg 23.08.2011 19:43:46 +0200 - build 2160

1. уточнение 2159.3.

zg 23.08.2011 17:33:27 +0200 - build 2159

по мотивам Mantis#0001486

1. первый параметр MacroControl - гуид плагина.

2. MCTL_ADDMACRO: новое апи для добавления макроса в "память".
   Param1 - 0
   Param2 - указатель MacroAddMacro.
   MacroAddMacro:
     Flags - флаги как в MCTL_SENDSTRING.
     AKey - клавиша, на которую назначается макрос.
     SequenceText - текст макроса.
     Description - описание макроса.
     Id - уникальный в рамках плагина идентефикатор.
     Callback - функция, вызываемая перед собственно выполнением макроса. первый параметр - Id макроса. можно проверить что-то и вернуть TRUE - исполнять или FALSE - не исполнять.
   все макросы добавляются в область common.

3. MCTL_DELMACRO удалить макрос.
   Param1 - 0
   Param2 - Id удаляемого макроса.


drkns 23.08.2011 15:46:49 +0200 - build 2158

1. В статусе редактора помимо номера колонки отображается номер символа.

2. Переход по AltF8 в редакторе теперь не на строку/колонку, а на строку/символ.

drkns 23.08.2011 10:41:13 +0200 - build 2157

1. Опечатка в 2155.

2. Уточнение 2105 - второй параметр Menu() был обязательным.

svs 22.08.2011 17:53:53 +0300 - build 2156

1. Теперь в plugin.hpp во всех enum явно прописаны значения публичных констант (все что внутри FAR_USE_INTERNALS - исключение).

   <АХТУНГ>

     При добавлении новых констант в plugin.hpp, явно прописывать их значения!

   </АХТУНГ>

   ЗЫ.
     Теперь можно сгруппировать константы по смыслу в пределах одного enum (например, в FARMESSAGE)

drkns 22.08.2011 14:04:40 +0200 - build 2155

1. Рефакторинг imports.?pp

2. Прочие мелочи.

svs 22.08.2011 11:33:37 +0300 - build 2154

1. Mantis#0001792: Добавить FAR Process ID в информационную панель и заголовок окна

   В шаблон заголовка (Options -> Interface settings -> Far window title addons) добавлена
   переменная "%PID", содержащая ИД текущей запущенной копии Far Manager.

2. Macro: добавлена переменная Far.PID, содержащая ИД текущей запущенной копии Far Manager.

drkns 17.08.2011 15:43:18 +0200 - build 2153

1. Интеллектуальный ARRAYSIZE() для gcc.

2. C++0x warnings.

3. makefile_gcc может работать без msys.

svs 16.08.2011 14:08:31 +0300 - build 2152

1. Mantis#0001843: Ошибка отрисовки панели при menu.show
   (from DAtaMan)

     macro:post menu.Show("AAA\r\nBBB")
     пока меню висит - поменять что-нибудь в папке, открытой на панели
     панель перечитывается, обновляется, затирает часть меню (которая над панелью)

svs 16.08.2011 12:50:50 +0300 - build 2151

1. Mantis#0001848: После возврата из модального редактора сбивается макрообласть

svs 16.08.2011 11:17:45 +0300 - build 2150

1. Mantis#0001852: Макрокоманда Timer
   (DAtaMan + svs)
   Добавлена переменная "Far.UpTime" - сколько времени (миллисекунды) запущена эта копия Far Manager.

drkns 15.08.2011 14:46:13 +0200 - build 2149

1. Изменён формат хранения раскраски файлов. Старый highlight.db надо удалить.

2. Пара уточнений в обработке закрытия консоли.

drkns 14.08.2011 21:42:30 +0200 - build 2148

1. У Folder Shortcuts по умолчанию новое поведение.

drkns 14.08.2011 16:12:58 +0200 - build 2147

1. Продолжение 908.1 - теперь работает и для gcc.

drkns 12.08.2011 18:55:54 +0200 - build 2146

1. В 2127 сломались folder shortcuts.

drkns 12.08.2011 15:28:28 +0200 - build 2145

1. Пара новых опций в настройках панели: "Подсвечивать разделители колонок", "Удваивать глобальные разделители колонок".

svs 12.08.2011 09:36:55 +0300 - build 2144

1. Mantis#0001849: Не срабатывают хоткеи в меню пользователя (F2)
   (from Maximus)
   Любой хоткей вызывает переход на уровень вверх, если выделен последний (пустой) пункт в F2

svs 12.08.2011 09:32:28 +0300 - build 2143

1. Mantis#0001766: Новая версия вьювера
   (from 2useven10)
    Ёще одна поправка для автоскролла.
    'Лишний' код оказался нужным.
    Спасибо Dzirt2005 за диагностику.
    Проявлялось, если вывод батника перенаправить в просматриваемый файл.

drkns 11.08.2011 16:06:20 +0200 - build 2142

1. Mantis#0001851: В раскраске файлов флаг "Прозрачный" для пометок не работает с цветами по-умолчанию.

drkns 11.08.2011 13:44:23 +0200 - build 2141

1. Mantis#0001850: В раскраске файлов не сохраняется состояние флага "прозрачный" для символа пометки.

2. Warnings.

svs 09.08.2011 23:18:26 +0300 - build 2140

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus)
   В области Common вместо "правого" выполнялся "левый" макрос

drkns 08.08.2011 11:37:13 +0200 - build 2139

1.Mantis#0001589: Отображать в колонке панели расширение файла или "Align file extensions"

drkns 08.08.2011 10:51:58 +0200 - build 2138

1. И ещё.

drkns 07.08.2011 00:19:21 +0200 - build 2137

1. Ещё пара уточнений в обработке цвета.

drkns 06.08.2011 15:58:22 +0200 - build 2136

1. Уточнение загрузки/сохранения раскраски файлов.

drkns 06.08.2011 13:02:39 +0200 - build 2135

1. Dependencies & warnings.

drkns 06.08.2011 11:42:59 +0200 - build 2134

1. Mantis#0001844: Не работают маски исключений

drkns 05.08.2011 15:10:25 +0200 - build 2133

1. Warnings.

svs 05.08.2011 12:08:57 +0300 - build 2132

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus)
   1. теперь можно повесить и на правую
   2. немного форматирования
   3. неиспользуемая KeyMacro::GetRecordSize убрана под "#if 0"

drkns 05.08.2011 10:11:19 +0200 - build 2131

1. Если базы данных с WAL Journaling Mode (истории/кеш плагинов) были недоступны для записи - всё падало.

2. При смене диска подавляются запросы повышения прав.

drkns 04.08.2011 23:43:18 +0200 - build 2130

1. FarColor.ForegroundColor и FarColor.BackgroundColor - COLORREF. Если флаг FCF_<F|B>G_4BIT не указан, там ожидается цвет в формате 0xAABBGGRR.

2. Сгенерированные заголовки (farcolor.hpp, plugin.hpp) теперь компилируются при сборке (как С и С++), дабы выявлять возможные проблемы на более ранней стадии.

drkns 04.08.2011 12:17:52 +0200 - build 2129

1. И ещё раз.

drkns 04.08.2011 09:17:17 +0200 - build 2128

1. Уточнение 2125.1.

svs 04.08.2011 02:55:52 +0300 - build 2127

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus)
   Next...
   - если за "правыми" комбинациями ранее не было зарезервировано каких-либо действия - фар реагирует на них так же как на "левые".
   - Изыски типа ПравыйCtrlЛевыйAlt+что-то - специально никак не обрабатываются (в смысле замен Правый->Левый не производится).
   - В макросах, как и везде, если на "правую" комбинацию ничего специально не было повешено - реагируем так же как на "левую".

   svs> заменил 255 на 65535

drkns 03.08.2011 23:57:15 +0200 - build 2126

1. поддержка внешней отрисовки:
   - изменены значения некоторых FCF_-флагов;
   - console.dll -> extendedconsole.dll;
   - выделенный в редакторе текст сохраняет расширенные атрибуты.

drkns 03.08.2011 12:12:12 +0200 - build 2125

1. Используемые "нечетырёхбитные" цвета при выводе более-менее адекватно переводятся в стандартную консольную палитру.

drkns 02.08.2011 21:00:36 +0200 - build 2124

1. Mantis#0001603: Автодополнение в диалоге в середине строки отрабатывает некорректно

2. Все Reserved в plugin.hpp приведены к размеру указателя.

drkns 02.08.2011 10:55:14 +0200 - build 2123

1. Mantis#0001842: В Execute.cpp неаккуратно считывается буфер

svs 01.08.2011 15:43:24 +0300 - build 2122

1. Mantis#0001832: Проблема FarNameToInputRecord / FarInputRecordToName
   (from Maximus + skirda)
   Очередная итерация на тему...

drkns 01.08.2011 11:02:24 +0200 - build 2121

1. Уточнение работы раскраски файлов с расширенными цветовыми атрибутами.

drkns 31.07.2011 16:34:12 +0200 - build 2120

1. Уточнение раскраски файлов по умолчанию.

drkns 31.07.2011 16:23:27 +0200 - build 2119

1. Уточнение 2118.1.

drkns 31.07.2011 16:09:11 +0200 - build 2118

1. Внутренние изменения в обработке цвета. Старые конфиги надо удалить.

2. Экспериментальная поддержка внешней отрисовки.

drkns 28.07.2011 19:46:22 +0200 - build 2117

1. При вайпе теперь отображается прогресс.

2. Враппер можно отключать на этапе компиляции.

drkns 25.07.2011 19:15:39 +0200 - build 2116

1. DM_LISTSETMOUSEREACTION больше нет. Желаемое поведение списка задается флагами DIF_LISTTRACKMOUSE/DIF_LISTTRACKMOUSEINFOCUS при создании диалога.
   По умолчанию для новых плагинов флаги не установлены (список за мышью не следит), для ansi-плагинов установлен DIF_LISTTRACKMOUSE (следит всегда).

svs 24.07.2011 10:17:29 +0300 - build 2115

1. Mantis#0001751: Создание меню в макросе
   (from DAtaMan)
   + в Menu.Show добавлены дополнительные сочетания клавиш:
      Ctrl-Multiply - инверсия пометки
      Ctrl-A - подогнать меню по высоте
   - при нажатии Esc возвращалось "0". Теперь - пустая строка (или 0, если результат, как индекс)

2. Mantis#0001793: Разрешить прерывание макроса по CtrlBreak во время "визуальных" функций
   (from Maximus)
   После очередного патча прерывания макроса поломалась отрисовка при mmode(1,0)

drkns 21.07.2011 21:28:51 +0200 - build 2114

1. Уточнение 2113.1.

drkns 21.07.2011 10:15:15 +0200 - build 2113

1. Теперь Far самостоятельно обрабатывает команду set <var>.

drkns 20.07.2011 13:13:51 +0200 - build 2112

1. Более корректное сообщение об ошибке запуска в случае использования comspec.

drkns 12.07.2011 11:07:16 +0200 - build 2111

1. Внутреннние изменения в обработке цвета.

drkns 11.07.2011 21:29:12 +0200 - build 2110

1. Продолжение 2109.

drkns 11.07.2011 20:59:48 +0200 - build 2109

1. Рефакторинг Edit / EditControl.

zg 10.07.2011 21:53:31 +0200 - build 2108

1. уточнение 2106.1. тип MacroSendMacroText.AKey - INPUT_RECORD, потому что кнопки мыши тоже могут быть AKey.

zg 10.07.2011 16:02:13 +0200 - build 2107

1. добавлен второй параметр PluginStartupInfo.InputBox - гуид создаваемого диалога.

zg 10.07.2011 15:43:54 +0200 - build 2106

1. тип MacroSendMacroText.AKey теперь FarKey.

zg 10.07.2011 03:08:53 +0200 - build 2105

1. меню теперь тоже могут иметь уникальный гуид. соответственно добавлен второй параметр PluginStartupInfo.Menu - гуид создаваемого меню.

2. в макроязык добавлено состояние Menu.Info.Id - строковое представление идентификатора текущего меню.

3. добавлен второй параметр PluginStartupInfo.Message - гуид создаваемого диалога.

drkns 09.07.2011 14:58:46 +0200 - build 2104

1. Откат 1771.2.

drkns 09.07.2011 02:05:28 +0200

1. farkeys.hpp больше в API не входит. Константы KEY_* только для внутреннего использования.

zg 09.07.2011 01:10:01 +0200 - build 2103

1. выкинуты FarInputRecordToKey и FarKeyToInputRecord.

2. FarKeyToName заменена на FarInputRecordToName.

3. FarNameToKey заменена на FarNameToInputRecord.

drkns 08.07.2011 12:40:30 +0200 - build 2102

1. Ещё раз #0001830.

drkns 07.07.2011 19:55:23 +0200 - build 2101

1. Mantis#0001830: При попытке скопировать файл с сети в nul получаем elevation

drkns 07.07.2011 12:31:47 +0200 - build 2100

1. Не работало сообщение DM_SETHISTORY.

drkns 07.07.2011 10:43:36 +0200 - build 2099

1. VMenu.UserData ещё даёт о себе знать.

drkns 04.07.2011 21:44:34 +0200 - build 2098

1. Ещё порция size_t в API.

drkns 04.07.2011 16:15:32 +0200 - build 2097

1. Уточнение 2090.2.

drkns 04.07.2011 13:49:58 +0200 - build 2096

1. Уточнение 2062.1. Как следствие - Mantis#0001824: Лишний elevation в Drive menu.

drkns 04.07.2011 08:26:08 +0200 - build 2095

1. Mantis#0001672: визуальные глюки после закрытия диалога и Autocompletion

drkns 03.07.2011 21:00:12 +0200 - build 2094

1. Mantis#0001822: Поломался grabber

drkns 02.07.2011 13:47:03 +0200 - build 2093

1. Включаем low-fragmentation heap только там, где это актуально.

drkns 01.07.2011 22:03:37 +0200 - build 2092

1. Mantis#0001820: Ошибка отрисовки панели при OPIF_DISABLEHIGHLIGHTING

drkns 01.07.2011 13:08:33 +0200 - build 2091

1. %FARPROFILE%, %FARLOCALPROFILE%.

drkns 01.07.2011 09:06:56 +0200 - build 2090

1. Mantis#0001818: Ошибка анси-враппера.

2. Настройки "personal plugins path" и TI#2 больше нет, "персональные" плагины грузятся из <profile>\plugins.

3. В связи с п. 2 *.db плагинов переехали в <profile>\PluginsData.

4. Локальный (UseSystemProfiles=0) путь хранения настроек по умолчанию %farhome%\Profile.

5. Баги в filestr.

svs 30.06.2011 13:53:47 +0300 - build 2089

1. Mantis#0001751: Создание меню в макросе
   (from DAtaMan)
   багофиксы:
     - поломалась обработка CtrlAdd/CtrlSubtract
     - более корректный парсинг пустых строк
     - при пустом Title, в заголовке было "0"
     + автонумерация выполняется после сортировки/удаления дубликатов
     + сепараторы при сортировке/удалении дубликатов пропускаются

2. SQLite: обновление до 3.7.7.1
   (http://www.sqlite.org/releaselog/3_7_7_1.html)

drkns 29.06.2011 11:26:35 +0200 - build 2088

1. Отладочный мусор в 2087.

drkns 29.06.2011 11:12:33 +0200 - build 2087

1. Снова работаем в win2k.

drkns 29.06.2011 08:28:07 +0200 - build 2086

1. "Последствия" Mantis#1801.

drkns 29.06.2011 00:43:46 +0200 - build 2085

1. Mantis#0001816: Ошибка в цветах диалога ANSI враппера.

drkns 28.06.2011 22:38:49 +0200 - build 2084

1. Уточнение 2080.1.

drkns 28.06.2011 22:09:23 +0200 - build 2083

1. Правильный guid Network-плагина.

2. Mantis#0001766: Новая версия вьювера.

drkns 28.06.2011 17:43:08 +0200 - build 2082

1. Изменены параметры ClosePanelW, ConfigureW, ProcessDialogEventW, ProcessEditorEventW, ProcessPanelEventW, ProcessPanelInputW, ProcessSynchroEventW, ProcessViewerEventW.

drkns 28.06.2011 11:21:36 +0200 - build 2081

1. Mantis#0001815: Ошибка в ACTL_GETARRAYCOLOR

2. Очередная неполноценность заголовков gcc.

3. Откат 2079.2.

drkns 27.06.2011 15:23:38 +0200 - build 2080

1. При elevation базовый и вспомогательный процесс привязаны к одному job-объекту.

drkns 27.06.2011 11:59:49 +0200 - build 2079

1. Mantis#0001809: Некорректная прогрутка консоли при выходе.

2. Бесконечный цикл при построении дерева для каталогов "." и "..".

drkns 25.06.2011 18:20:20 +0200 - build 2078

1. Mantis#0001812: Поломалась раскраска в редакторе

drkns 24.06.2011 21:31:25 +0200 - build 2077

1. Mantis#0001807: Зависание при нажатии в CtrlAltPgUp/CtrlAltPgDn

drkns 23.06.2011 16:46:50 +0200 - build 2076

1. Mantis#0001801: в фильтре обрабатывать полное содержание PluginPanelItem.FileName

2. Mantis#0001805: Опечатки в английском файле помощи

3. Mantis#0001806: Не выделяются вертикальные блоки при отключенном CursorBeyondEOL

4. Mantis#0001807: Зависание при нажатии в CtrlAltPgUp/CtrlAltPgDn

drkns 21.06.2011 21:51:58 +0200 - build 2075

1. ACTL_GETSYSWORDDIV ожидает размер буфера в Param1.

2. Ещё правки 2070.

drkns 21.06.2011 20:14:06 +0200 - build 2074

1. И ещё.

drkns 21.06.2011 19:06:45 +0200 - build 2073

1. И ещё раз.

drkns 21.06.2011 14:17:17 +0200 - build 2072

1. Уточнение 2070.

drkns 21.06.2011 10:53:36 +0200 - build 2071

1. Продолжение 2070.
   В API вместо CHAR_INFO используется FAR_CHAR_INFO.

drkns 20.06.2011 23:22:12 +0200 - build 2070

1. Здравствуй, радуга: везде внутри используем FarColor.
   Изменения в api:
   - В DN_CTLCOLORDIALOG в Param2 приходит FarColor*, менять надо сразу его.
   - В DN_CTLCOLORDLGITEM в Param2 приходит FarDialogItemColors*, менять надо FarDialogItemColors.Colors по принципу: Colors[0] == lwlb, Colors[1] == lwhb, Colors[2] == hwlb, Colors[3] == hwhb.
   - В DN_CTLCOLORDLGLIST в Param2 приходит FarDialogItemColors*, в остальном - как было.
   - ACTL_GETCOLOR, ACTL_GETARRAYCOLOR, ACTL_SETARRAYCOLOR работают с FarColor.
   - DIF_SETCOLOR больше нет, цвет надо задавать в обработчике.

   Формат хранения цвета изменён, generalconfig.db и highlight.db надо удалить.

drkns 18.06.2011 20:39:57 +0200 - build 2069

1. Mantis#0001800: Загрузка процессора в простое

drkns 17.06.2011 08:17:00 +0200 - build 2068

1. Разделители в списке дополнения теперь с подписями.

2. Внутреннние изменения в обработке цвета.

drkns 16.06.2011 19:44:44 +0200 - build 2067

1. Вызов диалогов после DM_CLOSE приводил к падению.

2. Оптимизация чтения каталогов.

3. Уточнения plugin.hpp.

svs 10.06.2011 13:33:43 +0300 - build 2066

1. Mantis#0001793: Разрешить прерывание макроса по CtrlBreak во время "визуальных" функций
   Очередное уточнение...

2. Mantis#0001789: Функция для управления быстрым фильтром в списках (CtrlAltF)
   (from Maximus)
   Добавлены макрофункции:
     1) Выполняет операции фильтрации (CtrlAltF)
        N=Menu.Filter([Action[,Mode])
     2) Выполняет операции со строкой фильтра (CtrlAltF)
        S=Menu.FilterStr([Action[,S]])

svs 07.06.2011 14:04:54 +0300 - build 2065

1. Mantis#0001795: Добавить функции Plugin.Load, Plugin.Unload
   2 Новых макрофункции:
      N=Plugin.Load(DllPath[,ForceLoad])   - загрузка плагина
      N=Plugin.Unload(DllPath)             - выгрузка плагина
      возвращают 1 если ОК, 0 если ошибка

svs 06.06.2011 18:08:55 +0300 - build 2064

1. Mantis#0001793: Разрешить прерывание макроса по CtrlBreak во время "визуальных" функций
   Когда на экране MsgBox, Prompt или Menu.Show, макрос нельзя прервать с помощью CtrlBreak.

t-rex 05.06.2011 21:47:13 +0200 - build 2063

1. From Maximus: Mantis#1794: Если после фильтра CtrlAltF в списке не остается ни одной строки - он не перерисовывается.

drkns 03.06.2011 15:38:45 +0200 - build 2062

1. Не работало открытие проводника по "." + ShiftEnter в корне диска.

2. Настройки Xlat сохраняются при выходе, дабы не вынюхивать наличие русской раскладки при каждом старте.

3. Прочая косметика.

svs 03.06.2011 09:15:08 +0300 - build 2061

1. Mantis#0001766: Новая версия вьювера
   (from 2useven10)
   fix для длинных строк (поправлены ошибки + MaxLineSize: Min=100, Def=10000, Max=100000)

2. Mantis#0001790: Включить XLat по умолчанию при установленной в системе русской раскладки
   (from Maximus)

drkns 31.05.2011 18:23:46 +0200 - build 2060

1. Mantis#0001787: Ошибка Ansi враппера (ACTL_GETWINDOWINFO).

svs 28.05.2011 15:19:55 +0300 - build 2059

1. Mantis#0001786: Проблемы подключения к сетевым дискам
   (from Maximus)

svs 28.05.2011 10:56:14 +0300 - build 2058

1. Mantis#0001782: Ошибка выделения при наличии табов

t-rex 28.05.2011 02:22:22 +0200 - build 2057

1. Mantis#0001784: Глюки с кешем плагинов (продолжение).

drkns 27.05.2011 09:34:24 +0200 - build 2056

1. При создании нового файла некорректно устанавливалась кодовая страница.

drkns 27.05.2011 09:15:37 +0200 - build 2055

1. Mantis#0001784: Глюки с кешем плагинов

svs 26.05.2011 16:17:09 +0300 - build 2054

1. По мотивам комментриев Mantis#0001782.
   Macro: Запретим выделять блок (Editor.Sel()) за пределами строки, если "[ ] Cursor beyond end of line"
   (попытка раз)

2. Mantis#0001766: Новая версия вьювера
   (from 2useven10)
   Порядка 30% кода переписано...

   Внутренности:
    - полностью переделан поиск
    - добавлен механизм кеширования переводов строк
    - юникодные файлы теперь как все прочие (нет размеру в символах!)
    - переделан HexView
    - переработан диалог поиска

   Функции:
    - добавлен поиск регулярных выражений (построчный в обе стороны)
    - повторный поиск всегда зациклен до места начала поиска или смены направления
    - добавлена возможность изменения максимальной длины строки (параметр - "Viewer.MaxLineSize:TYPE_INTEGER")
       минимальное значение -    80
       по умолчанию         -  2048
       максимальное         - 16384
    - добавлена опция ("Viewer.SearchEditFocus:TYPE_INTEGER"), позволяющая после изменения параметров в диалоге поиска
      автоматически ставить фокус в поле ввода. По умолчанию отключена (=0)

drkns 26.05.2011 14:35:27 +0200 - build 2053

1. На всякий случай учтем ситуацию "уид, полученный из кеша, не совпадает с полученным от плагина".

drkns 26.05.2011 14:11:16 +0200 - build 2052

1. Уточнение 2050.

drkns 26.05.2011 08:52:56 +0200 - build 2051

1. Более корректное решение M#1783.

drkns 25.05.2011 16:40:51 +0200 - build 2050

1. Продолжаем абстрагировать враппер.

2. Mantis#0001783: При копировании файлов - мусор в заголове консоли

drkns 25.05.2011 12:15:20 +0200 - build 2049

1. Продолжаем абстрагировать враппер.

drkns 24.05.2011 23:49:08 +0200 - build 2048

1. Продолжение 1978.
   - частично абстрагируем враппер: PluginW теперь просто Plugin, PluginA наследуется от него.
   - прибито ещё немного копипасты.

2. Warnings.

drkns 23.05.2011 21:31:52 +0200 - build 2047

1. В некоторых случаях неправильно центрировались диалоги.

svs 23.05.2011 16:38:21 +0300 - build 2046

1. Mantis#0001755: Невозможно изменить фокус в обработчике клика на RadioButton
   (from 2useven10)

2. В АПИ добавлен флаг EF_DISABLESAVEPOS - не сохранять позицию.
   и отрыт флаг EF_LOCKED - при открытии файла сразу выставить блокировку на редактирование.

3. Mantis#0001183: При Reload запоминание кодовой страницы должно происходить раньше считывания
   (from 2useven10)

svs 23.05.2011 12:13:01 +0300 - build 2045

1. Mantis#0001775: Shift-F4: Возможность пере-автоопределения кодировки при открытии файла
   (from 2useven10)

zg 21.05.2011 20:32:05 +0200 - build 2044

1. сохранение z-позиции областей раскраски с одинаковым приоритетом. но лучше использовать разные.

2. gcc варнинги в sqlite.c.

t-rex 21.05.2011 13:06:02 +0200 - build 2043

1. EDITOR_COLOR_ANSI_PRIORITY -> EDITOR_COLOR_NORMAL_PRIORITY

2. Так как Priority unsigned то SortColors() должен быть другой.

3. sqlite 3.7.6.3

4. tinyxml 2.6.2

drkns 21.05.2011 13:00:29 +0200 - build 2042

1. Mantis#0001771: некорректно проверяется размер структуры в DM_GETDIALOGINFO

2. Mantis#0001778: Отображать в списке выбора плагинов Title вместо ModuleName

zg 20.05.2011 21:25:11 +0200 - build 2041

1. в EditorColor добавлены два поля: Owner и Priority.
   Owner - гуид владелеца цветовой области.
   Priority - приоритет цветовой области. чем больше, тем выше цветовая область.
2. убраны шаманства с удалением через ECTL_ADDCOLOR. теперь для этого ECTL_DELCOLOR и EditorDeleteColor.
   удаляется только области, у которых владелец совпадает с EditorDeleteColor.Owner.

svs 20.05.2011 17:44:06 +0300 - build 2040

1. Mantis#0001774: Возможность завести 'черный список' кодовых страниц (codepages) autodetect
   (from 2useven10)
   В конфиг добавлен текстовый параметр: strNoAutoDetectCP в котором через запятую
   можно задавать кодовые страницы которые будут исключены из UCD автодетекта.

   перечисленные здесь кодовые страницы будут исключены из детектирования nsUniversalDetectorEx.
   автодетект юникодных страниц от этого не зависит, поэтому UTF-8 будет определяться даже если
   65001 здесь присутствует. Если UniversalDetector выдаст страницу из этого списка, она будет
   заменена на умолчательную ANSI или OEM, в зависимости от настроек.

   если strNoAutoDetectCP
     "" -- никакой фильтрации UCD автодетекта (это умолчание - как сейчас)
       "-1" -- пропускаются только ACP, OEMCP и любимые если Ctrl-H включен (иначе фильтрации нет)
     "cp1,cp2,..." -- не пропускаются перечисленные в списке

   пример: "1250,1252,1253,1255,855,10005,28592,28595,28597,28598,38598,65001" - эти кодовые страницы
           будут исключены из детекта

2. Mantis#0001768: testfolder(): неверный код возврата для пустого каталога
   ...продолжаем извращения :-(

drkns 20.05.2011 15:02:43 +0200 - build 2039

1. При создании папки можно заодно прицепить к ней reparse point.

2. Пара мелочей.

svs 20.05.2011 11:13:13 +0300 - build 2038

1. Mantis#0001776: поломался автоскролл пополняемого файла
   (from 2useven10)

2. Mantins#0001736: akey(1,0)==akey(1,1) Far 3.0.1931 far2.0.1807
   Продолжение эпопеи.

     Макрос на CtrlShifF1:
         msgbox(akey(1,0),akey(1,1))
         работает нормально:
         +- CtrlShiftF1 -+
         |  CtrlShiftF1  |
         а вот:
         CtrlO msgbox(akey(1,0),akey(1,1))
         неправильно (куда то потерялся модификатор Shift) :
         +-- CtrlF1 ---+
         | CtrlShiftF1 |
         а если макрос выглядит так:
         msgbox() msgbox(akey(1,0),akey(1,1))
         то модификаторов вообще нет:
         +---- F1 -----+
         | CtrlShiftF1 |

         Макрос на MsWheelDown:
         msgbox(Akey(0),MsWheelDown)
         +- 196609 -+
         |  131076  |

    Здесь для MsWheelXXX создадим искуственную среду - заюзаем 4 позиции после VK_F24 (они вроде как бы и не используются)

     VK_F24+1 == KEY_MSWHEEL_DOWN
     VK_F24+2 == KEY_MSWHEEL_UP
     VK_F24+3 == KEY_MSWHEEL_LEFT
     VK_F24+4 == KEY_MSWHEEL_RIGHT

    (в случае проблем - необходимо будет "перемещать" эти значения в верхний байт wVirtualKeyCode, а младший делать FF)

    Причина: это мышиное событие, но нам нужно клавиатурное. Его и раньше преобразовывали, но Rec делали пустышкой.

    Так же - везде, где ранее использовалась CalcKeyCode "мимо кассы" (вне GetInputRecord), теперь необходимо
    юзать ShieldCalcKeyCode. Эта функция "защищает" FarKeyboardState "основного процесса".

3. Mantis#0001768: testfolder(): неверный код возврата для пустого каталога
   для файла пока возвращаем TSTFLD_ERROR


drkns 20.05.2011 09:07:19 +0200 - build 2037

1. В ExitFARW передается структура ExitInfo (на будущее).

svs 19.05.2011 18:11:44 +0300 - build 2036

1. Mantis#0001768: testfolder(): неверный код возврата для пустого каталога

   АХТУНГ!!!

   Изменены коды возвратов у функции testfolder():

       2 папка не пустая
       1 папка пустая
       0 папка не существует
      -1 нет доступа
      -2 ошибка (некорректный параметр или внутренние проблемы с выделением памяти)

      Если > 0 - существует и доступна
      Если = 0 - не существует, но можно попробовать создать
      Если < 0 - ничего обнадеживающего функция не сообщает

2. Mantis#0001773: Дадим возможность разрешать пункт AutoDetect в меню по Shift-F8
   добавка к редактору
   (from 2useven10)

svs 19.05.2011 14:25:38 +0300 - build 2035

1. Mantis#0001772: Небольшое причесывание кода CacheRead и его использования во вьювере
   небольшая чистка кода
   (from 2useven10)

svs 19.05.2011 14:07:17 +0300 - build 2034

1. Mantis#0001773: Дадим возможность разрешать пункт AutoDetect в меню по Shift-F8
   Просто добавлен параметр, чтобы это можно было использовать (доступно пока во вьювере)
   (from 2useven10)

drkns 17.05.2011 23:00:00 +0200 - build 2033

1. VMenu.UserData ещё даёт о себе знать.

2. Рефакторинг ConsoleTitle.

drkns 16.05.2011 20:41:14 +0200 - build 2032

1. Handle leak при отсоединении виртуальных дисков.

2. Mantis#0001769: Ошибка в DM_EDITUNCHANGEDFLAG(id,-1)

t-rex 15.05.2011 20:10:24 +0200 - build 2031

1. В OpenW(OPEN_ANALYSE) можно вернуть -2 как и раньше в OpenFilePluginW.

drkns 14.05.2011 18:06:52 +0200 - build 2030

1. Падение при работе с фильтром в истории.

2. GCC.

svs 14.05.2011 14:53:18 +0300 - build 2029

1. Mantis#0001687: ProcessConsoleInput
   Очередное уточнение

2. Macro: Бага в Editor.Sel() - не учитывались табы...
   (репорт из рассылки fardev@googlegroups.com)

drkns 11.05.2011 20:49:34 +0200 - build 2028

1. Разные мелочи.

svs 11.05.2011 17:44:58 +0300 - build 2027

1. ProcessEditorInputW - изменен параметр:
    теперь это указатель на структуру
      struct ProcessEditorInputInfo
      {
        size_t StructSize;
        INPUT_RECORD Rec;
      };

2. Переименование: ProcessKeyW -> ProcessPanelInputW

3. и... в ProcessPanelInputW - изменен параметр:
    указатель на структуру
      struct ProcessPanelInputInfo
      {
        size_t StructSize;
        INPUT_RECORD Rec;
      };

4. Mantis#0001759: ProcessKeyW вызывается по два раза
   ...теперь только для A-плагинов. Препроцессы см. Mantis#0001687

5. Mantis#0001687: ProcessConsoleInput
   "В начале..."
   (код пока "закрыт" дефайном MANTIS_0001687)

6. Mantis#0000466: Расширение макроязыка плагинами
   "...продолжение..."
   (код пока "закрыт" дефайном MANTIS_0000466)

7. Небольшая добавка в виде DEFUSERFLAGS в файл makefile_vc
   ...для целей, подобных пп 5 и 6.

svs 10.05.2011 09:29:07 +0300 - build 2026

1. Mantis#0001760: FSF.FarInputRecordToKey влияет на внутренние переменные фара

drkns 08.05.2011 16:37:54 +0200 - build 2025

1. Mantis#0001622: Не очень красивый вид окна результатов поиска файла

2. Mantis#0001763: Far 3.0 не собирается в gcc (неправильный регистр в include)

3. Ещё пара мелочей.

drkns 04.05.2011 12:24:24 +0200 - build 2024

1. И ещё.

drkns 04.05.2011 12:06:23 +0200 - build 2023

1. И ещё раз.

drkns 04.05.2011 11:19:21 +0200 - build 2022

1. Продолжение 2021.

drkns 04.05.2011 10:15:20 +0200 - build 2021

1. И снова VMenu.UserData: DM_LISTGETDATA теперь всегда возвращает указатель на данные.

drkns 03.05.2011 15:27:09 +0200 - build 2020

1. Уточнение предыдущего билда.

drkns 03.05.2011 12:41:45 +0200 - build 2019

1. Для FCTL_GETPANELITEM, FCTL_GETSELECTEDPANELITEM, FCTL_GETCURRENTPANELITEM в качестве Param2 теперь надо передавать структуру FarGetPluginPanelItem:

   struct FarGetPluginPanelItem
   {
     size_t Size;
     PluginPanelItem* Item;
   };

   Item - указатель на буфер, принимающий данные
   Size - размер буфера.

   Буфер будет заполнен только если его размер достаточен.

   Возвращаемое значение: необходимый размер буфера.

2. Для DM_GETDLGITEM в качестве Param2 надо передавать структуру FarGetDialogItem. Принцип тот же, что и в FCTL_GET*PANELITEM


drkns 30.04.2011 16:28:33 +0200 - build 2018

1. warnings.

2. косметические изменения в BaseFormat.

drkns 29.04.2011 23:55:55 +0200 - build 2017

1. GСС warnings.

2. Пара мелочей.

t-rex 29.04.2011 21:06:02 +0200 - build 2016

1. Вместо SCTL_SUBKEY теперь есть SCTL_CREATESUBKEY (открыть существующий если нет то создать) и SCTL_OPENSUBKEY (открыть существующий).

2. Mantis#1757: SettingsControl(SCTL_CREATE), вызванный из ExitFARW, возвращает NULL.

t-rex 29.04.2011 03:57:23 +0200 - build 2015

1. Настройки каждого плагина хранятся в отдельной базе в %appdata%\Far Manager\Profile\Plugins.
   Исключает возможность залочивания всей базы одним "левым" плагином.
   pluginsconfig.db можно удалить.

2. Экспорт/импорт для 1.

t-rex 29.04.2011 00:42:27 +0200 - build 2014

1. Экспорт/импорт pluginhotkeys. В общем осталась тока history, но пока думаю что для неё это и не надо.

2. Far.exe /clearcache [Custom location for Far configuration files - overrides Far.exe.ini]
   Очищает кэш плагинов.

t-rex 28.04.2011 21:44:56 +0200 - build 2013

1. Забыл ненужный код.

t-rex 28.04.2011 21:33:34 +0200 - build 2012 футуре

1. Импорт из XML для HierarchicalConfig.

2. Настройки panelmodes переехали в HierarchicalConfig, старый panelmodes.db желательно удалить.

3. Мелкое изменение в формате xml - главный ключ farconfig.

drkns 28.04.2011 14:16:24 +0200 - build 2011

1. Пара мелочей на тему инициализации путей.

drkns 28.04.2011 13:52:23 +0200 - build 2010

1. В копире зачем-то присутствовала волшебная логика вида "если включен фильтр, то перемещать надо через копирование + удаление".
   Вроде бы fixed. Желательно погонять, вдруг отвалилось где.

drkns 28.04.2011 08:51:32 +0200 - build 2009

1. Поддержка unicode в именах xml.

t-rex 28.04.2011 02:08:28 +0200 - build 2008

1. Криво создавались xml не с английским именем.

t-rex 28.04.2011 01:57:57 +0200 - build 2007

1. Умеем экспортировать (импорт будет позже) HierarchicalConfig базы.
   Т.е. pluginsconfig, filters, highlight, shortcuts.

t-rex 27.04.2011 23:34:03 +0200 - build 2006

1. Умеем экспортировать/импортировать ассоциации.
   Перед импортом, все текущие ассоциации удаляются (если есть тэг associations в xml).

t-rex 27.04.2011 21:16:21 +0200 - build 2005

1. Перенёс db/xml зависимый код из main.cpp в configdb.cpp.

t-rex 27.04.2011 20:35:54 +0200 - build 2004

1. Far.exe /export <out.xml> [Custom location for Far configuration files - overrides Far.exe.ini]
   Far.exe /import <in.xml> [Custom location for Far configuration files - overrides Far.exe.ini]
   Пока что работает только для generalconfig.

drkns 27.04.2011 15:48:21 +0200 - build 2003

1. Переделана сборка ucd, sqlite и tinyxml.

t-rex 27.04.2011 14:35:14 +0200 - build 2002

1. Продолжаем играться с xml.

drkns 27.04.2011 11:36:52 +0200 - build 2001

1. Плагин, экспортирующий ProcessDialogEvent и создающий диалоги в SetStartupInfo, уводил far в рекурсию.

svs 27.04.2011 10:11:51 +0300 - build 2000

   Милениум! :-)

1. Mantis#0001751: Создание меню в макросе

t-rex 27.04.2011 01:40:51 +0200 - build 1999

1. Начальная стадия имплементации возможности импорта/экспорта настроек из/в xml.
   tinyxml добавлен в проект.

t-rex 26.04.2011 22:54:14 +0200 - build 1998

1. Небольшое изменения в API настроек плагинов.
   SCTL_SET больше не принимает FST_SUBKEY так как нет смысла и этим занимается SCTL_SUBKEY.

2. Документации ради - SCTL_SET с FST_STRING когда FarSettingsItem.Name==NULL задаёт description ключю.
   Не работает для Root==0 ибо там описание выставляет фар (имя плагина).

t-rex 26.04.2011 00:40:52 +0200 - build 1997

1. Небольшое изменения в API настроек плагинов.
   Для SCTL_DELETE если FarSettingsValue.Value==NULL то удаляется ключ FarSettingsValue.Root.
   В обратном случае удалется только Value (даже если есть ключ с таким именем).

t-rex 25.04.2011 22:36:30 +0200 - build 1996

1. Дополнение в DlgBuilder.

t-rex 25.04.2011 21:26:05 +0200 - build 1995

1. Дополнения в DlgBuilder.

drkns 24.04.2011 13:38:27 +0200 - build 1994

1. И снова эпопея о VMenu.UserData.

t-rex 24.04.2011 04:06:00 +0200 - build 1993

1. С форума: выхожу по F10 - Фар падает.

2. С форума: падает при попытке вызвать что угодно из пользовательского меню.
   Продолжаем эпопею с VMenu.UserData.

3. UserProfileDir не правильно выставлялся по дефолту.

t-rex 23.04.2011 12:10:43 +0200 - build 1992

1. На будущее, настройка "System.Exception.FarEvent.svc" переименована в "System.Exception.FarEventSvc".

t-rex 23.04.2011 02:04:07 +0200 - build 1991

1. Удалил не используемый код.

t-rex 23.04.2011 00:44:55 +0200 - build 1990

1. Всё, кроме макросов Фар больше ничего в реестре не ищет.
   Настройки снова переехали, теперь они тут:
   %APPDATA%\Far Manager\Profile
   %LOCALAPPDATA%\Far Manager\Profile

2. /u больше не актуален - влияет теперь только на анси плагины (ну и макросы пока что).

3. Ключ /s для ручного задания папки хранения конфигурации (папка будет создана если её нет).

4. Новые параметры в Far.exe.ini:
   UseSystemProfiles=2
   UserProfileDir
   TemplatePluginsPath
   DefaultLanguage

5. Различные исправления в хэлпе.

t-rex 22.04.2011 19:39:06 +0200 - build 1989

1. poscache в sqlite готов. очищается таким же методом как и история.
   В общем отвязка от реестра практически закончена, осталось придумать что делать с макросами.
   Кто возмётся?

drkns 22.04.2011 16:16:16 +0200 - build 1988

1. ACTL_GETCOLOR, ACTL_SETCURRENTWINDOW, ACTL_SETPROGRESSSTATE, ACTL_WAITKEY используют Param1.

drkns 22.04.2011 15:44:44 +0200 - build 1987

1. Все *Control-функции теперь возвращают INT_PTR.

2. Param2 теперь везде void*.

3. gcc warnings.

t-rex 22.04.2011 15:11:26 +0200

1. Обновил хэлп про юзер меню.

2. Добавил хэлп о фильтрах.

drkns 22.04.2011 08:37:22 +0200 - build 1986

1. По следам 1982.1.

t-rex 22.04.2011 03:24:23 +0200 - build 1985

1. Удаление старых пунктов истории происходит только при выходе из фара.

2. Удаление происходит теперь таким методом (пока без конфигурации):
   удаляется всё что старей 90 дней, но только если есть больше чем 1000 пунктов.

3. Разделение на дни могло показывать один и тот же день два раза.

drkns 21.04.2011 21:21:21 +0200 - build 1984

1. Mantis#0001100: AltShiftIns на .. копирует в буфер путь с «\» на конце

svs 21.04.2011 20:50:39 +0300 - build 1983

1. Mantis#0001751: Создание меню в макросе
   Добавлена макрофункция Menu.Show()
     S=Menu.Show(Items[,Title[,Flags[,FindOrFilter[,X[,Y]]]]])
   описание см. в Писании.

drkns 21.04.2011 16:44:21 +0200 - build 1982

1. Не работала пометка пунктов в историях в x64 и может ещё что-то, т.к. проблема была глубже.

2. Истории отображаются с разделением на дни.

3. Ещё некоторые мелочи.

t-rex 21.04.2011 03:19:32 +0200 - build 1981

1. Ворнинги и т.п..

t-rex 21.04.2011 01:56:16 +0200 - build 1980

1. poscache в sqlite, будет хранится вместе с историей, готово на 50%, пока что не работает.

t-rex 20.04.2011 21:14:08 +0200 - build 1979

1. history теперь по дефолту (пока без настройка) лежит в %LOCALAPPDATA%.

2. PRAGMA journal_mode = WAL; для кэша плагинов и истории - очень позитивно влияет на скорость работы.

drkns 20.04.2011 15:56:22 +0200 - build 1978

1. Рефакторинг плагиновых классов. Убран дублирующийся код.

t-rex 20.04.2011 01:47:43 +0200 - build 1977

1. В общем история в sqlite готова, должны работать CtrlE/CtlX/CtrlEnd.
   Пока что история хранится на 90 дней, все незалоченые записи старей 90 дней автоматом удаляются.

t-rex 19.04.2011 22:51:10 +0200 - build 1976

1. $N -> ?N в sqlite statements для истории.

t-rex 19.04.2011 22:45:21 +0200 - build 1975

1. История теперь в sqlite - готово примерно на 80%.
   - единая история для всех открытых сессий фара - работа с историей идёт только через базу, история не хранится в памяти
   - если история отключена то она не ведётся вообще (раньше велась в рамках текущей сессий фара)
   - пока что не работают CtrlE/CtlX/CtrlEnd и т.п.
   - пока что история хранится на 90 дней, все незалоченые записи старей 90 дней автоматом удаляются

   Прошу потестировать, особенно скорость работы при большой истории (особенно в диалогах).

drkns 19.04.2011 16:35:53 +0200 - build 1974

1. Визуальный глюк в folder shortcuts.

2. Уточнение отобоажения кода текущего символа в статусной строке редактора.

3. Классы FormatString и FormatScreen умеют выводить в oct и hex.

t-rex 19.04.2011 03:40:18 +0200 - build 1973

1. folder shortcuts в sqlite.

t-rex 19.04.2011 01:09:36 +0200 - build 1972 - хаг самэах!

1. filters и highligh в sqlite (снова надо удалить pluginsconfig.db).

t-rex 18.04.2011 21:19:35 +0200 - build 1971

1. Заюзаем MSG_NOPLUGINS для сообщение о неудаче загрузки плагина чтоб избежать возможных проблем как в 1969.

t-rex 18.04.2011 16:52:37 +0200 - build 1970

1. Изменилась схема pluginsconfig.db, старый нужно удалить.

2. Улучшение в memory usage configdb::Enum функций для работы с базой.

t-rex 18.04.2011 13:38:58 +0200 - build 1969

1. Если не удалось загрузить плагин на момент ProcessDialogEventW то входим в бесконечную рекурсию.

t-rex 18.04.2011 12:57:18 +0200 - build 1968

1. Мелкий бажок в инициализации GlobalUserMenuDir.

drkns 17.04.2011 23:26:31 +0200 - build 1967

1. far.exe.ini в unicode.

2. pluginscache.db переехал в %localappdata%.

t-rex 17.04.2011 22:47:56 +0200 - build 1966

1. С форума: Меню пользователя: при нажатии на горячую клавишу выполняется не тот пункт меню, которому она назначена, а тот, на котором стоит курсор.

drkns 17.04.2011 20:42:03 +0200 - build 1965

1. Неправильно работал просмотр юникодных файлов.

2. Падение при чтении файлов в be-unicode.

3. Обертка из #pragma push/pop вокруг sqlite.?, дабы не созерцать варнинги и не править их при каждом обновлении.

t-rex 17.04.2011 19:42:24 +0200 - build 1964

1. UserMenu отвязан от реестра. Теперь работает так:
   - локальное меню: FarMenu.ini в текущей папке (как и раньше)
   - пользовательское меню: FarMenu.ini в папке профиля (то что раньше было в реестре)
   - глобальное меню: FarMenu.ini в %FARHOME% (или в папке определённой в Far.exe.ini::Global:GlobalUserMenuDir) (почти как и раньше)

   Вроде бы ничего не поломал, прошу потестировать.

2. File::Close() не сбрасывал position pointer.

3. Не собиралась дебаг сборка.

4. Добавил Far.exe.ini в проект.

t-rex 16.04.2011 22:58:48 +0200 - build 1963

1. PanelModes в sqlite и заодно небольшая переделка PanelViewSettings.
   Осталось: history, filters, positions, highlight, shortcuts.
   usermenu наверно надо хранить как текстовой файл в %appdata% и не заморачиватся.
   macros - наверно лучше как в плагине MacroLib, не?

t-rex 16.04.2011 14:46:55 +0200 - build 1962

1. PluginCache в sqlite - готово. Надо удалить старый plugincache.db.

t-rex 16.04.2011 01:15:31 +0200 - build 1961

1. PluginHotKeys в sqlite - готово.

2. PluginCache в sqlite - готова структура базы и пару запросов (~30%).

t-rex 15.04.2011 21:45:01 +0200 - build 1960

1. Начальная стадия перевода PluginCache и PluginHotKeys в sqlite (пока ещё не работает).

2. Глюки в меню вызваных через враппер.

svs 15.04.2011 10:06:10 +0300 - build 1959

1. Macro: history.disable переименована в history.enable.
   Это означает, что:
    1. истории во время вопрсоизведения макроса отключены
    2. битовая маска действует на принудительное включение историй

t-rex 15.04.2011 03:28:35 +0200 - build 1958

1. From 2useven10: Частичная переделка внутреностей вьювера, исправлены многочисленые баги.

2. Update sqlite to 3.7.6.1.

3. NULL -> nullptr в паре мест.

drkns 12.04.2011 21:26:28 +0200 - build 1957

1. Откат 1956.

drkns 12.04.2011 19:00:53 +0200 - build 1956

1. Для перехода в папку из командной строки писать cd или chdir необязательно.

drkns 12.04.2011 00:14:07 +0200 - build 1955

1. Пара уточнений в folder shortcuts.

drkns 11.04.2011 14:42:32 +0200 - build 1954

1. Автоопределение кодовой страницы в редакторе и просмотре по умолчанию включено.

drkns 11.04.2011 14:42:32 +0200 - build 1953

1. Лишнее обновление плагиновой панели при выходе из редактора без сохранения.

t-rex 11.04.2011 05:02:11 +0200 - build 1952

1. Доделал ассоциации в sqlite, надо удалить старый associations.db.

svs 10.04.2011 00:19:01 +0300 - build 1951

1. Mantis#0001742.
   From DAtaMan
     Ещё уточнение.
     Теперь функция FMatch возвращает:
      1 - строка соответствует маске
      0 - строка не соответствует маске
     -1 - при некорректной маске (ошибка в регулярном выражении)

drkns 08.04.2011 13:47:00 +0200 - build 1950

1. Плагинам доступен диалог выбора цвета.

drkns 08.04.2011 12:17:31 +0200 - build 1949

1. Mantis#0001746: Быстрое удаление элементов из списка автозавершения

2. Ещё одно уточнение 1930.

3. Несколько мелочей.

drkns 06.04.2011 21:34:29 +0200 - build 1948

1. reinterpret_cast -> static_cast везде, где возможно.

drkns 06.04.2011 13:24:53 +0200 - build 1947

1. В буфер обмена некорректно копировались строки, содержащие \0.

2. Ошибка в VMenu::<G|S>etUserData.

svs 06.04.2011 13:43:53 +0300 - build 1946

1. Уточнение Mantis#0001741
   From: DAtaMan
   Багфикс к билду 1942 - в макросах не работали Alt-сочетания

2. Mantis#0001743: Возможность отключения истории
     Добавлена макрофункция, позволяющая управлять состоянием добавления пунктов в истории во время воспроизведения текущего макроса.
     При старте макроса истории разрешены.

     N=history.disable([State])

     Здесь State - набор битов:
       бит 0 - cmd history
       бит 1 - folder histroy
       бит 2 - view/edit history
       бит 3 - dialog history
       если соответствующий бит выставлен в 1, эту историю дизаблить
       State = -1 - дизаблить все истории

     Возвращает предыдущую маску.

     Если параметр не указан, то просто возвращает текущую маску

     TODO: Требуется уточнение на счет утверждения про "только во время воспроизведения"!

3. Mantis#0001681: panel.setpath() не работает с плагинами
   Относительные пути - в рамках текущей FS
   Абс.пути (C:\ \\Server\share) закрывают плагиновую панель (если это была она)

4. Macro: CmpName (из Mantis#0001742) переименована в FMatch
   From: DAtaMan

     N=FMatch(S, Mask)


t-rex 06.04.2011 01:51:53 +0200 - build 1945

1. ассоциации в sqlite - 90% готово (не доделан swap и создание новой на месте курсора).

drkns 05.04.2011 17:02:32 +0200 - build 1944

1. Небольшой рефакторинг диалогового движка.

drkns 05.04.2011 11:54:24 +0200 - build 1943

1. Уточнение алгоритма дополнения.

svs 05.04.2011 09:48:10 +0300 - build 1942

1. Mantis#0001742: Макрофункция CmpName - соответствие текста маске
   From: DAtaMan
    Довольно часто в макросах бывает нужно узнать, соответствует ли текст маске.
    В предлагаемом патче реализована макрофункция CmpName.
    Синтаксис такой:
    N=CmpName(Mask,S[,SkipPath])
    Функция регистронезависима.

    Примеры:
    cmpname("*far*", "far manager") == 1
    cmpname("a.txt", @"c:\a.txt", 0) == 1
    cmpname("a.txt", @"c:\a.txt", 0) == 0
    cmpname("a.txt", @"c:\a.txt", 1) == 1

2. Mantis#0001741: Дополнительные клавиши управления выделенной областью экрана
   From: DAtaMan
    Довольно часто приходится пользоваться FAR на компьютере без мыши.
    Для более удобного использования граббера предлагается патч.
    Добавлены:
      Alt-Shift-<клавиши управления курсором> уменьшают/увеличивают выделеннyю область.
      Alt-<клавиши управления курсором> перемещают выделеннyю область.
      Ctrl-A выделяет всю экранную область.


drkns 03.04.2011 20:46:44 +0200 - build 1941

1. Продолжение 1940.

drkns 03.04.2011 20:46:44 +0200 - build 1940

1. Элемент, добавленный в историю поля ввода по DM_ADDHISTORY, не был доступен в списке дополнения.

drkns 03.04.2011 20:46:44 +0200 - build 1939

1. Mantis#0000502: apiCreateFile rights for the Viewer.

2. Несколько мелочей.

svs 31.03.2011 13:43:54 +0300 - build 1938

1. Mantis#0001736: akey(1,0)==akey(1,1)

   "...akey(?,Type):
     Type=0 - раньше всегда возвращало клавишу которую я нажал = которая вызвала макрос-связку,
     Type=1 - клавишу на которую повешен макрос вызванный макропоследовательностью,
     а теперь Type всегда возвращает клавишу на которую назначен последний макрос..."

   Отвалилось в build 1805 (хотя было явно написано - "нужно тестить" :-))

drkns 31.03.2011 12:12:12 +0200 - build 1937

1. Классы FormatString и NTPath базируются на UnicodeString.

2. Продолжаем давить printf.

svs 28.03.2011 19:19:10 +0300 - build 1936

1. Mantis#0001718: Отсутствие ECF_TAB1 не всегда корректно отрабатывает
   Коррекция с учетом последнего таба.

drkns 28.03.2011 15:58:34 +0200 - build 1935

1. VC code analysis warnings.

t-rex 27.03.2011 22:19:24 +0200 - build 1934

1. Начальная стадия перевода ассоциаций в sqlite (associations.db, пока не работает!).

2. UnicodeString::Equal() -> IsSubStrAt() чтоб небыло путаницы.

3. From 2useven10: Mantis#1043: viewing a file on network share causes 40kB/s network spam of QUERY_PATH_INFO SMB requests.
   периоды опроса пока просто зашиты в код - для DRIVE_REMOTE: один раз в секунду

4. From 2useven10: Mantis#796: Viewer и поведение клавиши End.

5. From 2useven10: Различные исправления для просмотра физических дисков и хекс просмотра.

drkns 26.03.2011 19:41:35 +0200 - build 1933

1. Уточнение 1930.1.

drkns 25.03.2011 19:03:05 +0200 - build 1932

1. x64 warnings.

2. Mantis#0001735: неверное отображение имени диска в информационной панели при использовании UNC path

drkns 24.03.2011 10:59:59 +0200 - build 1931

1. Коррекция типов.

drkns 23.03.2011 17:00:00 +0200 - build 1930

1. Теперь при закрытии консоли кнопкой [x] настройки гарантированно сохраняются.

drkns 23.03.2011 10:52:38 +0200 - build 1929

1. Mantis#0001661: Отладочная версия валится при поиске regexp.

t-rex 23.03.2011 01:18:18 +0200 - build 1928

1. Снова изменения в схеме баз (старые надо удалить). Больше нет поля type ибо sqlite и так умеет его динамично определять.

2. Классы обёртки вокруг sqlite для упрощения кода.

3. From 2useven10: Fix для 1925.1

drkns 22.03.2011 17:04:11 +0200 - build 1927

1. В 1911 отвалились shortcut'ы c переменными окружения.

drkns 22.03.2011 15:55:16 +0200 - build 1926

1. На будущее: Opt.LocalProfilePath == "%LOCALAPPDATA%\Far Manager\Profiles\<Default|ProfileName>".

t-rex 22.03.2011 00:04:16 +0200 - build 1925

1. From 2useven10: Hex view для UTF-8.

2. From Maximus: Mantis#1731: Ошибка "Cannot find the file" после выхода из TempPanel.

t-rex 21.03.2011 22:53:37 +0200 - build 1924

1. Отрубаем "PRAGMA synchronous = OFF;", юзаем транзакции.

2. У каждого плагина теперь внутри свой личный конекшен к базе конфига, и от CREATE до FREE всё идёт в одной транзакции.
   Т.е. данные реально записываются только при FREE.

drkns 21.03.2011 22:16:11 +0200 - build 1923

1. Ещё одна переделка путей.
   Теперь всё лежит или в "%APPDATA%\Far Manager\Profiles\<Default|ProfileName>", или в "%FARHOME%\UserData\Profiles\<Default|ProfileName>".
   Переключается в Far.exe.ini\General\UseSystemProfiles, 1|0.

drkns 21.03.2011 16:17:18 +0200 - build 1922

1. Уточнение 1921:
   /u задает только профиль.
   /s[<path>] задает путь к профилям. Если "path" относителен, то относителен к "%FARHOME%". Если пуст, то "%FARHOME%\Profiles".

drkns 21.03.2011 11:11:11 +0200 - build 1921

1. update vcxproj.

2. sqlite warnings.

3. w32api-3.17 (or higher) required for gcc build.

4. Изменен принцип хранения профилей:
   Путь к профилям по умолчанию: "%APPDATA%\Far Manager\Profiles"
   Профиль по умолчанию: "Default"
   Итого, по умолчанию настройки здесь: "%APPDATA%\Far Manager\Profiles\Default"

   Путь к профилям может быть переопределён в файле "%FARHOME%\Far.exe.ini":
   Секция: Profiles
   Параметр: BasePath
   Значение: новый путь к профилям. Если путь относителен, то считается, что он относителен к %FARHOME%.

   Ключ /u рассматривает параметр username как путь к профилю.
   Если этот путь относителен, то считается, что он относителен к "%APPDATA%\Far Manager\Profiles" либо к пути, указанному в "Far.exe.ini".
   Если этот путь абсолютен, то он абсолютен :)

   Примеры:
     "far.exe" - профиль в "%APPDATA%\Far Manager\Profiles\Default" (или в "<BasePath>\Default")
     "far.exe /u foo" - профиль в "%APPDATA%\Far Manager\Profiles\foo" (или в "<BasePath>\foo")
     "far.exe /u d:\bar" - профиль в "d:\bar"

t-rex 20.03.2011 23:20:31 +0200 - build 1920

1. Изменилась схема generalconfig.db для внутренего удобства (надо удалить старый generalconfig.db).

2. Все общие настройки переехали в generalconfig.db.
   Теперь очередь за history, associations, filters, positions, highlight, hotkeys, macros, pluginscache, shortcuts, usermenu, panelmodes.

t-rex 20.03.2011 19:16:44 +0200 - build 1919

1. Не собирался дебаг.

t-rex 20.03.2011 18:23:03 +0200 - build 1918

1. sqlite-товый код переехал в configdb.cpp

2. юзаем sqlite3_clear_bindings() для правильности.

3. для GeneralConfig добалены BEGIN/END TRANSACTION для ускорения поочередных инсертов.

4. для "наружи" сделаны абстрактные классы доступа к базе, чтоб не таскать везде sqlite3.h и другие внутрености.

5. типа сингелтон для внутрених классов доступа к базе.

6. отвязка precompiled headers от plugin.hpp а то все ровно смысла нет, часто уж меняется он.

t-rex 20.03.2011 02:45:34 +0200 - build 1917

1. Начинаем переводить настройки фара в sqlite.
   Частично переехали настройки общего плана.
   %appdata%\Far Manager\generalconfig.db

2. PRAGMA synchronous = 0; чтоб sqlite работал быстро.

t-rex 19.03.2011 21:35:56 +0200 - build 1916

1. Вернём "старый" API настроек плагинов.

2. Схема базы и код изменены чтоб поддерживать древовидную структуру настроек плагинов в соот. с API.

t-rex 19.03.2011 17:59:17 +0200 - build 1915

1. Начинаем использовать sqlite базы вместо реестра, пока что сделано только для настроек плагинов.
   Хранится в %appdata%\Far Manager\pluginsconfig.db
   Код sqlite на сей момент включен в фар, потом посмотрим если стоит выкинуть его в dll.

2. Слегка изменён API настроек плагинов, больше нету понятия subkey и root.
   Рекомендуется называть настройки как xxx.yyy, xxx.zzz если хочется своего рода древовидной структуры
   на момент когда будет какойто визуальный редактор для этого дела.

3. Ворнинги.

zeroes 18.03.2011 16:22:17 +0200 - build 1914

1. Коррекция типа переменной

svs 18.03.2011 16:51:39 +0300 - build 1913

1. Macro: Добавлена функция Keybar.Show()

     N=KeyBar.Show([N])

        0 - get state
            ret: 0 - hide, 1 - show, -1 - KeyBar not found
        1 - show
        2 - hide
        3 - swap
        ret: prev mode or -1 - KeyBar not found

   KeyBar found в панелях, редакторе, вьювере. И только если они текущие.
   В остальных (в т.ч. в хелпе) возвращается -1.

   Например, Esc в панелях
      CtrlO $if (APanel.Visible && PPanel.Visible) KeyBar.Show(1) $else KeyBar.Show(2) $end
   при погашенных панелях гасить и кейбар.

2. В диалоге назначения макроклавиш отвалился выбор из комбобокса.

drkns 18.03.2011 10:06:22 +0200 - build 1912

1. Уточнение 1911.

drkns 18.03.2011 09:05:21 +0200 - build 1911

1. В Folder Shortcuts теперь поддерживается назначение нескольких путей на один shortcut (Ctrl-Alt-<0-9> в панелях или ShiftIns в меню).

drkns 17.03.2011 21:31:28 +0200 - build 1910

1. Коррекция типов в plugin api.

svs 17.03.2011 17:55:16 +0300 - build 1909

1. Mantis#0001733: Макрофункция XLat() не должна переключать текущий язык ввода.

   Функция получает в подарок второй параметр - необязательные флаги и не зависит от TechInfo#10.

     S=xlat(S[,Flags])

     флаги
       XLAT_SWITCHKEYBLAYOUT  = 1
       XLAT_SWITCHKEYBBEEP    = 2
       XLAT_USEKEYBLAYOUTNAME = 4

   print(xlat("Qwerty"))
   выдаст "Йцукен" и при этом:
     * переключения раскладки не будет
     * звука не будет
     * не будут использоваться значения типа "00000409", "00000419" и т.п. из ветки "HKCU\Software\Far2\XLat"

   print(xlat("Qwerty",6))
   выдаст "Йцукен" и при этом:
     * переключения раскладки не будет
     * пискнет (звук)
     * будут использоваться значения типа "00000409", "00000419" и т.п. из ветки "HKCU\Software\Far2\XLat"


   Макрокоманда $XLat по прежнему зависит от TechInfo#10

drkns 14.03.2011 11:11:11 +0200 - build 1908

1. PluginHotkeys теперь в формате GUID\GUID.

2. Истории команд, просмотра/редактирования, папок, диалогов переехали в подключ History.

drkns 10.03.2011 20:54:46 +0200 - build 1907

1. Ошибка загрузки плагинов из кеша.

drkns 11.03.2011 14:12:42 +0200 - build 1906

1. Изменён формат версии плагина, теперь это структура. Там же можно указывать дополнительную информацию: alpha, beta, rc, release.

2. ACTL_GETFARVERSION теперь всегда возвращает TRUE и, во избежание ошибок, переименована в ACTL_GETFARMANAGERVERSION.

3. plugin.hpp снова совместим с pure C.

drkns 10.03.2011 16:22:44 +0200 - build 1905

1. Warnings, optimization.

drkns 10.03.2011 12:10:12 +0200 - build 1904

1. Оптимизация File::<G|S>etPointer. Как следствие:
    Mantis#0001668: Классы CachedRead и CacheWrite крайне неэффективны с точки зрения производительности.
    Mantis#0001431: 100% загрузка процессора при пролистывании файла

svs 09.03.2011 08:15:51 +0300 - build 1903

1. Mantis#0000786: Неверное отображение найденного текста в файлах UTF-8
   from 2useven10

drkns 08.03.2011 09:23:34 +0200 - build 1902

1. Уточнение 1892.1.

drkns 07.03.2011 21:45:33 +0200 - build 1901

1. Уточнение 1899.2.

drkns 07.03.2011 14:43:32 +0200 - build 1900

1. В Message() все кнопки были "по умолчанию".

drkns 07.03.2011 13:35:35 +0200 - build 1899

1. OpenPanelW -> OpenW.

2. Функции CompareW, DeleteFilesW, FreeFindDataW, FreeVirtualFindDataW, GetFilesW, GetFindDataW, GetOpenPanelInfoW, GetVirtualFindDataW, MakeDirectoryW, OpenW, ProcessHostFileW, ProcessMacroFuncW, PutFilesW, SetDirectoryW, SetFindListW принимают структуру в качестве параметра.

3. Уточнения враппера.

zg 07.03.2011 12:29:13 +0200 - build 1898

1. добавлена структура FarColor.

2. FARCOLORFLAGS переименована в FARSETCOLORFLAGS.

3. ECF_TAB1 переехало в EditorColor.Flags.

4. тип EditorColor.Color теперь FarColor.

zg 01.03.2011 11:12:03 +0200 - build 1897

1. замена с регэкпами падала на пустых скобках.

drkns 28.02.2011 14:27:07 +0200 - build 1896

1. В ключах Plugins\<PluginGUID> в Default пишется PluginTitle, для любителей ручного редактирования.

drkns 27.02.2011 23:33:05 +0200 - build 1895

1. Уточнение отладочных версий delete[] и delete.

drkns 27.02.2011 13:26:39 +0200 - build 1894

1. Настройки плагинов теперь хранятся не в Plugins\<PluginTitle>, а в Plugins\<PluginGUID>.

drkns 24.02.2011 21:04:51 +0200 - build 1893

1. Warnings.

drkns 24.02.2011 20:34:19 +0200 - build 1892

1. Уточнения работы запускателя.

drkns 24.02.2011 17:09:22 +0200

1. Косметика.

drkns 24.02.2011 16:48:26 +0200 - build 1891

1. OpenFilePluginW = AnalyseW + OpenPanelW.
   OpenPluginW = OpenPanelW
   ClosePluginW = ClosePanelW
   GetOpenPluginInfoW = GetOpenPanelInfoW
   OpenPluginInfo = OpenPanelInfo
   FCTL_CLOSEPLUGIN = FCTL_CLOSEPANEL

zg 24.02.2011 02:48:54 +0200 - build 1890

1. неверно загружались плагины с флагом PF_PRELOAD, если они уже находились в кэше.

2. SCTL_CREATE не возвращала ошибку для неверного гуида.

drkns 23.02.2011 20:34:14 +0200 - build 1889

1. VC level 4 warnings.

1. Откат 1781.2

drkns 21.02.2011 09:36:32 +0200 - build 1888

1. gcc warnings & O3 optimization.

zg 20.02.2011 19:22:59 +0200 - build 1887

1. уточнение SettingsControl(...,SCTL_SET,...): если Type равно FST_SUBKEY, то создаётся ключ с именем Name.

2. уточнение 1886.

zg 20.02.2011 19:00:26 +0200 - build 1886

1. SettingsControl:

   SCTL_DELETE            - удалить подключ или значение.
                            hHandle - HANDLE, который вернул SCTL_CREATE.
                            Param2 - указатель на FarSettingsValue.
                            Root - описатель ключа, в котором находится удаляемое.
                            Value - имя подключа или значения, которое надо удалить.

drkns 20.02.2011 16:53:10 +0200 - build 1885

1. И ещё.

drkns 20.02.2011 16:36:47 +0200 - build 1884

1. Коррекция типов в plugin.hpp.

2. gcc warnings.

svs 19.02.2011 10:26:53 +0300 - build 1883

1. Уточнение build 1880

svs 18.02.2011 15:36:25 +0300 - build 1882

1. Уточнение build 1880

drkns 18.02.2011 13:50:12 +0200 - build 1881

1. Mantis#0001714: Ошибка при попытке выхода в список шар через "..".

2. Mantis#0001716: Комбинация Ctrl+C в панелях не копирует файлы в буфер.

svs 18.02.2011 11:10:57 +0300 - build 1880

1. Mantins#0001482: Улучшение вывода <!Macro:Vars!> и <!Macro:Consts!>
   Теперь в хедпе данные (и подобные им) конструкции берут инфу только из
   памяти (не из реестра).
   В данный момент есть небольшой недостаток - неотсортированный список.

drkns 18.02.2011 09:21:21 +0200 - build 1879

1. В 1810 погнулось переименование в "*.ext".

drkns 17.02.2011 17:03:03 +0200 - build 1878

1. Баги во враппере.

drkns 17.02.2011 14:39:39 +0200 - build 1877

1. gcc.

drkns 17.02.2011 12:35:35 +0200 - build 1876

1. Коррекция типов в plugin.hpp.

2. Баги во враппере.

drkns 16.02.2011 21:03:11 +0200 - build 1875

1. Techinfo #48 - всё.

drkns 16.02.2011 19:57:08 +0200 - build 1874

1. Коррекция типов в plugin.hpp.

drkns 16.02.2011 17:00:00 +0200 - build 1873

1. Коррекция типов в plugin.hpp.

2. vc-сборка.

3. warnings.

zg 16.02.2011 12:32:54 +0200 - build 1872

1. SettingsControl:

   SCTL_ENUM              - получить спиок подключей и значений.
                            hHandle - HANDLE, который вернул SCTL_CREATE.
                            Param2 - указатель на FarSettingsEnum.
                            Root - описатель ключа, откуда брать информацию.
                            Count - количество возвращаемых элементов.
                            Items - элементы.

zg 16.02.2011 02:23:03 +0200 - build 1871

1. API для хранения настроек:

   int WINAPI SettingsControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2)

   Command:

   SCTL_CREATE            - hHandle - INVALID_HANDLE_VALUE.
                            Param2 - FarSettingsCreate, на входе guid плагина, на выходе - хэндл настроек.
                            При неудаче вернёт FALSE.
   SCTL_FREE              - hHandle - HANDLE, который вернул SCTL_CREATE.
   SCTL_SET               - hHandle - HANDLE, который вернул SCTL_CREATE.
                            Param2 - указатель на FarSettingsItem.
                            Root - задаёт место сохранения настроек. 0 - корень для плагина. подключи получаются при помощи SCTL_SUBKEY.
                            Name - имя сохраняемого значения.
                            Type - тип.
                            Value - само значение.
   SCTL_GET               - hHandle - HANDLE, который вернул SCTL_CREATE.
                            Param2 - указатель на FarSettingsItem.
                            Value заполняет фар, остальное - плагин.
   SCTL_SUBKEY            - hHandle - HANDLE, который вернул SCTL_CREATE.
                            Param2 - указатель на FarSettingsValue.
                            возвращает описатель подключа с именем Value для ключа с описателем Root.

2. поле PluginStartupInfo.RootKey удалено.

t-rex 16.02.2011 01:00:45 +0200 - build 1870

1. Различные добавления и исправления в DialogBuilder.

t-rex 14.02.2011 21:28:51 +0200 - build 1869

1. DialogBuilder: поддержка DIF_3STATE, DlgProc и UserParam, можно не добавлять сепаратор перед Ok/Cancel.

2. DialogBuilder: переделка поддержки DI_SINGLEBOX.

drkns 13.02.2011 21:56:25 +0200 - build 1868

1. Warnings.

zg 13.02.2011 21:25:20 +0200 - build 1867

1. plugin.hpp снова совместим с pure C.

2. все флаги в апи 64 битные.

3. уточнение 1866.3: тип StructSize - size_t.

zg 13.02.2011 15:29:55 +0200 - build 1866

1. DN_CLOSE больше е равен DM_CLOSE.

2. DM_CLOSE всегда возвращал TRUE.

3. StructSize в апишных структурах везде unsigned.

zg 13.02.2011 11:01:58 +0200 - build 1865

1. не считывались хоткеи плагинов в меню дисков.

drkns 13.02.2011 00:39:44 +0200 - build 1864

1. Исправлена debug-сборка.

2. ACTL_GETPOLICIES больше нет.

zg 12.02.2011 23:57:50 +0200 - build 1863

1. в PanelMode добавилось поле StructSize.

2. из PanelMode убраны поля FullScreen, DetailedStatus, AlignExtensions и CaseConversion. взамен добавлено поле Flags и соответствующие флаги.

3. из PanelMode убрано поле Reserved.

zg 12.02.2011 20:10:48 +0200 - build 1862

1. Добавлена структура FarKey. FarKey.VirtualKeyCode аналогична KEY_EVENT_RECORD.wVirtualKeyCode. FarKey.ControlKeyState аналогична KEY_EVENT_RECORD.dwControlKeyState.

2. параметр BreakKeys Menu тепер указатель на массив FarKey.

3. тип KeyBarLabel.Key - FarKey.

drkns 12.02.2011 18:01:44 +0200 - build 1861

1. Исправлен древний баг с DefDlgProc для ansi-плагинов.
   Ограничение: если кто-то вместо "return DefDlgProc(...)" получал return value и что-то с ним делал - ССЗБ :)

zg 11.02.2011 18:45:24 +0200 - build 1860

1. ACTL_GETSHORTWINDOWINFO убрана из-за своей бессмысленности.

2. thread-safe вызов ACTL_GETWINDOWTYPE. Param - указатель на структуру WindowType. в случае удачи возвращается TRUE, иначе FALSE.

zg 11.02.2011 17:01:22 +0200 - build 1859

1. DN_MOUSEEVENT переименовано в DN_INPUT. Param2 указывает на INPUT_RECORD. в будущем планируется приход не только мышиных событий, поэтому настоятельно рекомендуется проверять EventType.

2. DN_KEY и DN_MOUSECLICK объеденены в DN_CONTROLINPUT. Param2 указывает на INPUT_RECORD. в будущем планируется приход и других событий.

3. DM_KEY больше не равна DN_KEY.

t-rex 11.02.2011 13:04:02 +0200 - build 1858

1. DialogBuilder теперь умеет и DI_SINGLEBOX с автоматичиской групировкой элементов в нём.

2. DialogBuilder теперь умеет DI_FIXEDIT с маской для текста.

svs 11.02.2011 10:27:51 +0300 - build 1857

1. Mantis#0001482: Улучшение вывода <!Macro:Vars!> и <!Macro:Consts!>

t-rex 11.02.2011 01:56:20 +0200 - build 1856

1. Чистка анси кода из DialogBuilder.

2. Пару косметических мелочей в коде.

drkns 11.02.2011 00:14:23 +0200 - build 1855

1. Mantis#0001713: Доступ к папкам "." и ".." на не-NTFS дисках.
   В "." и ".." теперь можно входить по UNC-путям, смотреть листинг и т.п.

2. VC warnings.

zg 11.02.2011 00:03:05 +0200 - build 1854

1. откат 1853.

2. уточнение 1852, текущий редактор/просмотр - -1.

t-rex 10.02.2011 22:59:45 +0200 - build 1853

1. Чтоб 1852 правильно работал, Viewer/EditorID в фаре должны начинатся с 1 а не с 0.

t-rex 10.02.2011 20:15:23 +0200 - build 1852

1. Исправление 1851:
     int WINAPI EditorControl(int EditorID, int Command, int Param1, INT_PTR Param2);
     int WINAPI ViewerControl(int ViewerID, int Command, int Param1, INT_PTR Param2);

   ID вместо HANDLE, 0 для текущего редактора/вьювера.

2. Нельзя было вызывать Viewer/EditorControl из панелей для ID!=0.

svs 10.02.2011 18:26:54 +0300 - build 1851

1. Переделка EditorControl, ViewerControl и RegExpControl.
   Теперь это так:
     int WINAPI EditorControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2);
     int WINAPI ViewerControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2);
     int WINAPI RegExpControl(HANDLE hHandle, int Command, int Param1, INT_PTR Param2);

   Для редактора/вьювера если hHandle равен INVALID_HANDLE_VALUE - текущий редактор/вьювер (врапер для 1.7x работает с текущим)
   В противном случае берем значение из EditorInfo::EditorID в качестве хэндла.

   Param1 пока не юзается.

   Внутренние реализации EditorControl и ViewerControl (в классах) остались пока прежними.

zg 10.02.2011 14:25:07 +0200 - build 1850

1. добавлен OPM_PGDN. приходит в OpenFilePluginW если на файле нажали PgDn.

2. OPEN_DISKMENU->OPEN_LEFTDISKMENU. добавлена OPEN_RIGHTDISKMENU.

svs 10.02.2011 12:01:19 +0300 - build 1849

1. Переделки в "ACTL_KEYMACRO".

   * удалены: ACTL_KEYMACRO, FARMACROCOMMAND, struct ActlKeyMacro
   * добавлено: MacroControl, MACRO_CONTROL_COMMANDS, FARMACROSENDSTRINGCOMMAND, struct MacroSendMacroText, struct MacroCheckMacroText

   Новое АПИ выглядит так:
   int Info.MacroControl(HANDLE hHandle,int Command,int Param1,INT_PTR Param2)
    hHandle = 0
    Command:
       MCTL_LOADALL
         Param1=0
         Param2=0
         Return=0|1
       MCTL_SAVEALL
         Param1=0
         Param2=0
         Return=0|1
       MCTL_SENDSTRING
         Param1:
           MSSC_POST
             Param2=MacroSendMacroText*
             Return=0|1
           MSSC_EXEC (пока заглужка, не используется)
             Param2=MacroSendMacroText*
             Return=0|1
           MSSC_CHECK
             Param2=MacroCheckMacroText* (Text)
             Return=0|1 в Param2=MacroCheckMacroText* (Check)
       MCTL_GETSTATE
         Param1=0
         Param2=0
         Return=FARMACROSTATE
       MCTL_GETAREA
         Param1=0
         Param2=0
         Return=FARMACROAREA


zg 10.02.2011 02:16:46 +0200 - build 1848

1. уточнение 1846.2.

zg 10.02.2011 01:52:02 +0200 - build 1847

1. для диалога с сообщением о несоответствии версии плагина версии фара запрещены диалоговые плагины.

2. не работал FMSG_LEFTALIGN.

zg 10.02.2011 01:00:03 +0200 - build 1846

1. исправлена обработка DN_KEY во встроенных диалога.

2. в MAKEFARVERSION теперь версия в старшем слове, билд в младшем.

3. в PluginMenuItem Guid заменён на Guids.

zg 09.02.2011 20:25:20 +0200 - build 1845

1. удалён FarDialogItem.Param.ListPos.

svs 09.02.2011 18:51:58 +0300 - build 1844

1. В ActlKeyMacro добавлен StructSize

2. Удален ACTL_POSTKEYSEQUENCE (есть аналог в лице ACTL_KEYMACRO).
   FARKEYSEQUENCEFLAGS переименован в FARKEYMACROFLAGS (и KSFLAGS_* -> KMFLAGS_* ).
   Удалена структура KeySequence.

3. Переделка struct KeyBarTitles (часть 1)

     struct KeyBarLabel
     {
        DWORD Key;
        const wchar *Text;
        const wchar *LongText;
     };
     struct KeyBarTitles
     {
        int CountLabels;
        struct KeyBarLabel *Labels;
     };

zg 09.02.2011 15:19:00 +0200 - build 1843

1. уточнение 1842.1: GetPluginDirList, Menu, Message, InputBox, AdvControl, DialogInit, GetMsg не всегда работали в SetStartupInfoW и в GetPluginInfoW.

zg 09.02.2011 03:42:44 +0200 - build 1842

1. в GetPluginDirList, Menu, Message, InputBox, AdvControl, DialogInit, GetMsg вместо ModuleNumber нужно передавать указатель на GUID плагина. соответственно из PluginStartupInfo ModuleNumber тоже убран.

2. в ConfigureW, OpenPluginW, DialogInit GUID заменён на указатель на GUID.

zg 09.02.2011 00:36:50 +0200 - build 1841

1. если внезапно фар обнаруживает несколько плагинов с одинаковым GUID, грузится только первый обнаруженный.

2. ускорен поиск плагинов по GUID.

drkns 08.02.2011 21:48:00 +0200 - build 1840

1. Убраны DIF_INTERNALFOCUS & DIF_DEFAULT.

2. Немного перетасован plugin.hpp.

zg 08.02.2011 19:39:28 +0200 - build 1839

1. неправильно считывались флаги из кэша плагинов.

drkns 08.02.2011 16:52:23 +0200 - build 1838

1. VC warnings.

zg 08.02.2011 14:57:17 +0200 - build 1837

1. уточнение 1836.1.

2. FarDialogItem.UserParam используется как значение связанное с элементом диалога (получается по DM_GETITEMDATA).

zg 08.02.2011 13:54:18 +0200 - build 1836

1. в FarDialogItem убраны поля Focus&DefaultButton. вместо них теперь флаги DIF_FOCUS&DIF_DEFAULTBUTTON.

2. в FarDialogItem поля History&Mask вынесены из объединения.

3. в FarDialogItem поле Flags теперь 64 битный.

4. в FarDialogItem добавлено поле UserParam. пока не используется.

svs 08.02.2011 11:41:03 +0300 - build 1835

1. OpenPluginInfo::Reserved удалено,
   OpenPluginInfo::FreeSize добавлено (unsigned __int64)

2. Добавлен флаг OPIF_USEFREESIZE - "компонента OpenPluginInfo::FreeSize содержит данные"
   (или "при отсутствии этого флага поле FreeSize не актуально")
   Т.е. не у всех плагинов возможно понятие "свободное место" (например, Network или ImpEx)

t-rex 08.02.2011 01:29:17 +0200 - build 1834

1. PluginNumber в InputBox (как везде) чтоб фар знал откуда топики хэлпа открывать (старый очень баг).

2. Удалены исторические фигни в plugin.hpp: DM_SETREDRAW=DM_REDRAW и DM_SETTEXTLENGTH=DM_SETMAXTEXTLENGTH.

zg 08.02.2011 00:40:42 +0200 - build 1833

1. реализация CallPlugin&FindPlugin для GUID-ов.

drkns 07.02.2011 23:12:53 +0200 - build 1832

1. Опечатка в 1831.

drkns 07.02.2011 21:12:08 +0200 - build 1831

1. API:
   - Новый экспорт: void GetGlobalInfoW(GlobalInfo* Info), где:

   struct GlobalInfo
   {
    int StructSize;              // размер
    DWORD MinFarVersion;         // минимальная требуемая версия Far
    DWORD Version;               // версия плагина (в том же формате)
    GUID Guid;                   // GUID плагина
    const wchar_t *Title;        // общее название плагина
    const wchar_t *Description;  // описание/комментарий/дополнительно
    const wchar_t *Author;       // автор плагина
  };

  Плагин обязан экспортировать GetGlobalInfoW.
  Все поля должны быть заполнены.
  Функция вызывается один раз.

2. SysID больше нет.

zg 07.02.2011 12:41:30 +0200 - build 1830

1. у DialogInit новый параметр - GUID диалога.

2. в DialogInfo новое поле - Owner. содержит GUID плагина, который вызвал диалог.

3. DN_GETDIALOGINFO убрана за ненадобностью.

drkns 06.02.2011 16:24:19 +0200 - build 1829

1. Подхватываем настройки от Far2.

drkns 06.02.2011 14:05:06 +0200 - build 1828

1. Из копирайтной строки убран xor и все сопутствующие трюки.

2. Ключ в реестре теперь "Far Manager".

drkns 06.02.2011 13:11:59 +0200 - build 1827

1. Не работали хоткеи плагинов в меню дисков.

2. Плагины в меню дисков можно сортировать по хоткеям (F9).

drkns 06.02.2011 12:11:59 +0200 - build 1826

1. Info.CmpName больше нет.

2. OPIF_USESORTGROUPS -> OPIF_DISABLESORTGROUPS, OPIF_USEHIGHLIGHTING -> OPIF_DISABLEHIGHLIGHTING.

t-rex 05.02.2011 23:19:46 +0200

1. Версия Фара теперь 3.0

drkns 05.02.2011 15:30:10 +0200 - build 1825

1. LONG_PTR -> INT_PTR.

2. OPIF_USEFILTER -> !OPIF_DISABLEFILTER.

3. FCTL_GETCMDLINESELECTEDTEXT больше нет.

4. FarMenuItem и FMENU_USEEXT больше нет, FarMenuItemEx теперь FarMenuItem.

drkns 04.02.2011 23:53:23 +0200 - build 1824

1. Не работал x64 debug build.

2. Warning.

zg 04.02.2011 23:36:52 +0200 - build 1823

1. в WindowInfo добавлено поле Id. для диалога - хэндл, для просмотра/редактора - Id.

2. в WindowInfo убраны поля Modified&Current. вместо них Flags и WIF_MODIFIED&WIF_CURRENT.

zg 04.02.2011 21:50:22 +0200 - build 1822

1. уточнение 1820 для NumEnter.

2. gcc warnings.

drkns 04.02.2011 16:50:21 +0200 - build 1821

1. FAR_FIND_DATA больше нет, содержимое переехало в PluginPanelItem. Туда же добавлено ChangeTime.

svs 04.02.2011 17:43:54 +0300 - build

1. Внимательнее фразой "#ifdef FAR_USE_INTERNALS"!
   У нее пара "#endif // END FAR_USE_INTERNALS"
   Обработка скриптом делается!

svs 04.02.2011 16:39:35 +0300 - build 1820

1. Решаем траблы с клавиатурой.
   a) Ctrl. Ctrl. Ins (не на цифровой) - вместо Ins видим Num0
   b) функция TranslateKeyToVK стала уменее - ловим баги :-)

yjh 04.02.2011 15:29:20 +0300 - build 1819

1. 64bit warnings

drkns 04.02.2011 14:15:16 +0200 - build 1818

1. Выравнивание для x86 теперь тоже 8 байт.

drkns 04.02.2011 00:37:26 +0200 - build 1817

1. Свистелки и сопелки: используем правильный copyright "©" вместо "(С)".

zg 03.02.2011 18:27:43 +0200 - build 1816

1. DN_KEY, DN_HOTKEY в качестве Param2 принимают ссылку на INPUT_RECORD.

2. DM_KEY в качестве Param2 принимают ссылку на массив INPUT_RECORD.

zg 03.02.2011 16:05:25 +0200 - build 1815

1. убрано FAR_PKF_FLAGS.

2. убрана поддержка PKF_PREPROCESS.

zg 03.02.2011 15:12:44 +0200 - build 1814

1. в ProcessKeyW приходит INPUT_RECORD.

2. в FSF добавлена FarKeyToInputRecord.

drkns 03.02.2011 14:25:22 +0200 - build 1813

1. Уточнения в setattr и fileowner.

2. macrocompuler.?pp -> macrocompiler.?pp

zg 03.02.2011 13:05:54 +0200 - build 1812

1. в PanelInfo добавлены StructSize, OwnerGuid, PluginHandle.
   для плагиновых панелей OwnerGuid равен гуиду плагина, PluginHandle тому, что плагин вернул из Open[File]Plugin.
   для реальных панелей OwnerGuid равен FarGuid, PluginHandle - INVALID_HANDLE_VALUE.

2. в PanelInfo убраны Plugin, Visible, Focus и ShortNames. вместо них PFLAGS_PLUGIN, PFLAGS_VISIBLE, PFLAGS_FOCUS и PFLAGS_ALTERNATIVENAMES.

3. в PanelInfo Flags теперь 64 битный.

svs 03.02.2011 13:34:09 +0300 - build 1811

1. Файлы syntax.?pp переименованы в macrocompiler.?pp

2. Mantis#0001696: Функция len иногда "роняет" FAR
   TVar::toString() возвращает nullptr

3. Mantis#0001697: Доступ к Custom-колонке из функции panel.item
   (from DAtaMan)
   Добавлен индекс 22 = значение Custom-колонки

4. Macro: "substr избавлен от дефолтового значения третьего параметр, равного -1"
   В TVar добавлен тип vtUnknown (аналог vtInteger, содержит 0)

5. Структура ActlKeyMacro увеличена в размере, согласно п.5
   (http://forum.farmanager.com/viewtopic.php?p=58432#p58432).

drkns 03.02.2011 10:07:07 +0200 - build 1810

1. Mantis#0001698: Ошибка при подсчете количества файлов при копировании.
   Также общее количество файлов неправильно считалось при мультикопировании.

2. #error в headers.hpp только для релизной сборки.

drkns 03.02.2011 09:12:32 +0200 - build 1809

1. Поправлена vc-сборка + warnings.

zg 03.02.2011 04:11:18 +0200 - build 1808

Начаты глобальные изменения в API. Все уникодные плагины, собранные для предыдущих билдов несовместимы с новыми версиями.
До тех пор, пока все запланированные изменения в API не будут реализованы, в headers.hpp добавлена директива #error.

1. в PluginInfo добавлен GUID для плагина. GUID должен быть уникальным.

2. для каждой строки меню в PluginInfo добавлен GUID. этот GUID приходит в OpenPluginW и ConfigureW. должен быть уникален для одного плагина в пределах одного меню.

3. в PluginInfo добавлен параметр PluginTitle. общее название для плагина.

4. в PluginInfo Flags теперь 64 битный.

5. GetMinFarVersionW удалена, вместо неё - MinFarVersion в PluginInfo.

drkns 02.02.2011 08:36:12 +0200 - build 1807

1. Уточнение 1804.1.

svs 01.02.2011 18:10:02 +0300 - build 1806

1. Mantis#0001418: Реакция VMenu на RClick аналогично диалогам

2. В файлы помощи добавлен раздел, содержащий списки установленных макросов.


svs 01.02.2011 16:07:38 +0300 - build 1805

1. Mantis#0001690: FDLG_NODTITLE - не менять заголовок консоли по заголовку диалога
   (from samlyukov)
   Вместо предлагаемого FDLG_NODTITLE добавлен флаг диалога FDLG_KEEPCONSOLETITLE,
   позволяющий отключить установку заголовка консоли по нулевому элементу диалога.
   2samlyukov: с тебя корректировка Писания :-)

2. Macro: коррекция build 1791

3. Mantis#0001684: Падение FileList:GetCurName во время чтения сетевой папки
   (from Maximus)
   Падает из-за того, что из CheckForEscSilent вызывается ProcessSynchroEvent.
   А плагин зовет ACTL_GETWINDOWINFO.
   Фар еще не закончил чтение каталога и CurFile больше чем FileCount.
   Что приводит к падению.

4. Mantis#0001677: При запуске макроса через MCMD_POSTMACROSTRING задавать код "запускающей" клавиши
   Траблы с AKey...
   Надо протестировать!

5. Mantis#0001480: Расширить substr() для того, чтоб она могла возвращать подстроку начиная с конца строки
     если start  >= 0, то вернётся подстрока, начиная со start-символа от начала строки.
     если start  <  0, то вернётся подстрока, начиная со start-символа от конца строки.
     если length >  0, то возвращаемая подстрока будет состоять максимум из length символов исходной строки начиная с start
     если length <  0, то в возвращаемой подстроке будет отсутствовать length символов от конца исходной строки, при том, что она будет начинаться с символа start.

     пустая строка возвращается:
       если length = 0
       если ... (уточнить!)


drkns 01.02.2011 14:02:14 +0200 - build 1804

1. Поиск в режиме "На всех несъёмных дисках"/"На всех локальных дисках" учитывает непримонтированные диски тоже.

2. Mantis#0001693: Incorrect settings in File descriptions dialog

drkns 29.01.2011 12:31:15 +0200 - build 1803

1. Уточнение поиска альтернативных потоков в папках.

svs 27.01.2011 13:30:39 +0300 - build 1802

1. Macro: Уточнение кода возврата для callplugin
   Функция callplugin возвращает 0, если вызываемого плагина нет или плагин вернул 0.
   В других случаях функция возвращает значение, отличное от 0.
   Функция callplugin

svs 25.01.2011 18:35:03 +0300 - build 1801

1. Macro: Уточнение кода возврата для callplugin

svs 25.01.2011 16:53:18 +0300 - build 1800

1. Mantis#0001673: Добавить флаг OPEN_FROMMACROSTRING к существующему OPEN_FROMMACRO
   Тестим...

   <АХТУНГ>

     Замечание для OpenPluginW:
       Если в параметре OpenFrom выставлен флаг OPEN_FROMMACRO, то значения в младшем слове
       содержат не идентификатор из перечисления OPENPLUGIN_OPENFROM, а номер текущей макрообласти,
       определенной в перечислении FARMACROAREA.

   </АХТУНГ>


2. Mantis#0001677: При запуске макроса через MCMD_POSTMACROSTRING задавать код "запускающей" клавиши
   В структуру ActlKeyMacro::Param::PlainText добавлено поле "AKey".


drkns 23.01.2011 13:02:35 +0200 - build 1799

1. Ошибка в FCTL_SETSORTMODE.

2. Ещё раз #0001670.

drkns 22.01.2011 18:31:13 +0200 - build 1798

1. Ещё раз #0001670.

drkns 20.01.2011 20:18:54 +0200 - build 1797

1. Уточнение разделения прав доступа на "read"/"modification" в apiCreateFile.

drkns 20.01.2011 00:52:42 +0200 - build 1796

1. В некоторых случаях не работало копирование/перенос ссылок.

drkns 19.01.2011 21:21:30 +0200 - build 1795

1. Ещё немного паранойи в elevation:
     - имя канала = GUID;
     - проверка PID.

drkns 18.01.2011 14:47:00 +0200 - build 1794

1. Там же:
     - уточнение 1793;
     - paranoia mode on: именованный канал теперь доступен только для привилегированных процессов.

drkns 18.01.2011 00:53:26 +0200 - build 1793

1. Изменения в elevation по мотивам Mantis#0001670.

drkns 17.01.2011 13:27:27 +0200 - build 1792

1. Mantis#0001667: can't paste hex numbers

svs 16.01.2011 18:02:14 +0300 - build 1791

1. Mantis#0001660: Оператор XOR для булевых выражений
   Добавлен условный оператор "^^" - XOR, исключающее ИЛИ

drkns 16.01.2011 00:20:57 +0200 - build 1790

1. Переключатель "[x] File processing (OpenFilePlugin)" в настройках менеджера плагинов теперь 3-позиционный:
     [ ] - не показывать меню;
     [?] - показывать меню везде, кроме ситуаций "вход в архив по Enter" и "поиск в архивах";
     [x] - показывать меню везде.

2. GCC warnings.

svs 14.01.2011 17:39:03 +0300 - build 1789

1. Mantis#0001631: добавка в PluginsControl() - PCTL_FORCEDLOADPLUGIN
   (from: samlyukov)
   Добавка к АПИ: PCTL_FORCEDLOADPLUGIN - грузит плагин не в кэш, а сразу в память, что позволят
                  использовать сторонние плагины при межплагиновом взаимодействии.

svs 14.01.2011 17:11:42 +0300 - build 1788

1. Macro: уточнение для iif в части проверки на строку (см. build 1786 п.3)

2. Macro: уточнение для $if(строка) в части проверки на строку (см. build 1786 п.3)

drkns 13.01.2011 22:33:26 +0200 - build 1787

1. Неофициальный тестовый режим запускателя - "не мерцаем панелями при запуске неконсольных приложений".
   Включается при System\Executor\SilentExternal=dword:1.

svs 13.01.2011 11:43:12 +0300 - build 1786

1. Mantis#0001655: Неверное сообщение об ошибке при разборе макроса

2. Mantis#0001642: При проверке макропоследовательности возвращается неправильная позиция ошибки

3. Macro: изменения в поведении проверки условий для $if/$while
   Строка в условии проверяется на пусто и не пусто.

     %a="";
     $if (%a) не исполняем $else будет исполнено $end
     $if ("") не исполняем $else будет исполнено $end

     %a="все что угодно, в т.ч. просто 0";
     $if (%a) будет исполнено $else не исполняем $end
     $if ("все что угодно") будет исполнено $else не исполняем $end
     $if ("0") будет исполнено $else не исполняем $end

   + подсократим код :-)

4. Macro: введенная в build 1773 в строй функция Scr.Scroll переименована в Window.Scroll

5. Mantis#0001656: Отладочная версия валится в TruncStr

drkns 12.01.2011 16:15:14 +0200 - build 1785

1. И ещё.

drkns 12.01.2011 13:14:15 +0200 - build 1784

1. Ещё пара уточнений в запускателе.

drkns 11.01.2011 21:49:13 +0200 - build 1783

1. Уточнение 1782.2.

drkns 11.01.2011 21:38:40 +0200 - build 1782

1. Ключ /rc удалён - исходное состояние консоли восстанавливается всегда.

2. Поддержка запуска команд с повышением привилегий (aka "Run as administrator") в панелях, комстроке и истории. Хоткей - CtrlAltEnter.

3. Перетрях запускателя, в связи с п. 2. Вроде бы ничего не отвалилось, но соблюдаем осторожность.

drkns 10.01.2011 21:27:48 +0200 - build 1781

1. Вернём отображение количества обработанных файлов в диалог копирования.

2. Общий индикатор копирования теперь работает и при переносе в пределах одного диска.

drkns 10.01.2011 14:20:32 +0200 - build 1780

1. Немного оптимизации: если отсутствуют плагины, экспортирующие OpenFilePlugin/Analyse, то и лишних действий (открытия/чтения/закрытия файла)
   при попытке "входа" в файл не выполняется.

2. Пара мелочей.

drkns 09.01.2011 12:50:26 +0200 - build 1779

1. При установке заведомо неправильной даты файла эта дата могла заменяться случайными значениями.

2. Более корректная интерпретация 2-значных годов.

drkns 08.01.2011 22:48:50 +0200 - build 1778

1. Не игнорируются попытки запуска файлов, тип которых неизвестен ОС.

drkns 07.01.2011 22:34:21 +0200 - build 1777

1. Mantis#0001644: Падение после "Cannot load language data".

drkns 05.01.2011 19:21:38 +0200 - build 1776

1. Уточнение 1775.

drkns 05.01.2011 10:50:10 +0200 - build 1775

1. Mantis#0001640: Необходимость сохранения строк между вызовами DialogInit и DialogFree
   Теперь Far копирует себе FarDialogItem.History и FarDialogItem.Mask, хранить их в плагине постоянно больше не нужно.

drkns 02.01.2011 12:57:22 +0200 - build 1774

1. Уточнение вывода дат в формате yyyy-MM-dd.

2. Немного почищен interf.cpp.

svs 29.12.2010 16:09:28 +0300 - build 1773

1. Mantis#0001538: Обновление панели при выполнении некоторых макрокоманд

2. Macro: добавлена функция N=Scr.Scroll(Lines[,Axis])
      Lines - Положительное число - вперёд (вниз/вправо), отрицательное - назад (вверх/влево).
      Axis - Необязательный параметр, 0 - вертикаль (по умолчанию), 1 - горизонталь.

      Функция возвращает 0 - перемотка не состоялась (например, Lines был равен 0), иначе 1

drkns 29.12.2010 11:30:42 +0200 - build 1772

1. В 1741 погнулась работа с шарами SharePoint.
   Похоже, в Microsoft кладут на собственное API.

drkns 28.12.2010 12:55:27 +0200 - build 1771

1. Продолжение 1763 - годы отображаются без ведущего нуля.

2. Изменения в DIF_MASKEDIT: Del/BS не сдвигают оставшийся текст.

3. Во время работы PrepareDiskPath() Elevation отключается.

svs 28.12.2010 09:49:18 +0300 - build 1770

1. Коррекция build 1769

2. Mantis#0001594: FAR запущеный как редактор или вьювер загружает макросы для UserMenu
   Временно отключим юзерменю в редакторовьювере...

3. Mantis#0001614: Построчный скроллинг в режиме far.exe /w
   (from DAtaMan)
   Построчное скроллирование консольного буфера клавишами Ctrl-Alt-Up/Down

   <АХТУНГ>

     После появления макро-функции scroll (http://forum.farmanager.com/viewtopic.php?f=15&t=5409)
     из менеджера будет удалена всякая обработка клавиш для скроллинга экранного буфера.

   </АХТУНГ>

4. В диалоге SetAttr дублируются хоткеии для "&Hidden" и "C&hange time:".
   Для "Change time:" хоткей будет "g".

svs 27.12.2010 12:45:54 +0300 - build 1769

1. Mantis#0001634: Иногда функция panel.item возвращает для файла пустое описание
   (from DAtaMan)
   panel.item(0,0,11) возвращает пустое значение, если не включён режим с отображением описаний или не было вызова CtrlZ

drkns 24.12.2010 10:37:23 +0200 - build 1768

1. Продолжение 1764 - время записи тоже берём у источника.

zg 20.12.2010 13:46:31 +0200 - build 1767

1. с форума:
   набираем в командной строке macro:post panel.setpath(1, "C:/") (меняем путь в пассивной панели)
   и нажимаем F5 Enter на любом файле или папке в активной панели.
   Получаем ошибку "Can not find the file".

drkns 19.12.2010 23:49:18 +0200 - build 1766

1. Уточнение 1763.

svs 19.12.2010 22:52:53 +0300 - build 1765

1. Mantis#0001623: Новая команда в FARMACROCOMMAND - MCMD_GETAREA - Получить текущую макрообласть
   (from Yegor)

drkns 18.12.2010 20:59:54 +0200 - build 1764

1. При "[x] Copy contents of symbolic links" в диалоге подтверждения перезаписи для симлинков отображается размер источника.

drkns 18.12.2010 18:20:53 +0200 - build 1763

1. Уточнение 1762.1 для дат в формате "Year-Month-Day".

drkns 17.12.2010 18:58:27 +0200 - build 1762

1. Поступили слухи, что в диалоге атрибутов некорректно отображались пятизначные года.

drkns 15.12.2010 22:05:28 +0200 - build 1761

1. Диалоги больше не центрируются при изменении размера консоли.

drkns 14.12.2010 16:13:10 +0200 - build 1760

1. Уточнение 1757.4.

drkns 13.12.2010 18:12:58 +0200 - build 1759

1. Откат 1756.

drkns 12.12.2010 20:01:39 +0200 - build 1758

1. Уточнение 1757.2.

drkns 12.12.2010 19:43:37 +0200 - build 1757

1. Mantis#0001618: Числовая сортировка и по остальным колонкам.

2. "Регистрозависимость" сортировки - теперь не свойство режима панели, а свойство самой панели (по аналогии с числовой сортировкой).
   Соответствующая опция переехала из диалога настройки режима панели в меню критерия сортировки.

3. В API добавлены PFLAGS_CASESENSITIVESORT и FCTL_SETCASESENSITIVESORT.

4. В debug-сборку добавлена проверка соответствия пар malloc()/free(), new/delete, new[]/delete[] для выявления ошибок типа "int* a=new int[10]; delete a;"

drkns 12.12.2010 14:30:26 +0200 - build 1756

1. В редактор не приходили некоторые мышиные события.

chupakabra 11.12.2010 16:02:00 +0200 - build 1755

1. В Editor::Block2Text выделялся слишком большой блок памяти (вплоть до полного размера файла).

drkns 10.12.2010 22:36:15 +0200 - build 1754

1. Уточнение внутренней реализации FindFirstStream.

drkns 10.12.2010 20:02:21 +0200 - build 1753

1. "[x] Automatic update of environment variables" -> "[ ] Automatic update of environment variables".

2. Уточнение console::Write().

drkns 10.12.2010 10:51:32 +0200 - build 1752

1. Опция "[x] Automatic update of environment variables".

t-rex 10.12.2010 00:06:20 +0200 - build 1751

1. Ctrl-Ins больше не копирует файлы в клипбоард, теперь этим занимается Ctrl-C.
   Ctrl-C - Поместить помеченные файлы в Буфер Обмена (без учёта состояния командной строки).

drkns 08.12.2010 23:50:39 +0200 - build 1750

1. В диалоге атрибутов опция "[ ] Обрабатывать вложенные папки" для файлов не отображается.

2. Сломалось блокирование кнопки "[ Панель ]" в результатах поиска при отсутствии соответствующих плагинов.

drkns 08.12.2010 19:07:03 +0200 - build 1749

1. С форума: В меню выбора режимов сортировки пункт Show selected first — это на самом деле Show directories first, а последний вообще не работает, даже галка не ставится.

2. С форума: Глюк при переходе в "C:\Documents and Setting\All Users"

3. С форума: Фар падает при нажатии Ctrl+Shift+End в поле ввода фиксированного размера (например, Options - Editor settings - Tab size)

drkns 07.12.2010 18:09:12 +0200 - build 1748

1. Handle leak в предыдушем билде.

drkns 07.12.2010 12:41:41 +0200 - build 1747

1. Mantis#0001615: Возможность зайти в панелях в несуществующий на диске или в сети путь

drkns 07.12.2010 11:29:41 +0200 - build 1746

1. Уточнение 1741.

drkns 07.12.2010 08:45:22 +0200 - build 1745

1. Ещё пара мелочей.

drkns 07.12.2010 01:02:52 +0200 - build 1744

1. Mantis#0001408: Paste в автодополняемое поле иногда оставляет текст "серым".

drkns 07.12.2010 00:04:33 +0200 - build 1743

1. Mantis#0001612: Установка текущего времени в диалоге изменения файловых атрибутов

drkns 06.12.2010 20:09:35 +0200 - build 1742

1. При чтении файлов местных меню от Far 1.x учитывается, что раньше разделитель задавался иначе.

drkns 06.12.2010 19:42:33 +0200 - build 1741

1. Поддержка четвёртого времени файла - "Change Time", время изменения.
   Отличие от Last Write Time в том, что Change Time обновляется при любых манипуляциях с файлом, а не только при изменении содержимого.

2. Коррекция hlf/lng - "дата/время модификации" -> "дата/время последней записи".

3. Простая глобальная защита от нехваток памяти: при неудачной аллокации вместо падения выполнение будет приостановлено с возможностью повтора или продолжения.

4. gcc warnings.

drkns 04.12.2010 11:11:27 +0200 - build 1740

1. From Tim Sobolev: коррекция заголовка окна редактора.

2. Уточнение 1738.2.

svs 03.12.2010 17:01:42 +0300 - build 1739

1. From Alexey Samlyukov: для режима far.exe /w добавлены клавиши: Ctrl-Alt-Home/End листают окно в начало/конец буфера

drkns 02.12.2010 20:06:35 +0200 - build 1738

1. Mantis№0001608: Мелкий баг при поиске дубликатов кодовых страниц

2. Коррекция типов.

drkns 01.12.2010 16:08:46 +0200 - build 1737

1. Уточнение 1729.1.

drkns 26.11.2010 23:25:10 +0200 - build 1736

1. Неправильно обрабатывался список масок, разделенный ';' и содержащий "%pathext%".

drkns 26.11.2010 20:44:41 +0200 - build 1735

1. Mantis#0001591: Добавка в FileFilterControl: Custom-фильтры

2. Не показываем ненужные элементы в диалоге создания ссылки.

yjh 26.11.2010 11:00:23 +0300 - build 1734

1. Коррекция ошибки внесённой в 1732

drkns 25.11.2010 21:15:37 +0200 - build 1733

1. From Alexey Samlyukov: флаги PFLAGS_USECRC32/OPIF_USECRC32, явно определяющие, что у элементов плагиновой панели заполнено поле CRC32.

drkns 25.11.2010 15:07:10 +0200 - build 1732

1. Уточнение 1730.1 - В Windows 7 и выше "App Paths" один.

drkns 25.11.2010 13:52:52 +0200 - build 1731

1. Не работала опция "[x] use additional privileges"

yjh 25.11.2010 14:50:16 +0300 - build 1730

1. В win64 'App Paths' в регистри надо просматривать в "двух версиях" - для
   32х и 64х битовых процессов (оне разные :)

drkns 25.11.2010 10:30:48 +0200 - build 1729

1. При переименовании/переносе опция "[ ] Обрабатывать несколько имён файлов" отключена и не используется.

yjh 25.11.2010 08:55:14 +0300 - build 1728

1. def-файл ulink'а был закоммичен в "отладочном" виде

yjh 25.11.2010 04:42:51 +0300 - build 1727

1. Редизайн vc10.asm так, что он занимает чуть меньше места :).

2. В случае компоновки ulink'ом не используем vc10 - вместо этого делаем
   эти 2 процедуры в режиме delayload и "подменяем" их только в ситуации
   когда они не проимпортировались.
     Такой разнице в поведении 3 причины: этот вариант более корректный,
   ulink запрещает "прямое использование" __imp_ префиксов у имён (это
   редкостная экзотика, а вот ошибки такие случаются), ну и, наконец,
   ms-link не поддерживает partial delyay load.

drkns 23.11.2010 20:39:55 +0200 - build 1726

1. From Alexey Samlyukov: не работал FreePluginDirList.

2. From Alexey Samlyukov: GetPluginDirList умеет работать с пассивной панелью.

drkns 22.11.2010 22:20:00 +0200 - build 1725

1. Для VC2010-билда минимальные системные требования теперь не XP SP3, а 2k SP4 + KB816542.

drkns 22.11.2010 14:27:37 +0200 - build 1724

1. Mantis#0001600: Не входит в 'C:\Users\<User>\Application Data'

2. Пара мелочей.

drkns 17.11.2010 00:12:50 +0200 - build 1723

1. Опечатка в 1722.

drkns 16.11.2010 19:14:24 +0200 - build 1722

1. Убираем из копира поддержку переименования файла в своё SFN - реализация приводит к глюкам при обычном переименовании.

2. Попытка переименования файла в то же самое имя теперь автоматически считается удачной и не приводит к ошибке "Нельзя копировать файл в самого себя".

3. SFN в панелях отображаются в правильном регистре.

4. По просьбам телезрителей - FarRecursiveSearch не ищет по SFN.

5. Оптимизация некоторых api*-обёрток.

drkns 15.11.2010 13:47:00 +0200 - build 1721

1. С форума: "Проблема при записи макроса".

t-rex 12.11.2010 21:32:19 +0200 - build 1720

1. Mantis#1527: В истории ввода помеченные пункты не остаются вверху выпадающего списка и могут быть из него удалены как устаревшие.

drkns 12.11.2010 19:39:44 +0200 - build 1719

1. Уточнение 1718.

drkns 12.11.2010 13:47:00 +0200 - build 1718

1. Mantis#0001587: Поломался переход far:goto "c:\long path"

drkns 12.11.2010 07:53:51 +0200 - build 1717

1. Поправка 1715.3.

drkns 11.11.2010 11:11:11 +0200 - build 1716

1. Продолжение 1715.3. Для gcc минимальная версия w32api теперь 3.15.

drkns 10.11.2010 20:50:52 +0200 - build 1715

1. Уточнение надписей в диалоге создания ссылок

2. Mantis#0000329: Изменить цвета по умолчанию для Неизмененного текста
   Ну и для единообразия в комстроке выделение теперь cyan, a не gray.

3. Выкинут мусор из headers.hpp.

ts 09.11.2010 22:43:29 +0200 - build 1714

1. Macro: BM.back() теперь выполняет функции, ранее принадлежавшие BM.prev()
   BM.prev() выполняет только ожидаемую функцию возврата на предшествующую закладку

svs 08.11.2010 18:07:58 +0300 - build 1713

1. Macro: Удалены BM.first() и BM.last(). Вносили избыточность функционала...

   <АХТУНГ>

     вместо BM.first использовать BM.goto(1)
     вместо BM.last  использовать BM.goto(BM.stat(0))

   </АХТУНГ>

2. Macro: уточнение работы (точнее отсутствия онной) Menu.XXX в диалогах со списками.

drkns 08.11.2010 16:10:32 +0200 - build 1712

1. Обход идиотского бага древних Windows:
   Конструкция ExpandEnvironmentStringsW(L"%__CD__%", NULL, 0); вызывала AV в ntdll:RtlExpandEnvironmentStrings_U.
   Плюс немного оптимизации.

ts 06.11.2010 20:45:04 +0200 - build 1711

1. Уточнение 1710.

svs 05.11.2010 16:50:49 +0300 - build 1710

1. Macro: добавка к букмаркам (from: Tim Sobolev)
    N=BM.first() - переход на первую закладку
    N=BM.last() - переход на последнюю закладку
    N=BM.goto([pos]) - переход на закладку с указанным индексом (pos=0 или не указан --> текущую)
    N=BM.push() - сохранить текущую позицию в виде закладки в конце стека
    N=BM.pop() - восстановить текущую позицию из закладки в конце стека и удалить закладку

  Добавка к BM.stat(I) - для I=1 возвращается индекс текущей закладки (0 если закладок нет)

  Примечание для BM.add() и BM.prev()

  Если была выполнена операция BM.add() и после неё BM.prev(), произойдёт
  следующее:

  а) Если текущая позиция в редакторе соответствует позиции, сохранённой в
  BM.add(), то произойдёт переход на предшествующую, созданной BM.add(),
  закладку.
  б) Если текущая позиция в редакторе не соответствует позиции, сохранённой в
  BM.add(), то текущая позиция будет сохранена и произойдёт переход на закладку,
  созданную BM.add().


drkns 03.11.2010 10:15:20 +0200 - build 1709

1. Уточнение 1708.

drkns 31.10.2010 22:24:07 +0200 - build 1708

1. Экспериментально:
   - дополнение умеет работать не с начала строки ("cd c:\wi" и т.п.).

drkns 30.10.2010 20:37:40 +0200 - build 1707

1. Не работало копирование симлинков с атрибутом "только для чтения".

drkns 28.10.2010 16:48:32 +0200 - build 1706

1. Mantis#0001559: Ошибка Cannot find the file после смены папки из истории папок

svs 27.10.2010 13:23:28 +0300 - build 1705

1. Macro: коррекция поведения Selected, Bof, Eof, Empty.
   Теперь работают, как заявлено в Писании.

zg 27.10.2010 12:47:55 +0200 - build 1704

1. gcc build.

svs 26.10.2010 12:25:02 +0300 - build 1703

1. Первое приближение Mantis#0000466. Временно обернуто в PROCPLUGINMACROFUNC (в обычной сборке недоступно)

2. Перетасовка коде между macro.cpp и syntax.cpp
   Введено (внутренне) понятие "регистрация функции".

drkns 26.10.2010 00:45:47 +0200 - build 1702

1. По просьбам телезрителей: откат отката.
   Вернём назад опцию про привилегии, + теперь она по умолчанию выключена.

drkns 25.10.2010 21:39:28 +0200 - build 1701

1. Откат 1699.

drkns 25.10.2010 11:56:14 +0200 - build 1700

1. При VCTL_GETINFO возвращалось некорректное значение ViewerInfo::WindowSizeY.

drkns 24.10.2010 20:35:03 +0200 - build 1699

1. Отдельная опция для управления использованием дополнительных привилегий.

drkns 23.10.2010 00:21:14 +0200 - build 1698

1. При запуске bat-файла вида:

@echo off
cls
echo 1
echo 2
echo 3

- не отображались первые два пункта.

drkns 21.10.2010 11:57:27 +0200 - build 1697

1. Вайп симлинка портил файл, на который он ссылался.

drkns 20.10.2010 11:42:42 +0200 - build 1696

1. Включение/выключение запросов повышения прав вынесено в интерфейс.

drkns 20.10.2010 10:45:45 +0200 - build 1695

1. Mantis#0001557: Неверный показ атрибутов symlink

2. Некорректное отображение диалога атрибутов для случая, когда элемент одновременно является и жесткой и символической ссылкой.

drkns 15.10.2010 13:23:23 +0200 - build 1694

1. PluginInfo::DiskMenuNumbers -> PluginInfo::Reserved0.

drkns 15.10.2010 09:22:33 +0200 - build 1693

1. Уточнение 1692.

drkns 14.10.2010 20:01:32 +0200 - build 1692

1. Экспериментально:
   - горячие клавиши для плагинов в меню выбора диска теперь задаются не плагинами, а пользователем по F4.
   - в качестве горячей клавиши может выступать не только цифра, но и любой другой уникодный символ.

drkns 06.10.2010 19:59:59 +0200

1. ASLR.

drkns 03.10.2010 14:28:31 +0200 - build 1691

1. Уточнение 1683.

drkns 03.10.2010 00:28:13 +0200 - build 1690

1. Ошибка в обработке elevation-варианта SetFilePointerEx.

drkns 02.10.2010 23:36:23 +0200 - build 1689

1. Mantis#0001525: Copy folders with symbolic links (to other folders) inside

t-rex 01.10.2010 20:30:56 +0200 - build 1688

1. Mantis#1522: Лишний слеш в заголовке панели.
   Баг тут немного не в том. Мы конечно можем обрабатывать (удалять) эти слэши но этим как бы бессмысленно заниматься,
   и как раз то что часть из них удалилась это и есть баг.

t-rex 01.10.2010 08:21:10 +0200 - build 1687

1. Mantis#1520: crash on cd %tmp%
   Коррупция хипа в PrepareDiskPath(). За одно сделал мелкие оптимизации там же.

t-rex 01.10.2010 04:17:16 +0200 - build 1686

1. В случае "preloaded" плагина который требует более новый фар (GetMinFarVersion) сообщение об ошибке загрузки показывалось два раза.

chupakabra 30.09.2010 21:33:00 +0200 - build 1685

1. Поправка для 1684

chupakabra 30.09.2010 21:16:00 +0200 - build 1684

1. Mantis#0001514: Некорректная работа ConvertPath(CPM_REAL, ...) на DFS
   В internalNtQueryGetFinalPathNameByHandle() добавлена простая обработка сетевых путей.

drkns 28.09.2010 13:47:00 +0200 - build 1683

1. Хоткей для редактора F4 == "выход", по аналогии с вьювером.

2. Пара мелочей в elevation.

svs 27.09.2010 16:59:30 +0300 - build 1682

1. Mantis#0001512: Не срабатывают автостартующие макросы

2. Macro: mmode(2) - вернуть информацию (область и флаги) об условиях запуска "этой" макропоследовательности (исполняемой сейчас).
    Функция возвращает в младшем байте номер макрообласти, из которой стартовал макрос:

         0 - Other           -  Режим копирования текста с экрана, вертикальные меню
         1 - Shell           -  Файловые панели
         2 - Viewer          -  Внутренняя программа просмотра
         3 - Editor          -  Редактор
         4 - Dialog          -  Диалоги
         5 - Search          -  Быстрый поиск в панелях
         6 - Disks           -  Меню выбора дисков
         7 - MainMenu        -  Основное меню
         8 - Menu            -  Прочие меню
         9 - Help            -  Система помощи
        10 - Info            -  Информационная панель
        11 - QView           -  Панель быстрого просмотра
        12 - Tree            -  Панель дерева папок
        13 - FindFolder      -  Поиск папок
        14 - UserMenu        -  Меню пользователя
        15 - AutoCompletion  -  Список автодополнения
       255 - Common          -  Общая область

    остальные значения - флаги условий запуска (в т.ч. некоторые служебные флаги)

       Условия запуска:
         0x00000200 - НЕ передавать плагинам клавиши во время записи/воспроизведения макроса
         0x00000800 - этот макрос запускается при старте ФАРа
         0x00001000 - запускать, если командная линия пуста
         0x00002000 - запускать, если командная линия не пуста
         0x00004000 - запускать, если есть выделение в редакторе
         0x00008000 - запускать, если есть нет выделения в редакторе
         0x00010000 - активная:  запускать, если есть выделение
         0x00020000 - пассивная: запускать, если есть выделение
         0x00040000 - активная:  запускать, если есть нет выделения
         0x00080000 - пассивная: запускать, если есть нет выделения
         0x00100000 - активная:  запускать, если это плагиновая панель
         0x00200000 - пассивная: запускать, если это плагиновая панель
         0x00400000 - активная:  запускать, если это файловая панель
         0x00800000 - пассивная: запускать, если это файловая панель
         0x01000000 - активная:  запускать, если текущий объект "файл"
         0x02000000 - пассивная: запускать, если текущий объект "файл"
         0x04000000 - активная:  запускать, если текущий объект "папка"
         0x08000000 - пассивная: запускать, если текущий объект "папка"

       Доп.инфа:
         0x00000100 - подавить обновление экрана во время выполнения макроса
         0x10000000 - текст макроса многострочный (REG_MULTI_SZ)
         0x40000000 - этот макрос необходимо запомнить при сохранении макросов
         0x80000000 - этот макрос отключен (помеченные этим флагом макросы не запускаются - ни с клавиатуры, ни из eval())

       TODO: последние 2 флага в принципе возможно сделать не ReadOnly

    Так же перетасовал значения MACROFLAGS_MFLAGS и удалил неиспользуемый MFLAGS_REUSEMACRO.

svs 23.09.2010 00:26:57 +0300 - build 1681

1. Mantis#0001508: Падение Far при выполнении макроса на медленно обновляемой панели
   Во время вызова макрофункций Panel.SetPos(), panel.SetPath() и Panel.SetPosIdx() макросы замораживаются
   до момента выполнения этих функций: на "больших" каталогах (например, сетевые, с большим количеством
   файловых объектов и/или медленных каналах) эти функции могут выводить сообщения о процессе сбора
   данных о файлах/каталогах, с возможностью отменить процесс по Esc.

   TODO: Сейчас в код добавлены куски кода, убирающие перед работой функций лочку экрана (и выставляющие
         ее обратно, после исполнения) - см. между тэгами <Lock?> и </Lock?>.
         Это решение позволяет "увидеть" тот самый месаг о процессе сбора данных.
         Здесь "непонятки" - нужны ли эти куски?
         * если нужны, то возникает ситуация для случая, когда месаг появился и
           юзер прервал сканирование... незаконченная транзакция
         * если не нужны, то ситуация обратная - пользователь для такого макроса
           будет видеть не реагирующий ни на что Far (до момента завершения сканирования каталога)

drkns 21.09.2010 20:38:32 +0200

1. Очередная неполноценность gcc-хидеров.

warp 21.09.2010 00:30:00 +0100 - build 1680

1. Случайно просочилось левое во враппер. Возвращаю.

warp 21.09.2010 00:15:00 +0100 - build 1679

1. Экспериментально. Добавлена поддержка определения BD-ROM (раньше работало
   плохо), BD-RW, HDDVD, HDDVD-RW.

2. Выкинул функцию определения типа привода по формату носителя. Это какое-то
   уж слишком сильное колдунство.

drkns 18.09.2010 19:11:51 +0200 - build 1678

1. From svs:  По мотивам Mantis#0000928. У редактора и вьюверю в макросах состояние Modal так же выставляется.

2. From svs: неправильно позиционировалось меню по CtrlF12.

3. В plugin.hpp раскомментированы флаги XLAT_USEKEYBLAYOUTNAME и XLAT_CONVERTALLCMDLINE.

4. x64 warnings.

svs 17.09.2010 17:13:31 +0300 - build 1677

1. Mantis#0001502: Выделение элементов в меню режимов сортировки (Ctrl-F12)
     Клавиша #+# устанавливает прямую сортировку.
     Клавиша #-# устанавливает обратную сортировку.
     Клавиша #*# меняет сортировку на обратную.

t-rex 17.09.2010 12:49:19 +0200 - build 1676

1. Неправильная обработка oldfar::DM_GETTEXT при oldfar::FarDialogItemData.PtrLength==0.
   Надо удалить такое поведение в 2.0 API.

drkns 17.09.2010 10:53:53 +0200 - build 1675

1. Ошибка в логике расшифровки файлов при копировании.

drkns 16.09.2010 20:12:34 +0200 - build 1674

1. Уточнение 1511 билда: заголовок редактора "насовсем" меняется только для юникодных плагинов.

svs 16.09.2010 17:50:23 +0300 - build 1673

1. Mantis#0001504: Обеспечить возможность издавать звук в зависимости от раскладки
   Добавлены функции (macro):
	N=beep([N])
	  Здесь параметр (как у функции WinAPI MessageBeep):
		MB_ICONASTERISK = 0x00000040
			Звук Звездочка
		MB_ICONEXCLAMATION = 0x00000030
			Звук Восклицание
		MB_ICONHAND = 0x00000010
			Звук Критическая ошибка
		MB_ICONQUESTION = 0x00000020
			Звук Вопрос
		MB_OK = 0x0
			Стандартный звук
		SIMPLE_BEEP = 0xffffffff
			Встроенный динамик
	  Возвращает 1 или 0 (в случае неудачи)

	Прочие "извращения" со звуком - через плагины (после "решения" Mantis#0000466)

	N=kbdLayout([N])
	  Работа с раскладками клавиатуры
	  Параметр N:
		а) конкретика: 0x0409 или 0x0419 или...
		б) 1 - следующую системную (по кругу)
		в) -1 - предыдущую системную (по кругу)
		г) 0 или не указан - вернуть текущую раскладку.

	  Возвращает 0 в случае ошибки или предыдущую раскладку (для параметра N=0 - текущую)
	  Ошибки: не удалось определить имя текущей раскладки для консоли или не удалось получить хэндл консольного окна.

	  В случае указания конкретной НЕ существующей раскладки функция ошибку не выдаст и просто вернет текущую раскладку.

	Например,
	  print(itoa(kbdLayout(0x421),16))
	    При текущей русской раскладке просто вернет 4190419
	  print(itoa(kbdLayout(),16))
	    При текущей русской раскладке вернет 4190419
	  print(itoa(kbdLayout(0x409),16))
	    При текущей русской раскладке вернет 4190419 и переключит раскладку на английскую
	  print(itoa(kbdLayout(1),16))
	    При текущей русской раскладке вернет 4190419 и переключит на следующую раскладку (по кругу)

2. Macro: Удалена макрокоманда $KbdSwitch
   <АХТУНГ>

     Замените у себя $KbdSwitch на kbdLayout(1)

   </АХТУНГ>

3. Mantis#0001423 - Узнать состояние пункта меню
   Уточнение про состояние Checked.

   Теперь функция Menu.ItemStatus() возвращает в старшем слове символ пометки (U+XXXX)
   Если выставлен флаг 0x2 и старшее слово равно 0, то Far использует свой символ (0x221A)
   Если выставлен флаг 0x2 и старшее слово не равно 0, то Far использует символ пометки из старшего слова
   Если НЕ выставлен флаг 0x2 и старшее слово не равно 0, то это нишиша не обозначает

chupakabra 14.09.2010 21:33:00 +0200 - build 1672

1. Mantis#0000840: включаем Low-fragmentation Heap для CRT heap.

drkns 14.09.2010 09:58:33 +0200 - build 1671

1. Неправильно обрабатывались метасимволы вида !?$history$(!.!)?!

drkns 13.09.2010 11:30:02 +0200 - build 1670

1. Уточнение 1669 :)

drkns 13.09.2010 11:28:01 +0200 - build 1669

1. Потерялась строка в imports.cpp

warp 10.09.2010 23:39:00 +0300 - build 1668

1. Исправление в ProcessName(PN_GENERATENAME), теперь должен работать ProxyFTP через
   враппер (при соответствующей версии враппера).

drkns 10.09.2010 19:45:44 +0200 - build 1667

1. Mantis#0001497: EditorControl (ECTL_GETBOOKMARKS) работает неправильно.

2. Mantis#0001498: Курсор не прячется при утаскивании диалога за пределы экрана.

drkns 09.09.2010 09:50:09 +0200 - build 1666

1. Mantis#0001495: Ошибка при поиске (AltF7) в %PATH%.

chupakabra 05.09.2010 14:33:00 +0200 - build 1665

1. При PutFilesW()=1 не устанавливаем курсор на каталоги.

chupakabra 02.09.2010 19:41:00 +0200 - build 1664

1. Откат 1661.

drkns 31.08.2010 12:40:01 +0200 - build 1663

1. Т.к. setupapi.dll есть везде - линкуем статически.
   Там же: несколько функций CM_* заменены на рекомендуемые SetupDi*-аналоги.

2. Коррекция lng.

zg 30.08.2010 01:25:01 +0200 - build 1662

1. добавлен гуид диалогу перемещения/переименования. раньше гуид совпадал с гуидом диалога копирования.

chupakabra 26.08.2010 22:54:00 +0200 - build 1661

1. Всегда передаем в GetFilesW полный путь.

chupakabra 26.08.2010 22:22:00 +0200 - build 1660

1. ACTL_PROGRESSNOTIFY - Far выполняет стандартное оповещение о завершении операции (мерцание кнопкой в таскбаре).

drkns 26.08.2010 21:02:33 +0200 - build 1659

1. Уточнение работы DN_GETDIALOGINFO.

2. Косметика в hotplug.cpp.

drkns 27.08.2010 09:50:32 +0200

1. Spanish translation (lng file) from Mauro72.

svs 26.08.2010 07:50:23 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
   Обновлен PluginW.pas

zg 25.08.2010 12:12:25 +0200 - build 1658

1. добавлены гуиды диалогам:
   - вопрос о перезаписи r/o файла. раньше гуид совпадал с гуидом обычного диалога перезаписи.
   - копирование файла.
   - создание жёстких связей

svs 25.08.2010 12:40:09 +0300 - build 1657

1. Panel API: добавлены FCTL_GETPANELFORMAT и FCTL_GETPANELHOSTFILE.
   (Mantis#0001472: Добавить FCTL_GETPANELFORMAT, FCTL_GETPANELHOSTFILE)

svs 25.08.2010 11:17:55 +0300 - build 1656

1. Mantis#0001471: QuickView в панели плагина показывает случайную информацию о каталогах
   Для плагинов уберем показ некоторых параметров папок (выводится нереальный мусор)

2. Первый этап перелопачивания FolderShortcuts
    - Функции GetShortcutFolder() и SaveFolderShortcut() понятия не имеют что такое "клавиша".
    - математика реагирования на RCtrl[Shift]-0..9 вынесена из FileList::ProcessKey() в class Panel в виде функций ExecShortcutFolder() и SaveShortcutFolder().
    - про функцию GetShortcutFolderSize() забыли - остатки роскоши былой.

zg 24.08.2010 20:38:59 +0200 - build 1655

1. добавлены гуиды диалогам:
   - открытие файла в редакторе.
   - сохранение файла в редакторе.
   - создание папки.
   - установка атрибутов.

drkns 23.08.2010 19:54:28 +0200 - build 1654

1. Автодополнение работает и для путей вида %env%\foo.

drkns 22.08.2010 08:30:54 +0200 - build 1653

1. При определении виртуальных дисков обрабатываются только жёсткие диски.

svs 21.08.2010 23:18:55 +0300 - build 1652

1. Macro: добавлен термин "точная строка" ("verbatim string", как в C#)
   Точная строка начинается со знака @ и заключена в двойные кавычки.
   В ней escape-последовательности не обрабатывается, что позволяет использовать такую строку там, где
   последовательность формируется с применением метасимволов, например в UserMenu. Например, в пути заменяем все '\' на '/'
    print(replace(@"!\!.!", @"\", ""))
   Чтобы включить знак двойной кавычки в "точную строку", следует использовать знак кавычек дважды:
     @"""Слово!"" в двойных кавычках."

svs 21.08.2010 11:00:41 +0300 - build 1651

1. Macro: не работала функция mload()

zg 20.08.2010 18:10:13 +0200 - build 1650

1. Mantins#0001469: Editor Word Completion перестал понимать нажатие Right.

drkns 20.08.2010 15:08:21 +0200 - build 1649

1. В меню дисков работает отсоединение виртуальных дисков по Del.

drkns 19.08.2010 23:07:06 +0200 - build 1648

1. Кто-то внедрил хитрую оптимизацию: получать путь к временной папке при старте, сохранять в переменную и использовать в дальнейшем.
   В результате переопределение этого пути обходило нас стороной.

drkns 19.08.2010 20:21:57 +0200 - build 1647

1. Поправка к 1646.

drkns 19.08.2010 19:36:20 +0200 - build 1646

1. В меню смены диска опознаются виртуальные (VHD) жёсткие диски. Опционально отображается имя VHD-контейнера.
   Работает в Windows 7/Windows Server 2008 R2 и выше.

2. Несколько ненужных IsProcessAssignMacroKey и ещё по мелочи.

svs 19.08.2010 14:56:31 +0300 - build 1645

1. Macro: добавлена функция N=mload(S)
     считать из реестра (область Vars) переменную S
     вернет 1 - есть такая переменная и она успешно считана в память
            0 - нет такой переменной в реестре, переменная не создается,
                если переменная была в памяти, а из реестра стерли, то значение в памяти не изменяется.
     функция понимает REG_SZ, REG_MULTI_SZ, REG_DWORD и REG_QWORD.

svs 18.08.2010 22:31:22 +0300 - build 1644

1. Mantins#0001305: wish: Show some cols of Find window
   Настройка колонок находится в диалоге "Find file advanced options" (в поисковике кнопка "Advanced")
   Синтаксис типов колонок - как у панелей.
   Отличия и ограничения - описаны в хелпе к диалогу "Find file advanced options".

   Про развитие:
     1. сделать, что бы список формировал строку вывода (сейчас списку готовую строку подсовывают)
     2. после этого добавить еще 9 режимов отображения и снять ограничение на имя ("всегда в конце")
     4. в итоге можем получить динамичное переключение режимов отображения результатов по Ctrl-цифра (как в панелях)

2. Попутно бага нашлась - в колонке "G" для ".." показывалась какая то ерунда.

3. ViewSettingsToText() и  TextToViewSettings() более не члены класса FileList

drkns 17.08.2010 20:15:03 +0200 - build 1643

1. При перемещении в корзину соответствующая кнопка диалога подтверждения подписывается как "move", а не "delete".

drkns 16.08.2010 18:27:26 +0200 - build 1642

1. Доработка меню для OpenFilePlugin:
   - "Even if only one plugin found" зависит от "Show standard association item";
   - отдельная настройка для ShiftF1;
   - для ShiftF1 пункт "standard association" не показывается.

drkns 09.08.2010 13:47:00 +0200 - build 1641

1. Mantis#0001459: проблема с Drag and Drop files

2. Уточнение работы NTPath. Больше не должно появляться ситуаций, подобных M#0001458. Также теперь работают пути вида "C:\\\\\Dir1////Dir2".

3. При считывании каталога перерисовка и опрос консоли производится как везде - каждые 200 мс, а не после каждых 64 файлов. Там же: убрано ненужное сообщение после отмены считывания.

drkns 09.08.2010 12:27:32 +0200 - build 1640

1. Забытый отладочный код :)

drkns 07.08.2010 00:20:54 +0200 - build 1639

1. Mantis#0001455: Очень большая задержка при отмене копирования на сетевой диск.

drkns 05.08.2010 23:30:53 +0200 - build 1638

1. Уточнение 1633.2.

svs 05.08.2010 15:50:06 +0300 - build 1637

1. Mantis#0001451: Странности MCMD_CHECKMACRO
   Виснет при старте для "пустышки"
     "Sequence"="\"\""

drkns 05.08.2010 14:15:16 +0200 - build 1636

1. При < сохранении файла встроенным редактором | обновлении файла описаний | редактировании локального меню > не теряются альтернативные потоки данных.

2. Mantis#0001443: Неудобная реакция на клик мышкой в окне поиска.

3. FindFirstFile -> FindFirstFileEx. В Windows 7/2008 R2 возможно некоторое ускорение просмотра папок.

svs 04.08.2010 11:45:04 +0300 - build 1635

1. Mantis#0001451: Странности MCMD_CHECKMACRO
   Доработаем UserDefinedList.

yjh 31.07.2010 07:09:58 +0300 - build 1634

1. Уж не знаю кто "боролся" с диагностикой приведения BOOL к bool после
   тернарной операции, но, в результате и диагностика осталась и получился
   нерабочий конструкт.

drkns 30.07.2010 23:47:23 +0200 - build 1633

1. При копировании каталогов теперь сохраняются их альтернативные потоки данных.

2. Прибита логика "если копируем каталог и включён фильтр и файлы в фильтр не попали, то пустой каталог не нужен".

t-rex 30.07.2010 21:27:16 +0200 - build 1632

1. From Max Moysyuk: дополнительная правка для Mantis#1419: Очень длительный переход на локальный диск (AltF1/AltF2).

2. GCC ворнинги.

drkns 29.07.2010 21:09:20 +0200 - build 1631

1. Mantis#0001443: Неудобная реакция на клик мышкой в окне поиска.

2. Mantis#0001449: Сообщение об ошибке смены диска не влезает в консоль.

3. Кнопки "Go to", "View" и  "Panel" в диалоге поиска блокируются, если ничего не нашли.

4. Кнопка "Filter" в диалогах копирования и поиска блокируется, если не включена опция "[ ] Use filter"

drkns 28.07.2010 10:00:00 +0200 - build 1630

1. Изменения в usermenu.
   - разделителем теперь считается пункт с горячей клавишей "--" и любой меткой.
   - горячая клавиша "-" теперь всегда считается горячей клавишей "-".

2. Подсократим число восклицаний!!!111 в языковых файлах.

drkns 27.07.2010 17:44:36 +0200 - build 1629

1. Mantis#0001447: Виснем при переходе к файлу после поиска

svs 27.07.2010 14:18:55 +0300 - build 1628

1. Mantis#0001446: функция Date() возвращает 0

drkns 26.07.2010 21:21:04 +0200 - build 1627

1. Не работало создание символических ссылок из-под ограниченной учётной записи в 64-битных ОС.

drkns 26.07.2010 13:33:33 +0200 - build 1626

1. При CtrE/CtrlX/Up/Down/MsWheelUp/MsWheelDown в комстроке автодополнение больше не включается.

2. Mantis#0001443: Неудобная реакция на клик мышкой в окне поиска.

drkns 21.07.2010 16:41:47 +0200 - build 1625

1. Mantis#0001438: Far 2.0.1624: Изменение поведения редактора по сравнению с 1623 (и до).

drkns 20.07.2010 22:08:47 +0200 - build 1624

1. Mantis#0001437: Far 2.0.1623: Пример изменения поведения редактора.

2. Уточнение 1609.2: CF_HDROP используется только для "стандартного" CtrlIns, <CtrlShift|CtrlAlt|AltShift>Ins копируют только текст.

drkns 20.07.2010 01:21:33 +0200 - build 1623

1. Аттракцион невиданной щедрости. Цикличный вызов ECTL_GETSTRING работает в 100500 раз быстрее. Просто так, без ритуальных приседаний с ECTL_SETPOSITION + ECTL_GETSTRING(-1).

t-rex 16.07.2010 20:13:36 +0200 - build 1622

1. "Show total copy progress indicator" on by default.

svs 16.07.2010 10:03:22 +0300 - build 1621

1. Начало "Ахтунгов" в макросах (см. комментарий к 1454 и 1455).

   * удалена команда $Date
       заменить на print(Date(блаблабла_или_пусто))

   * удалена команда $MMode
       заменить на mmode(1,2)

   * удалено состояние IClip
       заменить на clip(5,-1) (при этом учесть, что clip() вернет 1 или 2)

   * удалена команда $IClip
       заменить на clip(5,0) или просто clip(5)

   * удалено состояние DisableOutput (не флаг макроса!)
       заменить на вызов функции mmode(1,-1)

drkns 15.07.2010 13:47:00 +0200 - build 1620

1. Перетасовка настроек:
   Диалог "Plugin selection" вырос до "Plugins manager", сюда же переехал "Path for personal plugins" и добавлена пара новых опций:
   "OEM plugins support" - глобальное включение/отключение поддержки старых плагинов;
   "Scan symbolic links" - загружать/не загружать плагины из ссылок.

2. Уточнение 1616.1.

drkns 15.07.2010 10:00:00 +0200 - build 1619

1. x64.

drkns 15.07.2010 10:00:00 +0200 - build 1618

1. Небольшая оптимизация ScreenBuf::MoveCursor()

drkns 14.07.2010 18:04:04 +0200 - build 1617

1. Уточнение алгоритма блочной записи/чтения консоли.

drkns 12.07.2010 19:38:29 +0200 - build 1616

1. Расширена функциональность диалога ошибки смены диска - теперь можно не отходя от кассы выбрать более другой диск.

t-rex 12.07.2010 10:45:46 +0200 - build 1615

1. Mantis#1432: проблемы сборки в gcc.

svs 12.07.2010 10:44:28 +0300 - build 1614

1. Mantis#0001412: F1 при просмотре *.hlf

drkns 09.07.2010 13:04:33 +0200 - build 1613

1. Переменная faradminmode наследовалась от родительского процесса.

t-rex 08.07.2010 20:10:14 +0200 - build 1612

1. Исправление 1607 (http://forum.farmanager.com/viewtopic.php?p=65440#p65440).

t-rex 08.07.2010 19:29:44 +0200 - build 1611

1. И ещё раз, Mantis#1429: Некоректная работа при открытии через "... | far.exe /v -"
   apiCreateFile() добавляет флаги (может это всё таки убрать а то не очевидно совсем?),
   а CONIN$ можно открывать только с очень определёнными флагами.

drkns 06.07.2010 16:47:23 +0200 - build 1610

1. Продолжение 1609: содержимое CF_HDROP-буфера может вставляться в редактор/строки ввода в виде текста.

drkns 06.07.2010 13:55:22 +0200 - build 1609

1. Пара багов в установке атрибутов.

2. В порядке эксперимента: при копировании с панели имён файлов в буфер обмена используется также формат CF_HDROP,
   что позволяет "вставлять" эти файлы из буфера в более других программах (проводник и т. п.).
   Обратная операция (копировать "там" и вставлять "здесь") пока не поддерживается, но всё возможно.

t-rex 08.07.2010 00:34:21 +0200 - build 1608

1. From Max Moysyuk: Mantis#1419: Очень длительный переход на локальный диск (AltF1/AltF2)

t-rex 08.07.2010 00:12:29 +0200 - build 1607

1. Mantis#1428: Падение при FCTL_SETNUMERICSORT.

drkns 06.07.2010 22:36:48 +0200 - build 1606

1. при определении типа CD-привод кроме чтения зачем-то открывался ещё на запись.

svs 06.07.2010 18:00:12 +0300 - build 1605

1. Mantis#0000986: Far 2 API - pascal
   Обновлены FarColorW.pas, FarKeysW.pas и PluginW.pas

2. Mantis#0000968: waitkey() пропускает AltIns

drkns 05.07.2010 11:00:00 +0200 - build 1604

1. В диалоге создания ссылок доступен ещё один "тип" символических ссылок - без явного указания, файл это или папка.
   Нужный вариант выбирается автоматически по атрибутам объекта, на который указывает ссылка.

2  В FSF.MkLink доступен флаг FLINK_SYMLINK, автоматически выбирающий тип символической ссылки.

drkns 02.07.2010 16:17:18 +0200 - build 1603

1. Mantis#0001425: глюк после сброса настроек раскраски файлов

t-rex 02.07.2010 15:20:09 +0200 - build 1602

1. Снова поломался "far /v -".

svs 02.07.2010 11:22:10 +0300 - build 1601

1. Mantis#0000926: Eval() устанавливает DisableOutput=1
   функция KeyMacro::GetCurRecord() не те данные возвращала (вместо данных из рабочего макроса брала библиотечный код)

2. Mantis#0001423: Узнать состояние пункта меню
     N=Menu.ItemStatus([N]);

     Вернуть состояние N-го пункта меню (N - 1-based), или текущего пункта, если N==0 или не указан.

     Работает в абсолютном пространстве пунктов меню (без учета фильтров пр. механизмов сокрытия)

     Возвращает набор флагов:
       0x00000001 - Selected (текущий пункт)
       0x00000002 - Checked (отображена метка выбора)
       0x00000004 - Separator (пункт является разделителем)
       0x00000008 - Disabled (пункт недоступен)
       0x00000010 - Grayed ("серый")
       0x00000020 - Hidden (скрыт фильтром)

       0xFFFFFFFF - нету нишиша/ошибка (N вне диапазона наличности)

     TODO (после реализации Mantis#0001422):
       0x00000040 - Hotkey present (имеет хоткей)
       0x00000080 - Hotkey manual (хоткей был назначен юзером)

drkns 01.07.2010 22:20:00 +0200 - build 1600

1. Mantis#0001420: far manager не запрещает винде хибернейт во время копирования(перемещения).

t-rex 30.06.2010 21:21:26 +0200 - build 1599

1. Ещё один перетрях CacheRead (надеюсь последний),
   починило дофига разных мистических глюков при поиске в просмотре в больших файлах в последних билдах.

svs 29.06.2010 15:01:56 +0300 - build 1598

1. Mantis#0001416: waitkey(0,0) не реагирует на клики мышки с модификаторами

2. Macro: ошибка парсера функций с необязательными элементами.
   "...наткнулся на неработоспособность макроса msgbox(menu.value,gethotkey()) в таком сочетании menu.value ничего не возвращает..."
   (возможно нужно уточнение)

t-rex 27.06.2010 13:43:59 +0200 - build 1597

1. Поиск во вьювере в общем не работал для больших файлов.

2. GCC ворнинг.

t-rex 26.06.2010 21:03:19 +0200 - build 1596

1. Grey+/- во въювере приводили к не совсем ожидаемым результатам.

drkns 26.06.2010 16:28:50 +0200 - build 1595

1. Не работал запуск из истории внешних команд просмотра/редактирования.
   Причём лет 5 уже.

chupakabra 24.06.2010 14:34:00 +0200 - build 1594

1. Форсируем отображение имени первого обрабатываемого файла при установке атрибутов
   (иначе при установке атрибута Compressed для больших файлов отображается пустое поле).

drkns 16.06.2010 13:47:00 +0200 - build 1593

1. После 1583 вьювер тормозил при работе по сети.

2. Мигаем таскбарной кнопкой 5 раз, а не бесконечно.

drkns 16.06.2010 11:21:12 +0200 - build 1592

1. Более быстрая реализация File::Eof()

2. Немного bool.

drkns 16.06.2010 18:56:32 +0200 - build 1591

1. Mantis#0001409: Падение во время удаления папки.

2. Глюк в хелпе.

t-rex 15.06.2010 00:05:09 +0200 - build 1590

1. В CtrlF12 добавлена возможность сортировать по Custom data.

t-rex 14.06.2010 00:56:58 +0200 - build 1589

1. Mantis#1405: После cls на экране остаётся C:\>cls

t-rex 12.06.2010 19:14:06 +0200 - build 1588

1. Экспериментально, неофициально и криво на посмотреть, поиграться и подумать:
   поддержка кастом колонки (C0) заполняемой плагинами в не плагиновых файловых панелях
   int WINAPI GetCustomDataW(const wchar_t *FilePath, wchar_t **CustomData)
   void WINAPI FreeCustomDataW(wchar_t *CustomData)
   если несколько плагинов возвращают кастом данные для одного и того же файла то будет показано "Plugin1 Plugin2 Plugin3"

2. Выскакивала ошибка языкового файла при открытия диалога редактирования панельных режимов.

drkns 12.06.2010 08:58:26 +0200 - build 1587

1. И ещё раз.

drkns 12.06.2010 08:43:29 +0200 - build 1586

1. Поправка 1584.2.

t-rex 11.06.2010 18:16:03 +0200 - build 1585

1. Тоже что и 1584.1 но для обновления плагиновой панели.

drkns 11.06.2010 13:47:00 +0200 - build 1584

1. При обновлении панели не было проверки активности фильтра. Говорят, приводило к тормозам.

2. Косметические изменения в коде.

drkns 09.06.2010 11:17:22 +0200 - build 1583

1. Отучение вьювера от FILE*.
   Должно заработать повышение прав.
   Просмотр \\.\physicaldrive0, \\.\cdrom0 и т. п. отвалился. Но это временно.

t-rex 08.06.2010 22:44:13 +0200 - build 1582

1. Фикс как и в 1579.2 только для VBlock2Text().

drkns 07.06.2010 21:07:35 +0200 - build 1581

1. Переменная FARUSER могла быть установлена и при отсутствии ключа /u (наследовалась от родительского процесса).

yjh 07.06.2010 15:41:36 +0300 - build 1580

1. В список QutedSymbols добавлен oem(0xFF) ("sopft-space") - этого требуют
   стандартные консольные тулзы (copy/move/etc)

drkns 06.06.2010 22:01:56 +0200 - build 1579

1. Уточнение работы ACTL_GETFARRECT.

2. По CtrlX на пустой строке в буфер обмена попадал мусор.

drkns 01.06.2010 14:12:22 +0200 - build 1578

1. Метасимвол !=\ зачем-то окавычивал строку.

drkns 31.05.2010 22:40:13 +0200 - build 1577

1. Вместо макроса countof используем макрос ARRAYSIZE.
   Смысл сего в том, что ARRAYSIZE - только для массивов и попытка запихнуть туда поинтер даст ошибку копиляции (а не выполнения, как с sizeof/sizeof).

drkns 29.05.2010 13:08:42 +0200 - build 1576

1. После ShiftEnter на папке не перерисовывались панели.

2. Уточнения 256- и 16-цветных вариантов far.ico.

drkns 29.05.2010 12:14:02 +0200 - build 1575

1. Ещё пара мелочей на ту же тему.

drkns 28.05.2010 23:47:51 +0200 - build 1574

1. Ещё порция про запускатель и перерисовки.

2. Уточнение 1564.2 - учитываем, что вызовы функций oem-плагинов бывают вложенными.

3. При изменениях размера окна в режиме "/w" содержимое консоли не стирается.
   Экспериментально, возможны мелкие артефакты и прочие ахтунги.

drkns 25.05.2010 19:57:53 +0200 - build 1573

1. ACTL_GETFARRECT - "правильный" способ получения координат "окна" FAR в консольном буфере;
   ACTL_GETCURSORPOS - получение координат курсора относительно "окна" FAR;
   ACTL_SETCURSORPOS - установка координат курсора относительно "окна" FAR.

drkns 25.05.2010 07:37:52 +0200 - build 1572

1. Продолжение 1568.

drkns 24.05.2010 22:45:41 +0200 - build 1571

1. Mantis#0001393: Артефакты на экране при запуске приложения с помощью макроса

drkns 24.05.2010 22:34:42 +0200 - build 1570

1. Продолжение 1568.

t-rex 24.05.2010 09:19:39 +0200 - build 1569

1. from Konstantin Stupnik: Mantis#1388: Регулярные выражения: неправильное значение в группе.

drkns 23.05.2010 23:23:23 +0200 - build 1568

1. После 1564-1566 вылезли скрытые проблемы с отрисовкой в запускателе.

drkns 23.05.2010 14:08:39 +0200 - build 1567

1. Mantis#0001389: Крэш при WindowMode=0 и ScreenBufferSize.Height=9999
   Теоретически, теперь far должен работать при любых размерах буфера.

drkns 22.05.2010 22:45:48 +0200 - build 1566

1. И ещё.

drkns 22.05.2010 22:16:38 +0200 - build 1565

1. Уточнения предыдущего билда.

drkns 22.05.2010 20:00:00 +0200 - build 1564

1. Инкапсуляция всех используемых консольных функций.
   Как следствие - стало возможным очередное "то, о чём так долго говорили большевики": Far умеет работать в пределах окна (а не буфера) консоли.
   Поставив высоту буфера побольше, можно медитировать на длинные выводы консольных программ. Кнопки CtrlAlt<PgUp|PgDn> расширят кругозор в соответствующем направлении.

   АХТУНГ! - в этом режиме гарантированно будет напрочь сносить крышу плагинам, самостоятельно рисующим что-либо
   в консоли напрямую, или наивно предполагающим, что размер фара можно получать через CONSOLE_SCREEN_BUFFER_INFO::dwSize.

2. После завершения работы неюникодных плагинов выполняется SetFileApisToANSI().

t-rex 21.05.2010 18:25:32 +0200 - build 1563

1. Mantis#1387: Зависание при обработке User Menu на имени файла с символом &.

2. Некорректная работа HiStrLen().

t-rex 20.05.2010 20:32:18 +0200

1. Mantis#1386: gcc ошибка компиляции (некорректный регистр в имени заголовочного файла).

t-rex 19.05.2010 23:06:06 +0200 - build 1562

1. В PluginDialogBuilder для AddEditField() теперь надо задавать размер (в символах) выходного буффера.

drkns 19.05.2010 20:09:11 +0200 - build 1561

1. Mantis#0001384: Слегка приглушить символ пробела в режиме Show Whitespace.

t-rex 19.05.2010 18:53:42 +0200 - build 1560

1. GetSize() в UnicodeString для получения размера внутренего буффера.

2. Оптимизация ReplaceStrings().

3. Удалил каплю мусора.

t-rex 19.05.2010 15:57:31 +0200 - build 1559

1. С форума http://forum.farmanager.com/viewtopic.php?p=63127#p63127
   Крэш в истории, коррупция хипа в ReplaceStrings().

drkns 19.05.2010 12:50:22 +0200 - build 1558

1. Уточнение обновления окружения.

drkns 17.05.2010 20:06:14 +0200 - build 1557

1. Уточнение обработки WM_SETTINGCHANGE.

drkns 15.05.2010 22:26:55 +0200 - build 1556

1. Излишняя активность в панели задач при копировании c [x] Show total copy progress indicator.

t-rex 15.05.2010 16:10:31 +0200 - build 1555

1. from Alexander Kornienko: Mantis#1383: Дополнения для Mantis#1224 (VBlock2Text)

t-rex 14.05.2010 16:56:29 +0200 - build 1554

1. from Alexander Kornienko: Mantis#1224: copying big block of binary data causes big mem/cpu usage and heap thrashing.
   Надо бы такой же фикс и в VBlock2Text() сделать.

2. Потенциальная утечка памяти в Block2Text() и VBlock2Text().

svs 14.05.2010 16:13:05 +0300 - build 1553

1. Macro: добавлена функция S=Menu.GetValue([N]) - возвращает текст пункта меню для заданной позиции (позиция меню не меняется).
   Если N не указан или равен 0 - действие аналогично применению Menu.Value
   для отсутствующего пункта возвращается пустая строка.

zg 14.05.2010 02:18:32 +0200 - build 1552

1. после 1444 в DN_GOTFOCUS Param1 <> SendDlgMessage(DM_GETFOCUS).

2. экспериментально DN_GOTFOCUS приходит после установки выделения для элементов с флагом DIF_SELECTONENTRY.

3. gcc warning.

drkns 14.05.2010 01:55:38 +0200 - build 1551

1. Mantis#0001380: проблема с выставлением значения в поле часов/минут в Filters -> Date/Time -> Relative

drkns 14.05.2010 00:07:38 +0200 - build 1550

1. Излишняя активность в панели задач при включенном отображении описаний.

drkns 13.05.2010 17:33:18 +0200 - build 1549

1. Уточнение предыдущего билда.

drkns 13.05.2010 15:47:47 +0200 - build 1548

1. Теперь у нас есть цикл обработки оконных сообщений.
   Как следствие, доступна следующая магия:
   - автообновление дискового меню и списка hotplug-устройств при добавлении/удалении usb, cd/dvd и пр.;
   - автообновление переменных окружения при изменении их в настройках ОС.

svs 13.05.2010 16:03:14 +0300 - build 1547

1. + CPM_NATIVE для FSF.ConvertPath()
   Возвращает полный путь с префиксом "\\?\"
   (from drkns)

drkns 13.05.2010 00:21:42 +0200 - build 1546

1. Класс Event: обёртка над HANDLE/<Create|Set|Reset>Event/WaitForSingleObject.

drkns 11.05.2010 22:53:26 +0200 - build 1545

1. From Anton Sinitsin: "Ё" в FarRus.lng.

2. Утончения документации и сборки.

drkns 11.05.2010 15:25:32 +0200 - build 1544

1. Ошибки в отрисовке вертикального текста и расчете размеров диалога.

svs 11.05.2010 15:05:18 +0300 - build 1543

1. Небольшие уточнения про хоткеи в менюхах...
   Кроме Upper/Lower добавлен анализа на раскладку (вызов KeyToKeyLayout())

svs 11.05.2010 09:59:58 +0300 - build 1542

1. Macro: Содержимое

      [A|P]Panel.HostFile, [A|P]Panel.Prefix, [A|P]Panel.Path0, [A|P]Panel.Path,
      [A|P]Panel.UNCPath, [A|P]Panel.Current, Editor.SelValue, Editor.Value, Help.FileName,
      Help.Topic, Help.SelTopic, Viewer.FileName

   принудительно приводится к "строке", что позволяет избежать ситуации, когда для пустого
   содержимого возвращается число 0.

   Что у нас еще такого, особенного осталось?

drkns 09.05.2010 23:50:50 +0200

1. From Anton Sinitsin: "Ёфицирование" хелпа.

svs 07.05.2010 16:24:45 +0300 - build 1541

1. Help. From "Alexey Samlyukov"

2. Добавлен "@ElevationDlg". Заготовка, дабы не материлосё оно...

drkns 06.05.2010 22:21:32 +0200 - build 1540

1. В фильтрах по относительному времени не отображались миллисекунды.

2. С форума: "В билде 1539 появилось странное: после Ctrl-O в углу остаётся кусок рамки".

drkns 05.05.2010 23:16:12 +0200 - build 1539

1. Уточнение 1536: при, например, "macro:post F7" индикатор исчезал только после нажатия любой клавиши.

drkns 04.05.2010 23:42:49 +0200 - build 1538

1. Не работало повышение прав при редактировании симлинков.

2. Генерирование ассемблерного листинга для vc-билда по умолчанию выключено. Регулируется флагом ASM_LISTING мейка.

t-rex 04.05.2010 13:53:24 +0200 - build 1537

1. Где то в последних билдах описания стали записываться с '\0' перед переводом строки
   что приводило к различным проблемам с 3rd party программ для описаний.

drkns 03.05.2010 12:45:16 +0200 - build 1536

1. С Mantis#1362 проблемы: эта "индикация выполнения" приводила к постоянным перерисовкам всего экрана.
   Ну и 'Р' теперь зелёного цвета :)

t-rex 02.05.2010 21:46:41 +0200 - build 1535

1. Mantis#1288: Медленная работа с сетевыми папками в режиме показа овнеров.

drkns 02.05.2010 19:13:38 +0200 - build 1534

1. Коррекция размеров для DIF_CENTERGROUP

2. Ещё пара уточнений 1530.2.

3. Mantis#0001356: После копирования в заголовке окна остается "копирование"

drkns 30.04.2010 17:14:30 +0200 - build 1533

1. Ещё пара уточнений 1530.2.

svs 30.04.2010 13:20:57 +0300 - build 1532

1. Mantis#0001362: Индикация выполнения макроса символом в углу экрана
   Символ 'P'.

drkns 30.04.2010 11:09:22 +0200 - build 1531

2. Уточнение 1530.2: DIF_DEFAULT и DIF_FOCUS используются в инициализации (DialogDataEx), а в элементах (DialogItemEx) по прежнему DefaultButton и Focus.

drkns 30.04.2010 01:01:01 +0200 - build 1530

1. Для default button можно задавать цвет.

2. В качестве подготовки к слому API: вместо поля DefaultButton в диалоговых структурах теперь флаг DIF_DEFAULT, вместо Focus - DIF_FOCUS.
   Относится это только к internals, для плагинов всё по старому. Пока.

drkns 29.04.2010 11:38:38 +0200 - build 1529

1. Вернём удаление пустых файлов описаний.

2. Флага FMSG_DOWN больше нет.

3. Косметические изменения в lng.

svs 29.04.2010 09:55:53 +0300 - build 1528

1. Macro: в функцию eval добавлена возможность программного вызова макроса, назначенного на кнопкосочетание
   http://forum.farmanager.com/viewtopic.php?f=15&t=5257

   Для этого
   а) второй параметр функции установить в 2
   б) первым параметром указать строку в формате "Area/Key"
      здесь:
        "Area" - область, из которой хотим вызвать макрос
        "/" - разделитель
        "Key" - название клавиши
      "Area/" можно не указывать, в этом случае поиск "Key" будет вестись в текущей активной макрообласти,
         если в текущей области "Key" не найден, то поиск продолжится в области Common.
         Что бы отключить поиск в области Common (ограничится только "этой" областью),
         необходимо в качестве "Area" указать точку.

   Для режима 2 функция вернет
     -1 - ошибка
     -2 - нет макроса, заданного кпопкосочетанием (или макрос заблокирован)
      0 - Ok

   Примеры.
     eval("Shell/CtrlP",2) - вызвать макрос, навешенный на CtrlP из области Shell
     eval("CtrlP",2) - вызвать макрос, навешенный на CtrlP из текущей макрообласти, если в текущей CtrlP нет, то вызвать из области Common
     eval("./CtrlP",2) - вызвать макрос, навешенный на CtrlP только из текущей макрообласти

     eval("Shell/Alt/",2) - вызвать макрос, навешенный на Alt/ из области Shell
     eval("Alt/",2) - вызвать макрос, навешенный на Alt/ из текущей макрообласти, если в текущей Alt/ нет, то вызвать из области Common
     eval("./Alt/",2) - вызвать макрос, навешенный на Alt/ только из текущей макрообласти


drkns 28.04.2010 00:42:17 +0200 - build 1527

1. В Message() теперь для единообразия всегда резервируется строка под текст сообщения, даже если сам текст отсутствует.

drkns 27.04.2010 19:51:09 +0200 - build 1526

1. Ещё пара мелочей.

drkns 27.04.2010 16:47:00 +0200 - build 1525

1. И снова всякое про FindFiles.

chupakabra 27.04.2010 16:32:00 +0200

1. makefile_vc: для VS2010 Platform=x64.

drkns 27.04.2010 15:47:00 +0200 - build 1524

1. Ещё одно уточнение в Message().

2. Изменения в записи diz-файлов.

3. Ещё всякое про FindFiles.

drkns 26.04.2010 15:47:00 +0200 - build 1523

1. Уточнение расчета размеров диалогов для функции Message().

2. Неправильно работало определение кодовой страницы по BOM, если кроме BOM в файле ничего не было.

drkns 26.04.2010 00:14:16 +0200 - build 1522

1. В качестве продолжения Mantis#0001096 - отрезание пробелов убрано ещё из пары мест.

t-rex 25.04.2010 22:48:55 +0200 - build 1521

1. Mantis#1316: Ошибка копирования в буфер обмена вертикальных блоков.
   Ещё одна внутренняя переделка работы с клипбордом, теперь кроме обычных функций есть ещё и класс,
   в местах где производятся несколько поочерёдных операций над клипбордом нужно использовать класс напрямую
   чтоб сделать всё "в одну транзакцию".

drkns 25.04.2010 22:38:17 +0200 - build 1520

1. Уточнение предыдущего билда.

drkns 25.04.2010 19:55:48 +0200 - build 1519

1. Продолжение начатого в 953 и 972. Перетрях поиска. Часть третья, глобальная.

2. Mantis#0001213: Некорректный заголовок консоли в диалоге поиска файлов.

3. Mantis#0001353: Диалог запроса повышения полномочий скрыт за окном поиска.

4. Для DI_BUTTON доступен новый флаг: DIF_SETSHIELD - "аналог" BCM_SETSHIELD.

5. Mantis#0000315: Подсветка кнопок по умолчанию диалогов.

6. Mantis#0000647: Button styles in the dialogs.

7. Mantis#0001217: Не работает метасимвол !@!.

8. Разные мелочи в системе повышения полномочий.

drkns 22.04.2010 21:11:09 +0200 - build 1518

1. Уточнение 1517.5: предупреждение об ошибке преобразования выводилось и тогда, когда этого не требовалось.

2. Запросы повышения полномочий логически разделены на "запросы чтения" и "запросы модификации" и теперь их можно включать/выключать по отдельности.
   Интерфейса пока что нет, только через реестр.

drkns 21.04.2010 14:47:00 +0200 - build 1517

1. Mantis#0001347: Убрать . (точка) при автодолнении.
   Элементы "." и"..", иногда возвращаемые Find<First|Next>File, теперь режутся централизованно на уровне класса FindFile, а не в куче разных мест.
   Код, использующий FindFile, НЕ ДОЛЖЕН предполагать наличие этих элементов и бороться с ними.

2. Порция предупреждений от статического анализатора VS2010.

3. При создании папок вида \1\2\3\4 производились попытки создавать каждый элемент, даже если он уже существовал.

4. Поиск файлов не восстанавливает время последнего доступа.

5. Если при загрузке файла в редактор или при переключении кодовой страницы произошли ошибки преобразования текста - при сохранении будет требоваться дополнительное подтверждение, + соообщения теперь более подробны.

svs 21.04.2010 10:18:10 +0300 - build 1516

1. Уточнение build 1515 - односимвольные префиксы игнорируем

svs 21.04.2010 09:34:16 +0300 - build 1515

1. Mantis#0001338: Префикс в параметрах ком.строки
   (описано в хелпе)
   from Maximus

t-rex 20.04.2010 23:56:06 +0200 - build 1514

1. Поддержка MinGW GCC 4.5.0.

2. GCC ворнинги.

3. Косметические мелочи.

drkns 20.04.2010 00:33:57 +0200 - build 1513

1. Уточнение предыдущего билда.

drkns 19.04.2010 16:39:34 +0200 - build 1512

1. Поправка к 1371.2.

2. В фильтрах доступны миллисекунды.

svs 19.04.2010 15:51:19 +0300 - build 1511

1. Mantis#0001334: Позволить плагину менять заголовок редактора "насовсем"
   Теперь выставленный плагином "заголовок" в редакторе (в статусной строке, посредством ECTL_SETTITLE) не будет автоматом сбрасываться
   после отработки плагина (вызванного по F11).
   Плагины теперь сами должны заботится о восстановлении заголовка редактора (Info.EditorControl(ECTL_SETTITLE,NULL)).

drkns 19.04.2010 10:50:21 +0200 - build 1510

1. Очередная порция замены apiCreateFile/ReadFile/WriteFile/etc. более интеллектуальными классами. Как следствие, запрос на повышение привилегий может заработать ещё в некоторых операциях.

2. При редактировании пользовательского меню по AltF4 во временный файл дописывались излишние byte order mark'и (по одному на каждое подменю вместо одного на весь файл).

drkns 17.04.2010 11:44:42 +0200 - build 1509

1. Mantis#0001348: Блокировка папки процессом FAR после повышения прав.

drkns 17.04.2010 00:57:46 +0200 - build 1508

1. Редактор очищен от остатков libc и, как следствие, умеет запрашивать привилегии для открытия/сохранения файлов.

2. Изменения того же рода в юзерменю и описаниях.

svs 15.04.2010 14:34:28 +0300 - build 1507

1. Mantis#0001346: Макросы, назначенные на "`" (ё) и подобные работают с ошибками

drkns 15.04.2010 11:34:38 +0200 - build 1506

1. В 1494 погнулось системное копирование при "[ ] Copy files opened for writing".

drkns 15.04.2010 11:05:12 +0200 - build 1505

1. Уточнение предыдущего билда.

drkns 15.04.2010 10:55:21 +0200 - build 1504

1. Если пользователь уже обладает правами администратора - обойдемся без запуска дополнительного процесса.

svs 13.04.2010 23:15:33 +0300 - build 1503

1. Macro: bug - падение, при вызове [A|P]Panel.HostFile для неплагиновой панели.

svs 13.04.2010 14:48:25 +0300 - build 1502

1. Mantis#0001344: Падение при переходе по ссылкам хелпа
   size_t "рулит" :-(
   Этот фикс избавляется только от падения.
   Для "исправления ошибок" хелпов нужно править парсер (выходит за рамки данного исправления)

t-rex 13.04.2010 00:04:24 +0200 - build 1501

1. В паре мест StrLength(string) -> string.GetLength().

drkns 12.04.2010 22:54:07 +0200 - build 1500

1. Более информативные сообщения при необходимости повышения привилегий.

svs 12.04.2010 17:53:57 +0300 - build 1499

1. Вис help на файлах, у которых между секциями отсутствовала пустая строка
   (например, "Regular Expression Search and Replace, version 7.04")

drkns 12.04.2010 16:46:32 +0200 - build 1498

1. Всякие мелочи на тему повышения привилегий.

2. Унифицирована работа CtrlEnd в диалогах и комстроке: из комстроки взят круговой перебор вариантов, из диалогов - выделение дописываемого.

svs 12.04.2010 12:38:45 +0300 - build 1497

1. Bug: [A|P]Panel.path0 не возвращает путь
   http://forum.farmanager.com/viewtopic.php?p=61218#p61218

svs 12.04.2010 11:38:27 +0300 - build 1496

1. Mantis#0000830: Неверный расчет перемещения в функции Viewer::Up() для UTF-8

chupakabra 11.04.2010 23:20:00 +0200 - build 1495

1. Исправлена ошибка перемещения фокуса, внесенная в 1444.

drkns 11.04.2010 02:23:13 +0200 - build 1494

1. Повышение привилегий:
   - запрос происходит только тогда, когда это действительно надо (доступ запрещён через ACL), а не на каждый ERROR_ACCESS_DENIED.
   - изменение времени файлов и состояния атрибутов "сжатый" и "разреженный".
   - поиск по содержимому.
   - теоретически должна работать и самопальная реализация копирования ("[ ] Use system copy routine"). Особо не тестировалось, соблюдаем осторожность.

2. Некоторые api-функции (CreateFile/ReadFile/WriteFile/...) логически объединены в отдельный класс File, в дальнейшем предпочтительно использовать уже его.

3. Не работал CtrlEnd в диалогах при отключенном дополнении.

svs 09.04.2010 16:32:01 +0300 - build 1493

1. Macro: [A|P]Panel.Path0 - путь на реальной FS (до вызова плагинов, создающих свою панель)
   Состояния аналогичные [A|P]Panel.Path, но содержать путь реальной FS.
   Если на панели реальная FS, то
     [A|P]Panel.Path == [A|P]Panel.Path0
   Если панель плагиновая, то
     [A|P]Panel.Path != [A|P]Panel.Path0

svs 09.04.2010 09:38:19 +0300 - build 1492

1. Модуль печати в отвале - не учитывался текущий каталог.

drkns 08.04.2010 15:30:25 +0200 - build 1491

1. Mantis#0001337: Ошибка при чтении содержимого папки.

2. Для элемента ".." в панелях отображался неправильный владелец.

svs 08.04.2010 11:01:14 +0300 - build 1490

1. Mantis#0000884: Рвётся текст справки при длине строки больше 300 символов.
   Перевод хелпа на массив строк (TArray)
   Немного шаманства в TArray по поводу сортировки.
   Удаление "мусора" из кода хелпа

drkns 08.04.2010 00:39:10 +0200 - build 1489

1. Mantis#0001336: Сообщение об ошибке при открытии каталога.

drkns 07.04.2010 14:04:32 +0200 - build 1488

1. Уточнение 1483.

svs 07.04.2010 13:10:41 +0300 - build 1487

1. Mantis#0001335: Использование некорректного текстового ресурса

2. Mantis#0001331: Макрофункция для управления статусной строкой

drkns 07.04.2010 11:46:46 +0200 - build 1486

1. Запрет на преобразование пути в некоторых вызовах apiGetFindDataEx вроде бы уже неактуален, посему уберём.

drkns 06.04.2010 20:02:46 +0200 - build 1485

1. Уточнение 1483.

svs 06.04.2010 13:41:39 +0300 - build 1484

1. Macro: новая функция "N=Editor.SetTitle([Title])" установка заголовка в статусной строке редактора
   Возвращает 1 - успешно, 0 - редактор не в фокусе.
   Если параметр отсутствует или равен пустой строке, то восстанавливается предыдущее значение статусной строки

drkns 06.04.2010 10:35:35 +0200 - build 1483

1. Продолжение 1468:
   С полномочиями администратора могут выполняться:
   - просмотр каталогов;
   - получение атрибутов;
   - установка владельца.

2. FindFirstFile/FindNextFile/FindClose логически объединены в отдельный класс FindFile, в дальнейшем предпочтительно использовать уже его.

svs 05.04.2010 18:18:38 +0300 - build 1482

1. Уточнение Mantis#0001323

2. Macro: [A|P]Panel.path для Плагиновой панели
   http://forum.farmanager.com/viewtopic.php?f=15&t=5254

3. Macro: [A|P]Panel.Prefix - возвращает пусто, либо префикса, как их отдают плагины

4. Macro: [A|P]Panel.UNCPath возвращает (для плагиновой панели) prefix:[hostfile/]path

garry 03.04.2010 22:44:32 +0300 - build 1481

1. После 1456 отвалился вывод кодовых страниц для ANSI-плагинов (например, FTP).

drkns 03.04.2010 19:30:12 +0200 - build 1480

1. 1479.2: Как выяснилось, gcc не поддерживает forward enum declaration.

drkns 03.04.2010 11:23:56 +0200 - build 1479

1. И ещё раз Mantis#0001321: DM_MOVEDIALOG: ограниченный диапазон перемещения диалога.

2. Косметика в adminmode.?pp

svs 03.04.2010 11:45:44 +0300 - build 1478

1. Mantis#0000098: неправильные сообщения при попытке создания папки/файла с запрещенными символами

zg 03.04.2010 02:26:08 +0200 - build 1477

1. Mantis#0001329: Поиск в прямом направлении, шаблон = $.

zg 02.04.2010 11:42:58 +0200 - build 1476

1. в связи с 1219 Ctrl-Shift-Numpad5 в панелях заменён на Ctrl-Alt-Numpad5.

svs 02.04.2010 10:29:40 +0300 - build 1475

1. Mantis#0001323: gethotkey(0) возвращает следующий по порядку сивол (вместо "3" - "4", вместо "x" - "y")

drkns 01.04.2010 20:00:00 +0200 - build 1474

1. Mantis#0001321: DM_MOVEDIALOG: ограниченный диапазон перемещения диалога.
   При относительном перемещении координаты, равные -1, больше не центрируют диалог.

2. Более компактное расположение элементов диалога поиска.

drkns 01.04.2010 13:47:00 +0200 - build 1473

1. Уточнение 1472.2: различаем symlink и junction;

2. Создание жёстких ссылок может выполняться с полномочиями администратора.

svs 01.04.2010 12:56:20 +0300 - build 1472

1. Mantis#0001265: Глюк с размером буфера и заголовком панели
   Утчонение п.2 ("При нечетной ширине консоли заголовок панели (правой) рисуется некорректно (на левой)")

2. Mantis#0001327: В окне поиска найденные связи отображаются как папки

zg 01.04.2010 03:12:18 +0200 - build 1471

1. Mantis#0001322: Поиск и замена в редакторе пропускает пустые строки.

drkns 31.03.2010 21:52:05 +0200 - build 1470

1. Уточнение 1468 - терялись результaты GetLastError().

drkns 31.03.2010 16:29:11 +0200 - build 1469

1. Mantis#0001315: В tmp-панели связи отображаются как папки.

2. Mantis#0001321: DM_MOVEDIALOG: ограниченный диапазон перемещения диалога.

drkns 31.03.2010 15:24:32 +0200 - build 1468

1. Продолжение 1466:
   - удаление в корзину может выполняться с полномочиями администратора;
   - при копировании работает индикатор прогресса, отмена и т. п.

t-rex 31.03.2010 01:05:50 +0200 - build 1467

1. В диалоге настройки фильтра поменял местами поля даты чтоб было более интуитивно,
   пока не придумаем более понятный дизайн диалога.

drkns 30.03.2010 15:44:02 +0200 - build 1466

1. Продолжение 1465:
   С полномочиями администратора могут выполняться:
   - перенос файлов;
   - копирование файлов;
   - копирование/редактирование reparse point'ов.

drkns 30.03.2010 00:44:57 +0200 - build 1465

1. Начальная поддержка повышения полномочий при работе из-под ограниченной учётной записи.

   С полномочиями администратора в данный момент могут быть выполнены следующие операции:
   - создание папок;
   - удаление папок;
   - удаление файлов;
   - установка атрибутов;
   - создание символических ссылок.

   Со временем этот список будет расти.

zg 29.03.2010 04:01:39 +0200 - build 1464

1. Mantis#0001302: При запуске с параметром ком.строки FAR зависает на "черном экране" до нажатия Enter.

zg 29.03.2010 03:37:49 +0200 - build 1463

1. Mantis#0001310: Запускать редактор с заданной абсолютной колонкой, а не экранной (как из плагинов, так и из комстроки).

zg 29.03.2010 01:55:26 +0200 - build 1462

1. оптимизация билда 1460. при создании панели два раза делалось show и сортировалось. хотя не надо ни разу.

2. после 1448 сортировка в случае сортировки по расширению, отключённой сортировки каталогов
   по расширению и отключённой опции папки вначале была неустойчивой.

t-rex 28.03.2010 21:42:53 +0200 - build 1461

1. Mantis#1314: Filters - Date/Time - Relative

chupakabra 27.03.2010 08:20:00 +0200 - build 1460

1. Не выполнялась пересортировка после FCTL_SETNUMERICSORT и FCTL_SETDIRECTORIESFIRST.

svs 27.03.2010 08:17:48 +0300 - build 1459

1. Mantis#0001312: При отмене редактирования пункта не нужно обновлять файл farmenu.ini
   from Maximus

garry 26.03.2010 16:51:16 +0300 - build 1458

1. Дополнение к 1456.

drkns 26.03.2010 14:58:23 +0200 - build 1457

1. Нажатие PgDn в диалоге поиска могло приводить к переполнению стека.

garry 26.03.2010 15:28:59 +0300 - build 1456

1. Добавлена возможность редактирования через интерфейс имён кодовых страниц (убрано течинфо #80);

2. При некоторых условиях при открытии меню кодовых страниц курсор позиционировался не на ту запись (в каком то из
   билдов починили меню и сделанные мною в меню кодовых страниц костыли стали мешать);

3. Настройка кодовых страниц добавлена в основное меню настроек;

4. Для русского языка в меню настроек поправлены пересекающиеся и отсутствующие горячие клавиши.

svs 26.03.2010 11:57:54 +0300 - build 1455

1. Bug: far /e имя_файла ShiftEnter AltF9 --> трап.

2. Macro: у функции Clip(N,V) добавлен 5-й режим (первый параметр) - работа с режимами клипборда.
    N=5
    V:
      -1 - что сейчас используется? 1 - виндовый буфер, 2 - внутренний
       0 - flip (аналог $IClip)
       1 - включить виндовый буфер обмена
       2 - включить внутренний буфер обмена

    Возвращает предыдущее значение (1 - виндовый буфер, 2 - внутренний)

3.  <АХТУНГ>

     Исправляйте свои макросы:

       а) $IClip заменить на Clip(5,0) или Clip(5), т.к. $IClip будет удаляться.
       б) IClip заменить на Clip(5,-1) (при этом учесть, что clip() вернет 1 или 2), т.к. IClip будет удаляться.

     указанных 2 "объекта" будут удалены... скажем через 2 месяца :-)

   </АХТУНГ>


svs 25.03.2010 18:38:53 +0300 - build 1454

1. Macro: добавлена константа RCounter - содержит текущее значение счетчика оператора цикла $Rep.
   Область видимости - текущий $Rep (для вложенных $Rep - значение для текущего цикла), например

   RCounter = undefined
   $rep(%i)
     ...
     RCounter = значению для цикла "$rep(%i)"
     ...
     $rep(%j)
       ...
       RCounter = значению для цикла "$rep(%j)"
       ...
     $end
     ...
     RCounter = значению для цикла "$rep(%i)"
     ...
   $end
   RCounter = undefined

   За пределами цикла значение константы неопределенное/любое/нет смысла использовать.

2. Macro: Добавлена функция "N=Print(Str)" - вывести содержимое строки str туда, где курсор.
   Аналогична $Text, но параметр Str может быть выражением.
   Возвращает всегда 1.

3. Macro: Добавлена функци "v = MMode(Action[,Value])" - выставить/получить режимы текущего макроса.
   Аналогична $MMode, но параметр mode может быть выражением.
   Action - что хотим поменять
     1 - режим лочки экрана ("DisableOutput")
         "MMode(1,-1)" подобен состоянию "DisableOutput"
   Value  - значение
    -1 - get (функция возвращает текущее значение)
     0 - off (функция выключает Action и возвращает предыдущее значение)
     1 - on  (функция включает Action и возвращает предыдущее значение)
     2 - flip  (функция переключает Action и возвращает предыдущее значение)


4.  <АХТУНГ>

     Исправляйте свои макросы:

       а) $Text заменить на print(), т.к. $Text будет удаляться.
       б) $Date заменить на print(Date(блаблабла или пусто)), т.к. $Date будет удаляться.
       с) "$MMode 1" заменить на "MMode(1,2)", т.к. $MMode будет удаляться.
       d) состояние "DisableOutput" заменить на вызов функции "MMode(1,-1)", т.к. состояние "DisableOutput" (не флаг макроса!) будет удаляться.

     указанных 4 "объекта" будут удалены... скажем через 2 месяца :-)

   </АХТУНГ>


chupakabra 23.03.2010 00:51:00 +0200 - build 1453

1. Переписана функция числовой сортировки.

drkns 22.03.2010 20:18:31 +0200 - build 1452

1. Убираем ИИ, различающий "связи" и "точки монтирования" в колонках панели.
   Увы, сильно страдает производительность.

2. х64 warnings.

chupakabra 22.03.2010 04:03:00 +0200 - build 1451

1. Исправление для 1444.

chupakabra 22.03.2010 02:02:00 +0200 - build 1450

1. Mantis#0001301: листбокс не перерисовывался после DM_LISTUPDATE.

t-rex 22.03.2010 00:27:43 +0200

1. Корректировка 1448.3.

chupakabra 21.03.2010 20:59:00 +0200 - build 1449

1. Исправлена ошибка режима сортировки по полному имени.

chupakabra 21.03.2010 20:43:00 +0200 - build 1448

1. Опция для отображения каталогов в начале списке при сортировке (Ctrl+F12).

2. Plugin API: FCTL_SETDIRECTORIESFIRST, PFLAGS_DIRECTORIESFIRST, SM_NUMSTREAMS, SM_STREAMSSIZE, SM_FULLNAME.

3. В makefile поправлены зависимости.

chupakabra 21.03.2010 01:11:00 +0200 - build 1447

1. Mantis#0001081: режим сортировки по полному имени учитывает числовую сортировку и группы сортировки.

2. Сортировка: заменено копирование строк на вызов функций сравнения с явным указанием длин сравниваемых строк.

drkns 20.03.2010 09:26:41 +0200 - build 1446

1. В 1443 отвалился QView.

chupakabra 20.03.2010 05:46:00 +0200 - build 1445

1. Mantis#0001081: режим сортировки по полному имени (полному пути) файла.

chupakabra 20.03.2010 04:38:00 +0200 - build 1444

1. Mantis#0001290: Некорректная обработка нажатий на кнопки со стилем DIF_NOFOCUS + DIF_BTNNOCLOSE.

drkns 20.03.2010 00:42:00 +0200 - build 1443

1. Mantis#0001309: В диалоге применения атрибутов не работает Cancel при вводе неправильного владельца

2. При вызове свойств папки в некоторых ОС могли вызываться свойства файла с тем же именем и расширением из %pathext%.

3. FCTL_GETCMDLINESELECTEDTEXT возвращал на 1 символ меньше, чем надо.

4. Массовое внедрение списков инициализации.

5. Немного C++0x: внедрение nullptr. Для VC2010 - нативно, для остальных - #define на NULL.

t-rex 19.03.2010 12:27:10 +0200 - build 1442

1. Mantis#1308: Не собирается в gcc из-за некорректной инструкции #include (неправильный регистр).

svs 19.03.2010 11:56:32 +0300 - build 1441

1. VK_OEM_102. Уточнение... 1440

svs 19.03.2010 11:38:51 +0300 - build 1440

1. Добавлена обработка VK_OEM_102, которая "обозвана" как: "<>" or "\|" on RT 102-key kbd.
   Сейчас это '\'.
   Требуется уточнение для AltGr- (Ctrl-Alt-), ...возможно еще что.
   Т.с. Wелкам!

chupakabra 19.03.2010 04:41:00 +0200 - build 1439

1. Поломалась синхронизация текущего каталога для плагинов с OPIF_REALNAMES (из build 1157).

svs 18.03.2010 19:54:06 +0300 - build 1438

1. Mantis#0001307: Возвращаемый результат функции panel.fexist
   Теперь panel.fexist() возвращает: 0 - нет такого элемента, > 0 - позиция/индекс файлового элемента на панели.
   Без учета фильтров!

svs 17.03.2010 16:42:40 +0300 - build 1437

1. Macro: уточнение прототипа "Panel.Select()".
   Теперь работают Mode=2 и 3. Для этих режимов разделителем элементов списка могут быть: ';' ',' и '\r\n'.
   Пример:
     Panel.Select(1,1,2,clip(0))
     На пассивной панели выделить те файлы, имена которых находяться в клипборде.

2. У FileList::SelectFiles теперь доп.параметр (маски) и функция возвращает количество обработанных элементов (пока используется на нужды макросов)

svs 16.03.2010 17:48:46 +0300 - build 1436

1. Keys.hpp
   1) KEY_CTRLMASK теперь 0xFFF00000
   2) Удален KEY_LOCKSCREEN - остатки роскоши былой, не используется
   3) "описаны" KEY_KILLFOCUS, KEY_GOTFOCUS и KEY_CONSOLE_BUFFER_RESIZE
   4) расширение диапазона KEY_MACRO_BASE

2. SysLog. Добавлен конструктор
   CleverSysLog(int Line,const wchar_t *Title);

3. Macro: добавлен прототип "V=Panel.Select(panelType,Action[,Mode[,Items]])"
   по мотивам http://forum.farmanager.com/viewtopic.php?f=15&t=5077
   На сегодня умеет:
   panelType - как обычно: =0 - активная панель, =1 - пассивная панель.
   Action:
     0 - снять выделение; возвращает количество элементов с которых сняли выделение
     1 - выделить
     2 - инвертировать
     3 - восстановить выделение, аналог Ctrl-M; возвращает количество восстановленных элементов
   Mode:
     0 или отсутсвует - выполнить действие Action  для всех элементов
     1 - Items является числом - индексом
   Items:
     для Mode==0 - игнорируется
     для Mode==1:
       Items==0 или отсутствует - выполнить действие Action для текущего элемента
       Items>0 - выполнить действие Action для элемента с индексом Items
   Функция возвращает количество элементов, над которыми производилось Action
   (получить инфу о текущем количестве выделенных - как обычно через [A|P]Panel.SelCount :-)

   Планируется добавить Mode=2 и 3 (рассматривать Items как строки - имя или маска)

4. Macro добавлены [A|P]Panel.HostFile - пусто или имя хост-файла плагиновой панели.

drkns 10.03.2010 19:29:31 +0200 - build 1435

1. Mantis#0001297: Сохранение в настройках переменных окружения

2. Mantis#0001300: Наследовать флаг VF_DISABLEHISTORY при переключении в редактор (F6), и наоборот

3. Не устанавливались дата/время у reparse point'ов в подкаталогах.

drkns 10.03.2010 14:20:17 +0300 - build 1434

1. Продолжение 1425 - владелец доступен для редактирования.

2. Mantis#1299: SavedDialogHistory: SearchText, ReplaceText

yjh 09.03.2010 15:52:16 +0300 - build 1433

1. Дефлотная маска для архивов поддерживает .tbz и .txz (новые linux-дистрибутивы)


svs 03.03.2010 17:33:17 +0300 - build 1432

1. Функция CheckFolder() переименована в TestFolder(), соответствующим образом изменены наименование кодов возврата.

2. Macro: Новая функция: N=testfolder(S) - тестирование каталога, возвращает
      2 - нет такого
      1 - не пусто
      0 - пусто
     -1 - нет доступа
     -2 - ошибка (неправильные параметры или нехватило памяти для выделения промежуточных буферов)

   Константы:
     REGEDIT4

     [HKEY_CURRENT_USER\Software\Far2\KeyMacros\Consts]
     "TSTFLD_NOTFOUND"=dword:00000002
     "TSTFLD_NOTEMPTY"=dword:00000001
     "TSTFLD_EMPTY"=dword:00000000
     "TSTFLD_NOTACCESS"=dword:FFFFFFFF
     "TSTFLD_ERROR"=dword:FFFFFFFE

3. Macro: немного тестовых добавок в "машину".

drkns 02.03.2010 18:32:43 +0200 - build 1431

1. Лишний callback при вставке текста в строку ввода.

drkns 01.03.2010 21:10:08 +0200 - build 1430

1. Потенциальное UB в диалоге атрибутов.

svs 01.03.2010 19:00:24 +0300 - build 1429

1. Mantis#0000981: Far падает, после вызова плагина через CallPlugin

2. Macro: у функции date параметр можно не указывать, в этом случае используется форматная строка "%a %b %d %H:%M:%S %Z %Y"

3. Macro: добавлен "$Continue" - для циклов

4. Бага с шорткатами в редакторе/вьювере:
   а) LCtrl-<N> (где <N> неназначенный шорткат) - прыгал в самое начало файла
   б) Сохранение шорткатов в реестре было возможно только, если был назначен нулевой элемент (RCtrl-0)

   Здесь Ахтунг!
   Из-за весьма ранних багов в реестре могло сохраняться содержимое шорткатов, заполненных нулями.
   Поэтому рекомендуется в реестре Editor\LastPositions и Viewer\LastPositions выкинуть значения ShortXXX

5. Для единообразия... в Opt.ViOpt.SaveViewerPos и Opt.ViOpt.SaveViewerShortPos убрано "слово" Viewer.

drkns 28.02.2010 11:29:36 +0200 - build 1428

1. Истории ввода, просмотра, папок, диалогов и сохранённых позиций расширены до 512 элементов по умолчанию.

yjh 28.02.2010 04:42:01 +0300 - build 1427

1. К 1424 - если уж делать largeaddressaware, то для всех линкеров :)

drkns 28.02.2010 01:43:09 +0200 - build 1426

1. Поправка к 2 пункту предыдущего билда, дабы и в пещерных ОС работало.

drkns 27.02.2010 23:30:38 +0200 - build 1425

1. Добавка к 1054.2: в меню дисков по CtrlA/F4 выводится не системный, а встроенный диалог атрибутов.

2. Из встроенного диалога атрибутов можно вызывать системный.

3. Mantis#0000088: Добавить поле "Владелец файла".

4. Там же в список атрибутов добавлен "Reparse point".

drkns 27.02.2010 19:16:33 +0200 - build 1424

1. Собираем с /largeaddressaware.

chupakabra 27.02.2010 07:51:00 +0200 - build 1423

1. Mantis#0000840: включаем Low-fragmentation Heap.
   http://msdn.microsoft.com/en-us/library/aa366750%28VS.85%29.aspx

drkns 27.02.2010 00:07:33 +0200 - build 1422

1. Не работала опция "Lock editing of read-only files".

t-rex 26.02.2010 20:36:01 +0200 - build 1421

1. Не надо вызывать apiGetVolumeNameForVolumeMountPoint() для репарс поинтов которые не папки (видимо Mantis#1288).

2. Ворнинг в GCC.

drkns 24.02.2010 15:48:25 +0200 - build 1420

1. Продолжаем давить printf.

2. 32-битного FilePositionCache больше нет, теперь везде 64-битный.

3. Убраны ограничения из TI#11 .

svs 22.02.2010 17:10:45 +0300 - build 1419

1. Macro: уточнение replace(). Зацикливается, если Find - пустая строка.

drkns 22.02.2010 15:49:34 +0200 - build 1418

1. Продолжение предыдущего билда. Теперь, вероятно, и волки будут сыты, и овцы целы -
   ./.. показываются, но крышу у глючных драйверов от проверок не сносит.

t-rex 22.02.2010 13:53:43 +0200 - build 1417

1. Убрал всю заморочку с проверкой на "." и "..".
   Она приводила к различным проблемам у нормальных пользователей и всё ради того
   чтоб фиг знает кто мог себе создавать такие настоящие папки на фате.
   Если вы всё таки создаёте папки "." и ".." то фар их показывать не будет.

drkns 21.02.2010 21:57:47 +0200 - build 1416

1. В 1413 забыли зажим внутри пациента :)

zg 21.02.2010 13:10:12 +0200 - build 1415

1. не собиралось gcc.

svs 20.02.2010 22:44:13 +0300 - build 1414

1. Macro: bug: panel.setposidx(0,0,1) возвращает 0, если отмеченный файл - последний на панели

drkns 20.02.2010 20:24:44 +0200 - build 1413

1. Выкинуто шаманство с DETECT_ALT_ENTER, теперь автоустановка 80x25 при переключении в полноэкранный режим работает.

2. ACTL_CONSOLEMODE больше нет.

3. Состояние Windowed в макроязыке заменено на Fullscreen.

svs 19.02.2010 17:18:28 +0300 - build 1412

1. Macro: Bug: [A|P]panel.Filter всегда выдает 1, независимо от того, включён фильтр на панели или нет

2. Macro: проблемы с eval()

3. Macro: некорректная работа panel.setposidx()
   Теперь вот так:
     Panel.SetPosIdx(0,0,0) - вернет координаты в массиве файлов с учетом фильтра
     Panel.SetPosIdx(0,0,1) - вернет координаты в виртуальном массиве отмеченных файлов с учетом фильтра

4. В Config переменные, относящиеся к макросам, собраны в одну структуру.

5. Добавлено временное правило KeyMacros/CallPluginRules:dword (по мотивам Mantis#1280)
     0 - блокировать макросы при вызове плагина функцией CallPlugin, 1 - разрешить макросы (ахтунг!)
     по умолчанию 0 - блокировать
   "временное" - чтобы понять на сколько это критично.

drkns 19.02.2010 13:47:00 +0200 - build 1411

1. В 1410 отвалилось копирование на плагиновые панели.

drkns 18.02.2010 23:03:00 +0200 - build 1410

1. Падение при отсутствии языковых файлов.

2. Падение при выгрузке плагина при открытом меню конфигурации.

3. Выкинуто ещё немного мусора из копира.

4. Исключатор: добавлена возможность передать исключение во внешний отладчик, выкинут разнообразный мусор.

t-rex 18.02.2010 21:28:44 +0200 - build 1409

1. Косметические правки пред. билда.

svs 18.02.2010 20:02:35 +0300 - build 1408

1. Macro: функция Menu.Select не работает, если третий параметр (Dir) не равен 0.
   (еще бы оно работало, когда направление не учитывалось совсем :-))

svs 18.02.2010 14:33:53 +0300 - build 1407

1. Mantis#0001286: Добавить состояние кликов мыши
   Добавлена константа MsEventFlags. Набор битов (see http://msdn.microsoft.com/en-us/library/ms684239%28VS.85%29.aspx):
     DOUBLE_CLICK = 0x0002
        The second click (button press) of a double-click occurred.
        The first click is returned as a regular button-press event.
     MOUSE_HWHEELED = 0x0008
        The horizontal mouse wheel was moved.
     MOUSE_MOVED = 0x0001
        A change in mouse position occurred.
     MOUSE_WHEELED = 0x0004
        The vertical mouse wheel was moved.

2. Macro: panel.setposidx()
   a) добавлен 3-й необязательный параметр InSelection
        N=Panel.SetPosIdx(panelType,Idx[,InSelection])
      если InSelection = 1, то Idx - индекс в виртуальном массиве отмеченных видимых файлов
      если InSelection = 0, то Idx - индекс в виртуальном массиве видимых файлов
   b) теперь эта функция работает только с видимыми файлами, с учетом примененных фильтров на панели.
   c) второй параметр Idx:
        < 0 - "искать" от конца в начало
        > 0 - "искать" от начала в конец
        = 0 - игнорировать переход, просто вернуть текущую позицию (естественно  учетом фильтра)

3. Macro: добавлены булевые состояния [A|P]Panel.Filter - "на активной/пассивной панели включен фильтр?"

4. Macro: уточнение 1401

5. Добавлены virtual public Panel::FileInFilter(long idxItem) и Panel::IsSelected(long idxItem)


drkns 17.02.2010 22:22:31 +0200 - build 1406

1. Продолжение #0001273. После 1395 начали проявляться разнообразные древние, присыпанные листьями грабли.

garry 17.02.2010 18:00:27 +0300 - build 1405

1. Ошибка компиляции x64 версии в 1400.

svs 17.02.2010 17:49:19 +0300 - build 1404

1. Macro: снова про загрузку.
    "...Имеется какой-либо макрос для панелей. Вызываем MacroView, вносим ошибку в макрос.
    FAR сообщает об ошибке в выражении, этот макрос больше не срабатывает, но перестают работать все макросы, кроме панельных.
    Если ошибка в макросе редактора или вьюера, то перестают работать common-макросы..."

2. Mantis#0001283: Глюк с областью выполнения макросов
   Пусть манагер всегда принудительно выставляет область для текущего фрейма (CurrentFrame).
   Хмм... возможно повторение этого Инца, но только для тех объектов, кто "не с нами" (не производный от Frame).

drkns 16.02.2010 19:32:46 +0200 - build 1403

1. Уточнение работы FCTL_CLEARSELECTION.

drkns 16.02.2010 13:47:00 +0300 - build 1402

1. Mantis#0000942: far hangs at exit after using of proclist

2. Mantis#0001273: Медленная работа и излишний сетевой трафик при работе с сетевыми папками.

3. Добавлена команда FCTL_CLEARSELECTION - снять выделение с элемента панели. Param1 - номер выбранного элемента (0<=Param1<PanelInfo.SelectedItemsNumber).

4. Пара мелочей.

svs 16.02.2010 11:05:58 +0300 - build 1401

1. Макро: теперь ошибки пропускаются (остальные макросы грузяться)

2. Немного PROJECT_DI_MEMOEDIT.

3. В editor.cpp удален лишний кусок закомменченного кода про Editor::ReadFile()

garry 15.02.2010 17:37:17 +0300 - build 1400

1. Падения при обработке файлов с увеличивающимся размером:
   1. Редактор падал при выводе прогресса для файла, размер которого увеличивается
      в процессе открытия;
   2. Вьювер падал при выводе прогресса в процессе поиска для файла, размер которого
      увеличивается во время просмотра.

t-rex 14.02.2010 00:48:27 +0200 - build 1399

1. Mantis#1274: Некорректная работа фильтра панелей при выборе только папок.
   Вообще был определённый прокол в логике обработке папок, починились похожие и не очень
   глюки и в поиске и в пометке.

zg 14.02.2010 00:12:02 +0200 - build 1398

1. не собиралось gcc.

svs 12.02.2010 18:15:56 +0300 - build 1397

1. Mantis#0001270: MCMD_LOADALL не возвращает ошибку при наличии ошибок

drkns 11.02.2010 14:06:15 +0200 - build 1396

1. Уточнение логики добавления BOM при сохранении.

drkns 11.02.2010 13:47:00 +0200 - build 1395

1. Т.к. в ConvertNameToReal больше не используется ручной анализ содержимого репарс-поинта, уберём оттуда ограничения для сетевых путей.

2. В диалоге атрибутов редактирование содержимого репарс-поинта доступно и для сетевых путей.

3. Mantis#0000650: FAR не дает создать символическую ссылку на корневую шару.

svs 12.02.2010 14:15:21 +0300 - build 1394

1. Некорректная работа Info.FSF->FarNameToKey
   http://forum.farmanager.com/viewtopic.php?f=8&t=5058

   Функция ждет строку по вот такой спецификации:
     1. Сочетания, определенные в структуре keyboard.cpp::FKeys1[]
     2. Опциональные модификаторы (Alt/RAlt/Ctrl/RCtrl/Shift) и 1 символ, например, AltD или CtrlC
     3. "Alt" (или RAlt) и 5 десятичных цифр (с ведущими нулями)
     4. "Spec" и 5 десятичных цифр (с ведущими нулями)
     5. "Oem" и 5 десятичных цифр (с ведущими нулями)
     6. только модификаторы (Alt/RAlt/Ctrl/RCtrl/Shift)

drkns 11.02.2010 23:52:09 +0200 - build 1393

1. Mantis#0001271: Диалог: символы, недопустимые в данной кодировке.

2. Диалог перехода (AltF8) в редакторе переведён на DialogBuilder.

svs 11.02.2010 22:26:57 +0300 - build 1392

1. Mantis#0001268: В фильтр диалогов вставляется только первый символ
   Добавка Ctrl-V/Shift-Ins (только для режима "мы в фильтре")

svs 11.02.2010 21:57:33 +0300 - build 1391

1. Mantis#0001268: В фильтр диалогов вставляется только первый символ
   ...что не мудрено, судя по коду :-)

   И да, здесь, в фильтре, в качестве эксперимента :-) при обработке $Text добавлена реакция на символ 0x8 (Bs). Нада?

2. Mantis#0001266: Far падает при разборе Macro
   А про двойные кавычки я и забыл... :-(
     В класс UserDefinedList добавлен флаг ULF_NOTUNQUOTES

drkns 11.02.2010 13:47:00 +0200 - build 1390

1. Mantis#0001269: Не указан макрос в сообщении о неверном макросе при загрузке Фара

2. Лишний вызов callback-функций при замене блока в строках ввода.

drkns 11.02.2010 01:15:24 +0200 - build 1389

1. В 1381 отвалились клики правой кнопкой мыши по линейке функциональных клавиш.

zg 10.02.2010 22:13:45 +0200 - build 1388

1. в регэкспах - ошибка в обработке верхней границы в диапазонах, заданной в виде \xyyyy.

drkns 10.02.2010 15:04:39 +0200 - build 1387

1. Обрабатываем Alt-<Left|Right|Home|End> в списке дополнения.

svs 10.02.2010 12:55:31 +0300 - build 1386

1. Варнинги

2. Macro: MCMD_CHECKMACRO - инициализация кода успешного чекинья макроса
   Здесь нужно понимать, что ActlKeyMacro.Param - это union и что Param.PlainText.SequenceText затрется после отработки MCMD_CHECKMACRO, т.е.
   Far вернет Param.MacroResult.*

drkns 10.02.2010 00:57:46 +0200 - build 1385

1. Некорректное позиционирование фокуса в меню кодовых страниц.

zg 09.02.2010 17:59:01 +0200 - build 1384

1. в апи добавлены ESPT_SETBOM и EOPT_BOM.

2. по дороге исправлена ситуация когда открыли в редакторе файл без бом, удалили, сохранили, в итоге файл с бом.

svs 09.02.2010 18:02:24 +0300 - build 1383

1. Продолжаем мучить MCMD_CHECKMACRO.
   - строка и позиция для плагинов начинается с 0, как и положено
   - MPEC_EXPECTED заменена на удобочитаемую MPEC_EXPECTED_TOKEN
   - добавлен флаг KSFLAGS_SILENTCHECK - при чекании Far должен молчать (не выводить диалог)

drkns 09.02.2010 15:04:21 +0200 - build 1382

1. Уточнения раскраски диалоговых элементов.

2. Косметика в коде диалога назначения макроклавиш.

svs 09.02.2010 12:50:38 +0300 - build 1381

1. Macro: макрос на F1 "msgbox(akey(1))"
          жмём в панелях, диалогах и т.п. - работает адекватно.
          жмём в меню - видим не F1, а кнопку, вызвавшую это меню.

2. "Опубликован" MCMD_CHECKMACRO, возвращает ActlKeyMacro.Param.MacroResult
     struct
     {
       DWORD ErrCode;  // код ошибки (see FARMACROPARSEERRORCODE)
       COORD ErrPos; // строка и позиция в строке, где парсер нашел ошибку
       const wchar_t *ErrSrc; // "слово" вызвавщее ошибку, может быть пустым в зависимости от кода ошибки
     } MacroResult;

3. Mantis#0001266: Far падает при разборе Macro
   Забыл, что UserDefinedList не берет на грудь 1 значение (в данном случае однострочный макрос)
   Затычки поставлены, но...
     TODO: переделать UserDefinedList, чтобы мог изображать из себя массив из одного элемента.

drkns 09.02.2010 10:51:57 +0200 - build 1380

1. Уточнение обработки мыши в диалогах.

drkns 09.02.2010 09:39:19 +0200 - build 1379

1. Поправка к 1378.2.

drkns 08.02.2010 19:07:17 +0200 - build 1378

1. Продолжение 1367.

2. Ещё пара мелочей.

svs 08.02.2010 17:26:40 +0300 - build 1377

1. Macro: добавлен "алиас" PANEL.ITEM для функции PANELITEM (для единообразия в названии)

2. Macro: учтонение парсера.

3. В UserDefinedList добавлен флаг ULF_NOTTRIM - дабы не резать пробелы.

drkns 08.02.2010 16:03:25 +0200 - build 1376

1. Уточнение трюка, введённого в 1205: восстанавливаем размеры окна только если после получения фокуса они были уменьшены.

drkns 08.02.2010 11:18:56 +0200 - build 1375

1. Mantis#0001264: выводить процент выполнения удаления в заголовке.

2. В диалоге подтверждения расшифрования не работал выбор 'Skip all'.

3. Ошибка при обработке метасимволов.

drkns 06.02.2010 15:10:19 +0200 - build 1374

1. При обработке FCTL_<SET|INSERT>CMDLINE отключаем дополнение.

drkns 05.02.2010 20:42:59 +0200 - build 1373

1. Уточнение логики закрытия плагиновой панели.

2. Mantis#0001259: неперерисовка файловой панели после смены папки.

drkns 04.02.2010 20:48:39 +0200 - build 1372

1. В 1369 отвалилось удаление пунктов пользовательского меню.

drkns 03.02.2010 21:23:01 +0200 - build 1371

1. По просьбам телезрителей средняя кнопка мыши вновь работает как Enter в панелях, справке и меню.
   Причём всегда. Опции нет, ибо есть макросы.

2. Несколько переделана обработка мыши в справке.

3. x<wcs|str>n<cpy|cat> изменены, теперь третий параметр - размер приёмника.

4. Ошибка в oldfar::ESPT_GETWORDDIV.

5. gcc warning.

drkns 03.02.2010 15:08:26 +0200 - build 1370

1. При выборе элемента из истории команд вызывалось ненужное в этом случае дополнение.

2. Убраны неактуальные BlockExtKey.

3. Поиск файлов больше не падает при нажатии F11, также там теперь доступен список задач.

drkns 02.02.2010 20:36:50 +0200 - build 1369

1. Поправка к 1366.

2. Продолжаем давить *printf.

chupakabra 02.02.2010 16:20:00 +0200 - build 1368

1. Некорректно отображалась дата для папок на панели плагина.

drkns 01.02.2010 23:28:33 +0200 - build 1367

1. Поправка к 1366.

drkns 01.02.2010 21:44:16 +0200 - build 1366

1. From Alexey Samlyukov: при наличии в hlf-файле секции ".Options" не учитывалась секция ".PluginContents".

2. В строках ввода работает выделение текста мышью. К редактору это пока не относится.

3. С правого края командной строки отображается кликабельная стрелка, по аналогии с комбинированным списком в диалогах.

drkns 31.01.2010 20:56:38 +0200 - build 1365

1. Не обновлялись панели после применения фильтров.

svs 31.01.2010 17:57:22 +0300 - build

1. Mantis#0000986: Far 2 API - pascal

drkns 31.01.2010 16:37:49 +0200 - build 1364

1. В плагиновых панелях не показывался упакованный размер элементов.

drkns 30.01.2010 20:09:48 +0200 - build 1363

1. Mantis#0001257: File sharing violation when attempting to open Editor from Viewer.

drkns 29.01.2010 22:29:05 +0200 - build 1362

1. После 597 поломалась плагиновая сортировка элементов панели.

drkns 29.01.2010 21:01:29 +0200 - build 1361

1. Ещё раз о макросах и дополнении.

drkns 28.01.2010 18:47:28 +0200 - build 1360

1. В диалогах по F11 могло вызываться панельное меню плагинов.

2. Любителям макросов: у списка автодополнения теперь своя область - "AutoCompletion".

svs 28.01.2010 16:45:53 +0300 - build 1359

1. Macro: Некорректная работа AKey()/$AKey.

drkns 28.01.2010 11:27:44 +0200 - build 1358

1. Mantis#0001256: При наборе текста в командной строке стираются закладки плагина PanelTabs

t-rex 27.01.2010 21:59:14 +0200 - build 1357

1. Mantis#1255: Фар виснет при запуске far /v -

chupakabra 26.01.2010 19:57:00 +0200 - build 1356

1. From Maximus: Mantis#0001117: Ошибочная пометка файлов кнопкой мышки при прокрутке.

chupakabra 26.01.2010 19:34:00 +0200 - build 1355

1. FSF.GetDirList теперь возвращает полные пути к файлам.

chupakabra 24.01.2010 18:15:00 +0200 - build 1354

1. Mantis#0001251: Некорректный показ типа оптического привода.

yole 23.01.2010 14:15:00 +0300 - build 1353

1. В меню Alt-F1/Alt-F2 клавиша F9 показывает диалог для настройки режимов отображения меню -
   чтобы не перебирать Ctrl-циферки. Также в меню добавлена подсказка по доступным клавишам.

2. Включим показ типа CD-ROM по дефолту.

svs 22.01.2010 17:15:01 +0300 - build 1352

1. Mantis#0001201: В Far 2 не работает переход на URL

2. Уточнение в хелпе URL`ов (раздел "@PluginsReviews")

svs 22.01.2010 14:46:29 +0300 - build 1351

1. Mantis#0001240: Внешний редактор не запускается если путь к нему содержит пробелы и предварён символом @

drkns 22.01.2010 00:40:31 +0200 - build 1350

1. Пара мелочей по автодополнению.

chupakabra 20.01.2010 21:19:00 +0200 - build 1349

1. Ошибка в FarGetDirList. Из-за этого не работало копирование содержимого каталогов в TmpPanel.

2. ACTL_QUIT не срабатывала если было открыто меню.

chupakabra 20.01.2010 08:05:00 +0200 - build 1348

1. ACTL_QUIT - завершает работу Far.

chupakabra 20.01.2010 07:38:00 +0200 - build 1347

1. Под win2k QueryDosDevice() выдает ошибку при большом размере буфера. Добавлена apiQueryDosDevice().

2. UnicodeString::SubStr().

zg 19.01.2010 22:58:11 +0200 - build 1346

1. в списке дополнений не отображается символ "&".

svs 18.01.2010 10:26:51 +0300 - build

1. Mantis#0001246: Не собирается в gcc под Linux'ом. Некорректный include в edit.cpp

svs 17.01.2010 21:26:17 +0300 - build 1345

1. Mantis#0001242: Некорректная работа AKey$
   $AKey теперь возвращает реально-нажатое сочетание, которым вызывался макрос

2. Mantis#0001239: Получение через AKey нажатой клавиши с учетом раскладки клавиатуры
   Добавлен необязательный параметр функции akey()
     V=akey(Mode[,Type])
       Mode = 0 - число
              1 - строка
       Type = 0 - возвращает реально-нажатое сочетание, которым вызывался макрос
              1 - возвращает клавишу, на которую назначен макрос.

yole 17.01.2010 00:20:00 +0300 - build 1344

1. Научимся узнавать BD-ROM драйвы в Alt-F1/Alt-F2.

yole 16.01.2010 18:50:00 +0300 - build 1343

1. DialogBuilder поддерживает layout control'ов в две колонки.

2. Переведём настройки вьюера и редактора на DialogBuilder.

yole 16.01.2010 14:45:00 +0300 - build 1342

1. Продолжаем рефакторить DialogBuilder с целью его использования в плагинах.

2. Для полей ввода числовых значений, создаваемых при помощи DialogBuilder,
   автоматически выставляется маска, разрешающая вводить только цифры.

drkns 16.01.2010 12:39:15 +0200 - build 1341

1. С форума: "Глюк с заменой в редакторе".
   Тянется вроде как ещё с 498 билда.

drkns 16.01.2010 00:42:36 +0200 - build 1340

1. Продолжение 1338.

drkns 15.01.2010 07:57:05 +0200 - build 1339

1. При создании символических ссылок некорректно запрашивались требуемые привилегии.

drkns 14.01.2010 20:45:19 +0200 - build 1338

1. Поправлены регрессы 1337.

drkns 13.01.2010 20:42:34 +0200 - build 1337

1. Имена файлов, оканчивающиеся на точку, неправильно отображались в режимах панели с включенным выравниванием расширений.

2. Рефакторинг. Удалена связанная с дополнением копипаста. Возможны последствия, соблюдаем осторожность.

3. x64 warnings.

drkns 13.01.2010 19:22:50 +0200 - build 1336

1. И снова TreeCmp, более правильный вариант.

t-rex 12.01.2010 23:07:52 +0200 - build 1335

1. FarDialogItem.Param.ListPos теперь централизовано выставляется при всех "получениях" структуры от фара.
   Кривые плагины которые надеялись что будет выставлен FarDialogItem.Param.ListItems полетят.
   О таких случаях в анси плагинах просьба сообщать, хотя быть такое не должно.

svs 12.01.2010 11:53:24 +0300 - build 1334

1. Дерево. Откат функции сортировки TreeCmp на предыдующую ревизию (3917) (было в build 1295)

2. Уточнения SysLog`ов

drkns 11.01.2010 20:07:38 +0200 - build 1333

1. Поправлены зависимости в проектах.

2. DIF_EDITPATH/FIB_EDITPATH в api.

3. Текст в строках ввода иногда оказывался левее X1 и не отображался.

4. Разные косметические мелочи.

5. Уточнения справки.

chupakabra 11.01.2010 02:28:00 +0200 - build 1332

1. const в plugin api.

drkns 11.01.2010 01:19:27 +0200 - build 1331

1. Mantis#0000848: Find Folder: неправильная обработка символа *.

t-rex 10.01.2010 23:55:43 +0200 - build 1330

1. Избавляемся от NM в plugin.hpp.

2. GCC ворнинг.

drkns 10.01.2010 23:39:29 +0200 - build 1329

1. C форума: Find Folder: неправильная отрисовка дерева в Фар 2.

2. x64 warnings.

3. gcc сборка.

4. Устаканивание дополнения.

yole 10.01.2010 18:50:00 +0300 - build 1328

1. Начало большого рефакторинга DialogBuilder'а, позволяющего использовать один и тот же
   API для построения диалогов и в самом FAR'е, и в его плагинах.

drkns 09.01.2010 14:17:27 +0200 - build 1327

1. Вернём обратно FarDialogItem.MaxLen )

drkns 09.01.2010 13:51:28 +0200 - build 1326

1. DWORD Reserved2 -> DWORD_PTR Reserved2.

drkns 09.01.2010 12:59:15 +0200 - build 1325

1. Вместо FarDialogItem.MaxLen теперь DWORD Reserved2. Должен быть равен 0.

drkns 08.01.2010 22:51:39 +0200 - build 1324

1. Логическое продолжение 1277 - синхронизируем CurrentDirectory только если есть неуникодные плагины.

2. Прибит DIF_NOTCVTUSERCONTROL + мелкая косметика во враппере.

drkns 08.01.2010 18:00:43 +0200 - build 1323

1. Mantis#0001238: Неправильная подсветка при замене в редакторе.

t-rex 08.01.2010 13:54:21 +0200 - build 1322

1. компиляция vc для 1321.

zg 08.01.2010 13:46:03 +0200 - build 1321

1. забытые файлы в 1320.

zg 08.01.2010 13:30:56 +0200 - build 1320

1. диалог перезаписи файла имеет идентификатор {9FBCB7E1-ACA2-475D-B40D-0F7365B632FF}.

drkns 08.01.2010 01:30:08 +0200 - build 1319

1. Ещё всякое по автодополнению + зачатки конфигурации.

2. Все автогенерируемые во время сборки файлы теперь складываются в отдельный каталог, дабы не маячили.

zg 07.01.2010 18:21:09 +0200 - build 1318

1. убиты LIF_USETEXTPTR и MIF_USETEXTPTR.

zg 07.01.2010 17:44:21 +0200 - build 1317

1. const в plugin api.

2. GetComputerNameEx в gcc.

svs 07.01.2010 17:12:00 +0300 - build 1316

1. Немного пересобрал InfoList. Вместо абс.указываемых координат Y используются относительные.

2. Уточнение для subst-дисков - ранее показывалась инфа от родительского корня.
   вместо strDriveRoot, полученного из GetPathRoot, применим ExtractPathRoot(strCurDir), ибо
   GetPathRoot старается раскрутить все по полной.

3. В настройки InfoPanel добавлена опция "Формат вывода имени компьютера" (о чем описанов в хелпе).
   Теперь бы вменяемо (исходя из описания) обозвать эти пункты комбобокса :-)

yole 07.01.2010 12:00:00 +0300 - build 1315

1. Вернём на место опцию, потерянную при переводе настроек на динамические диалоги.

2. Система динамического построения диалогов обучена работать с комбо-боксами.
   Переведен на новую систему диалог InfoPanel Settings.

drkns 07.01.2010 01:19:43 +0200 - build 1314

1. И ещё пара мелочей.

drkns 07.01.2010 00:57:40 +0200 - build 1313

1. Ещё всякое по автодополнению.

zg 06.01.2010 22:36:35 +0200 - build 1312

1. gcc warnings.

drkns 06.01.2010 18:54:47 +0200 - build 1311

1. Изменения в FSF.MkTemp - функция возвращает требуемый размер буфера.

drkns 05.01.2010 20:52:04 +0200 - build 1310

1. С форума: уточнение поведения списка "Already existing files" в диалоге копирования.

2. Следствие 1 пункта: в открытый комбинированный список теперь приходит событие DN_LISTHOTKEY.

3. Удалён OPIF_FINDFOLDERS за ненадобностью.

drkns 05.01.2010 19:50:30 +0200 - build 1309

1. Новые actl-команды: ACTL_SETPROGRESSSTATE, ACTL_SETPROGRESSVALUE.
   Предназначены для управления кнопкой Far на панели задач.

2. Удалена ACTL_GETWCHARMODE за ненадобностью.

drkns 03.01.2010 21:37:53 +0200 - build 1308

1. Ещё всякое по автодополнению.

drkns 03.01.2010 18:36:49 +0200 - build 1307

1. Изменения/уточнения работы нового режима дополнения.

2. Откат 1306 - ложная тревога )

drkns 03.01.2010 16:42:56 +0200 - build 1306

1. FSF.ConvertPath не возвращала необходимый размер буфера.

drkns 02.01.2010 13:38:25 +0200 - build 1305

1. Mantis#0001233: При замене в редакторе не подсвечивается место, которое предлагается заменить.

svs 29.12.2009 15:10:25 +0300 - build 1304

1. На счет языкозависимого %FARADMINMODE% погорячился :-)

   Очередная итерация...

   Теперь
     %FARADMINMODE% число и равно 1, если под мы админом

   У cmdprompt новый '$@xx' (см. MConfigCmdlinePromptFormatAdmin)
   здесь 'xx' - два символа, которыми будет обрамлено слово "Администратор"
   Например, "$@{}$s$p$g" будет представлен как "{Администратор} C:\>"

svs 29.12.2009 13:33:22 +0300 - build 1303

1. Mantis#0001228: Macro Problem (wrong results in 'Index')
   Добавлены доп.пораметры для макрофункций
      N=index(S1,S2[,Mode])
      S=rindex(S1,S2[,Mode])
      Result=replace(Str,Find,Replace[,Cnt[,Mode]])
   Здесь Mode:
      0 - case insensitive
      1 - case sensitive

2. Macro: msave() для значения типа double сохраняет значение в виде строки.

3. Если Far в режиме "администратор", то выставляется переменная среды FARADMINMODE, равная "(Администратор)"  (см. MConfigCmdlinePromptFormatAdmin)
   Может применяться в CmdPrompt.

drkns 29.12.2009 00:44:26 +0200 - build 1302

1. Расставляем DIF_EDITPATH во всех нужных диалогах.

2. Уточнения нового режима дополнения.

yole 29.12.2009 00:11:00 +0300 - build 1301

1. Продолжаем работать над системой динамического построения диалогов.
   Добавлена поддержка сепараторов, радиокнопок, префиксного текста, истории.
   Переведены system settings, panel settigns, file description settings.

drkns 28.12.2009 19:10:00 +0200 - build 1300

1. Очередные эксперименты с автодополнением.
   Теперь поведение оного максимально приближено к системному, а именно:
   при наборе автоматически раскрывается список с подходящими вариантами, сокращающийся по мере ввода.
   Т.е. ничего никуда против воли пользователя не подставляется и при этом вроде всё интуитивно понятно.
   Надеюсь, этот вариант устроит всех.

   Через интерфейс пока ничего настраивается, уж извиняйте. Позже.

   З.Ы. В качестве бонуса (и для полного соответствия системному поведению) туда же добавлено примитивное дополнение файловых имён.
   Работает в комстроке и тех диалоговых строках ввода, у которых установлен флаг DIF_EDITPATH.
   На данный момент сей флаг установлен только в диалогах открытия/сохранения файла (ShiftF4/ShiftF2).

yole 26.12.2009 19:30:00 +0300 - build 1299

1. Продолжаем работать над системой динамического построения диалогов.
   Добавлена поддержка edit fields, статического текста, automation.
   Ещё пара диалогов из настроек переведены на новую систему.

drkns 26.12.2009 16:14:42 +0200 - build 1298

1. Уточнение 1295.2.

yole 26.12.2009 16:20:00 +0300 - build 1297

1. Заготовка для системы динамического построения диалогов: DlgBuilder.cpp/hpp

2. Опция для включения/выключения слепого режима autocompletion.

yole 25.12.2009 23:32:10 +0300 - build 1296

1. Слепой режим для autocompletion (эксперимент):
   http://bugs.farmanager.com/view.php?id=274

drkns 25.12.2009 19:24:01 +0200 - build 1295

1. Восстановим визуализацию при ошибках сохранения в редакторе.

2. Новые кнопкосочетания в панелях: CtrlShift<Up|Down|Num8|Num2>.
   Меняют высоту только текущей панели.

2. Массовое истребление бессмысленных и беспощадных снятий константности в Local, LocalOEM и других местах.

3. Массовое истребление объявлений счётчика за пределами цикла.

t-rex 25.12.2009 16:46:03 +0200 - build 1294

1. Логическое завершение 1246. Теперь в общем плагины могу делать детач окну фара и это вроде как должно работать.
   Пока что заметил что частично поломался плагин MakeIt, будем разбиратся.
   Интересно знать если ещё что то такое с не стандартным выводом поломалось.

chupakabra 24.12.2009 23:37:00 +0200 - build 1293

1. При загрузке Far мог появлятся индикатор записи макро из-за того что KeyMacro::Recording не была инициализирована.

drkns 24.12.2009 21:33:21 +0200 - build 1292

1. Уберём пока DList из MacroState, до лучших времён.

drkns 24.12.2009 17:53:01 +0200 - build 1291

1. Опечатка в 1290.

drkns 24.12.2009 01:51:44 +0200 - build 1290

1. Задавим ещё немного memcpy и memset.

2. Если плагин пытался изменить фокус в момент открытия комбинированного списка - последствия были печальны.

drkns 23.12.2009 20:13:46 +0200 - build 1289

1. Уточнения 1287 билда.

2. Уточнения справки.

t-rex 22.12.2009 22:21:07 +0200 - build 1288

1. Mantis#1147: Ошибка при запуске \

2. Немного разной чистки.

drkns 22.12.2009 21:23:23 +0200 - build 1287

1. Используем DList вместо повторных имплементаций списка ещё в нескольких местах.

2. Немного добавок в DList.

drkns 18.12.2009 22:14:58 +0200 - build 1286

1. В регулярных выражениях \x теперь поддерживает до четырёх 16-ричных цифр, дабы охватить уникод.

2. При замене в редакторе выделение зачем-то рисовалось вручную поверх текста.
   Если при этом туда попадали символы табуляции - начинались чудеса.

3. Хелп для "Far window title addons".

t-rex 18.12.2009 17:59:11 +0200 - build 1285

1. По запросам публики, дополнение к 1282, если в настройках интерфэйса фара опция Mouse отключена,
   то доп. режим консоли quick edit не будет отключен если он включен для шортката/окна.

drkns 17.12.2009 21:00:01 +0200 - build 1284

1. К шаблонам заголовка консоли добавлен %Platform (x86/x64/IA64) и шаблоны теперь регистронезависимые.

drkns 13.12.2009 22:22:11 +0200 - build 1283

1. TI#48 не влияло на NumDel.

t-rex 13.12.2009 00:40:22 +0200 - build 1282

1. ЖЖ пока возвращяется, без неё пока проблемы а на полную переделку пока что нету времени.
   Там надо тупо всё переписывать, лучше бы я туда не лазил.

2. Отключаем доп. режимы консоли (quick edit/insert mode) во время работы в фаре,
   но если они были включены при запуске фара то на время запуска внешних прог в окне фара они будут
   включатся назад.

3. Мелочи разные.

drkns 12.12.2009 23:57:53 +0200 - build 1281

1. Уточнения предыдущего билда.

drkns 12.12.2009 23:44:12 +0200 - build 1280

1. Панель информации:
   - статус файла подкачки теперь называется как положено, а не "виртуальная память";
   - добавлено отображение настоящей виртуальной памяти;
   - добавлено отображение физически установленной памяти. Работает в Vista и выше.

2. При нажатии ShiftF8 на элементе ".." и наличии выделения в панели производилась попытка этот элемент удалить, со всеми вытекающими.

t-rex 07.12.2009 23:20:24 +0200 - build 1279

1. Mantis#1157: .. - выход из временной панели в предыдущую.

2. Жопастая жопа да ещё и доисторическая, при OpenFilePlugin() не создавалась новая панель
   а реюзалась существующая.

t-rex 07.12.2009 21:03:31 +0200 - build 1278

1. Устаканивание синхронизации текущего пути и пару связанных мелочей.
   Надо бы ещё CriticalSection поставить вокруг доступа к внутренему strCurrentDirectory().

t-rex 07.12.2009 17:59:07 +0200 - build 1277

1. Будем синхронизировать текущею папку процеса с папкой в фаре,
   ибо из за 1275 она стала вообще не предвиденной что привод ещё к серии проблем.
   А що делать то? Так вроде всё ок, но теперь трудней будет найти глючные плагины которые
   получают текущий путь не у фара а у винды так как теперь кроме как для "не стандартных"
   путей они будут одинаковые.
   Я так думаю надо сделать такое: выкинуть нафиг поддержку анси плагинов. Решается и эта проблема и у людей
   сразу мотивация будет портировать плагины.

t-rex 06.12.2009 23:01:16 +0200 - build 1276

1. Разная мелочь.

t-rex 06.12.2009 20:52:04 +0200 - build 1275

1. Убрал CurrentDirectoryGuard, теперь есть только SynchronizeCurrentDirectory() без востановления,
   ибо частое прыганье текущей папки процесса туда сюда при вызове анси плагинов приводило к разнообразным проблемам.

2. Мелкии корекции в менеджере плагинов.

drkns 06.12.2009 11:14:26 +0200 - build 1274

1. Неправильный символ пометки в меню.

drkns 05.12.2009 18:46:16 +0200 - build 1273

1. Как внезапно выяснилось, эти ваши трюки с админом в заголовке вообще не работали,
   т.к. состояние принадлежности пользователя к админской группе бралось из астрала.
   Там же: убрана проверка версии Windows (надо проверить, как будет работать на NT<6) и ещё пара мелочей.

t-rex 05.12.2009 17:29:08 +0200 - build 1272

1. Переделки в TitleAddons:
   a. Опция в гуи. Просьба всегда добавлять для новых фич гуи, скажем нет техинфо.
   b. Никакие пробелы и т.п. никуда не подставляются, строка вписывается как есть.
   c. Все добавки идут после " - Far ", этот кусок нефиг лапами трогать.
   d. Пробелы с конца удаляются если кому то интересно.
   e. Версия фара во время работы не меняется, нефиг каждый раз её считывать :)
   f. Строка по дефолту теперь "%Ver.%Build %Admin".
   g. В lng теперь админ прописан без скобок и пробела.

t-rex 05.12.2009 16:36:12 +0200 - build 1271

1. Ещё одна переделка в apiGetFinalPathNameByHandle() чтоб было красивей и правильней.

t-rex 05.12.2009 14:27:07 +0200 - build 1270

1. Mantis#1202: Падение при нажатии Shift-F8 в редакторе и вьвере.
   Глюк был всегда, но стало падать тока сейчас.

2. Некоректная сортировка кодировок в Favorites.

3. VMenu: надо коректировать SelectPos при добавлении нового пункта перед помеченым.

t-rex 05.12.2009 11:57:27 +0200 - build 1269

1. VMenu: глючок в DleteItem().

t-rex 05.12.2009 10:53:56 +0200 - build 1268

1. Продолжаем ломать VMenu.

t-rex 05.12.2009 00:20:30 +0200 - build 1267

1. Ещё немного чистки в global.hpp.

2. Глюки в ConsoleTitle.

t-rex 04.12.2009 22:06:38 +0200 - build 1266

1. Частичный рефакторинг класса VMenu (меню, комбы, листбоксы), чтоб можно было относительно удобно вносить в него новый функционал.
   Должны исправится различные глюки, особенно глюки связанные с пометкой, хидден пунктами, мышой и т.п.
   Теперь класс упорно следит за пометкой и т.п., и его нельзя запутать извне.
   Теперь будет проще доделать полноценный функционал фильтра меню.
   Глюки ожидаются, и даже наверно много!

2. Исправления в apiGetFinalPathNameByHandle() и в её использовании.

3. Не собирался debug.

svs 04.12.2009 19:09:57 +0300 - build 1265

1. По мотивам сорцов "GKTem" (а точнее здесь http://msdn.microsoft.com/en-us/library/aa376389%28VS.85%29.aspx) и
   "vkh" (настраиваемый заголовок) добавлен механизм определения
   окончания заголовка консоли (раньше жестко был зашит " - Far").
   а) добавка к заголовку представляет из себя шаблон;
   б) добавку Far берет из реестра Interface/TitleAddons:REG_SZ, по умолчанию " - Far%Ver%Admin";
   в) шаблонные символы, которые понимает Far:
         1. %Ver - текущая версия Far Manager, например, " 2.0" - Far самостоятельно добавляет пробел перед версией;
         2. %Build - текущий билд Far Manager, например, " 1259" - Far самостоятельно добавляет пробел перед билдом;
         3. %Admin - в Vista и выше заменяется на значение из lng-файла: по умолчанию " (Администратор)"/" (Administrator)" - Far самостоятельно НЕ добавляет пробел.

   Развивая эту тему можно добавить... шаблон "%Debug" для особых извращенцев ;-)

2. Функция SetFarTitle() вынесена из interf.?pp в класс ConsoleTitle.

3. Macro: добавка в п.1 "IsUserAdmin" - 1 или 0 - под кем запущен Far
   Тут есть непонятка (для меня :-)...  сейчас IsUserAdmin и в заголовке добавка "(Администратор)" не пишется (для меньше "Висты")
   возможно, что IsUserAdmin для ниже висты все же должен быть 0, даже если мы админы на тачке.
   Пока так и сделано (см. constitle.cpp::GetFarTitleAddons())

chupakabra 04.12.2009 17:32:00 +0200 - build 1264

1. GetFinalPathNameByHandle() завернута в __try __except чтобы предотвратить падение на Windows 7 + Ext2FSD.

t-rex 04.12.2009 10:53:20 +0200 - build 1263

1. from Igor Braginskiy: для CD/CHDIR "обработаем" (проигнорируем) /D,
   мы и так всегда меняем диск а некоторые в алайясах или по привычке набирают этот ключ.

2. from Igor Braginskiy: лишняя перерисовка в запускаторе.

3. Секьюрность в проверке заголовков экзэшников.

4. Потенциальный AV при обработке "echo.".

5. Косметика и около.

chupakabra 04.12.2009 05:47:00 +0200 - build 1262

1. Mantis#0000975: Колонка с именем файла отображается последней в диалоге результатов поиска.

2. Исправление горизонтальной прокрутки VMenu.

t-rex 02.12.2009 23:04:07 +0200 - build 1261

1. Ворнинг и около.

t-rex 02.12.2009 22:03:01 +0200 - build 1260

1. Переборщил немного в PathCanHoldRegularFile().

2. Удалил пару функций дупликатов.

3. Немного косметики подороге.

zg 02.12.2009 00:10:59 +0200 - build 1259

1. продолжение 1258. теперь в колонке Packed реальные значения.

zg 01.12.2009 23:21:54 +0200 - build 1258

1. Mantis#0000916: Мусор в Detailed mode, колонка Packed.

t-rex 01.12.2009 20:37:20 +0200 - build 1257

1. Немного различной косметики в коде.

chupakabra 01.12.2009 08:08:00 +0200 - build 1256

1. Mantis#0001104: При отображении дерева не пытаемся определить реальный корень диска, а используем тот что присутствует в текущем пути.

t-rex 01.12.2009 03:13:36 +0200 - build 1255

1. Все изменения в коде только косметические. Тупо надоела уже мешанина табов и пробелов и т.п.
   Прогрнал на сорцы следующее:
   AStyle --style=ansi --indent=tab=4 --brackets=break --indent-classes --indent-switches --indent-namespaces --indent-preprocessor --break-blocks --delete-empty-lines --unpad-paren --keep-one-line-statements --keep-one-line-blocks
   Не идеально конечно, но уже намного приятней.

   Так что не забываем, в коде нужно использовать табы. Таб == 4 пробела.
   Надо будет собраться и написать хоть какой то документ по стилю кода.

t-rex 01.12.2009 00:37:09 +0200 - build 1254

1. Ещё немного чистки в global.hpp.

2. Юзаем везде string.Clear() вместо string.SetLength(0) и string=L"", так и быстрей и красивей.

3. Пару мелких оптимизаций в UnicodeString.

t-rex 30.11.2009 20:20:11 +0200 - build 1253

1. После 1246-3 при закрытии диалога стал посылатся DN_EDITCHANGE всем эдитам.
   Что приводило к различным глюкам включая Mantis#1192: Падение при создании фильтра.

2. Mantis#1190: При использовании в полях ввода переменных окружения в историю попадает как сама переменная, так и её значение.
   Глюк старый но всплыл из за 1246-3.

svs 30.11.2009 12:10:30 +0300 - build 1252

1. Отвалился syslog.cpp...

t-rex 30.11.2009 09:23:05 +0200 - build 1251

1. Поломал случайно загрузку FarMenu.ini в 1248.

t-rex 29.11.2009 23:04:39 +0200 - build 1250

1. Ещё немного чистки в global.hpp.

t-rex 29.11.2009 21:45:45 +0200 - build 1249

1. Корекция кода по работе с clipboard.

t-rex 29.11.2009 20:33:41 +0200 - build 1248

1. Mantis#1188: Длительный (25 секунд) вход в сетевую шару из плагина Network.
   Файл описаний искался в списке шар.

2. Похожий фикс для usermenu. Если нажали F2 находясь в списке шар то не будем искать там FarMenu.ini.

3. Различные мелочи по дороге.

drkns 29.11.2009 19:31:17 +0200 - build 1247

1. Как выяснилось, редактор пихал сигнатуру в уникодные файлы независимо от состояния переключателя в диалоге сохранения.
   И, что интересно, уже весьма давно.
   Отсюда же ноги росли у Mantis#0001079: Опция [x] Add signature (BOM) всегда стоит.

2. Пара уточнений в "блокираторе" 16-ричного просмотра UTF-8.

3. Откат 2 пункта 1237 билда. Этот диалог таки достаёт, да.

4. При сохранении по ShiftF2 текущая позиция в комбинированном списке "Кодовая страница:" бралась откуда-то из астрала.

t-rex 29.11.2009 02:23:03 +0200

1. Флаг NO_RELEASE_PDB для мэйка.

t-rex 28.11.2009 21:57:13 +0200

1. Добавим /Oy- для релиза, чтоб "помочь" fexcept.

drkns 28.11.2009 21:55:50 +0200

1. Синхронизация проектов с makefile.

t-rex 28.11.2009 20:39:31 +0200 - build 1246

1. В Win7 x64 фар не запускается под Application Verifier из за глюка в последнем.
   Будем использовать GetStdHandle() вместо CreateFile(CON*$).
   Если всё будет ок, то в будущем после доп. переделки плагины смогут безболезнено делать детач окну фара.
   Потестируйте на разных телнетах и т.п. и т.д.

2. pdb в релизе.

3. Не работал в общем DIF_EDITEXPAND, и как следствие Mantis#1185: Не работает подстановка имён при создании новой папки/каталога.

4. Mantis#1184: Farmenu.ini не работает из "некорректного" пути.

t-rex 28.11.2009 15:11:26 +0200 - build 1245

1. Несколько мелких оптимизаций в strmix.cpp по работе с UnicodeString.

2. gcc ворнинги.

drkns 28.11.2009 13:10:50 +0200

1. Ещё немного правок в makefile_vc: VC2008 теперь по умолчанию, автоопределение целевой платформы.

drkns 28.11.2009 02:53:22 +0200 - build 1244

1. Всякая косметика в makefile_vc и, как следствие, немного в коде.

t-rex 28.11.2009 02:18:44 +0200 - build 1243

1. Немного поспешил в 1242, вернём взад.

t-rex 28.11.2009 01:08:27 +0200 - build 1242

1. Убрал ограничение на длину строки в MenuFileToReg().

t-rex 28.11.2009 00:35:30 +0200 - build 1241

1. Mantis#1180: Cannot update file description.
   Описания в путях с точкой на конце и т.п.

chupakabra 27.11.2009 23:14:00 +0200 - build 1240

1. Падение после команды вида cd \\MAXW7.

t-rex 27.11.2009 21:52:52 +0200 - build 1239

1. Одна мелочь, на всякий пожарный.

chupakabra 26.11.2009 18:35:00 +0200 - build 1238

1. Mantis#0001176: Не снимается RO при копировании файлов с CD.

drkns 26.11.2009 11:10:35 +0200 - build 1237

1. Mantis#0001175: Неправильно обрабатывается Ctrl-Enter при автозаполнении.

2. При сохранении файла в редакторе по F2, если файл до этого не существовал, теперь выводится диалог сохранения.

3. Project & solution для Visual Studio 2010.

drkns 26.11.2009 02:15:04 +0200 - build 1236

1. К редактору прикручена возможность визуализации табуляций и пробелов.
   Для управления доступны:
    - в интерфейсе - "[ ] Show white space";
    - в API - EOPT_SHOWWHITESPACE, ESPT_SHOWWHITESPACE;
    - в макросах - Editor.Set(20,State).

drkns 25.11.2009 15:56:12 +0200 - build 1235

1. Исправления в общем индикаторе удаления.

t-rex 23.11.2009 20:26:00 +0200 - build 1234

1. Эксперимент с подставлением всей строки а не только дополнения при автокомлите не прошел успешно.

2. Соединил пару ифоф в один в ScreenBuf::Flush().

t-rex 22.11.2009 22:37:12 +0200 - build 1233

1. Более "оптимизированная" работа Opt.ClearType.

drkns 22.11.2009 17:10:02 +0200 - build 1232

1. Mantis#0001172: Ошибка наследования прав доступа при переносе с использованием относительных путей

drkns 22.11.2009 09:18:07 +0200 - build 1231

1. Уточнение предыдущего билда.

drkns 22.11.2009 00:37:00 +0200 - build 1230

1. К комстроке прикручено автодополнение, аналогичное диалоговому.

2. Добавлен диалог настроек комстроки.

3. Перетасовка настроек: начало. Некоторые опции слетят, нужно будет выставить заново вручную.

t-rex 21.11.2009 19:10:19 +0200 - build 1229

1. Залоченый режим фильтра - CtrlAltL.
   Когда фильтр залочен, то все нажатия кроме CtrlAltL и CtrlAltF уходят в меню на обработку.

2. Глючок с позицией курсора в фильтре.

t-rex 21.11.2009 18:17:15 +0200 - build 1228

1. Фильтр должен обрабатывать нажатия раньше всех.

t-rex 21.11.2009 17:16:09 +0200 - build 1227

1. Экспериментальная фича, встроенный фильтр во всех меню, комбах и листбоксах.
   Фильтр включается/выключается по CtrlAltF.
   Когда включен, фильтр ловит все "буквы">=32 и backspace.
   При включенном фильтре, различные глюки гарантируются.

t-rex 21.11.2009 14:06:52 +0200 - build 1226

1. Ещё немного оптимизаций и коректировок в истории.

svs 21.11.2009 11:52:06 +0300 - build 1225

1. Macro: Уточнение в Editor.Pos(), касаемо отрицательных значений...

2. немного форматирования текста :-)

t-rex 21.11.2009 01:59:20 +0200 - build 1224

1. Вернул автокомплит в диалогах.

chupakabra 20.11.2009 21:01:00 +0200 - build 1223

1. Mantis#0001145: Падение FAR при изменении размера окна результатов поиска по Alt+F9.

chupakabra 20.11.2009 20:23:00 +0200 - build 1222

1. Переписана процедура защиты от рекурсивных симлинков.
   FileIndex из GetFileInformationByHandle() больше не используется, т.к. любой кривой драйвер
   может прописать там все что угодно и будем опять иметь ситуацию когда "эксплорер копирует а Фар нет".
   Вместо этого используется сравнение путей, полученных с помощью ConvertNameToReal().

2. Добавлена bool DeleteEndSlash(wchar_t*, bool).

3. Добавлен Object* TPointerArray::lastItem().

drkns 20.11.2009 20:13:22 +0200 - build 1221

1. Не работала кнопка "wipe all" при уничтожении файлов.

drkns 20.11.2009 15:01:43 +0200 - build 1220

1. Продолжение 1219 - ShiftDecimal/NumDel.

zg 20.11.2009 14:06:57 +0200 - build 1219

1. с форума: при включённом нумлоке shift+цифровые стрелки работают как стрелки.

drkns 20.11.2009 13:35:56 +0200 - build 1218

1. Параметры-Настройки интерфейса-[ ] Показывать общий индикатор удаления.
   FarInterfaceSettings->FIS_SHOWTOTALDELPROGRESSINDICATOR

t-rex 20.11.2009 12:42:59 +0200 - build 1217

1. Ещё один древний баг в описаниях.

t-rex 20.11.2009 03:37:16 +0200 - build 1216

1. Ещё немного рефакторинга, прибил пару новых багов и ещё пару старых.

t-rex 20.11.2009 02:18:29 +0200 - build 1215

1. Рефакторинг класса описаний, поправилась куча разных багов.

drkns 19.11.2009 22:44:27 +0200 - build 1214

1. С форума: "Неправильная работа диалога атрибутов".

t-rex 19.11.2009 13:28:28 +0200 - build 1213

1. Более шустрое автоподставление последнего пункта истории в диалогах.

chupakabra 18.11.2009 00:20:00 +0200 - build 1212

1. Дополнение к build 1211.

chupakabra 17.11.2009 23:17:00 +0200 - build 1211

1. Использование GetVolumeNameForVolumeMountPointW() в ConvertNameToReal() вызывало нежелательную сетевую активность
   при наличии в системе сетевых дисков.

t-rex 17.11.2009 22:22:04 +0200 - build 1210

1. Снова затычки, чтоб решить баг винды приводящий к "застреванию" запускатора в Win7 в телнет сессии.

drkns 17.11.2009 00:46:37 +0200 - build 1209

1. Уточнение 1207.1.

t-rex 17.11.2009 00:07:50 +0200 - build 1208

1. Ахтунг! Начальная стадия переделки истории диалогов на использование общего класса истории.
   Формат хранения в реестре изменился!
   Вся текущая история диалогов (старый формат) игнорируется!!!!!!!
   Автозавершение, пока что не работает.
   Имеет смысл почистить [HKEY_CURRENT_USER\Software\Far2\SavedDialogHistory] от старой истории диалогов (ради чистоты и только).

drkns 16.11.2009 17:57:38 +0200 - build 1207

1. Замена 'Junction' на 'Volume' для точек монтирования работала не всегда.

3. Mantis#0001140: В win7 прогресс на таскбаре не останавливается если прервать поиск нажатием на [panel].

t-rex 16.11.2009 15:47:38 +0200 - build 1206

1. Юникод в описаниях:
   а. Если файл описаний имеет BOM то читаем файл в соот. кодировке.
   б. Если нету BOM то считает что файл описаний в OEM или ANSI в зависимости от новой настройки "ANSI by default".
   с. Сохраняться файл описаний будет либо в:
      - OEM или ANSI в зависимости от новой настройки "ANSI by default".
      - UTF8 + BOM если включена новая настройка "Save in UTF8".

   Todo:
   - Надо придумать более понятные имена этим настройкам и написать хэлп.
   - Подумать если стоит сохранять файлы описаний в той же кодировке в какой они изначально были, если был BOM.

drkns + t-rex 15.11.2009 22:40:40 +0200 - build 1205

1. Снова затычки, чтоб решить баг винды приводящий к появлению скролов и т.п. после потери фокуса
   максимизированного консольного окна (известная Win+L проблема со времён XP, и подобные чудеса в Win7).

chupakabra 08.11.2009 09:09:00 +0200 - build 1204

1. From Maximus: Mantis#0001163: Описание не показано, хотя оно есть в Descript.ion.

2. Неэффективный код в VMenu.

chupakabra 08.11.2009 08:08:00 +0200 - build 1203

1. VMenu::Show() не учитывал наличие субменю.

garry 06.11.2009 11:18:34 +0300 - build 1202

1. Проблемы с копирование через WebDav: http://forum.farmanager.com/viewtopic.php?f=9&t=4626
   (исправленный патч от Yegor).

chupakabra 05.11.2009 06:32:00 +0200 - build 1201

1. Mantis#0001104: Падение при попытке открыть панель дерева для mount point.

t-rex 04.11.2009 17:16:24 +0200 - build 1200 (UTF-16 LE :)

1. !?$<history>$<title>?<init>! - вместо history имя истории было мусором.

t-rex 04.11.2009 13:17:09 +0200 - build 1199

1. Изменения в ESPT_GETWORDDIV и EditorSetParameter.
   Вроде как это последнее место в API где не был известен размер буффера для получения данных.
   Теперь в EditorSetParameter есть поле Size (и cParam переименован в wszParam),
   при ESPT_GETWORDDIV, Size должен быть равен размеру буффера wszParam в символах,
   если Size или wszParam равны 0 то EditorControl вернёт нужный размер буффера в символах.

   Плагины использующие ESPT_GETWORDDIV нужно править.

chupakabra 04.11.2009 13:09:00 +0200 - build 1198

1. Mantis#0001158: При окне 80 на 25 меню дисков AltF2 неправильного размера (поломалось в 1190).

t-rex 04.11.2009 00:46:54 +0200 - build 1197

1. Помучаем UnicodeString ещё немного.

2. Ворнинг в gcc.

t-rex 03.11.2009 13:50:19 +0200 - build 1196

1. F9->Options - некорректная работа.

t-rex 03.11.2009 13:10:37 +0200 - build 1195

1. Продолжение Mantis#956: напротив некоторых плагинов в списке стит буква "А". В хелпе об этом ни слова.

2. Для меню плагинов открываля не тот топик хэлпа.

t-rex 02.11.2009 15:12:55 +0200 - build 1194

1. Mantis#1136: Падение Far при большом количестве выделенных файлов и использовании !&.
   Теперь обработка метасимволов использует только динамические буфферы.
   Проверяем что метасимволы не полетели, особенно разные комплексные которые диалоги показывают.

svs 02.11.2009 15:03:32 +0300 - build 1193

1. Mantis#0001155: trim() не отрезает \r и \n в начале строки

2. Имя пользователя в InfoPanel настраиваемо (по умолчанию NameUserPrincipal).
   Добавлен диалог настройки информационной панели.

   НУЖНА ПОМОЩЬ ДЛЯ: lng и hlf - корректно и доступно описать каждый из форматов.


zg 01.11.2009 16:52:52 +0200 - build 1192

1. Mantis#0001144: Ctrl-G обрабатывает каждый выделенный файл несколько раз.

t-rex 31.10.2009 20:39:13 +0200 - build 1191

1. Mantis#1148: Анси-плагины вызывают неприятное торможение в редакторе.
   При вызовах ProcessEditor*, ProcessViewer* и ProcessDialog* будем использовать
   единный CurrentDirectoryGuard для всего цикла вызовов и только если есть анси плагины с такими экспортами.
   В случае ProcessDialogEvent и ProcessEditorInput это все ровно особо не поможет (так как они вызываются дофига)
   поэтому не стоит использовать анси плагины которые экспортирует эти функции.
   Надо в общем подумать если можно придумать что то вместо CurrentDirectoryGuard.

chupakabra 30.10.2009 22:30:00 +0200 - build 1190

1. Mantis#0001083: Некорректная отрисовка VMenu.

yjh 30.10.2009 03:07:09 +0300 - build 1189

1. Для точек монтирования в строке статуса пишем 'Volume' а не 'Junction' -
   так получается нагляднее когда рядом есть и линки и точки монтирования

svs 29.10.2009 16:49:25 +0300 - build 1188

1. Mantis#0001142: Плавная горизонтальная прокрутка в редакторе
   В макросы добавлена функция "N=Editor.Pos(Op,What[,Where])" - Get/Set позиции в редакторе.

     Op: 0 - get, 1 - set
     What:
        1 - CurLine
        2 - CurPos
        3 - CurTabPos
        4 - TopScreenLine
        5 - LeftPos
        6 - Overtype

     Return: -1 - "не в теме", для "get" - текущее значение, для "set" - "угу" (1) или "не угу" (0)

     Пример (при включенном ScrollLock клавиши Left/Right занимаются скроллллингом)

     REGEDIT4

     [HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\Right]
     "Sequence"="$if(FLock(2,-1) == 1) Editor.Pos(1,5,Editor.Pos(0,5)+1); $else Right $end"
     "DisableOutput"=dword:00000001

     [HKEY_CURRENT_USER\Software\far2\KeyMacros\Editor\Left]
     "Sequence"="$if(FLock(2,-1) == 1) Editor.Pos(1,5,Editor.Pos(0,5)-1); $else Left $end"
     "DisableOutput"=dword:00000001

2. немного замены space на tab

t-rex 27.10.2009 18:04:07 +0200 - build 1187

1. Доделал Mantis#1087.

t-rex 27.10.2009 16:45:19 +0200 - build 1186

1. Mantis#1087: FCTL_SETPANELDIR не возвращает ошибку (0) для несуществующего пути.

2. CodeBlocks project update from Morten MacFly.

zg 27.10.2009 14:29:01 +0200 - build 1185

1. в статусе редактора было перепутано "Col" и текущая строка.

t-rex 26.10.2009 15:17:44 +0200

1. makefile_vc знает теперь и о VC10.

t-rex 26.10.2009 13:42:02 +0200

1. Убрал упоминание о (?{name}pattern) из хэлпа ибо мы это не поддерживаем.

2. Добавил хэлп по "ClearType friendly redraw".

yjh 26.10.2009 10:57:04 +0300 - build 1184

1. Ошибка в plugin.hpp - исходники плагинов бывают не только cpp, но и c.
   В смысле pure C :).

chupakabra 26.10.2009 06:02:00 +0200 - build 1183

1. Исправлена обработка пустой входной строки в FSF.ConvertPath() и FSF.GetPathRoot().

t-rex 26.10.2009 00:45:52 +0200 - build 1182

1. Новая настройка интерфэса: [ ] ClearType friendly redraw (can be slow)
   По дефолту отключено. Вроде бы решает все проблемы артефактов клиртайпа.
   За одно наверно решает и проблему отрисовки иврита (если конечно шрифт моноширный).

t-rex 24.10.2009 23:39:28 +0200 - build 1181

1. Кто то забыл выставить FSF.GetCurrentDirectory :)

drkns 24.10.2009 20:23:01 +0200 - build 1180

1. Т. к. т. н. "текущий каталог" не всегда совпадает с тем каталогом, который в данный момент на панели, вводится некоторое уточнение:
    - добвлена FSF.GetCurrentDirectory - возвращает внутренний "текущий каталог" far;
    - FCTL_GETCURRENTDIRECTORY переименована в FCTL_GETPANELDIR, ибо этим и является.

    Плагины не сломались, но лучше их таки пересмотреть и при необходимости заменить FCTL_GETCURRENTDIRECTORY на FSF.GetCurrentDirectory.

drkns 23.10.2009 22:51:44 +0200 - build 1179

1. Mantis#0001137: Удаление директорий, в которых есть ссылки.

t-rex 23.10.2009 12:34:50 +0200 - build 1178

1. Вернём назад нормальный размер стека, ибо бага она в TmpPanel.

chupakabra 22.10.2009 22:16:00 +0200 - build 1177

1. Увеличен размер стека (а то tmppanel стала падать после замены MAX_PATH на NT_MAX_PATH)

drkns 21.10.2009 22:31:01 +0200 - build 1176

1. Mantis#0001131: Лишнее сканирование подкаталогов при удалении символической связи

2. Криво обрабатывалось переименование папок по маске.

svs 21.10.2009 18:08:30 +0300 - build 1175

1. В UserMenu "пропало" расстояние между "F10" и "Этим пунктом".

drkns 20.10.2009 20:35:25 +0200 - build 1174

1. При удалении файлов/папок отображается прогресс.

2. Mantis#0001112: Конфликт копирования/перемещения (папка или файл)

3. При отсутствии доступа к папке при попытке входа в неё выдавался неправильный код ошибки.

4. В корнях UNC-путей не показывается элемент "..".

5. printf, коррекция типов и т. п.

6. Показ овнера не работал для путей глубже MAX_PATH.
   На будущее - при передаче имён файловых объектов в функции Windows API используйте класс NTPath, он сам добавит объекту "curdir" в правильном формате.

7. Не работало шифрование папок.

svs 20.10.2009 17:03:59 +0300 - build 1173

1. Не показывает Owner в панелях (Ctrl-8)
   Добавим "curdir" тестируемому объекту.

svs 19.10.2009 11:41:50 +0300 - build 1172

1. Mantis#0001030: Несанкционированная смена атрибутов файла FARMENU.INI

chupakabra 18.10.2009 20:45:00 +0200 - build 1171

1. Поправлен механизм проверки рекурсивных симлинков.

2. При удалении ScanTree не должен заходить в симлинки.

3. Незначительные изменения в ConvertNameToReal().

drkns 16.10.2009 06:24:11 +0200 - build 1170

1. Забытый отладочный код :)

drkns 16.10.2009 00:08:51 +0200 - build 1169

1. Поправка к 1167.

chupakabra 15.10.2009 23:47:00 +0200 - build 1168

1. Mantis#0001094: Проблема при удалении каталогов по сети.

drkns 15.10.2009 19:12:29 +0200 - build 1167

1. Mantis#0001113: Заполнение экрана символами '?'.

2. Продолжаем давить printf в проблемных местах.

drkns 15.10.2009 00:46:56 +0200 - build 1166

1. Из TechInfo #10 убраны читерские опции [Alt]EditorKey, [Alt]CmdLineKey, [Alt]DialogKey, [Alt]FastFindKey.

   Кнопкосочетания для XLat теперь настраиваются честными макросами, примерно так:
   -------------------------------------------------------------
   REGEDIT4

   [HKEY_CURRENT_USER\Software\Far2\KeyMacros\Common\CtrlShiftX]
   "Sequence"="$XLat"
   -------------------------------------------------------------
   AltR.reg, Apps.reg, CtrlR.reg, CtrlShiftX.reg в addons\XLat\Russian переведены на использование макроязыка.

drkns 14.10.2009 19:25:48 +0200 - build 1165

1. Warnings (level 4).

2. <Get|Free>VirtualFindData для A-плагинов.

drkns 13.10.2009 22:34:34 +0200 - build 1164

1. Warnings.

drkns 13.10.2009 22:26:59 +0200 - build 1163

1. Mantis#0000789: После открытия Viewer под текстом "проглядывается" текст от панелей
   Mantis#0000978: Какие-то неотображаемые символы "съедают" текст при просмотре в UTF-16

  Гадит 0xffff (WEOF), *printf нормально с ним не работает и работать не будет, посему для него написана "замена": классы FormatString и FormatScreen.
  Пока что "умеют" width, precision, align, работают со строками и целыми числами.
  Вьюверу/редактору этого должно хватить, в остальных местах - со временем.

2. Иногда не срабатывали команды типа "cd буква_диска:"

chupakabra 13.10.2009 03:00:00 +0200 - build 1162

1. Дополнение к build 1161.

chupakabra 13.10.2009 02:14:00 +0200 - build 1161

1. Скорректирована работа ConvertNameToReal() для дисков, не имеющих уникального идентификатора тома.

drkns 11.10.2009 21:50:10 +0200 - build 1160

1. PutFilesW теперь выглядит так:

   int WINAPI PutFilesW(
     HANDLE hPlugin,
     struct PluginPanelItem *PanelItem,
     int ItemsNumber,
     int Move,
     const wchar_t *SrcPath,
     int OpMode
   );

   где SrcPath - путь источника (откуда получим файлы).

   Плагины, использующие PutFilesW - сломались, как обычно :)

2. Mantis#0001090: Панель с прямыми слэшами становится "нерабочей".

svs 07.10.2009 17:30:36 +0300 - build 1159

1. Mantis#0001099: Узнать, есть ли элемент без горячей клавиши
     N=checkhotkey(S[,N1])

     возвращает:
     -1 - не в своей области
      0 - нет такого
     >0 - позицию элемента

     Параметр N1 - с какой позиции начать искать
     Если S пустая строка, то функция возвращает -1, 0 или номер позиции, у которой отсутствует хоткей

svs 06.10.2009 20:51:50 +0300 - build 1158

1. Macro: CheckHotkey() работает в области "Dialog".
   Если текущий элемент ListBox или открытый Combobox (или открытый History), то CheckHotkey() работает с этим элементов.

chupakabra 05.10.2009 20:49:00 +0200 - build 1157

1. Обновляем текущий каталог для плагинов с OPIF_REALNAMES.

svs 05.10.2009 17:12:13 +0300 - build 1156

1. Mantis#0000956: напротив некоторых плагинов в списке стит буква "А". В хелпе об этом ни слова.
   from igor_yudincev.

2. Mantis#0001095: Состояние Title (заголовок текущего объекта) пуст при вызове из панелей

3. Mantins#0001088: Пути в командной строке запуска Фара и слеш (\)

chupakabra 05.10.2009 12:36:00 +0200 - build 1155

1. Исправлена проблема в ConvertNameToReal() при работе с динамическими дисками.

drkns 30.09.2009 20:43:48 +0200 - build 1154

1. Уточнение 1153.1 для случая корневого каталога пустого диска.

drkns 29.09.2009 18:07:44 +0200 - build 1153

1. apiSetCurrentDirectory всегда возвращал TRUE, даже если искомый каталог отсутствовал.
   Как следствие - можно было "заходить" в несуществующие папки.
   Сюда же Mantis#0001078: FCTL_SETPANELDIR ошибочно успешно отрабатывает для несуществующего пути.

2. Если в редакторе/просмотре отключен titlebar, то и часы на нём рисовать не надо.

3. Так как hex-просмотр текста в UTF8 сейчас не работает чуть менее, чем совсем - запретим эту комбинацию вообще, во избежание однообразных унылых багрепортов.

4. Косметика: в FindFirstFile передаём '*' вместо '*.*'.

svs 29.09.2009 11:50:38 +0300 - build 1152

1. Mantis#0001064: Error in string handling
   Очередное уточнение операций:
     1. string + string = string
     2. string + num = string
     3. num + string = string
     4. strnum + string = string
     5. string + strnum = string
     6. num + strnum = num
     7. strnum + num = num

   Т.е. (применяем принудительное преобразование к string):
     msgbox("1" + 0) ==> 1
     msgbox(1 + "2") ==> 3
     msgbox("foo1" + 0) ==> "foo10"
     msgbox(string(1) + "2") ==> "12"
     %i=1; msgbox("0" + string(%i)) ==> "01"
     %i=1; msgbox(int("012ag") + %i) ==> 13
     %i=1; msgbox(string(int("012ag")) + %i) ==> 13
     %i=1; msgbox(string(int("012ag")) + string(%i)) ==> "121"

zg 28.09.2009 20:33:47 +0200 - build 1151

1. Edit::WordDiv устанавливался в значение Editor::WordDiv::m_pData::m_pData.
   если плагин менял WordDiv редактору на большее по размеру значение, память
   переаллоцировалась и Edit::WordDiv указывал в пустоту.

2. при выключенных часах в редакторе и неуникодном тексте обрезалась скобка в строке статуса.

3. gcc warnings.

drkns 28.09.2009 20:02:46 +0200 - build 1150

1. From Tim Sobolev: Mantis#0001074: Impossible to create/edit/view file with name started with 2 or more '.'

svs 28.09.2009 20:59:21 +0300 - build 1149

1. Mantis#0001070: XLat: переключение раскладки клавиатуры при наличии в системе более 2 раскладок
   Добавлен [HKEY_CURRENT_USER\Software\Far2\XLat]"Layouts" - строка, перечисляющая через ';' HKL раскладок, которые нужно "крутить"
   Например, "Layouts"="04090409;04190419" (или "Layouts"="0409;0419")
   Если указано меньше двух, то механизм "отключается" и раскладки крутятся как и раньше.
   Far для "Layouts" считывает первые 10 значений, остальные, если есть, игнорируются (думаю - за глаза хватит :-).

   Так же добавлен комментарий (чтобы не искать больше :-) про правила...

2. Mantis#0001064: Error in string handling
   Macro: Здесь, если "string1 операция string2", то результат как string (для '+' - объединение строк, для остальных "string1")

3. Macro: Для Editor.Set() добавлены 5 индексов (первый параметр):
      15: Show scrollbar
      16: Allow editing files opened for writing
      17: Select found (в поиске)
      18: Regular expressions (в поиске)
      19: Pick up the word (в поиске)

drkns 27.09.2009 22:50:36 +0200 - build 1148

1. Фар иногда мог схлопываться, если при старте окно консоли было максимизировано.

2. FSF.ConvertNameToReal больше нет. А есть FSF.ConvertPath(CONVERTPATHMODES Mode,const wchar_t *Src, wchar_t *Dest, int DestSize)
   При Mode=CPM_REAL работает как ConvertNameToReal;
   при Mode=CPM_FULL работает как ConvertNameToFull.

   Ахтунг: использовать GetFullPathNameW для преобразования относительного пути в абсолютный после 1145 билда нельзя, используйте ConvertPath(CPM_FULL, ...).

3. gettable.?pp -> codepage.?pp

garry 27.09.2009 22:54:30 +0300 - build 1147

1. Mantis#0001017  Сделано более общее решение, т.е. поддерживается или нет кодовая страница
   проверяется как в редакторе так и во вьювере и не только при автодетекте, но и при загрузке
   кодовой страницы из кэша;

2. Небольшой рефакотринг связанный с таблицами перекодировки: имена функций, а также замена
   Table -> CodePage;

3. Теперь const UnicodeString& UnicodeString::SetData(const UnicodeString &strCopy) не роняет
   фар, если туда передать NULL;

4. TechInfo #80 (См. сборку #1019).

drkns 27.09.2009 08:56:45 +0200 - build 1146

1. Учитываем, что при использовании префикса \\?\ в путях windows отключает ИИ, заменяющий '/' на '\', посему менять надо самостоятельно.

2. При старте внутренняя strCurrentDirectory инициируется текущим каталогом процесса, дабы работали всякие /e и /p.

drkns 27.09.2009 01:05:56 +0200 - build 1145

1. From Tim Sobolev: собственная реализация ConvertNameToFull.
   Должны починиться все проблемы, связанные с использованием GetFullPathName: спец. имена (nul, con и т. п.), точки/пробелы в конце имён и т. п.

2. Свершилось то, о чём так долго говорили большевики - far не использует SetCurrentDirectory при навигации по папкам.
   Как следствие, бонусы:
     - хождение по папкам глубже MAX_PATH;
     - вход в папки, оканчивающиеся точками, пробелами, и прочими ужасами;
     - папка, открытая на панели, не блокируется от удаления извне;
     - и прочее.
   Соотвественно, могут проявиться и баги. Соблюдаем осторожность.

   Для оемных плагинов текущий каталог всё же выставляется перед вызовом их экспортируемых функций.
   Ибо совместимость.

   Для уникодных плагинов ничего не выставляется.
   Посему некоторые нерадивые плагины могут разнообразно глючить.
   Ещё не поздно исправиться и начать использовать FCTL_GETCURRENTDIRECTORY.

svs 26.09.2009 19:07:24 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
    from: max rusov
      PluginW.pas: Добавил поддержку RegExp'ов

zg 26.09.2009 17:05:26 +0200 - build 1144

1. продолжение Mantis#0000921: Проблемы с ECTL_SAVEFILE.

2. при save as из редактора заголовок редактора и консоли не
   сразу обновлялись новым именем файла.

zg 26.09.2009 14:24:24 +0200 - build 1143

1. уточнение 1136 для несуществующих кодировок.

zg 25.09.2009 22:59:27 +0200 - build 1142

1. Mantis#0000921: Проблемы с ECTL_SAVEFILE.

svs 25.09.2009 18:00:55 +0300 - build 1141

1. Mantis#0001068: В диалоге замены два хоткея "R"

2. Mantis#0001063: Добавление в help-файл списка всех макрокомбинаций

3. Mantis#0001066: [x] Pick up the word in editor

4. Добавка в Help`ы по RegExp`ам

zg 25.09.2009 16:25:35 +0200 - build 1140

1. при замене с регэкспами если указанной скобки нет, то она меняется на пустую строку.

zg 24.09.2009 23:52:29 +0200 - build 1139

1. f6 в редакторе просмотре сохраняет текущую кодовую страницу.

zg 24.09.2009 23:40:59 +0200 - build 1138

1. плагины в Viewer/Editor могут теперь передавать конкретные кодовые страницы.

zg 24.09.2009 22:19:38 +0200 - build 1137

1. при замене с регэкспами можно в строке замены ссылаться на скобки в строке поиска: $0-$9,$A-$Z.
   любая другая последовательность $* заменяется на *.

2. при замене в диалоге подтверждения показывается реально найденная строка, а не регэксп.

zg 24.09.2009 21:02:09 +0200 - build 1136

1. простейшая имплементация ESPT_CODEPAGE.

zg 24.09.2009 19:03:28 +0200 - build 1135

1. RegExp API

   RegExpControl(HANDLE hHandle, int Command, LONG_PTR Param)

   Command:

   RECTL_CREATE           - hHandle - 0.
                            Param - HANDLE*, в который запишется HANDLE регэкспа.
                            При неудаче вернёт FALSE и Param=INVALID_HANDLE_VALUE.
   RECTL_FREE             - hHandle - HANDLE, который вернул RECTL_CREATE.
   RECTL_COMPILE          - hHandle - HANDLE, который вернул RECTL_CREATE.
                            Param - указатель на строку с регулярным выражением.
   RECTL_OPTIMIZE         - hHandle - HANDLE, который вернул RECTL_CREATE.
   RECTL_MATCHEX          - hHandle - HANDLE, который вернул RECTL_CREATE.
                            Param - указатель на RegExpSearch.
                            RegExpSearch:
                            Text - строка.
                            Position - позиция в строке.
                            Length - длина строки.
                            Match - скобки.
                            Count - количество скобок.
                            Reserved - обязательно должен быть нулём.
   RECTL_SEARCHEX         - hHandle - HANDLE, который вернул RECTL_CREATE.
                            Param - указатель на RegExpSearch.
   RECTL_BRACKETSCOUNT    - hHandle - HANDLE, который вернул RECTL_CREATE.

svs 22.09.2009 21:07:01 +0300 - build 1134

1. Macro: по мотивам Mantis#1064
   msgbox("01") выводит в заголовке "1" вместо "01"
   Остальное согласно спецификации (см. build 1127#6)

drkns 20.09.2009 23:50:53 +0200 - build 1133

1. Если при копировании/переносе нескольких файлов в имени приемника отсутствует заключительный слеш, и сам приемник
   при этом отсутствует - выдаётся уточняющий запрос: под "приемником" подразумевается папка или файл?

zg 19.09.2009 01:53:37 +0200 - build 1132

1. макросы, запущенные плагином из ProcessSynchroEvent, не всегда исполнялись.

chupakabra 17.09.2009 13:24:00 +0200 - build 1131

1. Дополнение к исправлению UserMenu из build 1130.

svs 17.09.2009 12:40:39 +0300 - build 1130

1. from Alexey Samlyukov:
   В UserMenu некорректно отрисовывается длинное название субменю (если не вмещается в размеры экрана)

chupakabra 14.09.2009 19:03:00 +0200 - build 1129

1. Макро SELF_TEST(code), предназначенное для автоматического тестирования кода. code выполняется при запуске отладочной версии.
   В модуль pathmix добавлена процедура тестирования некоторых функций.

zg 15.09.2009 20:52:39 +0200 - build 1128

1. gcc сборка.

2. gcc варнинги.

svs 15.09.2009 20:37:40 +0300 - build 1127

(много форматирования - пробелы на табы)

1. Макросы грузяться после плагинов (необходимо для последующих реализация в макродвижке)

2. keys.hpp: KEY_MACRO_U_BASE - резервирование места под Mantis#18 и Mantis#466

3. EnumRegValueEx() - добавлен агрумент: тип енуменированного значения

4. Macro: Menu.Value - содержит текст текущего пункта меню, как он виден на экране (без &)

5. Macro: добавлен тип double
   Было __int64 и wchar_t*, добавился double. Собственно и говорить то нечего, кроме:
    * разделитель целой и дробной частей - точка;
    * функций sin, cos, tan, etc. нет - это скорее дело для Mantis#0000466 и Mantis#0000018;
    * в памяти такое число занимает 8 байт;
    * константы в реестре (ветка "KeyMacro\Const") в виде REG_SZ (в соответствии с п.2 Far сам преобразует их в double  в момент старта) это криво (может имеет смысл хранить в REG_BINARY?);
    * преобразование double в строку осуществляется по формату "KeyMacro/CONVFMT:REG_SZ" (по умолчанию "%.6g")

6. Macro: уточнение "операций".
    Для начала определения:
        * Int - целое число;
        * Dbl - вещественное число;
        * StrInt - строка, которая полностью преобразуется в Int;
        * StrDbl - строка, которая полностью преобразуется в Dbl;
        * Str - строка, которая не может быть полностью преобразована в Int или Dbl (собственно, просто набор символов).
    В соответствии с этими определениями, там, где это возможно, происходит преобразование строки в число и выполнение операции. Дальше приведены таблицы, показывающие результаты работы операций:

              +     |B.Int    B.Dbl  B.StrInt  B.StrDbl   B.Str
          ----------+------+--------+---------+----------+------
          A.Int     |Int      Dbl    Int       Dbl        Str
          A.Dbl     |Dbl      Dbl    Dbl       Dbl        Str
          A.StrInt  |Int      Dbl    Int       Dbl        Str
          A.StrDbl  |Dbl      Dbl    Dbl       Dbl        Str
          A.Str     |Str      Str    Str       Str        Str
         Здесь Str обозначает конкатенацию двух операндов.

           - * / %  |B.Int    B.Dbl  B.StrInt  B.StrDbl   B.Str
          ----------+------+--------+---------+----------+------
          A.Int     |Int      Dbl    Int       Dbl        A.Str
          A.Dbl     |Dbl      Dbl    Dbl       Dbl        A.Str
          A.StrInt  |Int      Dbl    Int       Dbl        A.Str
          A.StrDbl  |Dbl      Dbl    Dbl       Dbl        A.Str
          A.Str     |A.Str    A.Str  A.Str     A.Str      A.Str
         Здесь A.Str - возвращается значение операнда A.

         Для бинарных операций операнды Dbl или StrDbl предварительно преобразуется к Int.

           Op       |B.Int    B.Dbl  B.StrInt  B.StrDbl   B.Str
          ----------+------+--------+---------+----------+------
          A.Int     |Int      Int    Int       Int        A.Str
          A.Dbl     |Int      Int    Int       Int        A.Str
          A.StrInt  |Int      Int    Int       Int        A.Str
          A.StrDbl  |Int      Int    Int       Int        A.Str
          A.Str     |A.Str    A.Str  A.Str     A.Str      A.Str
         Здесь "Op"  | & ^ << >>

         В операциях сравнения (==, !=, <, <=, >, >=) операнды преобразуются (там, где это возможно) и сравниваются.
         В логических OR и AND операнды сравниваются как есть, строки не преобразуются в StrInt и StrDbl, а проверяются на не пустую строку.

7. Macro: Editor.SelValue - содержимое аналогично тому, как Far помещает блок в clipboard (блок текста с наличием crlf в конце строк)

8. Macro: функции "Menu.Select" имеет вид "N=Menu.Select(S[,N[,Dir]])" - добавлен третий параметр, направление поиска, Dir:

    * 0 - от начала в конец списка;
    * 1 - от текущей позиции в начало;
    * 2 - от текущей позиции в конец списка пунктов меню.

9. в хелпе работают макроконструктивы <!Macro:Vars!> и <!Macro:Consts!>, в lng-файлах  ищем "// for <!Macro:Vars" - задают форматы вывода

10. Если Far стартован с ключами /e или /v, то не грузятся макросы из следующих макрообластей: Shell, Search, Disks, MainMenu, InfoPanel, QviewPanel, TreePanel, FindFolder

11. Mantis#0001057: Far Manager версия 1.75 build 2605, x86 При выборе Alt+F1/Alt+F2 -> Process List Вылетает
    Если в реестре у плагина в значении StartPanelMode пурга, принудительно выставляем нулевой режим панели
    (решение пока влоб, а там, после ухода от статического массива, видно будет)

zg 15.09.2009 18:23:10 +0200 - build 1126

1. Mantis#0001058: Диапазон для класса знаков не работает для русских букв
   RegExp::Optimize урезал уникод до первых 256 символов.

drkns 14.09.2009 19:19:36 +0200 - build 1125

1. Установка атрибутов в некоторых случаях могла приводить к падению.

chupakabra 14.09.2009 19:03:00 +0200 - build 1124

1. Mantis#0001055 & Mantis#0001056: Проблемы при переходе в корневую папку (Ctrl+\).

drkns 13.09.2009 23:57:35 +0200 - build 1123

1. Применяем #pragma once вместо include guard. Должно положительно отразиться на времени компиляции.

drkns 13.09.2009 20:12:26 +0200 - build 1122

1. С форума: падало, если при открытом infopanel/qview переключиться в файловую панель через меню.

t-rex 13.09.2009 14:49:26 +0200 - build 1121

1. С какого то перепугу кто то отрубил regexp в replace.

2. Не забывайте, include они case sensitive в некоторых операционках.

drkns 13.09.2009 11:24:41 +0200 - build 1120

1. Mantis#0001054: Неправильно отображается свободное место на диске.

chupakabra 12.09.2009 22:53:00 +0200 - build 1119

1. Изменение в API: farConvertNameToReal() всегда возвращает необходимый размер буфера (по аналогии с farGetPathRoot())

drkns 12.09.2009 19:04:40 +0200 - build 1118

1. Очередной divide & conquer:
   - АХТУНГ! - минимальный поддерживаемый sdk теперь 7.0 для vc, w32api-3.13 для gcc;
   - sdkpatches.hpp разделён на отдельные части для vc и gcc;
   - выкинуты макросы i64() и ui64(), ибо vc тоже умеет ll и ull;
   - __try и __except заменяются макросами только в gcc;
   - выкинуто ещё некоторое количество мусора из headers.hpp и pluginold.hpp

2. Немного облегчён класс диалога.

3. macro: itoa() не работал с 64-битными числами.

chupakabra 11.09.2009 01:51:00 +0200 - build 1117

1. Поправлена сборка gcc.

2. makefile_gcc: не оптимизируем отладочную версию; поправлены зависимости (make -j работал некорректно)

chupakabra 11.09.2009 01:02:00 +0200 - build 1116

1. В панели плагина некорректно работал поиск начиная с корня.

2. Добавил TRY EXCEPT в FindFiles::WriteDialogData().

3. Немного переделал код FindFile с целью его упрощения.

drkns 10.09.2009 23:12:56 +0200 - build 1115

1. К scantree прикручена защита от рекурсивных симлинков.

2. В win2k не работало создание хардлинков.

3. Mantis#0001049: Ошибка при поиске файлов по %PATH%.

chupakabra 09.09.2009 16:47:00 +0200 - build 1114

1. GetPathRoot() реализована через ConvertNameToReal().

chupakabra 09.09.2009 06:30:00 +0200 - build 1113

1. Mantis#0001039: Не запоминалось состояние опции "Del removes blocks in edit controls".

chupakabra 09.09.2009 05:40:00 +0200 - build 1112

1. Поправлена сборка gcc и x64.

chupakabra 09.09.2009 05:01:00 +0200 - build 1111

1. ConvertNameToReal() теперь использует NtQueryObject() на Windows XP.
   Старый код с хождением по симлинкам удален полностью.

drkns 08.09.2009 22:18:01 +0200 - build 1110

1. Не работало создание по F7 папки с точкой в конце.

chupakabra 08.09.2009 21:54:00 +0200 - build 1109

1. Для ConvertNameToRealModern() учитываем что входной путь может существовать лишь частично.

2. UnicodeString::Replace(): допускаем, что Data может указывать на данные в самой строке.

3. pathmix: несколько новых функций	для работы с путями.

chupakabra 07.09.2009 18:25:00 +0200 - build 1108

1. Mantis#0001037: зависание внутри ConvertNameToReal().
   Теперь по возможности используется функция GetFinalPathNameByHandle() вместо шаманства с симлинками.

2. Полезные методы для UnicodeString: Replace, Insert, Remove, etc.

t-rex 06.09.2009 22:57:09 +0200 - build 1107

1. Mantis#1038: Неправильное отображение вложенных подкаталогов в дереве.

chupakabra 05.09.2009 04:49:00 +0200 - build 1106

1. VMenu: место под правый горизонтальный скроллер выделяется только если он действительно требуется.
   Это исправляет проблему с плагинами, которые считают ширину листбокса как ("макс. длина строки" + 4).

zg 04.09.2009 16:44:34 +0200 - build 1105

1. после 1103 поиск требовал в два раза больше процессорных ресурсов.

t-rex 04.09.2009 00:16:00 +0200 - build 1104

От греха подальше:

1. При поиске в редакторе с [x] Select found - выставляем курсор на первой букве найденного текста,
   как и в поиске без этой опции и вообще как у нормальных людей.
   В связи с этим сразу отпадает проблема работы regexp поиска с этой опцией, и выкидывается лишний кусок кода
   с гнусным AI который мог к ещё разным проблемам приводить.

drkns 03.09.2009 20:01:23 +0200 - build 1103

1. При поиске по содержимому в статусной строке отображаются проценты для текущего файла.
   Ну и перерисовка там теперь с тем же интервалом, что и везде.

svs 03.09.2009 18:07:57 +0300 - build 1102

1. Корректировка Mantis#0000547
      "...Открываем по F4 файл FarRus.hlf
      F7 ищем цифру 3 и за ней еще какую-нибудь
      3\d
      и ставим галочку [x] Регулярные выражения.
      находим, нажимаем Shift+F7 - все работает, ищет дальше.

      Если еще ставим галочку [x] Выделять найденное
      то первый раз находит, а Shift+F7 не работает..."

   До поры (до разборок) закомментим проблемный кусок/
   Помечен "CHECK!!!: for..."

chupakabra 03.09.2009 15:36:00 +0200 - build 1101

1. Mantis#0001002: крах при работе с VMenu в случае если все элементы скрыты

2. Добавил синхронизацию в VMenu::GetMaxLineWidth()

t-rex 31.08.2009 22:29:55 +0200 - build 1100

1. Продолжим Mantis#1025, было ещё одно внутренее ограничение на длину записи в descript.ion.

drkns 31.08.2009 19:37:49 +0200 - build 1099

1. Mantis#0001029: Переустановка атрибутов без надобности
   Самое смешное - логика "если соответствующие аттрибуты/дата/время не менялись, то и не трогать"
   как бы присутствовала, но была нещадно поломана всякими IsFileWritable.

2. Там же устранено одно досадное недоразумение - дата/время у симлинков/связей теперь выставляются.

3. В поле времени доступно управление миллисекундами.

4. FILE_FLAG_BACKUP_SEMANTICS переехал внутрь apiCreateFile.

t-rex 29.08.2009 23:11:42 +0200 - build 1098

1. Доделка пред. билда.

drkns 29.08.2009 21:53:31 +0200 - build 1097

1. Mantis#0001026: Не работает кнопка «Искать» в диалоге поиска

   Господа, убедительная просьба - если приходится ковырять какой-то древний диалог,
   не ленитесь попутно заменять в нём числовые константы именованными, потом самим же легче будет.

drkns 29.08.2009 00:51:58 +0200 - build 1096

1. Задавим несколько memset'ов.

2. Уточнения хелпа.

chupakabra 28.08.2009 18:28:00 +0200 - build 1095

1. FCTL_REDRAWPANEL могла вернуть FALSE в случае успеха

svs 28.08.2009 19:14:22 +0300 - build

1. Перевод хелпа от Igor Yudincev

svs 28.08.2009 19:01:31 +0300 - build 1094

1. Mantis#0001021: Сохранение состояния 'Select found'
   кроме этого так же сохраняется состояние "RegExp"

2. Mantis#0000872: RegExp support in Editor and Viewer
   from Igor Yudincev
   Здесь в диалоге замены опция про RegExp пока недоступна (задел на будущее)
   Добавлен коммент в Edit::Search():

    // Q: что важнее: опция диалога или опция RegExp`а?

3. Опция RegExp во вьювере - тоже самое, пока в режиме RO (задел на будущее)

4. Help: "@RegExp. Начало" - раздел есть, нужно аккуратно его корректировать, по мере развития событий.
   Так же, ка ки в редакторе, сохраняется состояние "RegExp".

   ВНИМАНИЕ! Все, что описано в разделе "@RegExp" на данном этапе не пашет (но будет!)

zg 28.08.2009 16:10:30 +0200 - build 1093

1. Mantis#0001025: FAR v2.0.1091 ( и v2.0.981) обрезает записи в descript.ion при F5 или F6 до 260 символов.

2. gcc warnings.

t-rex 27.08.2009 20:09:59 +0200

1. Hungarian lng update from Far Hunor.

drkns 27.08.2009 19:54:05 +0200 - build 1092

1. Символические ссылки теперь можно создавать и в 2000/XP/2003.
   Разумеется, из этого не следует, что они будут там работать.

2. Ещё одна добавка к #0001012.

3. В диалоге подтверждения перезаписи R/O файла кнопка подписывается в зависимости от операции (overwrite/append).

drkns 26.08.2009 20:02:15 +0200 - build 1091

1. Mantis#0001019: Устанавливается атрибут "Encrypted" при копировании (перемещении) папок.

2. Mantis#0001012: "Иногда при копировании в 1090 возникает ощущение, что имя нового копируемого файла появляется когда ещё прогресс старого файла стоит на 100%."

drkns 25.08.2009 20:32:14 +0200 - build 1090

1. Вся визуализация процесса копирования вынесена в (почти) отдельный класс.
   Должны починиться баги с неперерисовкой прогресбара и отображением не того имени (Mantis#0001012).
   Также выкинута куча разнообразного мусора из копира.

2. Т. к. GetUserNameExW есть везде - подсократим код, линкуя её статически.

3. Панель быстрого просмотра перечитывалась и перерисовывалась на каждый чих.

4. Для файловых симлинков в панелях показываем "<symlink>" в колонке размера.

5. MkSymLink() переехала в flink.cpp.

svs 25.08.2009 17:20:04 +0300 - build 1089

1. Mantis#0000970: Дата изменения descript.ion не должна обновляться, если изменений не было
   from Maximus

svs 24.08.2009 19:15:12 +0300 - build 1088

1. В Info-панели после типа FS не стоял пробел.

2. Метка "Память" наезжает на рамку панели.

3. Mantis#0000859: RFE: Show UserName@Domain on the information panel
   Заюзаем 8-й тип - "UserName@Domain" (для локального юзера или были ошибки при получении юзера... будет как сейчас: "юзер")
   + немного форматирования в InfoList::DisplayObject()

   По большому счету форму показа нужно задавать (диалог? techinfo?).

drkns 22.08.2009 00:44:39 +0200 - build 1087

1. Перетрях диалога атрибутов. Сокращения, оптимизации, форматирование, как обычно.
   Плюшки:
   - исправлено несколько мелких багов;
   - добавлена возможность редактировать содержимое reparse point'а. Сильно экспериментально.

2. Уточнения создания reparse point'ов.

3. Из врапера убраны FAR_USE_INTERNALS.

4. Таймауты перерисовки всяческих прогрессбаров теперь контролируюся одной переменной.

5. Перевод для "Standard association".

svs 19.08.2009 11:42:58 +0300 - build 1086

1. Mantis#0000905: Изменения в eval
   Вариант eval("",1) вернет ошибку 12 ("Zero-length macro")
   Считаем, что пустые макропоследовательности недопустимы.

svs 17.08.2009 12:26:34 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
    from: max rusov
      PluginW.pas: убраны FAR_USE_INTERNALS

drkns 16.08.2009 09:05:05 +0200 - build 1085

1. gcc.

drkns 15.08.2009 20:13:55 +0200 - build 1084

1. Уточнения предыдущего билда.
   pointer_array заменен на TPointerArray.

drkns 14.08.2009 23:38:43 +0200 - build 1083

1. Более-менее доделан выбор плагина для SetFindList и prefix.
   Локализация диалога настройки.
   По умолчанию все меню выбора плагина выключены.

svs 14.08.2009 11:51:50 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
    from: max rusov
      PluginW.pas: Добавил поддержку x64. Тестировалось под FreePascal 2.3.1

t-rex 12.08.2009 12:01:41 +0200 - build 1082

1. From Evgeny Zhirnov: Mantis#1006: Добавить explicit к конструктору UnicodeString::UnicodeString(size_t, size_t=0)

svs 11.08.2009 18:55:01 +0300 - build 1081

1. Не работают Ctrl-Home/End на цифровой клавиатуре
   from: Alexey Samlyukov

drkns 09.08.2009 17:21:34 +0200 - build 1080

1. Если на панели был выделен один объект и курсор стоял на "..", то в PanleInfo.SelectedItemsNumber оказывался 0.

chupakabra 09.08.2009 16:10:00 +0200 - build 1079

1. Продолжение 1075: исправление горизонтальной прокрутки для VMenu

chupakabra 09.08.2009 05:13:00 +0200 - build 1078

1. VMenu: автоматическая расстановка шоткатов учитывает горизонтальный скроллинг.

drkns 08.08.2009 20:20:06 +0200 - build 1077

1. Оптимизация сброса в консоль экранного буфера. В некоторых случаях должно стать в разы быстрее.

2. Уточнение в рисовалке меню.

zg 08.08.2009 17:40:18 +0200 - build 1076

1. уточнение 1064 для папок при [ ] Sort folder names by extension.

chupakabra 07.08.2009 21:15:00 +0200 - build 1075

1. Mantis#0000998: По Alt-Right у каждой буквы диска рисуется символ «
   Исправлена горизонтальная прокрутка для VMenu

drkns 06.08.2009 19:14:43 +0200 - build 1074

1. Продолжение 1073: лишние преобразования путей при создании ссылок.
   Там же - убрана мешанина из табов/пробелов и прочая косметика.

drkns 06.08.2009 01:07:51 +0200 - build 1073

1. ConvertNameToReal криво работал с симлинками, указывающими на \\?\UNC\... или \\?\Volume{...

svs 05.08.2009 23:03:44 +0300 - build 1072

1. В ConvertFileSizeString() попутаны префиксы exa и peta
   (see http://en.wikipedia.org/wiki/SI_prefix)

t-rex 05.08.2009 14:56:05 +0200 - build 1071

1. From Evgeny Zhirnov: Mantis#995: Исправление операторов копирования

2. Немного форматирования.

drkns 04.08.2009 21:03:08 +0200 - build 1070

1. Перетрях ассоциаций - упрощения, оптимизации, форматирование и т.п. Как обычно - соблюдаем осторожность.
   Плюшки:
   - каждую ассоциацию теперь можно "включать" и "выключать", не стирая (и, соответственно, не теряя) текст команды.
   - снято ограничение в 32 ассоциации на одно расширение;
   - пункты меню ассоциаций можно двигать вверх-вниз по Ctrl<Up|Down>;

2. При включенном врапе во вьювере блокируется прокрутка вправо.

3. В Modal::ReadInput зачем-то было вот такое чудо:
    if (CloseFARMenu){
      SetExitCode(TRUE);
    Это приводило к тому, что если при открытом меню закрыть фар по [x], то меню закрывалось с ExitCode==1,
    т.е. всегда происходил "запуск" второго по счёту пункта меню. О возможных последствиях такого поведения догадайтесь сами.
    Теперь ExitCode ставится как положено: -1. Если вдруг это шаманство кому-то было нужно - сигнализируйте.

4. С форума: "Падает Far 2.0 build 952 из-за MultiArc..."
   Только не из-за MultiArc, а из-за попыток дописать NULL к UnicodeString. Опять, да.

t-rex 04.08.2009 19:55:56 +0200 - build 1069

1. Mantis#992: /[^ab]/
   короче "not set" вообще особо не работал.

svs 04.08.2009 16:42:10 +0300 - build 1068

1. Help для "поиска/замены" в редакторе. Начало.
   * в FarEng.hlf.m4 - русские буковки
   * в FarHun.hlf.m4 - только пустой раздел

   по мере внедрения RegExp хелпы будут обновляться.

svs 04.08.2009 11:27:36 +0300 - build 1067

1. В GetSearchReplaceString() добавлен параметр HelpTopic - пора писать тему помощи для поиска/замены в редакторе (с учетом build 1063)

2. В Panel::ChangeDiskMenu() избавимся от очередного str.Format()
   (From Alexey Samlyukov)

zg 03.08.2009 22:13:13 +0200 - build 1066

1. опечатка в 1064.

chupakabra 03.08.2009 02:32:00 +0200 - build 1065

1. Mantis#0000975
   Диалог с результатами поиска расширен на весь экран.
   Если имя файла слишком длинное - режем в середине, а не в конце.
   Изменение размера по Alt+F9 пока работает не совсем корректно (надо содержимое списка пересчитывать).

2. Для UnicodeString добавлены Append(const wchar_t *, size_t) и Append(wchar_t).

3. В strmix добавлена TruncStrFromCenter - как TruncStr и TruncStrFromEnd, но режет в центре строки.

zg 02.08.2009 15:11:16 +0200 - build 1064

1. новый конструктор UnicodeString(const wchar_t *lpwszData, size_t nLength).

2. Mantis#0000974: file-1.txt выше, чем file.txt

3. PointToName(string)/PointToExt(string) работают быстрее.

4. gcc warnings.

t-rex 31.07.2009 18:11:28 +0200 - build 1063

1. На затравку: ужасная имплементация regexp поиска в редакторе.
   Работает только для поиска вперёд, глючит при "select found", если строка начинается на "/" значит regexp.

2. Совсем немного форматирования, избавление от мешанины табов и пробелов.

svs 31.07.2009 13:49:18 +0300 - build 1062

1. Mantis#0000961: Неполная проверка на наличие файловых ассоциаций в реестре.
   from Ariman.
   Очередное уточнение (отвалились .lnk).

drkns 30.07.2009 21:46:46 +0200 - build 1061

1. Новое кнопкосочетание в панелях - CtrlShiftPgDn.
   Делает ровно то же самое, что и CtrlPgDn, но не перекрывается ассоциациями файлов (по аналогии с F4/CtrlShiftF4).

2. Немного тегов ^<wrap> и форматирования в справке.

drkns 30.07.2009 21:20:07 +0200

1. "Парашютики не забываем..." :)
   "*W.pas" вместо "*.pas" должны присутствовать и в мейкфайлах тоже.

svs 30.07.2009 22:11:37 +0300 - build

1. Mantis#0000986: Far 2 API - pascal
   "Ведущий рубрики" Maxim Rusov
   Вместо "*.pas" в двойке будут присутствовать "*W.pas":

   mr> Мне кажется *W - удобнее. В Delphi нельзя использовать ifdef'ы в настройках путей, поэтому приходится подключать модули условно:
   mr>
   mr>   uses
   mr>     ...
   mr>    {$ifdef Unicode}
   mr>     PluginW,
   mr>    {$else}
   mr>     Plugin,
   mr>    {$endif Unicode}
   mr>
   mr> Для этого - они должны называться по разному.

   Файлы FarColorW.pas, FarKeysW.pas и PluginW.pas, относящиеся к АПИ (для Pascal), будут постоянно обновляться "по мере развития событий"

   Если у кого есть что сказать по этому поводу - Wелкам сюда: http://bugs.farmanager.com/view.php?id=986

chupakabra 30.07.2009 17:43:00 +0200 - build 1060

1. Mantis#0000979: ошибка копирования каталога при указании маски в качестве цели
   теперь маска обрабатывается только в CopyFileTree, в ShellCopyOneFile поступает уже готовый путь

chupakabra 29.07.2009 20:27:00 +0200

1. Не используем опции для оптимизации при сборке отладочной версии.

svs 29.07.2009 20:48:11 +0300 - build

1. без билда
   исправления в scripts\mkdep.awk - "исключаем обработку самого себя"

2. актуализирован mkdep.list (однако чудовищно много зависимостей :-))
   файл mkdep.list содержит все сорцы и с помощью "scripts\mkdep.awk"  генерит far.vc.dep/far.gcc.dep
   far.*.dep нужны для слишком "безумного" nmake

chupakabra 29.07.2009 19:15:00 +0200 - build 1059

1. Mantis#0000982: Подсчет размера папки сильно тормозит на медленных файловых системах
   from CrOm
   ускорена работа функции FarGetPluginDirList

chupakabra 29.07.2009 17:03:00 +0200 - build 1058

1. Mantis#0000985: используем класс NonCopyable для запрета оператора присваивания и конструктора копирования
   from Evgeny Zhirnov

svs 28.07.2009 11:27:23 +0300 - build 1057

1. Mantis#0000981: Far падает, после вызова плагина через CallPlugin
   ...в процессе работы внутренних функций макросы отключаются...

yjh 28.07.2009 06:27:45 +0300 - build 1056

1. В хуке редиректора для win64 добавили поддержку Win2008r2 - там ntdll
   с "полуотладочным" враппером в релизе оставили :(

drkns 26.07.2009 22:12:09 +0200

1. В Vista и выше DEP теперь включён перманентно.

svs 26.07.2009 19:34:54 +0300 - build 1055

1. Mantis#0000405: по Ctrl-Enter выводить Win-диалог свойств диска.
   from igor_yudincev
   добавлена информация про Ctrl-A и F4 в файлы помощи.

2. Mantis#0000980: FAR2 падает в FileList::PluginGetPanelInfo
   from Maximus.

svs 24.07.2009 17:34:55 +0300 - build 1054

1. Уточнения про CheckShortcutFolder()
   Из-за чего, кстати, неправильно выводилось сообщение про "файл": при переходе по ссылке на не существующую папку получаем - "Файл не найден".

2. Mantis#0000405: по Ctrl-Enter выводить Win-диалог свойств диска.
   Это временно, до переделки меню в стиле "диалог+листбокс"
   Здесь вместо Ctrl-Enter стандартное поведение - Ctrl-A/F4

3. В Viewer::Search() кто-то не так выставил скобки...

drkns 22.07.2009 20:21:23 +0200 - build 1053

1. В windows 7 погнули WriteConsoleOutputW: ограничение на размер буфера у них теперь не 64 K, а "почти 64 K".
   Из-за этого самого "почти" в консоли выводился мусор вместо текста и периодически падал conhost.
   Посему теперь пишем по 32 K, от греха подальше.

2. В windows 7 погнули ReadConsoleInputW, а конкретно заполнение Event.KeyEvent.uChar.UnicodeChar.
   Из-за этого не работал ввод кодов уникодных символов по Alt-NumN.

svs 20.07.2009 18:27:06 +0300 - build 1052

1. Mantis#0000961: Неполная проверка на наличие файловых ассоциаций в реестре.
   from Ariman.
   Порядок проверки ассоциаций:

     1. [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ext] ProgID
     2. [HKСR\.ext] дефолтное значение
     3. [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ext\OpenWithProgids] до первого попадания
     4. [HKCR\.ext] OpenWithProgids до первого попадания

drkns 20.07.2009 00:36:26 +0200 - build 1051

1. Продолжаем трясти UserMenu:
   - выкинуто ещё прилично копипасты;
   - сокращено количество обращений к реестру (раза в два).
   Плюшки:
   - работает прокрутка длинных пунктов Alt-стрелками.

2. Новый флаг в FarMenuItemEx: MIF_SUBMENU.
   Пока что отвечает только за отображение ">" справа от имени пункта.
   Пока что только для внутреннего использования.

3. Экранный граббер зачем-то превращал «» в <>.

drkns 18.07.2009 20:39:05 +0200 - build 1050

1. EditorInfo::Options могло содержать неправильные данные.

drkns 17.07.2009 23:45:27 +0200 - build 1049

1. Рефакторинг UserMenu:
   - теперь оно есть класс (привет редактору и вьюверу);
   - выкинута куча копипасты. Будьте бдительны, что-нибудь вполне могло отвалиться;
   - проверка корректности горячей клавиши и названия пункта перенесена в обработчик диалога;
   Плюшки:
   - в качестве горячих клавиш могут использоваться все функциональные, вплоть до F24;
   - Разделителем теперь считается любой пункт с горячей клавишей "-". Если метка не пуста, она будет использована в качестве текста разделителя.
   - пункты меню можно двигать вверх-вниз по Ctrl<Up|Down>.

2. Частично восстановлен PROJECT_DI_MEMOEDIT.

3. Класс CachedWrite вынесен в отдельный файл.

warp 17.07.2009 19:58:00 +0300 - build 1048

1. Добавил (вернул) поддержку в (HANDLE)-2 в OpenFilePlugin. Может PictureView и заработает.
   Но это ненадолго.

svs 17.07.2009 18:03:52 +0300 - build 1047

1. Mantis#0000905: Изменения в eval

2. Mantis#0000973: Опечатка в исходнике - файл scrobj.hpp
   :-)

drkns 15.07.2009 18:30:59 +0200 - build 1046

1. В диалог "Подтверждения" добавлена опция "Перезапись и удаление R/O файлов".
   И, соответственно, FCS_OVERWRITEDELETEROFILES в В ACTL_GETCONFIRMATIONS.

2. По Alt+Del не удалялись вложенные папки.

warp 15.07.2009 02:27:00 +0300 - build 1045

1. HIGHLY EXPERIMENTAL PART 2. Добавим возможность до некоторой степени настраивать
   появление меню при наличии нескольких плагинов на обработку файла. Диалог пока не
   локализован.

drkns 14.07.2009 21:14:13 +0200 - build 1044

1. Если не удалось загрузить плагин - покажем результат GetLastError().

drkns 14.07.2009 19:48:31 +0200 - build 1043

1. Ещё всякие мелочи в списке кодовых страниц:
   - отметки возле страниц, выбранных в поиске, выводились также при открытии и сохранении файла;
   - при сохранении не блокировался автодетект и иногда сбивалось позиционирование;
   - Константа CP_REVERSEBOM почему-то была равна 65534, а не 1201.

warp 14.07.2009 01:44:00 +0300 - build 1042

1. Добавлены константы для пунктов основного меню. Это облегчит добавление пунктов в него.
   Кроме того устранена некоторая копипаста. Соблюдаем осторожность, вдруг чего упустил.

drkns 13.07.2009 20:06:54 +0200 - build 1041

1. From Maximus5: не работал ShiftDel на непустой папке на временной панели.

drkns 13.07.2009 00:48:31 +0200 - build 1040

1. В 1035 поломался врапперный GetDirList.

drkns 12.07.2009 21:28:54 +0200 - build 1039

1. Здравствуй, прекрасное далёко. Tеперь мы понимаем петабайты и эксабайты.

2. По традиции, немного косметики: давим "void" везде, где он не нужен.

zg 12.07.2009 11:29:40 +0200 - build 1038

1. в StrCmp* добавлен флаг SORT_STRINGSORT. причина - разница результатов:
   printf("%d\n",CompareString(0,NORM_IGNORECASE,"\"aaa aaa\"",9,"\"aaa aaa-2\"",9));
   printf("%d\n",CompareString(0,NORM_IGNORECASE,"\"aaa aaa\"",-1,"\"aaa aaa-2\"",-1));
   в фаре очень желательно, чтобы совпадали.
   починился Mantis#0000804: не отображается существующий description для одной из папок.

2. InsertQuote теперь пустую строку превращает в две кавычки, а не в одну.

drkns 12.07.2009 01:21:59 +0200 - build 1037

1. В D<N|M>_KEY, ECTL_PROCESSKEY, FarKeyToName, FarNameToKey, меню и ACTL_POSTKEYSEQUENCE не производилось unicode<->oem преобразование кодов клавиш для старых плагинов.

drkns 11.07.2009 22:44:36 +0200 - build 1036

1. Если при сохранении файла по ShiftF2 был выбран нестандартный конец строки, то он потом использовался при сохранении любого файла по F2.

2. При нажатии CtrlIns на элементе ".." кладём в буфер не "..", а имя текущей папки.

drkns 10.07.2009 23:47:08 +0200 - build 1035

1. Говорят, иногда сильно тормозило сохранение файлов. Теперь должно сохранять как минимум не медленнее, чем в 1.75, а то и быстрее. :)

2. Очередные пляски вокруг nul, con, com1 и иже с ними. Теперь должно корректно обрабатываться и в подкаталогах.

3. Разные мелочи.

zg 08.07.2009 20:36:05 +0200 - build 1034

1. в StrCmpNI/StrCmpN сравнение уходило за границы строки.

zg 08.07.2009 03:23:36 +0200 - build 1033

1. Mantis#0000964: проблемы с вставкой текста.
   реально проблема в неправильном позиционировании курсора при удалении блока.

warp 08.07.2009 02:17:00 +0300 - build 1032

1. HIGHLY EXPERIMENTAL. Меню выбора архивного плагина (с теоретической поддержкой Analyse, который
   пока не работает). Возврат из OpenFilePlugin результата -2 не поддерживается (актуально только
   для враппера, в 2.0 OpenFilePlugin вероятно умрет совсем). pointer_array надо или заменить на
   один из используемых списков или наоборот использовать для списоков везде. Старый код сохранен
   в комментарии. На данный момент в меню отображаются имена модулей архивных плагинов.

zg 07.07.2009 14:53:16 +0200 - build 1031

1. уточнение 1030.

zg 07.07.2009 14:26:00 +0200 - build 1030

1. в ACTL_WAITKEY теперь приходят и макрокнопки.

warp 07.07.2009 03:07:00 +0300 - build 1029

1. Вводим функцию Analyse, первичный этап.

drkns 06.07.2009 23:04:55 +0200 - build 1028

1. По просьбам телезрителей DN_GETDIALOGINFO поступает и в ProcessDialogEvent тоже.

drkns 06.07.2009 18:35:27 +0200 - build 1027

1. Невозможно было зайти в папки nul, con, com1 и иже с ними.

2. При входе в \\?\nul неправильно отображалось содержимое панели.

3. Уточнение 1020.1 - в меню кодовых страниц иногда путались названия разделителей.

4. При пометке кодовых страниц в диалоге поиска файлов Space/Ins перемещают курсор на следующую позицию.

5. Забавный баг: если в диалоге нажать ПК и, не отпуская её, ЛК - диалог становился невидимым.
   IsMouseButtonPressed() теперь возвращает состояние всех мышиных клавиш сразу, а не первой попавшейся.

6. Внедрение системы идентификации диалогов. Часть первая - движок.
   API:
     DN_GETDIALOGINFO - far желает получить информацию о вашем диалоге.
       Param1 - 0, Param2 - указатель на структуру DialogInfo, получающую данные.
       Ваш плагин должен корректно заполнить поле StructSize структуры DialogInfo.
       верните TRUE, если заполнили структуру, или FALSE, если проигнорировали.
     DM_GETDIALOGINFO - вы желаете получить информацию о диалоге far или другого плагина.
       Param1 - 0, Param2 - указатель на структуру DialogInfo, получающую данные.
       возвращаемое значение: TRUE - структура заполнена, FALSE - сообщение проигнорировано.
     структура DialogInfo:
       StructSize - размер структуры;
       Id - уникальный идентификатор диалога в формате GUID.
     Событие DN_GETDIALOGINFO _НЕ_ поступает в функцию ProcessDialogEvent.
   Макроязык:
     состояние Dlg.Info.Id - строковое представление идентификатора текущего диалога.

   "Technology preview" второй части: диалог поиска (AltF7) имеет идентификатор {8C9EAD29-910F-4B24-A669-EDAFBA6ED964}.

zg 06.07.2009 13:20:05 +0200 - build 1026

1. убраны ненужные после 1021 фиксы из 1014.

zg 05.07.2009 14:39:29 +0200 - build 1025

1. настройка "whole words" влияла на поиск в hex в просмотре, хоть и была задисаблена.

zg 05.07.2009 12:25:19 +0200 - build 1024

1. Mantis#0000963: Не отображается описание для элемента "..".

zeroes 05.07.2009 03:51:27 +0200 - build 1023

1. пробуем выполнить "%Programfiles%\test.exe" в ответ:
'D:\Program' is not recognized as an internal or external command,
operable program or batch file.


zg 04.07.2009 16:00:28 +0200 - build 1022

1. уточнение 1016.1.

zg 04.07.2009 15:48:50 +0200 - build 1021

1. после 1012 билда после закрытия диалогов фар отъедает некоторое время.
   формально это 64 вызова Sleep(1). реально что-то около порядка секунды.

drkns 03.07.2009 21:08:00 +0200 - build 1020

1. Всякая косметика в меню кодовых страниц - названия групп, справка и т. п.
   Также в меню теперь всегда отображается "Automatic detection" (пока что в отключенном состоянии) - сие есть задел на будущее.

2. В статусной строке редактора не отображались атрибуты файла.

3. Mantis#0000871: Код символа под курсором в редакторе всегда юникодный.
   Если текущая кодовая страница - не уникод, если символ под курсором может быть отображен в этой странице, и если его код при этом
   отличается от уникодного - этот код будет показан в статусной строке вместе с уникодным.

garry 03.07.2009 03:32:47 +0300 - build 1019

1. В продолжение 1018 добавлена возможность в ключе реестра Far2\CodePages\Names задавать имена для
   таблиц символов имён которых не знает система. Например, для CP1125 это будет выглядеть примерно так:

   [HKEY_CURRENT_USER\Software\Far2\CodePages\Names]
   "1125"="RUSCII"

garry 03.07.2009 02:25:13 +0300 - build 1018

1. Добавлена поддержка кодовых страниц без имени (для них GetCPInfoEx возвращает ошибку). В частности,
   теперь работает CP1125 (RUSCII). Пока такие кодовые страницы так и отображаются в списке с пустым
   именем;

2. Во враппере исправлено форматирование нестандартных имён кодовых страниц.

drkns 02.07.2009 21:40:21 +0200 - build 1017

1. Внезапно выяснилось, что FCTL_SETSELECTION, во первых, криво работал при "Show selected first",
   во вторых, после него не работал CtrlM.

   Теперь, ВНИМАНИЕ! - правильно выделять из плагинов надо так:

   FCTL_BEGINSELECTION
   FCTL_SETSELECTION сколько нужно раз
   FCTL_ENDSELECTION.

zg 02.07.2009 18:51:52 +0200 - build 1016

1. сильно ускорен последовательный вызов FCTL_GETSELECTEDPANELITEM с неуменьшающимися индексами.

2. gcc варнинги.

drkns 01.07.2009 17:43:47 +0200 - build 1015

1. Продолжение 988.

2. При создании папок проверка корректности списка производится в обработчике диалога, а не после его закрытия.

3. В некоторых случаях неровно форматировались строки в списке результатов поиска.

svs 01.07.2009 11:27:19 +0300 - build 1014

1. Mantis#0000949: Баги при вызове AdvControl с ACTL_REDRAWALL

2. Уточнение build 1013

3. Немного логирования в менеждере...

svs 29.06.2009 17:57:12 +0300 - build 1013

1. в этом патче такое:
   1. фрейм не удаляем из CloseDialog, т.к. эта функция вызывается из XXXProc (и из плагинов)
   2. фрейм можно удалить только из "проходных" функций ProcessMouse или ProcessKey.
   3. при выставленном флаге DMODE_ENDLOOP ничего плагину в обработчик диалога не кидаем
   4. теперь в плагинах "Info.DialogRun(hDlg);" можно юзать сколько угодно раз между Init и Free.

zg 27.06.2009 01:59:08 +0200 - build 1012

1. вернём показ дополнительной информации для элемента "..".

drkns 25.06.2009 23:28:35 +0200

1. Секция "compatibility" в манифесте.

2. Поправки в vcproj.

drkns 23.06.2009 08:40:58 +0200 - build 1011

1. Mantis#0000947: Новое поведение Executor'а и %PATHEXT%. В 1009 закрались "апичатки".

lort 22.06.2009 22:43:08 +0300 - build 1010

1. Убрана перерисовка при вызове EUR_UNDO и EUR_REDO

2. Переделки в Undo, перед откатом проверяем есть ли для UNDO_END соответствующий UNDO_BEGIN и наоборот

3. Исправления в Editor.Sel, неправильно производилось выделение, если позиция начала выделения находилась после позиции конца

4. Добавлена макро функция V=Editor.Undo(N)
   здесь N:
     0 - BEGIN - начало блочной операции
     1 - END - конец блочной операции
     2 - UNDO - сделать Undo
     3 - REDO - сделать Redo

drkns 22.06.2009 15:23:38 +0200 - build 1009

1. Mantis#0000947: Новое поведение Executor'а и %PATHEXT%

2. Не всегда правильно перерисовывался диалог копирования.

drkns 22.06.2009 10:43:06 +0200 - build 1008

1. Исправление во враппере на тему FarDialogItem.Param.ListItems/FarDialogItem.Param.ListPos.
   И кто только придумал засунуть их в union :(
   Ну и заодно во всех подобных местах используем SYSTEMINFO::<Minimum|Maximum>ApplicationAddress вместо "магических чисел" 0x2000, 0x5000, MAX_MSG и т. п.

drkns 21.06.2009 19:22:36 +0200 - build 1007

1. Mantis#0000945: Не работает Rename при перемещении файлов (F6, Move) на одном диске

zg 21.06.2009 19:12:40 +0200 - build 1006

1. уточнения в PluginSynchro.

zg 21.06.2009 18:08:33 +0200 - build 1005

1. новое апи. позволяет потоку, запущенному плагином выполнить код в контексте главного потока фара.
   поток может вызвать Info.AdvControl(Info.ModuleNumber,ACTL_SYNCHRO,Param).
   если плагин экспортирует функцию ProcessSynchroEventW то она будет вызвана в контексте главного потока.
   первый параметр при этом будет равен SE_COMMONSYNCHRO (обязательно нужно проверять), второй - Param, переданный AdvControl.
   ProcessSynchroEventW должна возвращать 0.

drkns 21.06.2009 14:31:57 +0200 - build 1004

1. Массовое истребление IsBad*Ptr.

2. Массовое истребление ключевого слова 'struct'.

3. Массовое истребление "W" в именах функций и структур.

zeroes 21.06.2009 14:30:03 +0200 - build 1003

1. При запуске грабера во viewer'е курсор промелькивает в командной строке.
Особенно это было видно при использовании ConEmu. (за фикс thanx 2 Maximas)

zg 21.06.2009 14:15:36 +0200 - build 1002

1. FCTL_SET*SORTORDER для анси плагинов всегда устанавливала обратную сортировку.

zg 21.06.2009 00:15:57 +0200 - build 1001

1. падение при вызове анси плагином DM_GETDLGITEM с неверным индексом элемента диалога.

drkns 19.06.2009 16:07:36 +0200 - build 1000

1. Падение при вызове FCTL_GET[SELECTED]PANELITEM на пустой панели.

t-rex 19.06.2009 03:34:59 +0200 - build 999

1. Коррупция хипа во враппере.

drkns 17.06.2009 18:27:30 +0200 - build 998

1. Криво обрабатывалась команда chcp.

2. Mantis#938: Несовпадение регистра в именах файлов в исходниках.

3. Ещё пара мелочей.

garry 16.06.2009 00:29:18 +0300 - build 997

1. Исправлены gcc warnings после 993;

2. Исправлена опечатка в makefile_gcc.

3. В xf_realloc_nomove вызов _expand сделан только для VC, так как в GCC far линкуется с msvcrt, где
   _expand работает несколько по другому:
     - http://msdn.microsoft.com/en-us/library/wfzt8b7y(VS.71).aspx
     - http://msdn.microsoft.com/en-us/library/wfzt8b7y(VS.80).aspx

t-rex 15.06.2009 22:44:49 +0200 - build 996

1. Пару мелочей.

drkns 15.06.2009 22:21:41 +0200 - build 995

1. Получение имени открытого в редакторе файла вынесено в отдельную команду - ECTL_GETFILENAME.
   Команда возвращает требуемый размер буфера.

drkns 15.06.2009 20:30:24 +0200 - build 994

1. ECTL_FREEINFO больше нет. Память под EditorInfo::FileName выделяет плагин.
   Требуемый размер можно получить в поле EditorInfo::FileNameSize передав туда 0,
   либо передав NULL в качестве EditorInfo::FileName.
   Также надо пересобрать плагины, работающие со стековыми закладками редактора и ECTL_UNDOREDO.

2. ACTL_FREEWINDOWINFO больше нет. Память под WindowInfo::TypeName и WindowInfo::Name выделяет плагин.
   Требуемые размеры можно получить в полях WindowInfo::TypeNameSize и WindowInfo::NameSize передав туда 0,
   либо передав NULL в качестве WindowInfo::TypeName и WindowInfo::Name соответственно.

garry 15.06.2009 20:16:33 +0300 - build 993

1. Ускорена загрузка файлов в редактор:
	- Для не-Unicode файлов на больших файлах (~200Мб) прирост скорости порядка 30-40%;
	- Для Unicode файлов прирост скорости загрузки порядка 20-30%.

2. Теперь при загрузке в редактор нормально обрабатываются идущие подряд MAC окончания строк;

3. Немного форматирования по ходу дела;

4. Добавлена функция xf_realloc_nomove, которая рабатает аналогично xf_realloc, за исключением
   того, что в случае перемещения буфера, она не копирует данные в новое расположение;

5. Кое-где применена функция xf_realloc_nomove.

zg 14.06.2009 23:03:14 +0200 - build 992

1. DM_FREEDLGITEM больше нет.
   все плагины, использовавшие DM_GETDLGITEM/DM_FREEDLGITEM/DM_GETCONSTTEXTPTR/DM_GETDLGITEMSHORT/DM_SETDLGITEMSHORT - сломались.
   DM_GETDLGITEM - изменён, Param2 указатель на память куда будет скопирован элемент. возвращается необходимый размер буфера.

2. в диалоге копирования текла память.

zg 14.06.2009 21:38:11 +0200 - build 991

1. откатим b984 пункт 2. иначе apply command иногда для некоторых файлов выполнялось по два раза.

zg 14.06.2009 19:58:18 +0200 - build 990

1. farmail корректно определяет кодировку редактора.

2. если было больше одной любимой кодировки, то анси плагины получали много клонированных кодировок.

lort 13.06.2009 21:07:43 +0300 - build 989

1. При переоткрытии редактора с новым файлом не сбрасывалось состояние undo

2. Запись за границу буфера если в редакторе конец строки состоит из трёх символов (\r\r\n)

drkns 13.06.2009 11:59:46 +0200 - build 988

1. Обход очередного бага Windows (ключевые слова: "ClearType", "векторный шрифт", "мусор").

zg 10.06.2009 20:01:03 +0200 - build 987

1. если set содержала '/', то передавалась cmd.

svs 10.06.2009 14:06:05 +0300 - build 986

1. "echo." ==> "Режим вывода команд на экран (ECHO) включен."

2. Macro: Кнопоксочетания не парсились в функциях (например, "msgbox(CtrlPgUp)")

3. Macro: девиз "eval() без параметров неправильно формирует стек". в общем баг.
   + в eval: если передаем пустую строку, то нефига ничего компилить: вернет -1.

4. API: Исходя из п.3 ACTL_KEYMACRO+MCMD_POSTMACROSTRING вернет FALSE для пустой строки

svs 09.06.2009 23:18:26 +0300 - build 985

1. В исполняторе учтем экрано-символ '^' и вариант "echo." (эхо с точкой!)

2. Mantis#0000912: Ctrl+PageUp problem after using Temp panel

3. Очередное "изнасилование" ApplyCommand.

4. немного форматирования кода ;-)

svs 08.06.2009 22:32:42 +0300 - build 984

1. Значение параметра "Interface/ShowMenuBar" (Opt.ShowMenuBar) влияло на позицию начала показа панелей.

2. Траблы с прорисовкой после "Apply Command". Часть 1.
   Влияет наличие RedrawDesktop. Временно отключим.
   Побочный эффект - мерцание панелей.

3. Сразу после "Apply Command" установим нулевой фрейм (панели) - вопрос спорный ;-)

4. Подземные стуки с текущим каталогом после 929
   добавляем проверку TestCurrentDirectory()

svs 08.06.2009 15:45:39 +0300 - build 983

1. "cd\" - живи.
   http://forum.farmanager.com/viewtopic.php?f=6&t=4126

2. небольшие проблемы с "~", например, "cd ~\.." не работал.

3. Mantis#0000910: Команды "CD", "SET" и подобные в диалоге "Apply To" (Ctrl-G)

4. "Apply Command", UserMenu и Ассоциации сделаем однотипно.
   Сейчас есть глюк с прорисовкой - поборимся позже.
   В последствии необходимо из трех однотипных кусков сделать 1 функцию.
   Так же у Ctrl-G был глюк с неудалением временных файлов, если использовались метасимволы-листинги.

drkns 07.06.2009 15:38:57 +0200 - build 982

1. Mantis#0000918: При использовании "Apply to" нужен дополнительный перевод строки

2. При запуске cd без параметра выдавалось ненужное сообщение об ошибке.

t-rex 06.06.2009 17:10:43 +0200 - build 981

1. from chupakabra: Несколько проблем с поиском в архивах.

2. Немного форматирования за одно.

t-rex 06.06.2009 03:51:51 +0200 - build 980

from chupakabra:

1. В результатах поиска нельзя было просмотреть файлы из архивов.

drkns 05.06.2009 22:07:40 +0200

1. Коррекция и обновление документации и справки.

svs 04.06.2009 18:38:04 +0300 - build 979

1. Проблемы с UserMenu

t-rex 04.06.2009 07:39:36 +0200 - build 978

1. Забыл удалить UnicodeString:: у функций при переносе в хидер.

2. GCC ворнинги.

t-rex 03.06.2009 14:19:42 +0200 - build 977

1. Убираем alpha/beta/RC из версии.

t-rex 03.06.2009 00:54:05 +0200 - build 976

1. Mantis#911: Запись за границу буфера в UnicodeString.cpp (для OEM строк)

2. За одно мелкие оптимизации для OEM строк.

3. Пробелы -> Табы в UnicodeString.cpp

drkns 02.06.2009 18:12:34 +0200 - build 975

1. Учитываем, что у папок "по умолчанию" 0 потоков, а не 1.

2. 974 пункт 2 не актуален, ибо падало не там.

svs 02.06.2009 08:47:52 +0300 - build 974

1. Mantis#0000908: Проблемы с сообщением ошибок в макросе

2. Падение, если в процессе загрузки попадался кривой макрос.

drkns 01.06.2009 21:10:37 +0200 - build 973

1. Mantis#0000907: Маски не работают в fexist()

2. Коррекция типов в UserDefinedList: BOOL -> bool.

drkns 01.06.2009 19:13:49 +0200 - build 972

1. В 970 в ParseMacroString проверялись не те флаги, как результат - не работало и вдобавок падало.

2. Продолжаем перетряхивать FindFile, часть вторая. Там же поправлена пара мелких глюков.

3. Коррекция типов в BaseFileMask и иже с ним: BOOL -> bool.

4. Уточнение 1 пункта 966 билда.

zeroes 01.06.2009 18:51:19 +0200 - build 971

1. косметика в Farrus.lng "Прерыва&ние операций (Esc)" -> "Прерыва&ние
операций" потому что упоминаний про (Esc) нет в других языковых lng.

svs 01.06.2009 16:49:22 +0300 - build 970

1. Mantis#0000905: Изменения в eval
     msgbox(eval("!!",1))
     Видим пустой msgbox
     Под ним - красное окошко "Macro parsing error"
     Во-первых msgbox не должен быть пустой

   так, в общем тут 2 проблемы.
   1. вывод сообщения не должен выводиться всегда... в некоторых случаях нужен режим silent
   2. так вышло, что последовательность исполнения была такой:
    а) eval
    б) eval выводит диалог (он еще не виден, т.к. стоит дизаблеоутпут)
    в) как только в памяти оказался этот диалог об ошибке, макродвиг продолжил исполнение (по сути управление получи ФАР)
    г) дошли до функции msgbox, НО! eval еще не положил в стек значение парсинга.
    д) при исполнении msgbox разлочил экран и мы увидели 2 диалога.
   в общим фиксед, но фиксед только п.2.

   АХТУНГ! НА БУДУЩЕЕ.

   Любые диагностические сообщения в макродвиге должны быть оформлены подобно тому, как это сейчас сделано в
   KeyMacro::ParseMacroString, т.е.
   1) разлочить экран
   2) увеличть InternalInput (запретить исполнение макроса)
   3) вывести диалог
   4) уменьшить InternalInput
   5) залочить экран, если перед этим он был залочен

2. Bug: Если "Interrupt operation" выключен и мы пытались загрузить большой файл, недождавшись прервали загрузку, то
   на экране оставался месаг про загрузку этого самого файла.

svs 01.06.2009 15:26:55 +0300 - build 969

1. Mantis#0000902: Нельзя выйти из папки первого уровня при работе с диском через \\?\

2. Mantis#0000898: недоработка: нет проверки на открываемый размер файла
   доп.месаг, если размер все же не удалось получить...

3. Mantis#0000903: не работает функция ограничения открываемого файла в редакторе по размеру

4. Mantis#0000894: Должно быть - S=replace(Str,Find,Replace[,Cnt]) а можно вызвать только с двумя параметрами

drkns 31.05.2009 20:56:30 +0200 - build 968

1. Неправильно работал apiGetFileSizeEx в предыдущем билде.

drkns 31.05.2009 17:25:14 +0200 - build 967

1. Mantis#0000900: Exception: при попытке выполнить команду edit:\\.\PhysicalDrive0.

2. Mantis#0000897: Глюки с \\.\C:. Пока только первая часть - "view:\\.\C: - Видим в заголовке въювера \\\.\C: (три слэша)".

3. Mantis#0000899: Неверное сообщение что файл не существует.

4. В IsNetworkPath() не учитывался формат \\?\UNC\.

5. При разборе макросов теперь всегда выдаётся предупреждение, если макрос содержит ошибки.

drkns 30.05.2009 18:24:54 +0200 - build 966

1. При удалении папки с рекурсивными симлинками (например, профиль пользователя в Vista/2008)
   могла возникать ошибка "The folder is not empty".

2. Не работала логика "показывать статус копирования не чаще 5 раз в секунду".
   Показывалось очень сильно чаще, что при копировании большого количества мелких файлов было чревато.

t-rex 30.05.2009 02:47:02 +0200 - build 965

from chupakabra:

1. Mantis#691: Патч для FindFiles::SetPluginDirectory
   Коректировка и оптимизация.

2. Mantis#637: Проблемы плагинов с OPIF_REALNAMES

3. Mantis#878: Сообщение при отсутствии прав на чтение каталога

t-rex 30.05.2009 02:16:58 +0200 - build 964

1. Ещё штрих.

t-rex 30.05.2009 01:20:25 +0200 - build 963

1. Да, и ещё немного тоже самого :) Но теперь вроде с клавой всё :)
   Осталось сделать также для зверька, изменений размера и т.п.

t-rex 30.05.2009 01:04:20 +0200 - build 962

1. Ещё коректировки в обработке HIDDEN, теперь вроде с клавой точно работает нормально.

t-rex 29.05.2009 21:43:15 +0200 - build 961

1. Оптимизация 960 на случай когда нету никаких HIDDEN.

t-rex 29.05.2009 21:33:45 +0200 - build 960

1. Правильный скроллинг при наличии ?IF_HIDDEN (Mantis#47), пока что только для клавы.
   Мыши нужно доделать примерно таким же образом.

svs 29.05.2009 20:55:05 +0300 - build 959

1. Перетрях UserMenu - форматирование, комментирование , упрощение, etc.

   "Кривые в реестре пункты меню" пропускаются. Раньше процесс прерывался, сейчас продолжается.

   Ахтунг. В режиме isSilent имеем проблемы с командами, которые выводят что-то на экран
           Здесь необходимо переделка, например, перед исполнением подсунуть временный экранный буфер, а потом его содержимое подсунуть в ScreenBuf...
   Это относится к ассоцияциям, юзерменю...

   Для реализации Shift-F4 (в редакторе править только текущий пункт/submenu) необходимо переделать функции MenuRegToFile и MenuFileToReg
   Здесь затыка в "strItemKey.Format (L"%s\\Item%d",MenuKey,I);".

t-rex 29.05.2009 03:58:00 +0200 - build 958

1. from lort: Исправление для 955. GetCPInfo для некоторых таблиц не работает, преобразовываем к ANSI в таких случаях.

2. from Kostia Romanov (kildor): немного переводов в eng.hlf.

t-rex 29.05.2009 01:43:23 +0200 - build 957

from netghost:

1. Mantis#890: Far unicode (both x86 and x64) crash when opening Drive Menu on Windows 7 x64
   Add additional checks for WNetEnumResource call output

drkns 28.05.2009 21:26:32 +0200 - build 956

1. С форума: "Падает Far 2.0 build 952 из-за MultiArc..."
   Только не из-за MultiArc, а из-за попыток дописать NULL к UnicodeString.

t-rex 28.05.2009 15:10:00 +0200 - build 955

from lort:

1. Mantis#879: Поддержка не OEM кодировок в редакторе для старых плагинов
   Умные не юникодные плагины теперь будут реже портить текст в редакторе.

drkns 28.05.2009 10:16:03 +0200 - build 954

1. Mantis#0000883: Фар 2.0 падает в Windows 7 при выборе дисков.

drkns 27.05.2009 15:51:25 +0200 - build 953

1. Ещё несколько лишних sprintf.

2. Дивайдим, конкурим и перетряхиваем findfile.?pp. Часть первая.

svs 27.05.2009 19:53:33 +0300 - build 952

1. Уточнение билда 951

svs 27.05.2009 17:37:41 +0300 - build 951

1. После 2578/929 выявились глубинно-древние камни. При запуске "Far apath ppath" на этапе инициализации приложения для ppath
   происходила подставнока диска от apath.

2. + нефига выводить месагбокс, пока менеджер не стартанул

t-rex 27.05.2009 14:51:32 +0200 - build 950

1. Устаканивание IsWordDiv.

svs 27.05.2009 10:43:02 +0300 - build 949

1. Mantis#0000813: Поддержка консольных алиасов в ассоциациях.

2. Встроенные команды "умеют" /?. Прочие варианты, не реализуемые внутри ФАРа отдаются по цепочке дальше.

svs 26.05.2009 23:56:23 +0300 - build 948

1. У ProcessUserMenu() параметр bool

2. Добавлена IsSpaceOrEos(), руками не мацать, нужна.

3. В GetRegKey() баг, т.к. XXX.GetLength() для 1 символа, считанного из реестра возвращала размер 2

drkns 26.05.2009 20:47:53 +0200 - build 947

1. Разные мелкие оптимизации - избавляемся от конкатенации строк по sprintf(%s%s), квотирования по sprintf(\"%s\") и прочей подобной стрельбы из пушки по воробьям.

drkns 26.05.2009 20:33:47 +0200 - build 946

1. Mantis0000877: Поиск при использовании фильтра зависает.

ts 25.05.2009 23:25:04 +0200 - build 945

1. Уточнение к 940 когда размер колонок в процентах < 100% и нет колонок с автоматически вычесляемой шириной.

drkns 25.05.2009 20:24:51 +0200 - build 944

1. Поиск умеет работать с альтернативными потоками данных.

2. Оптимизация vc-проекта.

svs 25.05.2009 15:18:37 +0300 - build 943

1. Добавка в Help про Redo

2. Ins в строках ввода сбрасывал выделенный блок

t-rex 24.05.2009 16:44:00 +0200 - build 942

1. Продолжаем дивайдить и конкурить хидеры. Уже почти.

ts 24.05.2009 14:16:49 +0200 - build 941

1. Правка опечатки в 940

ts 24.05.2009 09:34:50 +0200 - build 940

1. Mantis#0000805: Ширина колонок панели в процентах
   Реализация расчёта ширины колонок (пункт 3)

zg 24.05.2009 02:37:37 +0200 - build 939

1. убрана HotkeyRules.

t-rex 23.05.2009 23:23:24 +0200 - build 938

From lort:

1. Везде юзаем DList вместо TList.

t-rex 23.05.2009 23:06:59 +0200 - build 937

From lort:

1. Mantis#867: Поддержка redo в редакторе

t-rex 23.05.2009 22:27:45 +0200 - build 936

1. Продолжаем дивайдить и конкурить хидеры.

drkns 23.05.2009 17:43:14 +0200 - build 935

1. Продолжаем разделять и властвовать.

zg 23.05.2009 17:33:03 +0200 - build 934

1. после 930 в редакторе не работали alti/altu/altd. возможно и вдругих местах наблюдалось что-то подобное.

t-rex 23.05.2009 15:57:09 +0200 - build 933

1. Ещё мелкая оптимизация в UnicodeString.

2. Избавился от struct.hpp.

t-rex 23.05.2009 04:18:17 +0200 - build 932

1. Вроде как получилось сделать нормальное решение для KeyToKey
   которое даже несколько лучше чем в 1.75, особенно тем что теперь
   это в общем работает для всех имеющихся раскладок.

t-rex & drkns 23.05.2009 00:53:26 +0200 - build 931

1. Временное решение для KeyToKey.

t-rex 22.05.2009 19:45:37 +0200 - build 930

1. Продолжаем дивайдить и конкурить хидеры.

2. По дороге было замечено что InitKeysArray() и KeyToKeyLayout() (бывший LocalKeyToKey) вообще не правильно
   для 2.0 сделаны. Пометил как BUGBUG.

svs 22.05.2009 14:03:57 +0300 - build 929

1. Неправльно работала функция KeyNameToKey() для "полупрямых" клавишь вида ShiftShiftCtrlDown (ну или ShiftCtrlShiftDown)
   + еще одно "ускорение" KeyNameToKey()

2. "Хождение по сетевым папкам с тормозами"
   Оптимизация работы SetDir`ов и ChageDir`ов, исключающих повторные действия, если CurDir уже является тем же, что хотим установить.
   Основные тормоза возникли где-то в районе "после 5-й беты 1.75" - Фунция PrepareDiskPath().

t-rex 22.05.2009 12:19:59 +0200 - build 928

1. Ещё меская оптимизация в UnicodeString.

2. Продолжаем по маленьку дивайдить и конкурить хидеры.

drkns 21.05.2009 20:29:20 +0200 - build 927

1. Запускатор: перебор расширений производится в порядке, указанном в %pathext%.
   Заодно некоторый перетрях PrepareExecuteModule и IsCommandPEExeGUI.

t-rex 21.05.2009 19:52:11 +0200 - build 926

1. Анси плагин "External Filter" всегда выводил странную ошибку в конце работы.
   Плагин проверяет LastError для своих нужд а во врапере вызов UnicodeToAnsiBin
   приводил к выставлению LastError при нулевых строках что и обманывало плагин.

t-rex 20.05.2009 22:48:48 +0200 - build 925

1. Мда, надо идти работать в Макдональдс (http://faqs.org.ru/progr/c_cpp/cpp_lite3.htm).

t-rex 20.05.2009 00:53:17 +0200 - build 924

1. "" -> L"".

2. Ещё пара мелочей.

t-rex 20.05.2009 00:11:19 +0200 - build 923

1. Оптимизация в макросах на предмет использования VMStack.
   Скажем так, тот макрос который считает простые числа, будет работать маленько быстрей :)

2. Оптимизация в создании пустых UnicodeString. Местами вполне может быть очень значительно.

drkns 19.05.2009 21:12:35 +0200 - build 922

1. В Execute() лишний раз вызывалась GetShellAction().

2. Не пытаемся преобразовать путь в полный, если он c префиксом \\?\ или \\.\

3. В диалоге сохранения опция "[ ] Add signature" блокируется для 1-байтных кодовых страниц.

4. Mantis#0000869: Проблема с относительными путями при открытии файла через ShiftF4

5. Вьювер теперь корректно показывает размер "файлов" \\?\c:, \\.\physicaldrive0 и т. п.

6. Пара мелочей в farwinapi.

t-rex 19.05.2009 16:30:33 +0200 - build 921

1. Раз есть TStack то выкинем TVMStack и заюзаем первый для него.

2. Форматирование и gcc варнинги в TStack.

svs 18.05.2009 22:12:02 +0300 - build 920

2. Mantis#0000809: push/pop-dir для "встроенных" батников
   "Бетмэн. Начало"
   Добавлены команды PUSHD, POPD, CLRD (очистка стека каталогов) - описаны в хелпе (в FarEng.hlf есть русские букофки)
   Взаимодействия с %COMSPEC% нет.

3. Для PROMT добавлен конструкт "$+" - отображение нужного числа знаков плюс (+) в зависимости от текущей глубины стека
   каталогов PUSHD, по одному знаку на каждый сохраненный путь.

4. В дополнение - переменная среды FARDIRSTACK - содержимое вершины стека каталогов (который управляется командами pushd и popd)
   FARDIRSTACK позаимствована из униха (там это DIRSTACK)

t-rex 18.05.2009 18:24:35 +0200 - build 919

1. Враппер почему то отдавал анси плагинам кодировки выбраные в поиске а не favorites.

t-rex 18.05.2009 02:32:07 +0200 - build 918

1. And The Saga Continues.

t-rex 18.05.2009 01:13:47 +0200 - build 917

1. Вернём возможность показывать папки "." и ".." которые можно создать на фате, и подружим это с фиксом в 916.

2. Небольшая оптимизация в классе NTPath.

t-rex 17.05.2009 23:50:46 +0200 - build 916

1. В некоторых случаях показывались папки "." и по два раза ".." (и за одно форматирование кода).

t-rex 17.05.2009 17:06:27 +0200

1. Hungarian lng and hlf update from Far Hunor.

t-rex 17.05.2009 16:28:43 +0200 - build 915

1. Меню плагинов неправильно сортировалось если ветка реестра хоткеев была пуста.

t-rex 17.05.2009 14:33:23 +0200 - build 914

1. Mantis#776, назначение хоткея плагину работало в общем только для плагинов в под папках Фара,
   или если путь к плагину был длинней чем к фару. Теперь работает нормально для всех.

2. Ещё переделки и улучшения в классе PluginManager а также просто форматирование кода.

3. Хоткей для "tab size" в диалоге настроек редактора/въювера переводил фокус не туда куда надо.

t-rex 17.05.2009 00:10:20 +0200 - build 913

1. По наводке от Andrey Budko, оптимизация KeyNameToKey, теперь макросы загружаются немного быстрей.

2. Доп. оптимизация и мин. переделка класса PluginManager.

t-rex 16.05.2009 16:57:19 +0200

1. Добавил возможность собрать debug с gcc.

t-rex 16.05.2009 12:57:57 +0200 - build 912

1. По наводке от Andrey Budko, оптимизация работы с реестром. Как минимум на порядок ускоряет загрузку и закрытие Фара.

2. gcc ворнинги.

t-rex 15.05.2009 21:21:33 +0200 - build 911

1. В 910 забыл изменить PluginManager::LoadPluginsFromCache() в соответствии с новым форматом кэша.

2. За одно теперь работает /co, а он видимо никогда вообще и не работал.

t-rex 15.05.2009 20:09:55 +0200 - build 910

1. На форуме жаловались что большое количество плагинов медленно грузится,
   но раз уж полез то переделал кэш плагинов в более приемлемый и оптимизированный вид.
   Там ещё бы надо в PluginManager::GetPlugin bsearch заюзать для полной красоты,
   раз уж список плагинов всегда находится в отсортированном состоянии.

drkns 14.05.2009 21:44:41 +0200 - build 909

1. Ещё некоторые мелочи на тему панели задач.

drkns 14.05.2009 00:49:36 +0200 - build 908

1. В Windows 7 статус выполняемых операций проецируется на кнопку в панели задач. Для gcc пока отключено.

2. При подсчёте размера папки по F3 в сообщении выводится уже насчитанное.

3. При поиске во вьювере отображается индикатор прогресса.

4. Лишняя перерисовка в дереве папок.

garry 13.05.2009 16:48:26 +0300 - build 907

1. Настройка System\FindCodePage теперь REG_DWORD и содержит кодовую страницу для поиска;
2. Исправлены проблемы при инициализации списка кодовых страниц при поиске по всем кодовым страницам;
3. (С форума) В диалоге поиска, после заполнения списка кодовых страниц, в общем случае выбранная
   кодовая страница может не совпадать с той кодовой страницей, которую мы хотели установить.
   Эта ситуация учтена.

svs 13.05.2009 11:23:49 +0300 - build 906

1. Mantis#0000860: msave() - сохранение переменных содержащих '\n'
   Кроме msave() таккая же беда была и в KeyMacro::WriteVarsConst()

drkns 09.05.2009 17:52:42 +0200 - build 905

1. Mantis#0000861: Некорректная обработка кавычек в поиске файлов.
   Плюс немного оптимизации - проверка корректности маски выполняется в обработчике диалога, а не после его закрытия.

drkns 07.05.2009 12:50:05 +0200 - build 904

1. И ещё одно уточнение, там же.

drkns 07.05.2009 12:50:05 +0200 - build 903

1. Уточнение в отображении индикаторов прогресса в редакторе.

svs 06.05.2009 18:54:33 +0300 - build 902

1. Mantis#0000851: Странности с макроконстантами
   Снова EnumRegValueEx.

zg 06.05.2009 15:30:08 +0200 - build 901

1. варнинги в gcc 4.4.0.

drkns 04.05.2009 20:11:56 +0200 - build 900

1. Фар падал при поиске текста в архивах.

2. Не работал поиск по всем кодовым страницам (а на самом деле - баг в EnumRegValue).

3. От SVS: Mantis0000851: Странности с макроконстантами (а на самом деле - баг в EnumRegValueEx).

drkns 04.05.2009 12:36:22 +0200 - build 899

1. Mantis#0000852: Memory leak in apiFindFirstStream().

2. Утечки памяти в History::ReadHistory() и History::SaveHistory().

drkns 03.05.2009 16:29:21 +0200 - build 898

1. В ScanTree закрывались не все хендлы.

2. Уберём пока эксперименты с Find<First|Next>File.

drkns 02.05.2009 11:16:01 +0200 - build 897

1. С форума: ошибка при установке атрибутов группе файлов

drkns 01.05.2009 13:42:58 +0200 - build 896

1. SetAttr:
   - Блокируем "Sparse" на томах без FILE_SUPPORTS_SPARSE_FILES.
   - "not indexed"/"temporary"/"offline" не блокируются нигде, ибо нет способа узнать, умеет ФС такое или нет.

2. Find<First|Next>File возвращал не все атрибуты на некоторых ФС.

3. Уточнение Mantis#45: содержимое символических ссылок копируется не тогда, когда ФС приёмника !="ntfs",
   а тогда, когда у ФС приёмника не установлен флаг FILE_SUPPORTS_REPARSE_POINTS.

drkns 01.05.2009 01:17:29 +0200 - build 895

1. Mantis#0000833: Не работают шорткаты у старых плагинов

2. Разблокируем в SetAttr и temporary/offline, чего добру пропадать.

drkns 30.04.2009 19:48:32 +0200 - build 894

1. x64 warnings.

drkns 30.04.2009 17:30:41 +0200 - build 893

1. В статусных сообщениях, выводимых редактором при загрузке/сохрании/поиске/замене, теперь присутствует прогрессбар.

2. По Ctrl-A можно управлять атрибутом "Sparse".
   Ахтунг: СНЯТИЕ сего атрибута работает только в Vista и выше.

3. Продолжение Mantis#0000153.

svs 29.04.2009 22:15:50 +0300 - build 892

1. Проблемы с прорисовкой:
   1. мы в корне, Tree.Far отсутствует, курсор на файле ниже предполагаемого Tree.Far, режим панели составной (имя, размер, etc.)
   2. Alt-F10, ждем построения дерева, после появления "панели" выбора в дереве жмем Esc
   3. Видим что строки "поехали".

   Сделано пока в лоб, в нужных местах выставлены комменты для TODO, может кто элегантней код сделает по проверке нужности обновления панелей.

drkns 29.04.2009 19:59:23 +0200 - build 891

1. Продолжение Mantis#0000153.

2. В 16-ричном просмотре используется новый вид скроллбара.

svs 29.04.2009 13:20:20 +0300 - build 890

1. Mantis#0000847: Сбивается выделение (Alt-Ins) при попытке выделить текст с помощью клавиатуры во время msgbox()

drkns 28.04.2009 22:55:03 +0200 - build 889

1. По мотивам Mantis#0000153: "Было бы логичнее и при ручном нажатии [Rename] предлагать уже модифицированное счётчиком имя."

2. Используем GetFileSizeEx() вместо GetFileSize().

svs 28.04.2009 18:03:38 +0300 - build 888

1. Mantis#0000841: Мусор в msgbox при неуказании опциональных параметров

ts 28.04.2009 03:02:57 +0200 - build 887

1. Mantis#0000805: Ширина колонок панели в процентах
   Подготовка к реализации: задание и хранение настроек (пункт 1 и 2)
   TODO: непосредственно расчет ширины колонок

drkns 27.04.2009 22:48:55 +0200 - build 886

1. В диалог подтверждения перезаписи добавлена кнопка "Rename".

2. PreRedrawFunc() вызывалась при каждом Dialog::Show(), т. е. на каждый чих, что приводило к забавным видеоэффектам.
   Теперь вызывается только тогда, когда надо.

3. Для поиска слешей в строках используем <First|Last>Slash() вместо wcs[r]chr и [R]Pos.

svs 27.04.2009 21:04:01 +0300 - build 885

1. Mantis#0000843: Задержка при установке блока с помощью Editor.Sel

2. Mantis#0000842: Far повисает на старте встретив Multi-String в разделе KeyMacros\Vars
   Так, здесь проблема не в макросах, а в EnumRegValueEx
   Немного переделал эту функцию - в т.к. ValueName в динамике (если ошибся - поправьте :-)

3. В apiRegEnumKeyEx потенциальный баг... с лишним циклом при получении имени кея

4. KeyMacro\Vars & KeyMacro\Consts могут быть REG_MULTI_SZ

svs 27.04.2009 10:27:38 +0300 - build 884

1. Mantis#0000838: Ошибка при выделении блока (Editor.Sel)
   Уточнение про "Если позиция начала и конца блока совпадают, то эта операция равносильна снятию пометки блока"

drkns 25.04.2009 19:59:55 +0200 - build 883

1. В метасимволах !@! и !$! не работал модификатор 'A'. Туда же добавлены 'W' (создавать список в уникоде) и 'U' (создавать список в UTF8).

drkns 24.04.2009 23:58:40 +0200 - build 882

1. Мелкий баг в 881.

drkns 24.04.2009 23:37:02 +0200 - build 881

1. В режимах панели доступно два новых типа колонок: количество потоков / суммарный размер потоков.

svs 23.04.2009 19:38:08 +0300 - build 880

1. Mantis#0000838: Ошибка при выделении блока (Editor.Sel)

2. Mantis#0000212: Добавить timestamp в истории каталогов/просмотра/редактирования
   Часть первая: внедрение математики, пока без отображения и экшена
   TODO: экшен и отображалку нужно делать в History::Select()
   Здесь так же можно добавить файловые атрибуты, тогда можно будет делать вот так: "удалить все скрытые каталоги"

garry 23.04.2009 09:48:24 +0300 - build 879

1. Усовершенствования в работе с кодовыми страницами:
    - В общем списке кодовых страниц снова отображаются системные OEM и ANSI кодовые страницы;
    - В диалоге поиска файлов нормально обрабатывается ситуация, когда в списке выбора кодовых страниц
      одна кодовая страница присутсвует два раза;
    - Исправлено следующее: если открыть выпадающий список кодовых страниц, спозиционироваться на какой-либо элемент,
      а затем нажать ESC, то фар запоминал последнюю выбранную в выпадающем списке кодовую страницу, в то время как
      в самом списке оставалась выбрана старая кодовая страница. Соответственно, поиск осуществлялся не по той
      кодовой странице.

svs 22.04.2009 21:07:28 +0300 - build 878

1. Mantis#0000836: Ошибки в макрофункции Editor.Sel()

svs 22.04.2009 11:36:53 +0300 - build 877

1. Уточнение локировок
      есть история каталогов:
      C:\
      C:\Far.Unicode.200
      C:\Far.Unicode.200\contrib
      отмечаю последний и жму del
      выхожу по каталогам наверх -- все пункты истории залочены

svs 21.04.2009 21:54:10 +0300 - build 876

1. History.
   Добавлены локировки пунктов (защита от очисток и удалений)

   В FarHun.hlf.m4 и FarEng.hlf.m4 есть русские буковки.

2. Исправлены чудеса в CopyKeyTree - 1000 не всегда достаточно для хранения данных.
   (это когда делаем "far /u foo" и в ветке foo "немного" данных отсутствует)

svs 20.04.2009 21:04:27 +0300 - build

1. В FarHun.hlf.m4 те же изменения, что и в 17.04.2009
   текст нужно "конвертнуть" на нужный язык (там на russian)

drkns 20.04.2009 15:52:31 +0200

1. В 875 отвалилась хитрая сортировка заголовков в индексе справки.

drkns 20.04.2009 13:40:12 +0200 - build 875

1. Mantis#0000078: Размер свободного места в симлинке при входе по сети
   Mantis#0000758: Far неправильно показывает место на диске в ссылках на сетевой ресурс

   Здесь учитываем то, что GetDiskFreeSpaceEx - умный, и сам умеет находить правильный корень для любых ссылок.
   TODO: надо учесть сей момент и в копире, с поправкой на то, что целевой путь может отсутствовать и создаваться только в процессе копирования.

2. При свёрнутом хелпе и 80x25 разъезжался текст лицензии в справке.

3. FarHun.hlf.m4 добавлен в vcproj.

zg 20.04.2009 13:17:47 +0200 - build 874

1. при извлечении hotplug устройств в случае, когда 'device description' было равно 'friendly name' либо 'friendly name' было пустым,
   почему-то отображалось 'friendly name'. хотя более логичным является отображение 'device description'.

2. gcc варнинги.

svs 20.04.2009 12:11:42 +0300 - build 873

1. Mantis#0000832: Неработоспособность ключа /x

svs 17.04.2009 13:23:10 +0300 - build 872

1. (from ts) правки во враппере для FarCharTableA, аналогичные 869

2. (from Ariman) Mantis#0000830: Неверный расчет перемещения в функции Viewer::Up() для UTF-8

3. (from Ariman) Mantis#0000810: Неверный результат функции Viewer::vread для UTF-8

svs 17.04.2009 10:51:27 +0300 - build

1. В hlf-файлах применен параметр CtrlStartPosChar - указывает место, где будет начало последующего текста
   для примера "изменен" раздел @Editor

2. Добавлены 2 раздела: @KeyMacroEditList и @KeyMacroViewerList, "показывающие" какие макросы активны в редакторе и вьювере.
   Здесь применены хелповые макроконструктивы <!Macro:XXXX!>. Парсер хелпа заменяет их на последовательность строк вида
   <название макроклавиши> <описание из поля Description>
   все значения берутся не из реестра, а из памяти (те макросы, которые ФАР загрузил при старте и которые были назначены в текущем сеансе).

   В FarEng.hlf.m4 есть русские букоФки.

drkns 15.04.2009 20:40:53 +0200 - build 871

1. В редакторе при установке кодовой страницы и сохранении файла производились попытки перекодировать пустые строки.

2. Во враппере в FCTL_GET[ANOTHER]PANELINFO производились попытки перекодировать PanelInfo.[Selected]PanelItems при отсутствии элементов на панели.

drkns & zg 14.04.2009 16:50:22 +0200 - build 870

1. IsHotPlugDevice() неправильно работала в Windows 7.

t-rex 14.04.2009 03:29:27 +0200 - build 869

1. av в EnumCodePagesProc при "не стандартных" имён таблиц, например под wine.

garry 13.04.2009 16:31:57 +0300 - build 868

1. Исправлен небольшой баг в раскраске привнесённый в 867.

garry 13.04.2009 14:14:05 +0300 - build 867

1. Исправления/улучшения работы с раскраской:
    - Исправлены проблемы возникающие, если элементы раскраски расположены не по порядку. К сожалению, в этом случае
      полностью избавиться от сканирования строки с начала не получается;
    - Функции RealPosToTab/TabPosToReal, если было включено преобразование табов в пробелы, подсчитывали расстояние
      без учёта FEDITLINE_EDITBEYONDEND, а если отключено, то с учётом. Теперь FEDITLINE_EDITBEYONDEND не учитывается
      вне зависимсоти от режима работы с табами. Вследствие чего раскраска за пределами строки возможна в любом режиме;
    - Исправлены мелкие недочёты;
    - Произведены некоторые дополнительные оптимизации.

drkns 12.04.2009 16:48:16 +0200

1. Добавим форматов в Far.ico.

drkns 08.04.2009 22:13:25 +0200 - build 866

1. Погнул выравнивание в предыдущем билде.

svs 08.04.2009 23:23:47 +0300 - build 865

1. Mantis#0000816: Курсор не прячется при открытии viewer

2. Mantis#0000817: Неправильная макро-область

drkns 08.04.2009 18:08:04 +0200 - build 864

1. Mantis#0000820: В корне подмонтированных через SUBST дисках ошибочно показывается переход в родительский каталог

2. Убран мусор из pluginold.hpp.

3. Заголовки некоторых *.<с|h>pp были в oem.

4. В syslog криво использовалась IsDebuggerPresent().

drkns 07.04.2009 18:55:13 +0200 - build 863

1. Не работала проверка на HelpOnHelpTopic при вызове справки - при удерживании F1 стек возврата забивался черт знает чем.

2. Используем LIF_GRAYED вместо LIF_DISABLE в диалогах поиска и копирования.

3. x64 warnings.

4. Изменения в API:
    - в FSF.GetFileOwner добавлен 4-й параметр - размер приёмника;
    - Функция возвращает требуемый размер буфера.

5. Утечка памяти в FileList::ChangeDir.

6. Истреблён NM в некоторых местах.

7. Копир, поиск, дерево и прочие, использующие ScanTree - падали на путях глубже 130 каталогов.

t-rex 07.04.2009 17:43:53 +0200 - build 862

1. Верхний пункт истории был в общем не доступен.

drkns 06.04.2009 19:45:29 +0200 - build 861

1. Убрано ограничение на размер строки ввода в диалогах, там же поправлено несколько BUGBUG и убраны неиспользуемые переменные.

2. На панелях не отображались каталоги с именем "." (да, и такое иногда бывает).

3. "Плавала" сортировка по размеру.

4. Не сбрасываем TopPos при удалении элемента из истории.

5. ProcessOSAliases в FileList::ApplyCommand().

garry 06.04.2009 14:59:36 +0300 - build 860

1. Доделан поиск по все кодовым страницам:
    - по умолчанию поиск работает по старому, то есть ищет по стандартным и любимым кодовым страницам;
    - в выпадающем списке теперь можно выбрать те стандартны и любимые кодовые страницы по которым
      будет осуществляться поиск при выборе пункта "Все кодовые страницы". Выбрать кодовую страницу
      можно Ins-м и Space-ом;
    - В реестре этот выбор хранится там же где и любимые кодовые страницы. В значении ключа реестра кодовой
      страницы теперь различается два флага: 1 -- любимая кодовая страница, 2 -- кодовая страница выбранная
      для поиска по всем кодовым страницам.

2. В списках кодовых страниц теперь не отображаются кодовые страницы соответвующием системным OEM и ANSI
   кодовым страницам.

t-rex 06.04.2009 11:02:01 +0200 - build 859

1. Удаление последнего элемента из истории переводило выделение на начало списка.

zg 06.04.2009 00:58:22 +0200 - build 858

1. после 856 раскраска глючила в режиме EXPAND_ALLTABS.

zg 06.04.2009 00:25:16 +0200 - build 857

1. исправлен gcc билд.

garry 05.04.2009 00:35:08 +0300 - build 856

1. Оптимизирована раскраска очень длинных строк. По идее должно работать, либо как раньше, либо быстрее.
   Для достижения наилучшей производительности раскраска в ColorList должны быть расположена по порядку.

t-rex 04.04.2009 22:27:16 +0200 - build 855

1. Ещё мелкий бажок в TList. Заметил faruh.

t-rex 04.04.2009 16:31:10 +0200 - build 854

1. Ещё немного внутренних переделок в истории. Как вытекающее - ShiftDel удаляет текущий пункт.

2. Ещё пару багов в TList.

t-rex 04.04.2009 13:27:18 +0200

1. Hungarian lng update from Far Hunor.

drkns 04.04.2009 00:54:42 +0200 - build 853

1. Неуникодные плагины теперь метятся не дописыванием [A] к имени, а символом в "служебной области" меню.

2. x64 warning.

drkns 03.04.2009 20:37:18 +0200 - build 852

1. Из VMenu::AddItem убран AssignHighlights, ибо:
    - сие приводило к сказочным тормозам в длинных меню и списках;
    - AssignHighlights уже есть в ShowMenu.
   Там же: убран неиспользуемый код и немного оптимизации.

garry 03.04.2009 19:40:01 +0300 - build 851

1. Переработан диалог печати:
   - Сделано динамическое выделение памяти для списка принтеров (буфера иногда не хватало);
   - Сетевые и локальные принтеры теперь получаются вместе;
   - Список принтеров теперь получается через PRINTER_INFO_4W, что избавляет от зависаний при наличии
     недоступных сетевых принтеров. Вследствии этого в списке теперь отображается только имя принтера;
   - Принтер по умолчанию теперь отмечается галочкой.

t-rex 03.04.2009 17:26:47 +0200 - build 850

1. История полностью переписана, изменения чисто внутренние, на использование не должно влиять.
   Единственное (надеюсь) видимое изменение это то что больше нет пустой строки в конце, если в ней был какой то
   сокровенный смысл то пишите, верну.
   Заодно исправлены Mantis#690 и Mantis#450.

2. Ужасы в TList.hpp.

drkns 01.04.2009 21:33:08 +0200 - build 849

1. Не работало отключение автоопределения кодовых страниц в редакторе/просмотре.

svs 01.04.2009 20:54:14 +0300 - build 848

1. Mantis#0000047: *IF_HIDDEN
   Добавлены флаги LIF_HIDDEN (для листов/комбо/историй полей ввода, в общем списков) и MIF_HIDDEN для
   менюх.
   Патч крайне экспериментальный (при юзании этих флагов, в "обычной жизни" все ок).
   Возможно нужны уточнения.
   VMENU_QUICKSEARCH будет после нормализации работы VMenu с *IF_HIDDEN.

2. Плюс к этому флаги [L|M]IF_GRAYD.
   Смысл флагов: стать курсором на такой пункт можно, но тыкание мышкой или Enter на таком пункте не работает
   (этот пункт не производит активных действий)
   Соответственно палитра потолстела на 10 пунктов.
   В раскраске у таких пунктов нет горячих клавиш, соответственно красим только normal и selected.

drkns 30.03.2009 18:24:04 +0200 - build 847

1. Если фар не смог выполнить команду вида "cd какой-то_путь", то в %comspec% она больше не передаётся, т.к.
   во первых, смысл в этом всё равно отсутствует чуть более, чем полностью, во вторых, если путь - сетевой,
   то ругань комспека на unc-пути вводит пользователя в заблуждение.
   Вместо этого теперь показываем красивое красное сообщение с текстом ошибки, как в панелях.
   Также в ProcessOSCommands добавлена обработка команды "exit" и немного косметики.

svs 30.03.2009 15:05:57 +0300 - build 846

1. Уберем немного варнингов.

2. При считывании макросов из реестра так же сохраняются поля "Description".

3. В хелп добавлена обработка макроконструктивов.
   Пока обрабатываются <!Macro:!> - показывающие в помощи макросы, работающие в текущем сеансе
   Кроме сочетания клавиш выводятся описания (если они есть) - в реестре это "Description".
   В этом билде hlf-файлы не скорректированы - необходимо определиться с форматом CtrlStartPosChar

t-rex 30.03.2009 00:42:57 +0200 - build 845

1. Mantis#750: Неинициализированная переменная strInitedLanguage приводит к падению Far.
   И тоже самое с strPersonalPluginsPath.

t-rex 29.03.2009 21:43:12 +0200 - build 844

1. Несколько мелочей.

t-rex 29.03.2009 17:31:41 +0200

1. Hungarian lng and hlf updates from Far Hunor.

t-rex 28.03.2009 23:25:18 +0200 - build 843

1. Отключенные драйвы которые теперь показываются в меню дисков теперь имеют соот. описание чтоб было понятно.
   Ну и разные мелочи с этим связанные.

drkns 28.03.2009 20:10:26 +0200 - build 842

1. Ошибка в предыдущем патче.

drkns 28.03.2009 19:07:10 +0200 - build 841

1. "Интеллектуальные" полосы прокрутки: высота ползунка пропорциональна количеству прокручиваемого.
   Во вьювере пока оставлен старый вариант.

2. Удаление всех записей из истории ввода диалога приводило к падению.

3. network.?pp добавлены в проект.

t-rex 28.03.2009 19:54:38 +0200 - build 840

1. Пару проблем в пердыдущем патче.
   Надо наверно ещё придумать как помечать эти отключеные драйвы которые теперь показываются в меню дисков.

t-rex 28.03.2009 17:20:46 +0200 - build 839

1. From dialex: Mantis#363: Support for network disks

2. Теперь вроде pch будет пересобиратся когда надо.

svs 27.03.2009 11:50:18 +0300 - build 838

1. Mantis#0000801: FarInputRecordToKey() игнорирует dwControlKeyState

drkns 26.03.2009 18:43:43 +0200 - build 837

1. "Защита от дурака" для случая Mantis#0000800, ну и вроде как Mantis#0000765 сюда же.

2. Иногда при смене диска ломились не туда, куда надо.

drkns 25.03.2009 21:03:34 +0200 - build 836

1. Mantis#0000800: FAR падает при попытке показать дерево, если в файле tree2.far присутвуют длинные пути

svs 25.03.2009 20:58:07 +0300 - build 835

1. Mantis#0000799: Buffer overrun in Editor::BlockLeft

drkns 24.03.2009 18:43:59 +0200 - build 834

1. Неправильно отображалась разделительная линия в диалоге параметров поиска.

drkns 23.03.2009 20:05:37 +0200 - build 833

1. Неперерисовка после закрытия дерева папок. В 1.7х исправлено ещё в 2194, сюда почему-то не попало.

2. UnicodeString::c_str() -> CPtr().

t-rex 21.03.2009 12:59:12 +0200

1. Updates and corrections in Hungarian lng from Far Hunor.

svs 20.03.2009 22:20:25 +0300 - build 832

1. Macro: V=callplugin(SysID[,param])

drkns 19.03.2009 19:02:25 +0200 - build 831

1. 829 не собирался в гцц. То ли лыжи не едут, то ли...

2. В UnicodeString добавлен const wchar_t *c_str() (название обсуждаемо), равносильный оператору const wchar_t*.

3. Косметические правки в lng.

t-rex 19.03.2009 13:48:11 +0200

1. Polish translation (lng file) from Maciej Ogrodniczuk.

svs 19.03.2009 12:51:37 +0300 - build 830

1. Mantis#0000794: Empty menu can't be shown from ANSI plugins
   from: darkmist

t-rex 19.03.2009 11:04:52 +0200

1. Corrections in FarHun.hlf.m4 from Far Hunor.

2. Немного грамматики в FarEng.hlf.m4.

drkns 18.03.2009 23:48:38 +0200 - build 829

1. Редактор умеет читать окрытые на запись файлы (опционально). Как следствие - некоторый перетрях диалога настроек
   редактора, ибо в 80x25 новая опция уже не лезла (а заодно и вьювера, дабы выглядели более/менее в одном стиле).
   Теперь влезает, ещё и место остаётся.
   Заодно скроем из локальных настроек редактора/вьювера ещё пару неактуальных для данного режима опций.
   В FarEng.hlf.m4 есть русские буквы.
   В FarHun.hlf.m4 надо обновить разделы @ViewerSettings и @EditorSettings.

2. Упорядочим использование флага FILE_FLAG_POSIX_SEMANTICS для CreateFile. Теперь оный не размазан по коду,
   а используется централизованно в обёртке apiCreateFile, но только для случая dwCreationDistribution==OPEN_EXISTING,
   ибо позволять пользователю самому создавать такое чудо - это уже перебор.

3. При неудачной загрузке файла в редактор не отображался результат GetLastError()

4. Неиспользуемая переменная в main.cpp

svs 18.03.2009 22:42:31 +0300 - build 828

1. Убираем несостоявшиеся эксперименты с двойными тыками в макросах.
   MsM1DblClick, MsM2DblClick, MsM3DblClick, MsLDblClick, MsRDblClick - таких клавиш нет.
   Причины:
   1) если есть макросы на MsLDblClick и MsLClick, то (всегда!) сначала сработает MsLClick, а за ним MsLDblClick.
   2) ну оооочень медленно

2. Mantis#0000790: Buffer overrun in KeyMacro::GetIndex

svs 16.03.2009 20:56:35 +0300 - build 827

1. Mantis#0000165: Макросы на кнопки мыши
   End of game - двойные тыки тоже обмакросены.
   MsM1DblClick, MsM2DblClick, MsM3DblClick, MsLDblClick, MsRDblClick

2. Не совсем корректно был реализован Mantis#0000762.

3. Mantis#0000785: Filters in search are broken
   В FileFilter::FileInFilter() добавлен второй параметр типа enumFileInFilterType,
   уточняющий, почему функция вернула false или true.

4. В FarEng.hlf.m4 есть русские буквы.
   В FarHun.hlf.m4 нужно уточнить раздел @KeyMacroSetting про "и другие клавиши мыши".

drkns 15.03.2009 10:14:34 +0200 - build 826

1. Глюки при таскании мышью полос прокрутки в редакторе, просмотре и панелях.

t-rex 14.03.2009 20:28:48 +0200 - build 825

1. From Alexey Pakhunov: Mantis#787: Buffer overrun in nsMBCSGroupProber::HandleData.

drkns 14.03.2009 11:34:05 +0200 - build 824

1. С форума: не работала кнопка "пропустить всё" при копировании сжатых папок и файлов.

t-rex 13.03.2009 16:03:43 +0200 - build 823

1. Hungarian HLF file from Far Hunor.

2. From Alexey Pakhunov: Mantis#782: FileList::ProcessEnter падает после ChangeDir.
   А также видимо исправляет Mantis#734 и Mantis#743.

drkns 12.03.2009 19:37:22 +0200 - build 822

1. Граббер сбрасывал режим выделения по приходу KEY_IDLE.

2. При пометке файлов правой кнопкой обрабатываем и двойной клик тоже.

3. Уточнение в выделении текста двойным кликом.

4. В диалог поиска уже толком не влезают ни комбобокс с кодовыми страницами,
   ни поле ввода текста (особенно с оглядкой на regexp), посему элементы диалога слегка передвинуты.

5. Mantis#0000781:Buffer overrun in VMenu::ShowMenu

6. При неудачном открытии файла не удалялся FileViewer.

7. Лишние delete и strdup вместо xf_strdup в паре мест.

svs 12.03.2009 20:27:06 +0300 - build 821

1. Mantis#0000780: Парсер: не всегда принимается вызов функции Sleep
   Т.к. в билде 2450 появилась клавиша Sleep, то появилась и проблема :-)
   Переименуем клавишу в Standby.

2. Mantis#0000762: Не находятся символические ссылки

drkns 11.03.2009 01:35:29 +0200

1. Криво создавался farkeys.hpp

drkns 10.03.2009 19:15:58 +0200 - build 820

1. Уточнение 737 билда: WaitKey() считает "любыми настоящими клавишами" не только те,
   которые меньше KEY_END_FKEY, но и некоторые из INTERNAL_KEY_BASE.

2. Клавиши KEY_SLEEP и KEY_DECIMAL передвинуты из INTERNAL_KEY_BASE в EXTENDED_KEY_BASE,
   ибо таки имеют реальные VK_-прототипы, в отличие от.

3. Проект MOUSEKEY извёрнут несколько в другую сторону, но итог примерно тот же:
   в редакторе, комстроке и полях ввода диалогов двойной клик выделяет слово, тройной - всю строку.

4. Mantis#0000774: Не верно работает перименование junction-в на сетевых дисках.

t-rex 10.03.2009 11:39:46 +0200 - build 819

1. Будем считать что если детектор определил что таблица "x-mac-cyrillic" то это всётаки Win-1251 так как они очень похожи
   и 1251 встречается чаще (в рамках фара, да и в мире тоже :) а вот детектор бывает путает и определяет 1251 как mac.

   Дектор у нас наверно ошибается потому что ему передаётся только кусок файла, по хорошему надо сделать чтоб детектор получал
   весь файл по кусочкам. Может там уже есть АПЙ для этого?

drkns 09.03.2009 12:56:57 +0200 - build 818

1. Mantis#0000775: баг в SHErrorToWinError

t-rex 07.03.2009 18:50:04 +0200

1. Hungarian translation (lng file) from Far Hunor.

2. Обновил lng.generator.

svs 06.03.2009 13:24:30 +0300 - build 817

1. Mantis#0000773: Комбинация макросов приводящая к мусору в клавиатурном буфере (при запуске фара с плагином, выводящем при старте диалог)

drkns 06.03.2009 00:01:07 +0200 - build 816

1. В 809 немного поломал макросы.

svs 05.03.2009 12:17:32 +0300 - build 815

1. Mantis#0000771 - утчонение:
   для Cmd&1 функция evalFunc() должна вернуть false всегда (т.к. исполнять нечего)

t-rex 05.03.2009 10:27:10 +0200 - build 814

1. Правка Mantis#769 в 813 не правильная.

2. Ворнинги.

svs 05.03.2009 09:42:34 +0300 - build 813

1. Mantis#0000771: Опечатка в справке по аргументам коммандной строки

2. Mantis#0000769: Ошибка в Dlg.GetValue
   (так же здесь DM_LISTGETITEM применялась для первого элемента диалога, вместо запрашиваемого Index)

drkns 04.03.2009 21:48:39 +0200 - build 812

1. Разные мелкие глюки в отображении диалога результатов поиска.
   Там же: сепараторы в списке рисуем как сепараторы.

2. Неправильно работала функция TruncStrFromEnd.

3. В логике дорисовывания рамки меню не учитывалась ситуация BoxType==NO_BOX.

4. Mantis#0000730: Far2: падение при DM_LISTINSERT.

svs 04.03.2009 17:48:01 +0300 - build 811

1. Mantis#0000768: Расширение параметров макрофункции eval() для проверки корректности макропоследовательности
   N=eval(S[,T])
   N = код ошибки
       enum errParseCode
       {
         err_Success,
         err_Unrecognized_keyword,
         err_Unrecognized_function,
         err_Not_expected_ELSE,
         err_Not_expected_END,
         err_Unexpected_EOS,
         err_Expected,
         err_Bad_Hex_Control_Char,
         err_Bad_Control_Char,
         err_Var_Expected,
         err_Expr_Expected,
       };
   T = "как". Пока так: 0 - компиляция и исполнение, 1 - только компиляция и возврат кода ошибки.

t-rex 04.03.2009 15:52:31 +0200 - build 810

1. Правки в regexp либе, от Кости.

2. Some grammar in German translation. By Wolfgang Krumm.

3. Варнинги и форматирование в macro.cpp.

drkns 03.03.2009 21:55:07 +0200 - build 809

1. В диалог параметров макрокоманды добавлено поле "Sequence:", содержащее текстовое представление
   набранного пользователем макроса, что позволяет не отходя от кассы разбавить сухие нажатия клавиш
   разнообразными элементами макроязыка (и да - я помню про DI_MEMOEDIT, и что с ним сие было бы
   гораздо круче. Но где ещё тот DI_MEMOEDIT, а пока что обкатаем технологию).

svs 03.03.2009 20:36:33 +0300 - build 808

1. Mantis#0000767: Результат функции Menu.Select() вызванной из неверного контекста

drkns 03.03.2009 00:18:19 +0200 - build 807

1. Не работал поиск в панели плагина.
   Похоже, забыли сделать InitInFileSearch() для случая PluginMode.

2. Имела место утечка памяти в поиске при (•) Selected folders.
   Похоже, InitInFileSearch() делали не там где надо.

drkns 02.03.2009 19:32:52 +0200 - build 806

1. Однако, не всё прибил в 805.

drkns 02.03.2009 18:48:53 +0200 - build 805

1. При перетаскивании файла в консоль (или при вставке текста через меню окна)
   нелатинские символы превращались в киргуду.

2. Прибита опция "Middle button equals Enter in panels" в "Interface settings".
   Ибо макросы.

svs 02.03.2009 19:38:51 +0300 - build 804

1. Mantis#0000165: Макросы на кнопки мыши
    Здесь в теле макрокоманды доступны константы (обновляются):
    MsX, MsY - координаты мыши
    MsButton - состояние клавиш, описано в хелпе для MOUSE_EVENT_RECORD
    MsCtrlState - состояние клавиш, описано в хелпе для MOUSE_EVENT_RECORD

    Назначать макрос можно на [Alt|Ctrl|Shift]Ms[L|R|M[1|2|3]]Click - выбираются в диалоге назначения макроклавиши.

    Например :crazy:
    Shell\MsLClick="$if (MsY < Far.Height-1) F1 $Else $Akey $End"
    Если кликнули в строке кейбара - отработает то, что на лейбах написано. Если выше - повится подсказка.

    Здесь етсь ахтунги:
    1. Для мышиной клавиши, которая встречается в теле макроса (Ms[LRM[123]]Click), вернем значение
       события MOUSE_EVENT, соответствующее _последнему_ событию мыши.
       (lastMOUSE_EVENT_RECORD - всегда заполняется при поступлении событий мыши)
    2. Если в макропоследовательности предыдущая клавиша мышиная - сбросим состояние панели Drag,
       иначе в панелях получаем незапланированный Drag.

2. В диалоге назначения макроклавиш "становится тесно", поэтому для визуальной ориентации в списке
   разделим наборы сепараторами.
   + вместо [модификаторы]MsWheelXXX строки для комбобокса формируются с помощью KeyToText

3. Введена функция KeyMacro::SetMacroConst(), позволяющая оперативно изменять "макроконстанты".

4. KEY_MS??CLICK клавиши фиктивные, ФАР и плагины в чистом виде (кроме макродвижка) их не "видят"

drkns 02.03.2009 01:30:00 +0200 - build 803

1. Зависал поиск по всем кодовым страницам.

2. Избранные кодовые страницы теперь хранятся не в CodeTables\Selected, а в CodePages\Favorites.

3. Ещё немного косметики на предмет chartable -> codepage в коде.

drkns 01.03.2009 21:15:30 +0200 - build 802

1. В findfile.cpp "магические числа" заменены именованными константами.

2. Коррекция hlf/lng на предмет "character table" -> "code page".

3. Ещё одно уточнение в рисовалке меню.

t-rex 01.03.2009 12:36:10 +0200 - build 801

1. Mantis#760: Новая реализация поиска по содержимому файлов, а так же любимых таблиц символов.
   From DiRTy_GaRRy.

   # Поиск по содержимому файлов (ALT+F7):

       * Поиск по стандартным и любым системным кодировкам;
       * Поиск по всем кодировкам. Сейчас понятие "все таблицы символов" сильно расширилось, так как FAR теперь работает
         с системными кодировками, а их много. Пока в случае поиска по всем таблицам символов сделан поиск по UTF-16, OEM
         и ANSI, но это не правильно. Так что, предложения по данному пункту принимаются.
       * Таблица символов поиска теперь сохраняется, только, если не выбран пунет все "Все таблицы символов".

   # Списки таблиц символов:

       * Выбор таблиц символов теперь выглядит везде (создание/сохранение файла, выбор таблицы символов в редакторе/просмотрщике, поиск файлов) одинаково.
       * Не доступные на данный момент в редакторе/просмотрщике таблицы символов показываются выключеными;
       * Заполненеие списков таблиц символов перенесено в единое место;
       * Сделал любимые таблицы символов, как я предлагал изначально (Mantis#660);
       * Убрана настройка CPMenuMode.

   # Разное:

       * Немного улучшена рисовалка меню:

2. Пару исправлений связанных с языковыми файлами.

3. gcc варнинги в UCD.

t-rex 26.02.2009 23:21:41 +0200

1. German translation (lng file) from Thomas Wolf.

2. Перевёл MEditOpenCreateLabel на Чешский и Немецкий :)
   !!! Заметка на будущее, при добавлении новых языковых строк помечайте те строки которые
   вы не знаете как перевести соловом upd: вот таким образом, чтоб было легко найти:
   upd:"Строка"
   lng.generator знает о такой пометке и выводит напоминания на экран !!!

drkns 26.02.2009 08:47:51 +0200 - build 800

1. В процессе копирования/переноса в ".." производилась попытка этот самый ".." создать.
   Причём на FAT это даже получалось.

svs 26.02.2009 00:14:42 +0300 - build 799

1. Уточнение для "~". Добавлена обработка символов "после тильды".

2. В диалоге открытия файла на редактирование (Shift-F4) в явном виде указывались подписи,
   был указан совершенно левый топик помощи.
   Czech-вариант для MEditOpenCreateLabel оставлен по английски - не владах с этой мовой ;-)

3. Немного хелпа про редактор (опять добавка русских буковок в английское писание ;-)):
   а) новый раздел @FileOpenCreate - для диалога Shift-F4
   б) в разделе @FileSaveAs - писание про кодовую страницу и BOM.

   Текстовку возможно придется уточнять. Если у кого есть предложения - Wелкам!

4. Непонятки!
   а) Кстати, термин "REVERSEBOM" - это так и должно быть или есть осмысленное название?
   б) В fileedit.cpp есть строка:
       Message(MSG_WARNING, 1, L"WARNING!", L"Editor will be reopened with new file!", MSG(MOk));
      так и должно быть или все же ОНО должно "говорить" на языке выбранного интерфейса?

drkns 25.02.2009 20:47:41 +0200 - build 798

1. Mantis#0000759: При попытке поиска (Alt-F7) на сетевом ресурсе вида \\host\c$ получаем AV exception

2. Mantis#0000761: Не совсем корректная работа с папками оканчивающимися на "."

ts 25.02.2009 15:26:18 +0200 - build  797

1. FarCharTableA: кроме "любимых", всегда первыми возвращаем OEM и ANSI таблицы. Коррекция поведения при ошибке.

zg 24.02.2009 22:17:53 +0200 - build 796

1. пара опечаток в FileList::FileListToPluginItem2.

drkns 24.02.2009 21:32:15 +0200 - build 795

1. Mantis#0000753: "Skip all" для ошибок удаления исходных файлов при перемещении

2. Mantis#0000757: x64 Far. после поиска по Alt-F7 при попытке просмотра файла (F3) валится с AV exception.

drkns 24.02.2009 19:19:50 +0200 - build 794

1. Иногда пропадал второй символ первой строки при просмотре файла в utf8.

2. В farlang.templ.m4 были униховские переводы строк.

3. Раз уж у нас lng теперь в этом вашем utf8, пусть и hlf будут в нём же.

t-rex 24.02.2009 13:53:17 +0200

1. Czech translation (lng file) from Radek Kubicek.

svs 24.02.2009 14:50:45 +0300 - build 793

1. Mantis#0000754: F1 не работает в плагинах

warp 24.02.2009 14:40:00 +0300 - build 792

1. Отключим автоматическое определение кодировки для .hlf/.lng (то, которое испольует таблицы, определение
   по BOM остается). Это забавно, но если детектор промахивается - читать полученное невозможно, исправить тоже.

svs 24.02.2009 11:49:33 +0300 - build 791

1. Macro: N=atoi(S[,radix])
   radix=0 ==> autodetect

yjh 24.02.2009 08:56:09 +0300 - build 790

1. Предупреждения кастингов в 64-бит

zg 23.02.2009 23:08:36 +0200 - build 789

1. FCTL_FREEPANELITEM больше нет. FCTL_GET[SELECTED|CURRENT]PANELITEM возвращают необходимый размер буфера.
   все плагины, использовавшие FCTL_* - сломались.

drkns 23.02.2009 19:43:31 +0200 - build 788

1. И ещё раз продолжение 785.

drkns 23.02.2009 07:11:48 +0200 - build 787

1. Опечатка в 785.

drkns 22.02.2009 23:25:01 +0200 - build 786

1. Не работали CtrlP/CtrlM для вертикальных блоков, ибо IsClipboardFormatAvailable
   по определению ничего не знает о внутреннем фаровском буфере обмена.

2. Не собирался отладочный вариант.

drkns 22.02.2009 12:52:54 +0200 - build 785

1. Мелкие глюки при сохранении файла в редакторе и c определением кодировки во вьювере.

2. Используем IsSlash() вместо '\\' везде, где надо.

3. Обновил проект.

t-rex 22.02.2009 12:12:26 +0200 - build 784

1. Добавил в nsUniversalDetectorEx.h конвертацию имён в nCodePage для всех поддерживаемых фаром таблиц которые может вернуть мозиловский детектор.

2. Удалил prmem.c из корня ибо он есть и в UCD. Надо проект обновить.

drkns 22.02.2009 11:39:41 +0200 - build 783

1. Криво работала вставка вертикальных блоков из буфера обмена.

drkns 22.02.2009 02:41:43 +0200 - build 782

1. Дополним vc-проект и починим мейки.

warp 22.02.2009 02:11:00 +0300 - build 781

1. Бонус-тайм. Если повезет может определяться все, что умеет определять автодетектор кодировок от
   Mozilla. Побочные эффекты в наличии.

   До починки make-ов собрать можно будет только проектом!

2. Ну и диалог сохранения файла поправим в размерах.

drkns 21.02.2009 22:13:13 +0200 - build 780

1. UTF8 может определяться и без наличия сигнатуры (если повезёт :)

2. В диалог сохранения добавлена опция, определяющая, надо ли писать в файл сигнатуру.

3. Mantis#0000706: opening very short file gives messed up encoding
   Ужесточён алгоритм определения UTF16 LE/BE. Пусть уж лучше будет ложный ascii, чем ложный уникод.

drkns 21.02.2009 14:56:50 +0200 - build 779

1. Автоопределение кодовой страницы во вьювере, аналогичное редакторному.

2. В PrepareDiskPath криво обрабатывались отностительные пути вида c: или d:dir

3. параметр Layout\PassiveFolder удалён, т.к. есть Panel\<Left|Right>\<Folder|Focus>

svs 19.02.2009 21:28:08 +0300 - build 778

1. Mantis#0000710, приведем к униходу.

2. в хелпе неудачно "пошутил" на счет "если плагин НЕ имеет файла-помощи"

svs 19.02.2009 20:58:19 +0300 - build 777

1. Mantis#0000710: При выборе диска буквами - всегда выбирается дисковод A: (в telnet)
   Отличие от оригинальное патча от Maximus: код немного причесал, вместо "5" поставил countof(Layout)

2. Mantis#0000748: Undo/вставка не работают
   В 1.7 функцию IsClipboardFormatAvailable() применил, а в 2.0 думал про нее, но как то... видимо кто-то отвлек, ну и...

3. варнинги в VC от пред.патчей.

drkns 19.02.2009 17:39:21 +0200 - build 776

1. "Немного" :) перестарался с UnicodeString в предыдущем билде.

drkns 19.02.2009 15:32:33 +0200 - build 775

1. Mantis#0000739: cannot search for 0x00 hex value
   UnicodeString был не особо приспособлен для хранения двоичных строк.

2. Как оказалось, ещё не работал hex-поиск для всех символов выше 0x7f.

3. Косметика в ChangeDiskMenu.

svs 19.02.2009 11:49:46 +0300 - build 774

1. Mantis#0000740: Некорректная вставка вертикального блока
   FAR 2.0 теперь работает с новым форматом - "FAR_VerticalBlock_Unicode", старый
   поддерживается только для "чтения".
   (в 1.75 будет добавлена поддержка "FAR_VerticalBlock_Unicode" на уровне "readonly")

2. CopyToClipboard() допускает параметр, равный NULL = "очистить буфер обмена"

3. InternalCopyToClipboard() сама не чистит буфер (EmptyClipboard), это делает CopyToClipboard().
   В этом случае используя InternalCopyToClipboard() можно добавлять данные в других форматах в буфер.

4. Mantis#0000744: Двойное вырезание
   Пришлось в некоторых функциях редактора вместо xwcsncpy/StrLength/etc применить "размеры-переменные".
   Так же:
   1) Edit::SetString - +доп.параметр, размер. по умолчанию равен -1
   2) В EditorUndoData добавлен член Length - для корректной работы отката "после вырезания" :-)
      соответственно Edit::AddUndoData() так же получил доп.параметр.

   Здесь еще копать и копать, но... вроде ничего сейчас не поломалось ;-)

drkns 18.02.2009 20:16:30 +0200 - build 773

1. Mantis#0000741: Ошибка в panel.cpp "if(GetMode()==FILE_PANEL)".

2. Mantis#0000742: Иногда последний сегмент пути в пассивной панели установляется заглавными буквами.

drkns 15.02.2009 22:26:31 +0200 - build 772

1. gcc.

drkns 15.02.2009 19:21:51 +0200 - build 771

1. При копировании (не системном) выделяем место заранее (если хватает).
   Не знаю, сильно ли это ускорит процесс, но фрагментация точно будет меньше.

2. В запускателе используем флаг SEE_MASK_NOZONECHECKS, дабы ОС не спрашивала
   разрешения для запуска файлов, полученных по сети.

3. Криво работали ассоциации, начинающиеся с символа '@'.

4. Ещё всякие косметические мелочи.

drkns 12.02.2009 21:29:15 +0200

1. Mantis#0000712: Неверная строка билда в заголовке справки.
   Заодно убраны некоторые другие отличия vc-проекта от мейкфайла.

drkns 12.02.2009 00:40:52 +0200 - build 770

1. В RemoveToRecycleBin забыли про "\0\0".
   Там же: уточнения в переводе кодов возврата SHFileOperation в winerror-коды.
   Там же: в NT6 и выше игнорируем опцию "Удалять символические ссылки", т.к. эти ОС корректно удаляют их при очистке корзины.

svs 11.02.2009 16:35:57 +0300 - build 769

1. Mantis#0000715: Добавим вызов диалога конфигурации в меню плагинов
   (from samlyukov)
   ...с небольшими моими уточнениями:
     0) никаких биперов и месагов - нет конфиг-диалоге - ничего не делаем.
     1) Alt-Shift-F9 в меню выбора дисков действует независимо от того, стоит ли
        курсор в области внешних моделей или "на дисках"
     2) соответственно обновлены файлы помощи.

     В файле FarEng.hlf.m4 есть русские букофки - поправил бы кто (mantis#702)

2. Mantis#0000711: Ошибка при замене
   Уточнение с выделениями - при замене ставим выделение соответствующего размера.

svs 08.02.2009 18:19:49 +0300 - build 768

1. Mantis#0000547: Выделение найденных фрагментов при поиске
   Корректировка - после выделения найденного нужно перемещать курсор
                   только если не замена, иначе дальше по тексту "Text(TmpStr);"
                   убивает все, что дальше.

2. Mantis#0000711: Ошибка при замене
   Собственно - следствие Mantis#0000547.
   + к этому: выделяем корректно, с локами, и перед очередным выделением снимаем пометку блока.

svs 08.02.2009 17:33:52 +0300 - build 767

1. Mantis#0000716: Один из режимов работает неправильно
   (from DiRTy_GaRRy)

drkns 08.02.2009 11:03:16 +0200 - build 766

1. Реализация DM_LISTGETTITLES.

2. Во врапере не были описаны DM_<G|S>ETEDITPOSITION, DM_<G|S>ETCOMBOBOXEVENT.

drkns 07.02.2009 23:34:36 +0200 - build 765

1. Начинаем учить фар работе с по настоящему длинными именами (это где "\\?\" и "примерно 32000").

2. Корректная работа с файлами/папками, оканчивающимися пробелами.

3. Криво работала FCTL_GETCMDLINE для oem-плагинов.

drkns 06.02.2009 00:40:14 +0200 - build 764

1. В меню с полосой прокрутки неправильно вычислялась правая граница срабатывания мыши.

2. Длинные строки в меню можно прокручивать мышью.

3. Из GetString убран параметр DestLength.

drkns 05.02.2009 19:24:36 +0200 - build 763

1. В справке не работали ссылки вида ~Text~@<Path>@.

drkns 04.02.2009 19:18:48 +0200 - build 762

1. Mantis#0000725: Не всплывает окно поиска при нажатии русских букв

2. Mantis#0000727: heap corruption in CopyToClipboard

drkns 03.02.2009 18:38:38 +0200 - build 761

1. Одно чиним, другое ломаем :) - снова неперерисовка пассивной панели.

drkns 01.02.2009 19:58:28 +0200 - build 760

1. Еще немного на тему отрисовки пассивной панели при закрытии активной полноэкранной.

drkns 31.01.2009 19:40:10 +0200 - build 759

1. OEM-плагины в ProcessEditorInput получали KEY_EVENT_RECORD в "сыром" виде.
   Как результат, вместо русских символов им приходила киргуда.

2. В некоторых случаях не восстанавливались длинные имена, утерянные после выполнения внешних команд.

drkns 30.01.2009 19:39:47 +0200 - build 758

1. Mantis#0000719: Ошибка копирования русского текста в clipboard.

drkns 29.01.2009 21:20:22 +0200 - build 757

1. Не во всех случаях обвобождалась память, выделенная в FileListToPluginItem.

2. Не освобождалась память, выделенная под InfoPanelLine во врапере.

warp 28.01.2009 11:30:00 +0300 - build 756

1. Ну раз уж пошло - добавим еще и FCTL_GETCURRENTITEM, дабы FCTL_GETPANELINFO не дергать ради этого.

yjh 28.01.2009 04:05:24 +0300 - build 755

1. 64хбитовые предупреждения к 753

drkns 27.01.2009 17:47:55 +0200 - build 754

1. Вдогонку к 753: FCTL_GETCMDLINE[SELECTEDTEXT] возвращет требуемый размер буфера с учётом 0.

drkns 27.01.2009 16:09:51 +0200 - build 753

1. Очередной перетрях API.
   FCTL_GETPANELSHORTINFO больше нет. Её функцию выполняет FCTL_GETPANELINFO.
   Из структуры PanelInfo убраны поля PanelItems, SelectedItems, lpwszColumnTypes, lpwszColumnWidths, lpwszCurDir.
   Для получения их значений теперь есть отдельные FCTL-команды: FCTL_GETPANELITEM, FCTL_GETSELECTEDPANELITEM,
   FCTL_GETCOLUMNTYPES, FCTL_GETCOLUMNWIDTHS, FCTL_GETCURRENTDIRECTORY.

   FCTL_FREEPANELINFO тоже больше нет. Фар выделяет только память для полей FCTL_GET[SELECTED]PANELITEM, для их
   освобождения плагин должен использовать команду FCTL_FREEPANELITEM.

   Память для FCTL_GETCOLUMNTYPES, FCTL_GETCOLUMNWIDTHS, FCTL_GETCURRENTDIRECTORY выделяет плагин,
   необходимый размер буфера пожно получить, передав NULL в качестве параметра.

   FCTL_GET[SELECTED]PANELITEM, FCTL_FREEPANELITEM, FCTL_SETSELECTION работают с ОДНИМ элементом.

   Info.Control теперь выглядит как Info.Control(HANDLE hPlugin,int Command,int Param1,LONG_PTR Param2).
   Часть бывших Param переехала в Param1, часть в Param2, будьте бдительны.

   Все плагины, так или иначе использовавшие Control, надо переделать!!!

2. From Tim Sobolev: реализация FarCharTableA.

drkns 25.01.2009 19:37:00 +0200 - build 752

1. При закрытии полноэкранной плагиновой панели не обновлялась пассивная панель.

2. Не обновлялась панель после FCTL_CLOSEPLUGIN.

drkns 24.01.2009 22:01:13 +0200 - build 751

1. Криво отображался символ пометки в панелях.

drkns 24.01.2009 15:39:50 +0200 - build 750

1. В копире вылезли очередные баги.

2. В меню выбора кодовой сраницы (ShiftF8) не обрабатывался Ins на цифровой клавиатуре.

svs 23.01.2009 19:26:56 +0300 - build 749

1. Macro: Editor.Sel()
   - new -> Editor.Sel(0,4) - вернет тип блока (0 - нету, 1 - stream, 2 - column)
   - исправлены прыжки (в т.ч с column, которые по сути не пахали)
   - некорректно работали установки... без учета табов
   - некорректно работали инфо-функции - без учета табов
   - new -> Editor.Sel(4) - Unmark selected block, вернет всегда 1
   - если ширина блока = 0 (от сюда == до сюда), то это равносильно Editor.Sel(4)

   Фича есть одна с применением Editor.Sel():
     1. Editor.Sel(2, 0) - помечаем начало stream блока
     2. что-то делали, и даже блоки выделяли...
     3. Editor.Sel(2, 1) - помечаем конец - предыдущие выделения снимаются и помечается новый
        блок от (1) до "сюда"

2. Macro: парсер - символ ';' сразу после закрывающейся скобки функции игнорируется

3. Попутно в АПИ для ECTL_SELECT была несуразица:
   - отметка блока исчезает всегда, сейчас, если что-то не так с параметрами, блок остается на месте
   - отметка блока исчезает всегда, даже если такой строки не находили (BlockStartLine)
   - если BlockHeight был больше чем текста (например, пытаемся выделить блок, указывая последнюю строку,
     а BlockHeight=, например, 10), то EditorControl возвращал FALSE, хотя блок успешно выделялся.
   - Читаем "BlockWidth - Ширина блока. Может быть отрицательной величиной." - но получалось,
     что при BTYPE_COLUMN и BlockWidth=-1 "транзакция" пометки блока неполная, что может приводить к
     непоняткам с блоками.

   Что-то не могу припомнить для чего нужна была проверка "if(BlockWidth==-1)", в любом случае получалась
   не полная транзакция.

4. Поддержка MCODE_F_EDITOR_SEL во всем, что движется... (редактируется)

5. Добавлено (для единообразия) Ctrl-U (снять выделение с блока) в ком.строке (работает при погашенных обоих панелях).


drkns 22.01.2009 15:03:21 +0200 - build 748

1. В FormatMessage не передавался флаг FORMAT_MESSAGE_IGNORE_INSERTS.
   Как следствие, функция обламывалась на строках с %1, %2 и т.п. (например, в сообщениях об "ошибке запуска").
   Сейчас эти %x никак дополнительно не обрабатываются, что, конечно, не фонтан, но всяко лучше, чем совсем ничего.

drkns 22.01.2009 12:47:21 +0200 - build 747

1. Mantis#0000709:Ansi и Unicode версии в одной dll?
   Заодно починил оптимизацию проверки экспортов по crc32.

svs 22.01.2009 12:16:13 +0300 - build 746

1. Macro: Editor.Sel([1|0],[0|1]) работают некорректно:
   - не учетены табы,
   - при "прыжке" в конец блока позиция ставится на слудующую строку.


t-rex 22.01.2009 08:51:22 +0200 - build 745

1. From Alexey Pakhunov: Mantis#708: Чтение за пределы буфера в FilePositionCache::Save

2. Заодно сделал там пару вещей "покрасивей".

drkns 21.01.2009 00:19:40 +0200 - build 744

1. Если развернутый комбобокс или история ввода не влезает целиком на экран,
   и при этом над ним места больше, чем под ним - откроем его "вверх".

2. При изменении размеров консоли комбобоксы и истории рисуются как положено, а не чёрт знает где.

3. Не уродуются диалоги, не влезающие в консоль.

drkns 19.01.2009 20:44:36 +0200 - build 743

1. В перемещении диалога кнопками End/PgDn был баг, но проявился он только после предыдущего билда.

2. Mantis#0000704: глюки при передаче управления в плагин
   Mantis#0000705: Проблемы с farcmds.dll

drkns 19.01.2009 16:59:41 +0200 - build 742

1. Нежно, плавно и осторожно попробуем разрешить таскать диалоги за пределы экрана.
   Вроде бы всё работает, но мало ли, могло где-то аукнуться.
   Просьба незамедлительно докладывать в штаб о любом неадекватном поведении.

drkns 17.01.2009 21:28:37 +0200 - build 741

1. Mantis#0000703: При попытке переместить папку возникает ошибка "Access Denied".

drkns 17.01.2009 17:05:36 +0200 - build 740

1. Снова копирайт: по "Far /?" выводился мусор.

2. В copyright.inc вместо символов генерируются их hex-коды.

drkns 16.01.2009 22:02:38 +0200 - build 739

1. Если нет ни одного плагина, экспортирующего SetFindList[W],
   то и кнопку [ Panel ] в диалоге результов поиска показывать не будем.

2. Косметика: замена sizeof/sizeof на countof везде, где ещё оставалось.

svs 16.01.2009 19:07:22 +0300 - build 738

1. Уточнение для Editor.Sel
   Начало и конец блока может быть в любом месте (например, начало - ниже, конец - выше).
   Блок всегда выделиться правильно.


svs 16.01.2009 16:35:23 +0300 - build 737

0. с предущим патчем напортачил - не вовремя удалил буфер.

1. Macro: функция waitkey имеет второй необязательный параметр - тип возвращаемого значения:
   0 - вернуть строковое название клавиши, 1 - числовое название клавиши

     V=waitkey([N,[T]])

2. Macro: добавлена функция Editor.Sel

    V=Editor.Sel(Action[,Opt])

   позволяет манипулировать выделениями в тексте

      Action: 0 = Get Pos
                  Opt:  0 = return FirstLine
                        1 = return FirstPos
                        2 = return LastLine
                        3 = return LastPos
                  return: 0 = failure, 1... request value

              1 = Set Pos
                  Opt:  0 = begin block (FirstLine & FirstPos)
                        1 = end block (LastLine & LastPos)
                  return: 0 = failure, 1 = success

              2 = Set Stream Selection Edge
                  Opt:  0 = selection start
                        1 = selection finish
                  return: 0 = failure, 1 = success

              3 = Set Column Selection Edge
                  Opt:  0 = selection start
                        1 = selection finish
                  return: 0 = failure, 1 = success

   Например, повторим некоторые сочетания клавиш из Turbo-сред (повесим макрос на сочетание Ctrl-K):

   %k=waitkey(0,1);
   $if(%k==B || %k==b || %k==CtrlB)
     editor.sel(2,0)
   $else
     $if(%k==K || %k==k || %k==CtrlK)
       editor.sel(2,1)
     $else
       $if((%k==C || %k==c || %k==CtrlC) && Selected)
         CtrlC
       $else
         $if((%k==Y || %k==y || %k==CtrlY) && Selected)
           CtrlD
         $else
           eval("F1")
         $end
       $end
     $end
   $end


3. Уточнение в WaitKey() - "пропускаем только любые настоящие клавиши" (код < KEY_END_FKEY)

4. добавлена функция "s=key(v)" - преобразует значение v в строковый эквивалент названия клавиши.
   если v строка, то проверяется правильность написания клавиши и она же возвращается
   если v число, то происходит попытка преобразовать в текст
   в случае ошибок - возвращается пустая строка.

5. Macro: теперь именованные клавиши могут участвовать в любых вычислениях.
   Например,
     %k=waitkey(0,1); $if(%k == CtrlB)...
   или
     %k=CtrlK; ..... %k=%k+Alt; eval(key(%k))



svs 16.01.2009 13:55:26 +0300 - build 736

1. Ситуация была - в copyright.inc количество символов превышало 256, заявленных для Str в ControlObject::ShowCopyright().
   Естественно ФАР успешно компилился, но не запускался, молча трапался.
   Можно было бы применить xstrncpy, но вдруг в copyright.inc.m4 что-то еще допишется,
   так что пусть строка выделяется динамически.

drkns 15.01.2009 07:02:47 +0200 - build 735

1. Пара мелочей.

drkns 15.01.2009 00:44:47 +0200 - build 734

1. В диалоге установки атрибутов для файла, имеющего несколько жёстких ссылок,
   вместо одного имени отображается список всех его имён.
   Работает в Vista и выше.

t-rex 14.01.2009 22:00:55 +0200 - build 733

1. Добавляем битность сборки в инфу о версии.

2. Убрал за не надобностью BUILDTESTONLY и BUILDTYPENUM.

drkns 12.01.2009 17:38:59 +0200 - build 732

1. Кто-то снова сломал Mantis#0000605.
   Скобки вокруг VMenu ChDisk() в panel.cpp и вокруг других аналогичных мест - НАДО!!!
   От них там польза, они дырку на обоях загора... бррр, они область видимости ограничивают,
   чтобы эти меню вовремя удалялись и не маячили на экране.

2. Уберём из локальных настроек редактора/вьювера чекбоксы выбора умолчальной кодировки.

svs 12.01.2009 15:13:56 +0300 - build 731

1. Не работает в FAR 2.0 alpha 1 (build 729) опция автоматически монтировать CDROM.

yjh 12.01.2009 03:44:27 +0300 - build 730

1. Добавим опцию в makefile_vc для возможности генерации release с
   включенным кодом для теста exception (отладки excdump :).

t-rex 11.01.2009 23:00:45 +0200 - build 729

1. Продолжение Mantis#697, GetShellType должен вернуть false если найденый тип это пустая строка.

t-rex 11.01.2009 21:56:05 +0200 - build 728

1. Mantis#693 и Mantis#697 - проблемы в запускаторе виндовых типов из за неправильной работы с реестром.

drkns 11.01.2009 19:52:42 +0200 - build 727

1. Баги в url-запускателе + в висте запускалось не то, что надо.

drkns 11.01.2009 16:08:39 +0200 - build 726

1. Вроде бы заработало автозавершение в строках ввода диалогов.

drkns 11.01.2009 09:12:18 +0200 - build 725

1. From Maximus5: Cannot update file descriptions.

drkns 10.01.2009 18:32:35 +0200 - build 724

1. И снова продолжение 720.

drkns 10.01.2009 16:40:25 +0200 - build 723

1. В меню ассоциаций не отображалась колонка с описаниями.

drkns 10.01.2009 16:16:50 +0200 - build 722

1. Продолжение 720.

drkns 10.01.2009 14:53:38 +0200 - build 721

1. При выводе сообщения об ошибке загрузки плагина брался "плагиновый" экземпляр Language вместо "фаровского".

drkns 10.01.2009 12:53:27 +0200 - build 720

1. Во враппере криво освобождался FarList;

2. Xlat в редакторе;

3. Edit::GetStringAddrW -> Edit::GetStringAddr.

drkns 08.01.2009 09:47:23 +0200

1. Секция <dependency> в манифесте.

drkns 06.01.2009 11:34:50 +0200 - build 719

1. Не работали макроконстанты.

t-rex 05.01.2009 18:05:34 +0200 - build 718

1. Символы "=;," тоже требуют две пары кавычек при запуске через cmd.

drkns 04.01.2009 15:37:36 +0200

1. Мелочи в vc-проекте и мейках.

zg 04.01.2009 15:17:03 +0200 - build 717

1. mantis#695.

t-rex 04.01.2009 00:32:09 +0200 - build 716

1. Первые шаги поддержки UTF во вьювере, с горем пополам но как то пашет.

drkns 03.01.2009 16:18:04 +0200 - build 715

1. Поддержка клавиши PrintScreen :) + в панелях некорректно обрабатывались AltEnter и AltTab.

2. Отключено создание PCH для *.с, ибо этих *.с осталось "один штука".

drkns 02.01.2009 10:30:25 +0200 - build 714

1. Xlat.Table и Xlat.Rules теперь string и в реестре хранятся как REG_SZ.

2. Исправил пару BUGBUG в копире.

3. Из iswind.cpp удалены остатки былой роскоши - FindFarWndByTitle, IsWindowedEnumProc, IsWindowedEnumProc2.

4. Пара вещей из Mantis#657.

zg 02.01.2009 02:44:04 +0200 - build 713

1. CAS в диалоге назначения макроклавиши.

drkns 29.12.2008 18:38:33 +0200 - build 712

1. Продолжение Mantis#0000674.

2. Откатим 709 - не всё так просто.

t-rex 29.12.2008 12:45:32 +0200 - build 711

1. FarCharTableA эмулирует как можно ближе к 1.7x.

2. Xlat и XlatA "работают". Я не знаю что и как они должны делать, кто умеет этим делом пользоватся потестируйте.

t-rex 28.12.2008 22:46:27 +0200 - build 710

1. Mantis#689: Crash in the viewer.

drkns 29.12.2008 22:33:47 +0200 - build 709

1. Если запрашивалось ACTL_GETSHORTWINDOWINFO для текущего окна, и это окно - vmenu, то текущим считалось предыдущее окно.

t-rex 28.12.2008 20:21:07 +0200 - build 708

1. Теперь все функции API доступны и работают (кроме Xlat который пока в виде заглушки).

drkns 28.12.2008 17:56:33 +0200 - build 707

1. Mantis#0000688: View Command Log does not show first characters

t-rex 28.12.2008 17:33:01 +0200 - build 706

1. StandardFunctions.ConvertNameToReal заработал.

2. Фильтры не работали при move на одном и том же диске (тестовый фикс).

3. Продолжаем колбасить всё подряд.

drkns 28.12.2008 11:09:34 +0200

1. Из проекта убраны удалённые в 703 файлы.

2. Косметика в far.rc.

t-rex 27.12.2008 23:59:35 +0200 - build 705

1. Убрал все эти UnicodeToAnsi и т.п., теперь они есть только во враппере где им и место.

2. Баг в ProcessNameA.

3. macro.cpp::dlggetvalueFunc(), обработка 10 параметра. Надо посмотреть ещё раз, вроде для Edit надо подругому.

4. Lnaguage - теперь не держит Unicode и OEM строки паралельно, а только те которые надо.

5. Ещё пару мелочей по дороге.

t-rex 27.12.2008 18:30:29 +0200 - build 704

1. Продолжаем колбасить.

t-rex 27.12.2008 16:37:31 +0200 - build 703

1. Продолжаем колбасить fn.hpp, а вдобавку и farconst.hpp struct.hpp global.hpp.

drkns 27.12.2008 13:44:08 +0200 - build 702

1. Забыл добавить сами *.hpp :)

drkns 27.12.2008 13:26:29 +0200 - build 701

1. Из fn.hpp некоторые тематические куски (winapi, registry, syslog) вынесены в отдельные hpp.

2. Удалены FAR_OemToChar[Buff] и FAR_CharToOem[Buff].

3. Последний параметр apiCreateFile - HANDLE hTemplateFile - сделан опциональным, ибо всё равно нигде ни разу не используется.

drkns 27.12.2008 01:08:58 +0200 - build 700

1. При определённых условиях криво работал запуск lnk-файлов.

2. + apiRegEnumKeyEx().

drkns 26.12.2008 20:47:04 +0200 - build 699

1. Из враппера искоренён флаг MB_USEGLYPHCHARS, теперь "непечатные" символы подменяются уникодными только на этапе отрисовки.

t-rex 26.12.2008 19:49:57 +0200 - build 698

1. Используем SHCreateAssociationRegistration, теперь не надо CoInitialize, так спокойней на душе.

2. AssociationRegistration работает теперь и в GCC.

svs 26.12.2008 19:19:43 +0300 - build 697

1. Mantis#0000685: Is Not removed window "to Search for" under "Searching for and change" in editor

2. Избавляемся от варнинга в gettable.cpp

t-rex 26.12.2008 14:42:38 +0200 - build 696

1. Забыл удалить FMENU_TRUC* из plugin.hpp.

t-rex 26.12.2008 14:27:31 +0200 - build 695

1. Mantis#677: Некорректный горизонтальный скрол в меню.

2. Удалил VMENU_TRUNCMODE и с ним связанное, оно не используется.

3. Продолжение 693 и Mantis#679: option "use windows registered types" doesn't work.
   Забыл в qview это дело, сделал централизованным.

warp 26.12.2008 00:05:49 +0300 - build 694

1. Неправильная работа UnicodeToAnsiBin с пустыми строками, которая мешала работать во враппере Colorer 4.

t-rex 26.12.2008 00:02:06 +0200 - build 693

1. В Висте придумали новую заморочу с ассоциациями файлов, теперь и мы её умеем.
   В gcc пока что это закоменчено ибо надо ручками хидеры дописать.

zg 25.12.2008 21:11:58 +0200 - build 692

1. запрет на посылку DN_EDITCHANGE элементу диалога если этот элемент уже обрабатывает DN_EDITCHANGE.

2. Корректировка функции WaitKey(). Теперь функция реагирует только на "настоящие" клавиши
   (ранее функция срабатывала, например, на потерю-получение фокуса окном ФАРа (KEY_KILLFOCUS/KEY_GOTFOCUS)

3. из SysLog удалены не используемые константы ECTL_EDITORTOOEM и ECTL_OEMTOEDITOR

t-rex 25.12.2008 20:18:15 +0200 - build 691

1. FARINT64 остался ещё в syntax.cpp::printKeyValue.

zg 25.12.2008 16:37:39 +0200 - build 690

1. исправлен потенциальный ub в обработчике DN_EDITCHANGE.

2. варнинги в vc9.

zg 25.12.2008 04:19:29 +0200 - build 689

1. теперь DN_EDITCHANGE приходит при любых изменениях в строке редактирования
   за исключеним изменений, производимых в обработчике DN_INITDIALOG.

svs 24.12.2008 13:40:38 +0300 - build 688

1. Mantis#0000680: $SelWord sets Selected flag on, even though no selection was made

zg 23.12.2008 04:27:09 +0200 - build 687

1. в макросах в $Text \x теперь понимает до 4 16-ричных цифр, что позволяет ввести любой unicode символ.

2. в FindFiles::GetPluginFile освобождалось не то что выделялось.

t-rex 22.12.2008 20:40:17 +0200 - build 686

В будущем для nightly будет автоматом показываться релевантный кусок changelog,
чтоб это работало пожалуйста всегда пишете "build XXX" - т.е. слово build пробел (только одни)
и номер где то в первой строке записи (ну в общем как мы и всегда делаем).
А также nightly обновляется только если сменился номер билда, имейте ввиду.

1. Разделил farversion.m4 на два файла для удобств nightly сборок.

2. Забытые переменные в hook_wow.

zg 22.12.2008 17:34:32 +0200 - build 685

1. исправлено падение при открытии файла из результатов поика на плагиновой панели,
   если имя файла или короткое имя файла были NULL.

zg 22.12.2008 00:27:46 +0200 - build 684

1. FreeFindData вызывался при старой позиции курсора. при определённых обстоятельствах far падал.

zg 21.12.2008 22:34:23 +0200 - build 683

1. убраны дубли GetHiColor и GetGroup использовавшиееся для работы на плагиновых панелях.
   как следствие фар не падает, если плагин передал ему NULL в качестве имени файла.
   так же для плагиновой панели GetHiColor вызывается один раз.

2. CmpName проверяет маску и имя файла на NULL.

3. в InfoPanelLine масивы заменены на указатели. плагины, использующие это надо пересобрать.

drkns 21.12.2008 22:01:17 +0200 - build 682

1. Читалка farmenu.ini понимает старые OEM-файлы от 1.7.
   Следует осознавать, что при редактировании такого меню оно сохранится уже в уникоде, и из 1.7 доступно не будет.

2. Надписи на F8 в редакторе/вьювере теперь не DOS/Win, а OEM/ANSI, для соответствия с Shift<F2|F4|F8>.

t-rex 21.12.2008 20:29:45 +0200 - build 681

1. Не работали KeyBarLabels.

t-rex 21.12.2008 13:50:11 +0200 - build 680

1. hook_wow64: Выявили что если сделать PAGE_EXECUTE_READWRITE вместо PAGE_READWRITE
   для VirtualProtect то работает нормально и с DEP под Вистой.
   Не знаю на сколько это безопасно, ждём коментариев от Юры.

t-rex 21.12.2008 12:13:02 +0200 - build 679

1. hook_wow: В Vista SP1 или 2008 попытаемя вырубить DEP для процесса и если не можем то не будем патчить.
   Временое решение пока не разберёмся чего там DEP'у крышу сносит.

t-rex 21.12.2008 03:23:37 +0200 - build 678

1. Глюк с пометкой в меню кодировок во вьювере.

2. Не детектились юникод файлы с сигнатурой во вьювере. Надо будет сделать как в редакторе примерно.

t-rex 21.12.2008 02:09:48 +0200 - build 677

ВСЕ ЮНИКОДНЫЕ ПЛАГИНЫ ТРЕБУЕТСЯ ПЕРЕСОБРАТЬ (И ПОДПРАВИТЬ ГДЕ НАДО) - ДАЖЕ НЕ ПЫТАЙТЕСЬ ЗАПУСТИТЬ СО СТАРЫМИ!!!!!!!!!!

1. Выбор кодировок во вьювере по примеру редактора, начальная стадия.

2. GlobalSearchString - теперь юникодный и string.

3. Убрал кучу говна в виде CharTables из 1.7x и с этим связаное.

4. Убрал ECTL_EDITORTOOEM, ECTL_OEMTOEDITOR ибо в них нет смысла.

5. CodePage в EditorInfo, ViewerInfo и т.п.

6. CodePage в вызов Info.Viewer и Info.Editor - пока что нечего не делает, но потом будет.
   Пока что туда надо ставить CP_AUTODETECT чтоб в будущем работало нормально.

7. Начинаем учить FindFile о CodePage. Пока что поиск в WIN кодировке не работает!

8. Заготовки для XLat.

9. Убрал FARINT64 за ненадобностью.

10. CalcWordFromString теперь работает.

drkns 20.12.2008 23:18:27 +0200 - build 676

1. В редакторе в списке кодовых страниц доступна UTF-8.
   Для файла, изначально открытого в UTF-8, больше не блокируются попытки смены кодовой страницы.
   При смене кодировки проверяется корректность преобразования.

t-rex 20.12.2008 18:58:50 +0200 - build 675

1. Ещё Mantis#657, поменял alloca на xf_malloc.

2. Убрал немного мусора по дороге.

t-rex 20.12.2008 15:46:47 +0200 - build 674

1. hook_wow64: Небыло настоящей проверки если мы работаем под WOW64,
   что в Vista/2008 приводило к попыткам хука заработать на x86 платформе
   и соот. падать при определённых ситуациях.

t-rex 20.12.2008 12:41:46 +0200 - build 673

1. Mantis#450: Bug in History::Select().
   Меню истории показывало на один пункт меньше чем надо.

t-rex 19.12.2008 21:22:09 +0200 - build 672

1. "Почистил" немного history.cpp. Частично Mantis#657.

2. FarGetPluginDirListA

3. From Denis Kosy: Неправильная работа с реестром в qview.

drkns 19.12.2008 20:10:53 +0200 - build 671

1. Mantis#0000674: Some errors: Missing L, incorrect types

t-rex 19.12.2008 18:25:23 +0200 - build 670

1. Mantis#675: Crash while showing the command history.
   Проблема с длинными пунктами меню.

t-rex 19.12.2008 13:39:31 +0200 - build 669

1. Mantis#673: Crash in Viewer::SelectText().
   Проблемы с InfoPanel.

t-rex 19.12.2008 09:36:40 +0200 - build 668

1. Mantis#668: Far ожидает закрытия запущенного приложения.

drkns 19.12.2008 09:21:34 +0200 - build 667

1. Mantis#0000672: Invalid values in the Information panel

t-rex 19.12.2008 01:41:01 +0200 - build 666 :) мой

1. Ноль ворнингов (GCC 4.3.2 и VC9).

t-rex 19.12.2008 00:52:30 +0200 - build 665

1. From Igor O. Bochkariov: Mantis#670: Округление размеров дисков и файлов.

2. FarGetDirListA и FarFreeDirListA.

3. Утечка памяти в FarGetDirList.

svs 18.12.2008 23:43:54 +0300 - build 664

1. Mantis#0000659: негативное число в "remaining time" в подсчёте total
   Как то не все хорошо в копире по поводу фильтров. Даже если файл не прошел
   фильтр (ShellCopyOneFile вернет COPY_NEXT), переменная TotalCopiedSize все
   равно увеличивается.
   Добавим новое состояние COPY_NOFILTER - не считать цифры, если ShellCopyOneFile вернул ЭТО

   Осталься непонятным один момент.

      if (CopyCode!=COPY_SUCCESS)
      {
        unsigned __int64 CurSize = SrcData.nFileSize;
        if (CopyCode != COPY_NOFILTER) //????
   >>     TotalCopiedSize = TotalCopiedSize - CurCopiedSize + CurSize;
        if (CopyCode == COPY_NEXT)
          TotalSkippedSize = TotalSkippedSize + CurSize - CurCopiedSize;

   нужно ли считать отмеченное всегда или все же нужно, когда кодвозврата COPY_NEXT.


drkns 18.12.2008 16:16:46 +0200 - build 663

1. [x] Use system copy routine
   [ ] Show uppercase file names in lowercase
   [x] Del removes blocks

drkns 18.12.2008 12:57:24 +0200 - build 662

1. Win2k узаконена в качестве "минимального системного требования" (уже давно им являясь на деле).

t-rex 18.12.2008 12:26:49 +0200 - build 661

1. Более коректная имплементация FCTL_GET*PANELSHORTINFO для враппера, из за различий в новом и старом API.

2. Mantis#669: getInt64() function.
   Каст на (char) вместо на (wchar_t).

t-rex 17.12.2008 22:17:58 +0200 - build 660

1. Mantis#667: уникодный фар криво выставляет заголовок панели для ансишного мульти-арка.
   В общем 2 бага во враппере:
   - Не было предохранения от рекурсии при вызове GET*PANELINFO из GetOpenPluginInfo.
   - Имплементация обработки GET*PANELSHORTINFO была неправильной.

drkns 17.12.2008 12:12:45 +0200 - build 659

1. Убраны "магические числа" в расчёте длины выводимой строки в qview и setattr.

t-rex 17.12.2008 11:47:17 +0200 - build 658

1. Mantis#664: Crash while using Quck View on Volume Mount Point.

2. Заодно сделал похожие места в коде красивей, без этого offset.

svs 16.12.2008 23:42:36 +0300 - build 657

1. Panel API: Флаг PFLAGS_PANELRIGHT удален, т.к. вместе с PFLAGS_PANELLEFT...
   ...получалось взаимоисключение.
   Для проверки "панели справа" использовать отсутствие флага PFLAGS_PANELLEFT.

drkns 16.12.2008 21:11:41 +0200 - build 656

1. FarGetDirList возвращал имена без относительных путей.
   Как следствие - Mantis#0000663: не работает опция Copy folder contents.

drkns 15.12.2008 21:17:28 +0200 - build 655

1. Mantis#0000660: Добавить возможность задания «любимых» таблиц перекодировки.
   Пока что только для ShiftF8 в редакторе.

svs 15.12.2008 15:30:25 +0300 - build 654

1. Ещё несколько вещей из Mantis#657, различные "мелочи".
   (наверное нужно было бы для этой фразы поставить копирайт ;-))

t-rex 15.12.2008 10:57:07 +0200 - build 653

1. Ещё несколько вещей из Mantis#657, различные "мелочи".

t-rex 14.12.2008 23:19:19 +0200 - build 652

1. Пропустил ещё одно место где не проверялось значение возвращаемое GlobalLock в работе с клипбордом.

t-rex 14.12.2008 23:01:37 +0200 - build 651

Ещё несколько вещей из Mantis#657

1. Передавался sizeof вместо countof массива wchar_t в некоторых местах для WinAPI/CRT функций.

2. Не проверялось значение возвращаемое GlobalLock в работе с клипбордом.

3. Неправильна format строка для swprintf в DizList::GetDizTextAddr.

t-rex 14.12.2008 12:50:25 +0200 - build 650

Несколько вещей из Mantis#657

1. В ProcessName была полнейшая мутотень с проверками флагов, ибо там половина флаги а половина по приколу.
   Тоже самое и во враппере.

2. Неправильное освобождение памяти после CreateProcess в паре мест.

3. Неправильная проверка на NULL в CheckFolder.

4. Panel::ChangeDiskMenu, слишком много переменных с одинаковым именем. Переименовал ту у которой scope шире.

5. В syslog юзался %S вместо %s для wprintf для юникодных строк.

6. Неправильные проверки BSTATE во враппере.

7. Несколько месте где sizeof не использовался как надо.

8. Несколько проверок на неудачный запуск функций.

9. RegQueryStringValue, неправильная проверка на REG_SZ.

t-rex 13.12.2008 20:09:18 +0200 - build 649

1. FileFilter API

   FileFilterControl(HANDLE hHandle, int Command, int Param1, LONG_PTR Param2)

   Command:

   FFCTL_CREATEFILEFILTER - hHandle - PANEL_ACTIVE или PANEL_PASSIVE
                            Param1 - один из FAR_FILE_FILTER_TYPE
                                     Созданный фильтр получит настройки той
                                     области которая задана в Param1.
                                     Настройки области глобальны и всегда идентичны
                                     в любом фильтре этой области (настройки правой
                                     и левой панели это две разные области).
                                     Авто фильтры (и настройки панельной области)
                                     зависят от hHandle.
                            Param2 - HANDLE* в который запишется HANDLE фильтра

                            При неудаче вернёт FALSE и Param2=INVALID_HANDLE_VALUE.

   FFCTL_FREEFILEFILTER   - hHandle - HANDLE который вернул FFCTL_CREATEFILEFILTER

   FFCTL_OPENFILTERSMENU  - hHandle - HANDLE который вернул FFCTL_CREATEFILEFILTER

                            Откроет меню фильтра для заданной области.
                            Если меню отменено пользователем то вернёт FALSE.

   FFCTL_STARTINGTOFILTER - hHandle - HANDLE который вернул FFCTL_CREATEFILEFILTER

                            Это вызов надо сделать до начала "атомической" операции фильтрования
                            чтобы фильтры с относительной датой правильно работали.
                            Этот вызов обновляет "текущее время" которое используется для сравнения
                            относительных дат.

   FFCTL_ISFILEINFILTER   - hHandle - HANDLE который вернул FFCTL_CREATEFILEFILTER
                            Param2 - (const FAR_FIND_DATA *) который нужно проверить на включение в фильтр.

                            Вернёт TRUE если файл попадает под фильтр (т.е. включен), или FALSE если исключен.

t-rex 13.12.2008 16:00:35 +0200 - build 648

1. Убрал Load/UnloadPlugin, теперь на будущее есть
   PluginsControl(HANDLE hHandle, int Command, int Param1, LONG_PTR Param2)

   LoadPlugin теперь так
   PluginsControl(INVALID_HANDLE_VALUE,PCTL_LOADPLUGIN,PLT_PATH,(LONG_PTR)L"path to dll");

   UnloadPlugin теперь так
   PluginsControl(INVALID_HANDLE_VALUE,PCTL_UNLOADPLUGIN,PLT_PATH,(LONG_PTR)L"path to dll");

2. Заготовка API для FileFilter.

3. Убрал проверку на размер PluginPanelItem из plugin.hpp, она больше не нужна и была не правильная.

drkns 13.12.2008 13:31:49 +0200

1. Версия 2.0 в проекте.

t-rex 13.12.2008 13:22:22 +0200 - build 647

1. Версия Фара теперь 2.0

2. Ветка в реестре теперь Far2.

3. Подготовка FileFilter к вызовам через PluginAPI.

t-rex 12.12.2008 17:59:54 +0200 - build 646

From Shmuel Zeigerman

1. При указании в BreakKeys более одного из модификаторов
   (ctrl, alt, shift), для закрытия меню было достаточно нажатия
   любого одного из указанных, например: указано AltShiftF9,
   а закрывается и по AltF9, и по ShiftF9.

t-rex 10.12.2008 17:03:51 +0200 - build 645

1. Фикс GCC сборки hook_wow64.

t-rex 10.12.2008 11:09:44 +0200 - build 644

1. Вернул привычное поведение re.
   Т.е. теперь в масках re работают как везде/всегда, регистро-зависимые и надо //i чтоб наоборот.

2. Освободим память в объекте re для масок если обработанна большая строка, чтоб не накапливалось.

t-rex 10.12.2008 08:57:45 +0200 - build 643

1. Исправление от Юры: hook_wow64 не работал в Висте и 2008.
   В принципе, намного проще было сделать без таких извращений (просто заведя
   переменную), но мне не нравится идея когда поведение _системной_ dll, завист
   от "удара по памяти" внутри программы. В том смысле, что если где-то кто-то
   писанул бы в эту переменную, последствия бы были... мягко скажем неприятные.
   Полный, в общем, аналог того что со вторым блоком (предпочитаю патчить).
   Можно было бы сделать и одним патчем, а не двумя (это уже из области паранои :)
   я просто сделал цепочку в которой "отказ" на любом этапе практически
   безопасен. А если патчить в одном месте так бы не получилось.

drkns 10.12.2008 00:33:43 +0200 - build 642

1. Опытным путем (в MSDN об этом ни слова :) установлено, что при вызове SearchPathW(NULL,...)
   источник и приемник не должны пересекаться, иначе будет UB.
   Как следствие - при определённых условиях криво работал запускатель.

zg 09.12.2008 17:56:32 +0200 - build 641

1. в DialogRun/DialogFree проверяется hDlg на равенство INVALID_HANDLE_VALUE.

t-rex 09.12.2008 13:05:43 +0200 - build 640

1. В re для масок, сделал Search в место Match, так логичней и привычней.

2. re для масок теперь по умолчанию регистро-НЕзависимые, если вдруг надо зависимые то
   ввёл новый параметр /regexp/c

3. Сделал классы масок "покрасивей".

t-rex 09.12.2008 03:08:31 +0200 - build 639

1. Мелкие изменения в использовании RegExp.

2. new небыл переопределён для GCC.

drkns 09.12.2008 00:13:07 +0200

1. RegExp.?pp добавлены в VC-проект.

t-rex 08.12.2008 23:42:49 +0200 - build 638

1. Используя RegExp библиотеку любезно предоставленную Костей Ступником фар теперь умеет RegExp.
   Синтакс такой же как в плагине S&R (описано в его хэлпе, надо будет скопировать).
   Начинаем по мелкому, пока что в АПЙ этого нету но зато добавил поддержку RegExp в файловые маски.
   Это значит что теперь в любом месте где задаются маски можно использовать RegExp - например фильтры, поиск файлов, ассоциации, select.
   Так как функционал прозрачен то все плагины которые юзают АПЙ масок получают RegExp за бесплатно.
   Теперь о прозрачности: regexp должен задаватся в /regexp/ - т.е. идёт простая проверка, если первый символ маски это / то это regexp.
   По умолчанию regexp регистро-зависимые, если надо наоборот то /regexp/i (ну как обычно короче).
   В тех местах где поддерживается маска исключения тоже можно использовать regexp (или маску), с любой из сторон |.
   Если нужно точное соответсвие между RegExp и строкой то /^regexp$/.
   Примеры:
   /(eng|rus)/i
   /(eng|rus)/i|/.*(a|b)/i
   *.lng|/(eng|rus)/i
   /(eng|rus)/i|*.lng

t-rex 06.12.2008 21:41:04 +0200 - build 637

1. Удалил (видимо забытые) строки из DM_SETMAXTEXTLENGTH которые не давали выставить размер больше чем 511.

zg 06.12.2008 16:57:17 +0200 - build 636

1. добавлены два дополнительных DM_*:
   а. DM_GETDLGITEMSHORT - Param1 - ID элемента, Param2 - указатель на FarDialogItem.
                           PtrData всегда возвращается как NULL.
                           В случае успеха возвращается TRUE, в случае ошибки FALSE.
   б. DM_SETDLGITEMSHORT - полностью аналогичен DM_SETDLGITEM за исключением того,
                           что PtrData не используется.

t-rex 05.12.2008 21:17:26 +0200 - build 635

1. Доделал API для работы FExcept, подходящая версия FExcept через минуту будет на SVN.

2. Различные мелкие исправления/доделки в PluginManager.

drkns 05.12.2008 19:16:40 +0200 - build 634

1. Уточнение работы автоопределения.

t-rex 05.12.2008 02:19:36 +0200 - build 633

1. Начальное API для загрузки и выгрузки плагинов (FARLOADPLUGIN FARUNLOADPLUGIN),
   пока что без особых проверок на валидность выгрузки, поэтому выгружать надо осторожно :)
   В farcmds через минуту будут префиксы pload и unloadp чтоб это использовать.

drkns 04.12.2008 23:55:44 +0200 - build 632

1. Если _существующий_ файл открывали по ShiftF4 - зачем-то устанавливался флаг FFILEEDIT_NEW.

2. Если просят открыть файл с BOM в однобайтной кодировке - не будем его прятать.

drkns 04.12.2008 19:38:03 +0200 - build 631

1. Попытки автоопределения LE/BE-уникода без сигнатуры.

2. Вроде бы починил глюки с кодировкой "Auto" в редакторе.

3. Не работали ситсемные ассоциации для некоторых типов файлов.

t-rex 04.12.2008 01:50:41 +0200 - build 630

1. Открываем файл UTF8, ShiftF2 в UNICODE, если во время EE_GOTFOCUS который
   придёт после месаги о перезагрузки файла вызвать ECTL_GETINFO то AV ибо в
   редакторе нету строк.

На обдумывание:
1. Нафига нам вообще эта перезагрузка файла, вроде как лишняя совсем.
2. Хотя и AV в самом фаре, ловится оно как бы в плагине и плагин выгружается.

drkns 03.12.2008 18:24:39 +0200 - build 629

1. Проверка возможности корректного сохранения текста в выбранной кодировке
   производится до любых манипуляций с исходным файлом.

2. В FileEditor::SaveFile убрана мешанина из libc и winapi-функций.

drkns 02.12.2008 22:44:32 +0200 - build 628

1. К классу GetFileString прикручена проверка корректности отображения строки в уникод.

2. Редактор выдаёт предупреждение, если во время открытия файла перекодирование прошло с потерями.

drkns 02.12.2008 18:02:06 +0200 - build 627

1. В 624 поломал сохранение в UTF<7|8>.

t-rex 02.12.2008 12:41:01 +0200 - build 626

1. #if (_WIN32_WINNT >= 0x0500) добавлен вокруг нужных мест в keys.hpp.

zg 02.12.2008 03:50:20 +0200 - build 625

1. у диалогов, созданных плагинами, фокус всегда был на первом элементе.

2. исправил gcc сборку.

drkns 02.12.2008 01:03:36 +0200 - build 624

1. При попытке сохранения уникодного текста в неуникодной кодировке
   покажем сообщение, что "лучше так не делать".

zg 01.12.2008 21:28:20 +0200 - build 623

1. использование неинициализированной переменной при создании редактора.

drkns 01.12.2008 00:42:27 +0200 - build 622

1. В некоторых местах вместо BoxSymbols использовались непосредственно коды.

2. Доступ к элементам BoxSymbols производится через именованные константы (перечисление BOX_DEF_SYMBOLS).

drkns 30.11.2008 20:59:07 +0200 - build 621

1. Mantis#0000605: На экране остаётся мусор.

t-rex 30.11.2008 15:31:00 +0200 - build 620

1. Ещё варнинги.

drkns 30.11.2008 12:23:04 +0200 - build 619

1. Mantis#0000646: OK button in the dialogs

2. Синхронизация vc-проекта с мейками.

3. Снова отголоски TI#48, теперь в дереве папок.

t-rex 30.11.2008 11:26:12 +0200 - build 618

1. Исправил вроде как все ворнинги.

2. lng файлы теперь содержат версию фара что должно помочь разбирать разные тупые проблемы в этой сфере.
   Теперь править языковые строки надо в farlang.templ.m4 (farlang.templ теперь генерится из него).

t-rex 30.11.2008 00:33:42 +0200

1. Был исправлен lng.generator на предмет не обновления языковых файлов когда использовались ключи -ol и -oh совместно с -i.
   Это приводило к проблемам в компиляции VC проектов. Обновил lng.generator.exe в tools.

2. Теперь и в мэйках используем -ol для lng.generator.

drkns 29.11.2008 21:55:34 +0200 - build 617

1. Mantis#0000645: Падение при попытке вызвать несуществующий раздел помощи.

2. В диалоге назначения макрокоманды некорректно отображались некоторые клавиши.

drkns 29.11.2008 17:49:01 +0200 - build 616

1. Говорят, падали ansi-плагины, делающие FCTL_SETSELECTION сразу на обе панели.

t-rex 29.11.2008 04:20:11 +0200 - build 615

1. Исправил ворнинги.

2. Новый gcc мэйк не грузил файл dependencies.

3. На подобии с gcc сделал самостоятельный мэйк для VC (и переименован в makefile_vc).
   Он теперь пашет сам по себе и все эти батники больше не нужны.
   Также добавлен автодетект версии VC (по версии мэйк).

4. mkdep.awk теперь общий для всех компайлеров. mkdep.gcc.awk удалил.

drkns 28.11.2008 18:43:14 +0200 - build 614

1. Поразвлекаемся с редактором, пока мелочи для разминки:
   - Mantis#0000515: Две ANSI кириллицы в списке кодировок;
   - работает F8;
   - работает сохранение в BE-юникоде;
   - правильно работает ShiftF2;
   - BOM пишется только если он уже был в файле или файл создан с нуля.

2. Установка атрибутов:
   - передвинул чекбоксы "как в 1.71";
   - после введения структуры ImportedFunctions отвалилось шифрование;
   - некорректная перерисовка при перемещении диалога.

3. Продолжение исправлений проблем в работе UnicodeString с реестром.

t-rex 28.11.2008 15:24:43 +0200 - build 613

1. Мелкая оптимизация UnicodeString.

2. Исправление проблемы в работе UnicodeString и функциях для работы с реестром.
   Тут в общем надо довольно сильно переделать но на пока сойдёт.

3. Наконецто сделал чтоб gcc мэйк собирал всё одним ходом даже с нуля, а также dependancies
   генерятся теперь также как и для VC (mkdep.gcc.awk) что намного быстрей чем было.

4. mkdep.awk неправильно обрабатывал мена файлов с больше чем одной точкой в имени.

t-rex 27.11.2008 20:30:15 +0200 - build 612

1. Пару мелких копи-паст глюков в 609.
   Кто уже успел заюзать настройку размеров в расскраске, сорри :)

t-rex 27.11.2008 19:46:21 +0200 - build 611

1. Полез было переделывать поиск (AltF7) но перехотелось :)
   По дороге "исправил" пару мелочей.

svs 27.11.2008 19:49:36 +0300 - build 610

1. Mantis#0000061: Listbox с границами и без

2. Убираем варнинг в hilight.cpp

t-rex 27.11.2008 15:32:32 +0200 - build 609

Портирование изменений в фильтрах из 1.71:

1. Mantis#260: "динамический фильтр по дате".
   Относительная дата вносится в днях, часах, минутах и секундах (дней хоть 9999).
   От месяцев и годов отказался ибо это не точные числа.
   Считывание текущего времени для работы с относительными временем в фильтрах
   происходит один раз в начале "атомической" операции а не для каждого сравнения.
   Для операций которые происходят после диалога (копир, поиск и т.п.)
   текущее время считывается сразу после закрытия диалога.

2. Конктрено упростил фильтры (и чего я сразу так не придумал :),
   больше нету этих ужасно не интуитивных D?/D-/D+ в заголовке меню фильтров
   и теперь логика фильтрации такова (как мне кажется это очень интуитивно):
   Если папка не попала ни под какой exclude фильтр то самое логичное
   будет сделать ей include если небыло дугих include фильтров на папки.
   кроме как в Select где логичней всего работать чисто по заданному фильтру.

3. Логика фильтра доделана (вроде бы :).
   Вернём старое поведение фильтра - проверяем до первого совпадения, так более интуитивно.
   По запросам добавлены действия "X" и "I" - StrongExclude и StrongInclude,
   которые имеют первенство над "-" и "+" даже если они дальше в списке.
   !!! Пометка фильтров (+ и -) слетела, надобно перенастроить !!!

4. Был удалён комбо бокс для выбора типа размера, теперь тип размера задаётся суффиксами [BKMGT],
   такое же изменение произошло в Alt-F7->Advanced Options.
   !!! Если вы пользовались этими настройками размеров то вам придётся всё перенастроить заново !!!

5. Немного оптимизации в фильтре и добавил комментарии чтоб не путаться :)

6. Авто хоткеи для авто-фильтров.

7. Mantis#0000569: Улучшения в диалоге фильтров.
   Теперь диалог раскраски влазит в 80x25 и вообще визуально диалог фильтров вроде как лучше выглядит.

8. Удалил неиспользуемую FileList::UpdateColorItems().

drkns 27.11.2008 00:58:19 +0200 - build 608

1. С целью сокращения писанины введён IsSlash() и все места типа if(c==L'\\'||c==L'/') заменены на оный.

2. В config.cpp убраны суффиксы 'W' у переменных NKey*.

drkns 26.11.2008 19:48:28 +0200 - build 607

1. Уточнение поведения прокрутки в редакторе.

drkns 26.11.2008 18:38:33 +0200 - build 606

1. После 538 полоса прокрутки в QView, конечно, рисовалась как положено,
   но клики мышью по прежнему ожидались чёрт знает где.

2. Полоса прокрутки в панелях не захватывала мышь.

3. Полоса прокрутки добавлена в редактор.

zeroes 26.11.2008 18:28:51 +0200 - build 605

1. фикс вьювера - при вызове диалога поиска под окном диалога
рисовалось окошко

 +- Поиск -+
 |  Поиск  |
 |   ""    |
 +---------+

drkns 25.11.2008 19:13:48 +0200 - build 604

1. Коррекция lng и hlf на предмет ссылок/связей/копира и т.п.

t-rex 24.11.2008 01:40:21 +0200 - build 603

1. Косметика и оптимизация в использовании UnicodeString в нескольких местах.
   Вроде как все "лёгкие" места поправил. Теперь надо будет занятся более "тяжелыми".

2. UnicodeString.LShift теперь умеет выкидывать символы с лобого места в строке.

t-rex 23.11.2008 23:16:45 +0200 - build 602

1. Косметика и оптимизация в использовании UnicodeString в нескольких местах.

2. Исправлено несколько багов замеченых по дороге.

t-rex 23.11.2008 17:29:32 +0200 - build 601

1. Функция ReplaceSlashToBSlash(string &), есть у меня такое ощущение что такая уже есть
   но не нашел и в каждом месте в коде это почему то делается руками.

2. Добавление в UnicodeString:
   - PosI ~= StrStrI
   - Lower и Upper умеют работать над куском строки.

3. Косметика и оптимизация в использовании UnicodeString в нескольких местах.

t-rex 23.11.2008 00:26:56 +0200 - build 600

1. Косметика и оптимизация в использовании UnicodeString в нескольких местах.

t-rex 22.11.2008 20:05:52 +0200 - build 599

1. Оптимизация UnicodeString.RPos, так как мы знаем длину строки

2. Исправил пару BUGBUG.

3. Косметика и оптимизация в использовании UnicodeString в нескольких местах.

drkns 22.11.2008 16:17:52 +0200 - build 598

1. Mantis#0000595: FSF.PasteFromClipboard и FSF.DeleteBuffer: несоответствие типов

t-rex 22.11.2008 13:26:11 +0200

1. Создал папочку contrib и положил туда первую добавку, проект для Code::Blocks из Mantis#594 от Slimfast2000.

t-rex 22.11.2008 12:50:52 +0200 - build 597

1. from chupakabra: Дополнения к Mantis#636
   1. Изменения в PointToName():
      - Исправил поведение для путей вида "\path"
      - Проверка на ':' теперь производится не в цикле, а один раз в начале функции.
   2. При сортировке панели плагина Far постоянно пытается вызвать плагиновскую Compare
      (даже если её нет), из-за неверной проверки кода возврата.

drkns 21.11.2008 18:17:31 +0200 - build 596

1. Продолжение 2457: не работал копир (а может и ещё что-то) если отсутствовал доступ
   к одному из надкаталогов источника или приёмника.
   Посему apiGetFindDataEx теперь при неудачном apiFindFirstFile пойдёт другим путём
   и заполнит pFindData самостоятельно.

2. Ещё одна мелкая правка в диалоге перезаписи.

t-rex 21.11.2008 18:12:38 +0200 - build 595

1. from DiRTy_GaRRy: Mantis#495: Поиск файлов по содержимому значительно медленней, чем в 1.7.x.

t-rex 21.11.2008 17:58:57 +0200 - build 594

1. Mantis#641: креш по CtrlIns/AltShiftIns.
   Раньше не падало потому что был lstrlenW вместо wcslen в StrLength и он видимо проверял
   bad ptr так что такого рода баги ещё ожидаются.

drkns 20.11.2008 19:38:33 +0200 - build 593

1. AltF9 не работало в пустом меню.

drkns 20.11.2008 19:21:07 +0200

1. localOEM.cpp добавлен в проект.

t-rex 20.11.2008 15:47:13 +0200 - build 592

1. Взял из 1.71 функции для работы со строками в OEM что очень улучшает
   производительность плагинов работающих через враппер которые юзают эти функи.
   Это также решает Mantis#442 и Mantis#443.

drkns 19.11.2008 20:16:11 +0200 - build 591

1. В меню работает AltF9.

svs 19.11.2008 21:13:37 +0300 - build 590

1. Mantis#0000634: Не сохраняется состояние флага "Искать в символических связях"
   Теперь опция в поисковике не зависит от системной опции "Scan symbolic links"


drkns 19.11.2008 19:24:02 +0200 - build 589

1. В диалоге перезаписи криво работал просмотр нового файла.

drkns 19.11.2008 18:35:52 +0200

1. TPreRedrawFunc.?pp добавлены в проект.

t-rex 19.11.2008 17:07:15 +0200 - build 588

1. from chupakabra: исправление проблемы внесённой в 583 билде (filelist.cpp).

2. Исправил gcc сборку.

3. Варнинги и т.п.

svs 19.11.2008 14:26:32 +0300 - build 587

1. PreRedrawFunction. Смысл изменений в следующем.

   SetPreRedrawFunc() и комплект переменных служит для того, чтобы корректно
   отрисовывать экран после разнообразных диалогов, например, во время
   копирования нажали Esc, а потом снова Esc - здесь срабатывает сабж, чтобы
   отрисовать прогрессбар.

   Но т.к. глобальные PreRedrawFunc и PreRedrawParam существуют в
   единственном варианте, то вызов SetPreRedrawFunc(NULL) в очередном месте
   киляет предыдущее состояние. Из-за чего лезут глюки (если дебажную версию
   запускать с /do)

   Я постарался убрать сей недочет. Правда такие "рисунки" так и остались
   "рисунками"
   (желающие могут переделать в нормальные диалоги :-)). Начал как обычно с копира,
   но получилось везде, т.к. произошла переделка сабжа.

   На счет копира - здесь добавлена реакция на "разворот консоли".
   В копире начать копирование.
   Жмем Esc - появился диалог-прерыватель
   Пытаемся развернуть окно (дважды кликнуть на заголовке).
   Получилось, но экран полность не прорисовался.
   Теперь Esc и видим лабуду на экране.

   Внимание! Необходимо добавить новые файлы TPreRedrawFunc.?pp в проекты!

drkns 18.11.2008 21:50:15 +0200 - build 586

1. "Оптимизация" предыдущего патча :)

drkns 18.11.2008 18:37:20 +0200 - build 585

1. Продолжим ломать копир. Теперь до начала копирования, помимо [ ] Only newer file(s),
   можно выбрать "перезаписать всё"/"пропустить всё"/"дописать всё" и указать, надо ли
   запрашивать подтверждение для файлов с аттрибутом R/O.

2. В диалоге подтверждения перезаписи фокус передвинут на чекбокс.

3. Продолжение Mantis#0000638: неправильно отображался prompt.

drkns 18.11.2008 01:05:36 +0200 - build 584

1. Немного пощупал диалог подтверждения перезаписи файла. Итого:
   - свершилось то, о чём так долго говорили большевики: кнопок "Overwrite all", "Skip all", "Append all" больше нет,
     есть один чекбокс "Remember choice". Диалог стал меньше, места стало больше.
   - на строках "New" и "Existing" можно нажимать F3 и наглядно сравнивать новое с существующим.

2. Mantis#0000638: Некорректно обрабатывается переход на папки с именем "C:", "E:", находящиеся в корне плагина

3. Нельзя было установить UNC-путь на панели через параметры командной строки.

t-rex 17.11.2008 21:53:10 +0200 - build 583

from chupakabra

1. Mantis#636: Предложение по оптимизации обработки больших списков файлов.
   1. В filelist.cpp::SortList() вызываем PointToName() только тогда когда это реально нужно, т.е. при сортировке по имени файла.
   2. Там же используем новую функцию PointToExt() для поиска расширения файла.
   3. PointToName() изменена таким образом, чтобы работать более эффективно для длинных путей.
   4. В local.cpp::StrLength() вызов lstrlenW() заменен на wcslen().
   5. При компиляции с помощью cl.exe используется флаг /O2 вместо /O1.

t-rex 16.11.2008 16:37:32 +0200 - build 582

1. Тупой ворнинг в предыдущем патче.

t-rex 16.11.2008 16:05:59 +0200 - build 581

1. from Ariman: Mantis#580: Некоректный перебор расширений при запуске команды.

2. Убрал пару мелких ворнингов.

svs 06.11.2008 21:20:54 +0300 - build 580

1. Mantis#0000308: Рисовать по умолчанию тень для диалогов с FDLG_SMALLDIALOG


drkns 05.11.2008 22:57:11 +0200 - build 579

1. Обработка мультимедийной клавиши Sleep: макроклавиша "Sleep" + константа KEY_SLEEP.

svs 05.11.2008 17:24:48 +0300 - build 578

1. Mantis#0000622: После ACTL_SETCURRENTWINDOW (или ACTL_COMMIT?) не посылается EE_KILLFOCUS
   From dolzenko
   Добавка моя: Запретим переключение фрэймов, если находимся в хелпе или диалоге

2. Mantis#0000187: Нельзя выйти из диалога с сообщением об ошибке
   не обрабатывался код ошибки COPY_FAILURE


Zeroes 03.11.2008 00:23:45 +0200 - build 577
1. Падение FAR с exception

например в случае, когда есть макрос:

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\Esc]
"Sequence"="$If (!APanel.Visible) F9 End Left Enter Down Enter Enter CtrlO $Else CtrlO F9 End Left Enter Down Enter Enter $End"

и пытаемся зайти в архив RAR с зашифрованным заголовком (-hp) после запроса
пароля жмем ESC несколько раз (примерно на 7й раз 100% FAR падает)

svs 24.10.2008 10:11:19 +0300 - build 576

1. Mantis#0000621: Макрос из плагина не отрабатывает, если тот вызван через функцию eval
    1. запускается макрос, код помещается в рабочую зону
    2. срабатывает eval, делает новое рабочее окружение (push) и помещает новый код
    3. доходит дело до плагина - добавляется новый код "%%AltHistoryDialogActive=1;" в туже зону
    4. помещенный eval`ом код говорит "end" и происходит восстановление (pop) предыдущей рабочей зоны, несмотря на то, что в текущей зоне еще остался макрокод от плагина.
    5. завершается основной код и...
    ...и все.
    В общем не стояла проверка для п.4, т.е. теперь смотрим, что если что-то в рабочей зоне осталось, то не делаем pop, а пытаемся завершить все дела в этой текущей зоне.


drkns 16.10.2008 16:48:25 +0200 - build 575

1. Mantis#0000619: Просмотрщик начиная с некоторого билда не показывает полный путь файла.

drkns 06.10.2008 00:05:30 +0200

1. Ветка для IA64 в vcproj. Работоспособность не проверялась.

drkns 03.10.2008 18:27:50 +0200 - build 574

1. Mantis#0000614: Копирование не работает при задании директория без \ в конце. (регрессия)

drkns 03.10.2008 01:24:28 +0200 - build 573

1. В обработчике MCODE_F_MENU_SELECT в VMProcess не передавался tmpMode, как результат -
   макрос Menu.Select всегда работал в режиме 0 (полное совпадение).

drkns 01.10.2008 20:50:03 +0200 - без билда

1. Mantis#0000613: Поиск не находит файлы и папки в подпапках при установке опции "Искать в символических связях"

  В отличие от 1.71 здесь ничего делать не надо - всё уже работает.
  Просто в справку добавлено, что операция может потребовать больше времени, чем обычно.

thims 01.10.2008 13:00:00 +0200 - без билда

1. Перелопачен far18.VS2008.vcproj на предмет более правильных зависимостей и по мелочам фиксы.
2. Добавил себя в maintainers по Viewer'у

Zuz 26.09.2008 23:07:08 +0500 - build 572

1. Первые шаги в сторону IA64
2. deb64_ud2.asm теперь не нужен
3. SetErrorMode теперь вызывается один раз при старте FAR'a, почему вызовы SetErrorMode были размазаны по коду
   сейчас никто не помнит. Начнут выскакивать виндовые диалоги об ошибах доступа типа "файл не найден", обращаться
   ко мне.
4. Новый #Techinfo (временный):

   [HKEY_CURRENT_USER\Software\Far18\System]
   "IgnoreDataAlignmentFaults":REG_DWORD
   Параметр  "System/IgnoreDataAlignmentFaults"  с  типом  DWORD   позволяет
   подавлять ошибки выравнивания на платформе IA64.
   Может принимать следующие значения:
   0 - не подавлять ошибки выравнивания;
   1 - подавлять ошибки выравнивания.
   По умолчанию значение = 0 (не подавлять ошибки выравнивания).

drkns 26.09.2008 08:13:14 +0200 - build 571

1. Бантики:
   - UMSG -> MSG
   - к ещё оставшимся winapi ansi функциям и структурам явно дописан суффикс 'A', + юникод определён по умолчанию.
   - Тип параметра у UnicodeString.[Get|Release]Buffer - size_t.

2. В WaitKey Sleep теперь не на 50 мс, а на одну - так и процессор не греет, и побочных эффектов (http://forum.farmanager.com/viewtopic.php?t=3492) нет.

3. Добавлен #undef DefDlgProc - в WinUser.h уже есть одноимённое определение, а в far.map потом появляются чудеса вида ?DefDlgProcA@Dialog@

drkns 24.09.2008 19:04:47 +0200 - build 570

1. Поддержка создания вистовских ссылок по AltF6.
   Диалог слегка переделан, поведение оставлено максимально совместимым со старым:
    - если источник==файл(ы) - по умолчанию выбран hardlink
    - если источник==каталог(и) - junction.
   Новые виды ссылок надо выбирать ручками :)
   В справке всё это пока не отражено.

   Здесь же: при создании ссылок отключены проверки файловых систем, типов носителя, и т.п. для источника и приёмника, ибо работают они далеко не всегда адекватно.
   Логика проста - фар не должен включать режим телепата и строить догадки, сможет ли ОС создать ту или иную ссылку - ей в любом случае виднее.

2. API: FSF.MkLink знает о новых флагах:

     FLINK_SYMLINKFILE - символическая ссылка-файл (NT>=6)
     FLINK_SYMLINKDIR  - символическая ссылка-каталог (NT>=6)

     FLINK_SYMLINK переименован в FLINK_JUNCTION, в pluginold.hpp старое имя оставлено для совместимости.

3. Отображение ссылок в диалоге атрибутов и quickview:
   - скорректирована длина выводимого текста;
   - связи, указывающие на \\?\Volume{GUID}\some_path, считались монтированными томами.

4. ConvertNameToReal правильно обрабатывает символические ссылки-файлы.

5. При копировании/переносе ссылки фар блюдёт её тип и больше не превращает symlink в junction.

6. Mantis#0000607: "Лишний" бэкслеш в переменной пути окружения FAR.

yjh 16.09.2008 20:46:04 +0300 - build 569

1. 64bit warnings

drkns 16.09.2008 15:50:14 +0200 - build 568

1. Добавлена отсутствующая в старых SDK константа SYMBOLIC_LINK_FLAG_DIRECTORY.

2. GCC warnings.

drkns 14.09.2008 14:20:12 +0200 - build 567

1. GetJunctionPointInfo требовала слишком много прав для открытия симлинка, в результате чего она
   обламывалась на симлинках с Everyone:(DENY)(special access:) FILE_READ_DATA (в Висте таких полно).
   Сама функция переименована в GetReparsePointInfo (ибо этим по сути и является).

2. [Create|Delete]JunctionPoint теперь умеют [создавать|удалять] вистовские симлинки и переименованы в [Create|Delete]ReparsePoint.

3. В ряде мест убраны проверки на CheckFolder()==CHKFLD_NOTACCESS, т.к. из-за них нельзя было зайти в каталог,
   где можно "traverse folder", но нельзя "list folder" (в Висте, опять же, таких полно, и cmd зайти позволяет).
   А BugZ#743, ради которого они вводились, похоже, уже починился где-то раньше.

4. apiFindFirstFile при неудаче пытается развернуть симлинк и попробовать ещё раз для реального пути.
   Также в коде одиночные вызовы apiFindFirstFile заменены на apiGetFindDataEx + для симметрии добавленa apiFindClose.

5. Умеем различать обычные симлинки (aka связь/junction) и вистовские (aka ссылка/symlink) в диалоге атрибутов,
   быстром просмотре и столбце панели. lng и hlf ещё надо кое-где уточнить.

6. В IsModulePlugin2 добавлена проверка IMAGE_FILE_HEADER.Machine, дабы 32-битный фар не пытался грузить 64-битные плагины (и наоборот).

7. wcsncmp=>StrCmpN, StrCmpN=>StrCmpNI в некоторых местах.

8. Криво работала команда cd \\.\pipe :)

9. Некоторая поддержка относительных вистовских симлинков, по мотивам 1.71.2226.


drkns 12.09.2008 11:46:27 +0200 - build 566

1. Не работала Message c флагом FMSG_ERRORTYPE для неизвестных FAR'у кодов ошибок.

drkns 10.09.2008 01:18:40 +0200 - build 565

1. WindowInfo.TypeName и WindowInfo.Name теперь имеют тип const wchar_t*.
   Структуру WindowInfo, заполненную по ACTL_GETWINDOWINFO, нужно освобождать командой ACTL_FREEWINDOWINFO.
   Как обычно: если кто использовал это в плагинах - надо править.

2. В паре мест при вызове UnicodeToAnsi размер приемника передавался на 1 байт меньше возможного.

drkns 07.09.2008 14:21:22 +0200 - build 564

1. FCTL_GET[ANOTHER]PANELSHORTINFO для ansi-плагинов должна работать по прежнему.

drkns 07.09.2008 13:21:42 +0200 - build 563

1. FCTL_FREEPANELINFO всегда возвращала FALSE;

2. FCTL_GETPANELSHORTINFO теперь НЕ ЗАПОЛНЯЕТ поля lpwszColumnTypes, lpwszColumnWidths
   и lpwszCurDir структуры PanelInfo. Освобождать заполненную этой командой структуру не надо.

yjh 06.09.2008 22:45:30 +0300 - build 562

1. Убираем warning в 64хбитовой компиляции


drkns 06.09.2008 16:56:32 +0200 - build 561

1. Утечки памяти в SortList и FileListToPluginItem.

drkns 05.09.2008 22:27:29 +0200 - build 560

1. From Alexey Samlyukov: уточнения в oldfar::FCTL_GET[ANOTHER]PANEL[SHORT]INFO.

drkns 05.09.2008 21:33:06 +0200 - build 559

1. И ещё одна поправка к 557.

drkns 05.09.2008 14:34:30 +0200 - build 558

1. Поправка к предыдущему билду.

drkns 04.09.2008 22:16:09 +0200 - build 557

1. Mantis#0000582: memleak при FCTL_GETPANELINFO(FCTL_GETPANELSHORTINFO)
   Тут дело не в утечках во враппере, а в недоделанном api :)
   Теперь в юникодных плагинах _НАДО_ делать FCTL_FREEPANELINFO после всякого FCTL_GETPANEL[SHORT]INFO.

2. Работает FCTL_SETSELECTION для ansi-плагинов.

2. Очередные изменения в api: PanelInfo.SelectedItems теперь массив указателей на соответствующие выделенные элементы
   массива PanelInfo.PanelItems, а не массив копий оных. Плагины, использующие это, надо править.

3. FCTL_GETCMDLINE[SELECTEDTEXT]: если в Param передан NULL, функция вернёт необходимый
   размер буфера (в символах) без учёта 0.

4. Дополнение к 551: PrepareDiskPath возвращала ерунду, если ей подсунуть корткое имя.

svs 04.09.2008 17:08:57 +0300 - build 556

1. В Editor::SetCacheParams, FileEditor::LoadFromCache и FileEditor::SaveToCache
   восстановлен баланс сил - запоминание/восстановление шорткатов, позиций, etc. как в 1.7.

2. Mantis#0000603: не работает StartChar в Editor()
   В FileEditor::LoadFile функцию Editor::SetCacheParams вызываем всегда.


svs 04.09.2008 01:30:32 +0300 - build 555

1. Bug. Открыть файл во вьювере, перейти в конец/середину/etc., нажать F6.
   В редакторе оказываемся в самом начале файла.
   Сравнить с поведением 1.7x.
   Hint (для АПИ :-). Если в Info.Editor в качестве StartLine указать -2, то
   параметр StartChar ФАР будет воспринимать как смещение в байтах от начала
   файла и постарается встать в начало строки, подходящее под это смещение.

svs 03.09.2008 18:33:52 +0300 - build 554

1. Mantis#0000600: Поведение DIF_SELECTONENTRY при создании диалога
   Поломалось в 2257 билде.

2. Небольшие уточнения для FileEditor...
   В FileList::ProcessKey исключаем "лишний" просчет NamesList
   В FarEditor при EF_NONMODAL редактор пытался запускаться при XC_LOADING_INTERRUPTED.

3. Избавляемся от варнингов в macro.cpp

drkns 31.08.2008 19:06:01 +0200 - build 553

1. В 361 билде сломалось назначение макросов на клавиши !@#$%^&*()_+|.

2. В 481 билде сломались хоткеи с Shift.

3. Косметика: в диалоге назначения макроклавиши клавиша приводится к верхнему регистру.

drkns 31.08.2008 13:37:57 +0200 - build 552

1. Mantis#0000588: размер буфера в MakeDirectory()

   Но NM - зло, его надо искоренять :)

   MakeDirectory теперь выглядит так:
     int WINAPI MakeDirectory(HANDLE hPlugin,const wchar_t **Name,int OpMode);

   Плагин должен передать Фару через Name указатель на свой буфер, содержащий имя каталога.
   Буфер должны быть валиден после возвращения из функции.

   Аналогичные изменения в GetFiles:
     int WINAPI GetFiles(HANDLE hPlugin,struct PluginPanelItem *PanelItem,int ItemsNumber,int Move,wchar_t **DestPath,int OpMode);

     DestPath изначально указывает на путь назначения, если плагин его меняет - DestPath должен
     указывать на буфер плагина, содержащий новый путь. Буфер должны быть валиден после возвращения из функции.

   Соответственно, плагины, использующие эти функции, надо переделать.

drkns 29.08.2008 23:47:36 +0200 - build 551

1. Mantis#0000475: Отображение заголовка панели ЗАГЛАВНЫМИ буквами даже когда директорий не заглавный
   Mantis#0000599: Невозможно ходить по сетевым дискам подключенным через WebDAV

   Оба тикета - следствие использования коротких имён в определении правильного регистра пути.
   PrepareDiskPath слегка переписана, короткие имена теперь там не задействуются вообще.

svs 20.08.2008 17:21:30 +0300 - build 550

1. Mantis#0000592: Сбрасывается состояние IClip при использовании функции eval

drkns 14.08.2008 10:53:21 +0200 - build 549

1. Продолжение 547 - при выводе копирайта прокручиваем экран только если в этом есть необходимость.

drkns 12.08.2008 16:29:00 +0200 - build 548

1. Пляски с OpenPluginInfo во враппере (b539) получились не совсем удачными, попробуем иначе.
   Как следствие, Mantis#587: entering '..' inside an archive exits archive instead of going up 1 level

2. В UnicodeString::SetData добавлен NullToEmpty, дабы не писать его в куче других мест.

drkns 11.08.2008 00:19:22 +0200 - build 547

1. Цвет пользовательского буфера теперь настраивается.
   В палитру добавлен COL_COMMANDLINEUSERSCREEN.

2. При выходе из FAR восстанавливаются цвета текста/фона, использовавшиеся в консоли до его запуска.

3. При старте FAR некорректно прокручивался предыдущий output и копирайт рисовался поверх него, а не после.

svs 10.08.2008 23:29:07 +0300 - build 546

1. Mantis#0000577: Сбрасывается позиция в строке при Undo после XLat
   в Editor:XLat в AddUndo в качестве параметра savepos юзался 0 :-(
   возможно вместо CurPtr->GetCurPos() нужно преобразование с учетом табов (?)

2. Mantis#0000554: В списке Hotplug-устройств отсутствует диалог об ошибке извлечения устройства

3. Mantis#0000579: Неполадки при операциях фара (таких как копирование), запущенных из макроса
   Если "DisableOutput=0" и в процессе копирования, например, мы нажали Esc и отменили процесс и (!)
   если логика макроса не поняла, что ее "кинули" (макрос не отследил факта появления "левого"
   диалога), то...


svs 08.08.2008 20:10:03 +0300 - build 545

1. Mantis#0000571: некорректно отрисовывается соседняя панель

drkns 06.08.2008 22:28:53 +0200 - build 544

1. Криво обрабатывалось кнопкосочетание CtrlAltShiftPause.

2. Раз уж движок позволяет обрабатывать сочетания c CtrlAltShift, зарезервируем для CtrlAltShiftF1-F12 место в lng.
   Также зарезервировано место для CtrlAlt-, AltShift- и CtrlShiftF1-F12 в областях Help, Info, QView и Tree.

svs 06.08.2008 12:50:15 +0300 - build 543

1. Macro: добавлена функция "s=trim(s[,n])" - удаляет все пробельные символы (пробелы, табуляции,
   переводы строк и возвраты каретки) из строки s снаружи (n=0 или не указан), слева (n=1)
   или справа (n=2)

2. Macro: уточнение для substr. Теперь работает верно.

3. Macro: уточнение функций msgbox, prompt, panelsetpath там где в параметрах используется строка.
   Например,
     msgbox(1,2) выдаст диалог с заголовком "1", текстом "2" и кнопкой "Ок".
     msgbox(0,2) выдаст диалог с пустым заголовком, текстом "2" и кнопкой "Ок".
     msgbox("0",2) выдаст диалог с заголовком "0", текстом "2" и кнопкой "Ок".
     т.е. если нужно явно указать "0" - заключаем этот ноль в кавычки.

4. Macro: После 542 отвалился msgbox (где в качестве кол-ва необязательных указано значение, равное количеству
   параметров и больше 1). Починили.

5. Bug: неправильное определение позиции клика мыши во вьювере в статусной строке.
   Viewer работает со своей системой координат.
   Так же из-за этого VCTL_GETINFO возвращал WindowSizeY на 1 меньше реального значения.

svs 05.08.2008 14:38:06 +0300 - build 542

1. Mantis#0000581: Добавить возможность прервать выполнение макроса
   CtrlBreak прерывает выполнение макроса. Назначать макросы на CtrlBreak тоже можно

2. Mantis#0000564: Не работает ключ фара /ma
   Проблемы с логикой :-)
   MDOL_ALL теперь равен 0x80000000

3. Macro: изменения в substr(). Если N2 = 0, то вернется пустая строка.
   Для варианта "от сюда и до конца строки" нужно указать N2 < 0

4. Macro: уточнение msgbox. Теперь все параметры можно не указывать.


drkns 05.08.2008 11:32:24 +0200 - без билда

1. Косметика в far.mak + в догонку к одному из предыдущих билдов: замена int на DWORD в паре мест, связанных с обработкой аттрибутов.

drkns 04.08.2008 00:50:56 +0200 - build 541

1. Обновил .vcproj + мелкие правки в хидерах.

warp 04.08.2008 00:20:00 +0300 - build 540

1. Очередной бессмысленный подвиг. Перенес загрузку всех импортируемых функций в одно место.
   Надо обновить .vcproj, mak'и вроде обновил. Проверяем, чтобы ничего не отвалилось.

drkns 03.08.2008 22:11:48 +0200 - build 539

1. Для ansi-плагинов портилось содержимое OpenPluginInfo при повторном вызове фаром GetOpenPluginInfo().
   Пока что сделано дёшево и сердито. Возможно, надо менять сам способ хранения этой информации.

2. К строкам, добавляемым ansi-плагинами к меню плагинов, меню дисков и меню конфигурации,
   насильно дописывается суффикс " [A]", дабы оные были видны издалека.

3. GetFileOwner для плагинов.

warp 03.08.2008 21:58:00 +0300 - build 538

1. Теперь полоса прокрутки в QView рисуется как положено на рамке панели, а не черт знает где.

drkns 02.08.2008 19:59:42 +0200 - build 537

1. В диалогах и ещё паре мест знаковые переменные использовались вперемешку с беззнаковыми.

drkns 31.07.2008 21:03:09 +0200 - build 536

1. Немного почистил код:
    - Все структуры и константы, отсутствующие в поддерживаемых SDK, вынесены в sdkpatches.hpp.
      Просьба при необходимости дописывать именно туда;
    - Убраны некоторые анахронизмы;
    - прочая косметика.

drkns 29.07.2008 19:30:20 +0200 - build 535

1. Поправлена сборка с vc 2005 и gcc.

drkns 29.07.2008 10:15:52 +0500 - build 534

1. Начальная поддержка NTFS sparse-файлов:
    - "умное" копирование (только ненулевые сегменты);
    - Корректный подсчет размера в панелях и QuickInfo.

2. Добавлена функция apiSetFilePointerEx - обертка вокруг SetFilePointer[Ex].

3. Ещё немного именованных констант.

4. В SendDlgMessage и DefDlgProc проверка нулевого значения hDlg была не там, где надо.

Zuz 22.07.2008 21:12:52 +0500 - build 533

1. Mantis#0000576 Некорректная прорисовка в связи с ограничением функции WriteConsoleOutput, пока правка в лоб.

svs 21.07.2008 15:07:54 +0300 - build 532

1. Macro: gethotkey - параметр можно не указывать.

drkns 09.07.2008 19:48:58 +0200 - build 531

1. Не работало снятие выделения в редакторе по EditorSelect.BlockStartPos=-1.

2. Mantis#0000572: некорректное отрисовывание меню настроек плагинов.

drkns 06.07.2008 22:15:34 +0200 - build 530

1. Отголоски #462: вернём плагинам старое поведение ConvertNameToReal, с разврорачиванием до \\?\Volume{...}.

drkns 04.07.2008 20:18:48 +0200 - без билда

1. min|max заменены на "правильные" Min|Max.

svs 04.07.2008 17:57:25 +0300 - build 529

1. Mantis#0000570: Вычисление текущего каталога для плагина с OPIF_REALNAMES

drkns 25.06.2008 09:15:36 +0200 - build 528

1. В 521 не учёл операции с относительными путями.

t-rex 29.06.2008 14:06:55 +0200 - build 527

1. С форума: http://forum.farmanager.com/viewtopic.php?f=9&p=33805#p33805
   Как минимум в Win таблице символы с кодом меньше 128 не должны перекодироватся.
   Для 1.80 это не особо актуально но так как GetTable всё ещё в пару мест используется решил исправить и тут.

t-rex 29.06.2008 01:12:09 +0200 - build 526

1. Mantis#0000529 Не восстанавливается текущая позиция в командной строке

2. Mantis#0000568 Сбивается командная строка при скрытии/показе/обновлении файловой панели (в т.ч. автоматическом)

drkns 28.06.2008 22:16:11 +0200 - build 525

1. Починим сломанное в 523 и немного косметики в коде.

t-rex 28.06.2008 19:35:48 +0200 - build 524

1. Исправил неожиданные сдвиги экрана (LeftPos) в редакторе при скролирование.
   Вообще главная причина глюка это то что у нас почти все параметры редактора они реальное не
   параметры редактора а каждой строки в редакторе. Кто то хочет это переделать? :)

drkns 27.06.2008 22:56:28 +0200 - build 523

1. Баги с историей строк ввода во враппере.

t-rex 25.06.2008 22:48:27 +0200 - build 522 Турция vs. Россия :)

1. Оптимизация открытия файлов с очень длинными строками в редакторе.
   До оптимизации файл со строкой в 64MB открывался примерно минуту, теперь секунду.
   Само собой наличие колорера оптимизацию немного губит :)

drkns 25.06.2008 21:37:14 +0200 - build 521

1. Добавка к 517: в операции переноса файла между сетевыми дисками уточнёна
   проверка принадлежности источника и приёмника к одному устройству.

2. Не работали операции с UNC-путями (CtrlAltIns, CtrlAltF и иже с ними).

svs 25.06.2008 17:16:20 +0300 - build  520

1. Mantis#0000567: Поиске в длинном фалей с попыткой отмены поиска
   Действуем так же как и при загрузке (см. build 493) - "развернем" функцию CheckForEsc() as is.

svs 23.06.2008 19:33:54 +0300 - build 519

1. Mantis#0000564: Не работает ключ фара /ma
   Кроме /ma так же "улучшены" остальные ключи

drkns 23.06.2008 18:02:51 +0200 - build 518

1. Mantis#0000082: Добавить "Пропустить все" в диалог.

2. Уточнения в блокировании чекбоксов, соответствующих NTFS-атрибутам, для
   монтированных не-NTFS томов и файлов на этих томах.

3. Не работала кнопка "Skip all" для атрибутов при копировании.

4. Косметика: "магические числа", возвращаемые ESetFile*(), заменены константами.

drkns 21.06.2008 01:50:16 +0200 - build 517

1. С форума: "Проблема при перемещении файлов на Hard-linked устройство".
   Некорректно работала _GetPathRoot() для монтированных дисков.

svs 20.06.2008 11:46:31 +0300 - build 516

1. Доработка к 515-му - забыл вернуть -1 (ошибку)

svs 20.06.2008 11:11:21 +0300 - build 515

1. Macro: breaking change.
   Dlg.ItemType отдает все то же самое, что возвращает Dlg.GetValue(XXX,1), плюс изменения:
    * -1 - ошибка, например, Dlg.ItemType вызван не в диалоге
    * 0x8004 - Выбор из истории поля ввода
    * 0x800A - Выбор из комбинированного списка

svs 19.06.2008 19:33:11 +0300 - build 514

1. Mantis#0000560: Стирание текста в окошках поиска/замены

svs 18.06.2008 19:28:55 +0300 - build 513

1. From bitomaxsp:
   Mantis#0000559: Попытка убрать RAVE и BUGBUG при поиске и замене
   Сделал чтобы в Edit передавалось string при поиске вместо wchar_t.
   Убрал "отливание в сторонку" строки поиска и строки замены.
   Теперь просто используются string вместо указателей на wchar_t.


svs 17.06.2008 22:00:18 +0300 - build 512

1. Усиливаем build 2387 - при смене фокуса this ставим правильный :-)
   + добавка в АПИ: VE_GOTFOCUS & VE_KILLFOCUS

2. Mantis#0000556: Menu.Select: неверно работает назначение хоткеев и пр.
   Здесь проблема в том.... что ReadInput должен вызываться до получения позиции в меню, т.к.... :-)
   ReadInput вызывает мкародвиг, который и меняет данные.

3. plugin.pas в порядок бы привести... :-(


svs 17.06.2008 18:44:24 +0300 - build 511

1. Mantis#0000558: Булево состояние DisableOutput всегда ложно

2. Mantis#0000547: Выделение найденных фрагментов при поиске
   From bitomaxsp.
   Значение опции не запоминалось.

zg 16.06.2008 20:32:26 +0200 - build 510

1. если открыть один просмотр, в нём переключится в hex,
   потом второй просмотр (без переключения в hex), и потом вернутся
   в первый просмотр, то для плагинов активным останется второй просмотр.
   например s&r будет искать во втором просмотре.

svs 16.06.2008 16:21:02 +0300 - build

1. без билда. Поправил CONTRIBUTORS

warp 15.06.2008 05:54:00 +0300 - build 509

1. Уточнение в парсере колонок во враппере. Хотя, видимо, тоже не до конца корректный вариант,
   но больше не падает на "N, N, N,".

warp 14.06.2008 01:03:00 +0300 - build 508

1. В API добавлен макрос PANEL_NONE, значит то же, что и INVALID_HANDLE_VALUE.

2. CURRENT_PANEL/ANOTHER_PANEL переименованы в PANEL_ACTIVE/PANEL_PASSIVE.

3. Добавлен FCTL_ISACTIVEPANEL.

t-rex 13.06.2008 17:26:33 +0200 - build 507

1. hook_wow64.c теперь собирается с GCC.
   Работоспособность проверялась в GCC 4.3.0, в 3.4.5 нет поддержки TLS
   и поэтому фича там задисэйблена.

zg 12.06.2008 11:58:39 +0200 - build 506

1. про поиске файлов например по маске "makefile" зачем-то находились Makefile.svn-base.

yjh 12.06.2008 02:46:56 +0300 - build 505

1. Очередная ошибка в wow_hook - "спешка нужна при ловле блох"(С) :(.
   А вот то что оно всё равно работало, очередной раз доказывает, что
   то что программа запускается ещё не значит что она работает ;-)


yjh 10.06.2008 21:29:41 +0300 - build 504

1. "Экономия" в хуке для wow64. Раз уж из-за ошибки в последнем SP (к слову -
   в ms её признали и обещали исправить :), приходится в ручную выдавать
   VirtualProtect, то не нужен лишний syscal WriteProcessMemory

svs 10.06.2008 19:30:46 +0300 - build 503

1. Mantis#0000550: Падение в dialogs.cpp - Dialog::ProcessCenterGroup()

yjh 10.06.2008 18:43:57 +0300 - build 502

1. Mantis#0000551: отрицательный фильтр с атрибутом каталога в подсчёте
   'total' при копировании.
   From: Ariman

yjh 09.06.2008 23:01:41 +0300 - build 501

1. Обход в очередлной раз повторенной MS ошибки в WriteProcessMemory, на сей
   раз в 32хбитной версии kernel32.dll от 64хбитового 2003 :)

drkns 09.06.2008 21:14:59 +0200 - build 500

1. Mantis#0000535: курсор за пределами строки.

yjh 09.06.2008 22:00:37 +0300 - build 499

1, Классический паример "чётного числа ошибок" :) - хук, конечно, работал
   но вот преврка была не корректной и если бы ntdll изменился...

svs 09.06.2008 16:56:48 +0300 - build 498

From bitomaxsp:

1. Mantis#0000547: Выделение найденных фрагментов при поиске


yjh 09.06.2008 07:15:42 +0300 - build 497

1. Адаптация makesystem для сборки vc9 (VS2008) - пока не по умолчанию.
   Помимо изменения путей в custom.vc.xxx следует добавить в NMAKE_OPTS
   параметр USE_VC9=1.
   После того как все садаптируются :) сделаем дефолтным


t-rex 08.06.2008 14:45:36 +0200 - build 496

1. Сделаем plugin.hpp RC friednly.

yjh 08.06.2008 00:53:42 +0300 - build 495

1. В PluginsPanelInfo Reserved теперь не 2 DWORD'а а 2 DWORD_PTR.

drkns 06.06.2008 11:04:18 +0200 - build

1. Проект для VS2008.

svs 05.06.2008 00:50:59 +0300 - build 494

3. 'VMenu::GetTitle(char *,int)' и 'Frame::GetTitle(char *,int,int)'
   получились разными функциями и в макросах для менюх непонятно что вызывается...
   Привел к одному знаменателю.

svs 04.06.2008 22:51:51 +0300 - build 493

From Denis:

1. Mantis#0000539: Новая фича в редакторе
   В редакторе добавлена обработка Alt-F7

2. Mantis#0000545: В процессе загрузки большого файла в редактор не появляется фоновое окно загрузки

Небольшая добавка от меня (добавка для Mantis#0000545)  :-)  (в 1.7x тоже есть такое)

3. Открываем большой файл...
    - пытаемся открыть большой файл
    - появляется месаг загрузки
    - Esc -появляется приглашение прервать это безобразие
    - Esc - отказываемся, т.е. пусть дальше грузиться и... месаг процесса загрузки не появляется
   Для лечения "развернем" функцию CheckForEsc() as is.

svs 04.06.2008 13:36:30 +0300 - build 492

1. Mantis#0000543: Не освобождается память при прерывании операции открытия файла в редакторе
   From: Denis

t-rex + zg 30.05.2008 17:54:32 +0200 - build 491

1. В сборке GCC не осталось предупреждений (не считая -Wno-missing-braces -Wno-unknown-pragmas -Wno-switch).

2. За одно решились (некоторые?) проблемы с выравниванием влияющие на IA64 (FILETIME to __int64).

t-rex 30.05.2008 15:32:02 +0200 - build 490

1. fixed vc build.

zg 30.05.2008 13:40:30 +0200 - build 489

1. убрана ненужная переменная.

2. warnings.

yjh 28.05.2008 21:29:46 +0300 - build 488

1. При копировании с разрешённым созданием symlink'ов и включенным
   Total индикатором - не подсчитывать размер находящегося внутри
   symlink


drkns 25.05.2008 21:39:36 +0200 - build 487

1. Mantis#0000533 ещё даёт о себе знать.

svs 23.05.2008 20:31:18 +0300 - build 486

1. Mantis#0000537: Menu.Select не позиционирует на Folders в меню фильтров
   добавлен 3-й режим, итого:
     0 - полное совпадение
     1 - совпадение с началом строки
     2 - совпадение с концом строки
     3 - совпадение подстроки в любом месте строки


svs 21.05.2008 20:19:51 +0300 - build 485

1. Mantis#0000527: Сделать необязательным параметр функции WaitKey
   Нашлась бага в парсере... Нужно тестировать!!!
   Если что, не откатываемся, а пытаемся понять причину ;-)

2. Mantis#0000526: Сделать необязательным второй параметр функции clip

3. Mantis#0000532: Недостающие состояния в Редакторе и Просмотрщике
   Для Editor.State и Viewer.State:
     0x08000000 - режим "редактор/вьювер" (FAR запущен с ключами /e /v)
     0x00000800 - модальный редактор/вьювер


drkns 16.05.2008 01:46:34 +0200 - build 484

1. В обработке BOM в юзерменю, добавленной в #480, не учёл, что функция может вызываться рекурсивно,
   в результате разбор вложенного меню зацикливался, а реестр забивался мусором :(

drkns 15.05.2008 19:52:55 +0200 - build 483

1. В некоторых экзотических случаях неправильно работала PartCmdLine - строка делилась на пустую команду с непустым параметром.

2. В некоторых не менее экзотических случаях Фар пытался записать отрицательное количество байт в виртуальный буфер (c предсказуемым результатом).

3. В enum FarDialogSettings добавлены недостающие константы:

   FDIS_DELREMOVESBLOCKS:              "Del удаляет блоки в строках ввода"
   FDIS_MOUSECLICKOUTSIDECLOSESDIALOG: "Клик мыши вне диалога закрывает диалог"

4. Mantis#0000533: Far calculates wrong folder size.

t-rex 12.05.2008 00:41:48 +0200 - build 482

1. Уже виден конец ворнингов.

t-rex 11.05.2008 21:06:17 +0200 - build 481

1. Собираем с GCC 4.3.0 с -Wall (минус пару ворнингов на покамест).
   Уменьшил количество ворнингов с "до хренища" до "до хрена".

2. Mantis#531: hotplug.cpp - два вхождения #pragma hdrstop.

drkns 11.05.2008 20:03:36 +0200 - без билда

1. Прекомпилированные заголовочные файлы для VC.

drkns 03.05.2008 15:35:46 +0200 - build 480

1. Mantis#0000524: При использовании !?<title>?<init>! в диалог запроса параметров попадает мусор.

2. При обработке farmenu.ini byte order mark воспринимался как хоткей 1-го пункта меню.

3. Лишний realloc для DialogItemEx при формировании диалога для !?<title>?<init>!. Падало.

drkns 23.04.2008 19:25:04 +0200 - build 479

1. Древний баг: если при перемещении диалога мышью резко увести её к краю экрана, то диалог до этого края не доедет.

t-rex 19.04.2008 21:05:28 +0200 - build 478

1. Текст из клипборда, содержащий юниксовые окончания строк, пастился в редакторе как одна строка.

drkns 15.04.2008 07:23:53 +0200 - build 477

1. Продолжение эпопеи о дополнительной клавиатуре и включенном по умолчанию TechInfo#48,
   теперь на тему AltShiftIns/AltShiftNum0 в панелях.

drkns 14.04.2008 20:26:46 +0200 - build 476

1. При удалении общего макроса неправильно формировалось имя ключа в реестре,
   вследствие чего удаление макроса работало только в пределах текущей сессии.

2. При назначении макроса на клавишу, которой уже был сопоставлен общий макрос,
   запрашивалось подтверждение удаления общего макроса.

3. Продолжение 441: еще немного соответствия основных и дополнительных курсорных
   клавиш в диалоге результатов поиска, на этот раз home/end/pgup/pgdn.

4. Меню плагинов (F11) уничтожалось позже, чем нужно, вследствие чего оно могло
   отрисовываться и после вызова плагина.

5. Убрано шаманство с DN_EDITCHANGE во враппере - после 464 уже не актуально.

drkns 08.04.2008 23:37:32 +0200 - build 475

1. "Юникодизация" strftime.

2. Mantis#0000506: Когда в данном режиме перемещаешься во второй понели по каталогам - Far часто перерисовывает панели

3. С форума: "Переход к найденному по Alt+F7 файлу не меняет заголовок"

4. Mantis#0000280: Move/Rename папки с заблокированным файлом.
   Самое смешное - в 1.70 beta 4 это так и работало.

5. Не работала макрофункция N=Menu.Select(S[,N]).

t-rex 05.04.2008 23:00:28 +0200 - build 474

1. Ещё раз Mantis#395: Crash in UnicodeString::Format().

svs 03.04.2008 01:30:26 +0300 - build 473

1. Macro: добавлены функции работы с закладками
     N=BM.Del([Idx])
       удаляет закладку с указанным индексом (1...),
       Idx=0 или параметр Idx не указан - удаляет текущую закладку
     N=BM.Get(Idx,M)
       возвращает параметры закладки с индексом (Idx=1...), Idx=0 - текущая закладка
       M=0 - координаты строки (начиная с 1)
       M=1 - координаты колонки (начиная с 1)
       M=2 - позиция, соответствующая первому видимому символу текста на экране слева
       M=3 - номер строки, соответствующей первой видимой строке текста на экране
     N=BM.Stat([M])
       возвращает информацию о закладках
       M=0 - текущее количество закладок
       На сейчас параметр роли не играет, можно указывать любое число или не указывать
       параметр совсем. Функция не обозвана как BM.Count так, как предполагается,
       что, если стековые букмарки распространить на вьювер или панели или... то может
       понадобится еще какая нибудь информация.

2. Кое-где, в классах верхнего уровня не передавались параметры vParam и iParam
   в функции VMProcess низлежащих классов.


ts 01.04.2008 23:31:05 +0200 - build 472

1. Проверка на запись в ECTL_GETSTACKBOOKMARKS

2. Подготовка функций для макросов

svs 01.04.2008 16:23:57 +0300 - build 471

1. Mantis#0000518: Search does not honor Hex mode

svs 31.03.2008 12:31:56 +0300 - build 470

1. Mantis#0000517: перестал работать 'panel.SetPos'
   (from Denis Kosy)

ts 30.03.2008 18:27:35 +0200 - build 469

1. Изменена навигация в начальной и конечной позициях.

2. Исправлен алгоритм добавления позиции навигации.

ts 30.03.2008 14:20:08 +0200 - build 468

1. Теперь нельзя добавить две и более позиций навигации подряд на ту же позицию.

2. ECTL_STATSTACKBOOKMARK переименовано в ECTL_GETSTACKBOOKMARKS.

3. Закончено апи редактора управления позициями навигации: доработаны  комманды
   ECTL_DELETESTACKBOOKMARK (при Param равном -1 удаляет текущую позицию
   навигации, при 0 и более - позицию с указанным индексом) и
   ECTL_GETSTACKBOOKMARKS (Param указывает на заполняемую структуру
   EditorBookMarks или равен NULL, возвращает общее количество позиций).
   Описание всех комманд в Энц.

zeroes 29.03.2008 18:33:17 +0200 - build 467

1. Не срабатывали некоторые макросы (например повешенный на CtrlLeft)
проблема была из-за того что использовался KEY_MASKF вместо KEY_FKEY_BEGIN

ts 29.03.2008 17:21:57 +0200 - build 466

1. Добавлена коррекция позиций в стековых закладках при удалении и вставке строк.
   При удалении строки в позиции закладки происходит удаление этой закладки.

2. В апи редактора добавлены новые команды управления позициями навигации:
   ECTL_DELETESTACKBOOKMARK, ECTL_STATSTACKBOOKMARK для удаления указанной
   (пока что только текущей) закладки и получения информации о закладках
   (пока что заглушка).

t-rex 29.03.2008 09:26:14 +0200 - build 465

1. Panel API: Флаги PFLAGS_PANELLEFT и PFLAGS_PANELRIGHT.

t-rex 28.03.2008 13:10:48 +0200 - build 464

1. При GETDLGITEM возвращалась начальная а не текущая строка для эдитов.

2. От Alexey Samlyukov: В настройках неправильно читалось время для screen saver.

svs 27.03.2008 18:03:22 +0300 - build 463

1. Macro: добавлена макрообласть "Consts" для хранения именованных констант.
   Константы располагать в ветке реестра "KeyMacros\Consts". Синтаксис аналогичен "Vars", т.е.
   Код:
   KeyMacros\Consts
     "StringName":REG_SZ
     "IntName":REG_DWORD
   Имена констант произвольные, начинающиеся с буквы...
   Константы аля "ShiftIns" не имеют право на жизнь (хотя "ShiftIns1" допустим для имени)

   Вот вполне работоспособный макрос с использование константы FIB_PASSWORD.

   [HKEY_CURRENT_USER\Software\Far\KeyMacros\Consts]
   "FIB_PASSWORD"=dword:00000002
   [HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlP]
   "Sequence"="%s=prompt(\"Password\",\"Input password:\",FIB_PASSWORD); $Text %s"
   "DisableOutput"=dword:00000001

   Константы ФАР считывает из реестра при старте и хранит в таблице glbConstTable
   Т.к. это константа, то ее наличие можно только проверить функцией checkMacroConst()

2. Переделаем функцию varLook. Было так, что она всегда добавляла переменную, даже если
   параметр ins = 0. В ней тек же удален параметр error. Вместо этого функция возвращает
   ссылку или NULL. В связи с этим переделки в макроисполняторе.


drkns 26.03.2008 10:19:23 +0200 - build 462

1. Mantis#0000510: Тип FarDialogEvent.Result должен быть PLONG_PTR, а не LONG_PTR
   Result оставлен LONG_PTR, но теперь содержит само значение, а не указатель на него.
   Вроде бы ещё никто не успел использовать это в плагинах :)

t-rex 25.03.2008 23:41:53 +0200 - build 461

1. Оптимизация Editor::GoToLine ибо уж полный ужас был.

t-rex 25.03.2008 21:25:42 +0200 - build 460

1. Mantis#499: Invalid file handle used in ShellCopy::ShellCopyFile().

2. Mantis#395: Crash in UnicodeString::Format().

3. Мешанина пробелов и табов в panel.cpp.

4. От Denis Kosy Mantis#505: Необрезание строк в некоторых VMenu.

5. syntax.cpp: не собирался (как минимум) в VC8.

svs 25.03.2008 21:51:35 +0300 - build 459

1. Macro: добавлен Editor.RealPos - текущая поз. в редакторе без привязки к размеру табуляции

2. Macro: функция S=prompt("Title"[,"Prompt"[,flags[, "Src"[, "History"]]]])
   Mantis#0000512: N = prompt(Title, Text, Flags)
   Описание в Энц.

svs 25.03.2008 18:34:01 +0300 - build 458

1. Уточнения в panel.SetPath и опциональных параметров

svs 25.03.2008 16:54:07 +0300 - build 457

1. XXX::SetCurDir - функция возвращает BOOL - удачно или неудачно сделан переход

2. Macro: Добавилась функция -  N=panel.SetPath(panelType,pathName[,fileName])
   установить на панели каталог pathName, опционально можно указать имя файлового объекта (для курсора, как в panel.SetPos)

3. Макродвижок приведен к функционалу 1.7x:
   a) добавлены недостающие функции и операторы
       N=Menu.Select(S[,N])
       N=mod(a,b) == a %  b
       S=replace(sS,sF,sR[,Count])

   б) выставлена приоритизация операций:

       Унарные (R->L):          !  ~  -
       Бинарные арифметические: * /
       Бинарные арифметические: + -
       Сдвиг:                   << >>
       Сравнение:               < <= > >=
       Сравнение:               == !=
       Битовая:                 &
       Битовая:                 ^
       Битовая:                 |
       Логическая:              &&
       Логическая:              ||


4. Некоторые макро-функции могут иметь опциональные параметры
     S=itoa(N[,radix]) - здесь, если radix не указан, подразумевается 10
     N=Menu.Select(S[,N]) - здесь N подразумевается = 0
     N=panel.SetPath(panelType,pathName[,fileName]) - здесб пустая строка
     S=replace(Str,Find,Replace[,Cnt]) - Cnt=0 => до бесконечности
     S=substr(S,N1[,N2]) - до конца строки
     + msgbox - последний параметр (флаги) могут быть опущены, подразумевается 0

   Для этого в структуре __TMacroFunction добавлен параметр oParam.
   В интерфейсе параметры можно опускать, в коде они добиваются PushInt(0)


drkns 25.03.2008 07:15:18 +0200 - build 456

1. Mantis#0000004: DI_EDIT в Message для полей с именами файлов.
   Message теперь "умный": если строка длиннее, чем влезает - она кладётся в DI_EDIT, иначе - как раньше.
   Соотвественно, при вызовах Message убраны TruncPathStr.

2. Mantis#0000080: Перемещение символической связи на другой диск.

zg 25.03.2008 02:15:01 +0200 - build 455

1. при TabSize=1 ShiftTab вначале строки приводил к отрицательной текущей колонке.

t-rex 22.03.2008 21:33:34 +0200 - build 454

1. DM_LISTINSERT возвращал не то что в енц. описано.

2. Ещё заметил один глюк и потенциальный глюк рядом.

svs 20.03.2008 18:22:21 +0300 - build 453

1. Добавлен Disable цвет для пред. билда и изменены наименования пунктов меню в настройке цвета
   Итого размер палитры ФАРа = 0x7F байт

2. В History/Combobox стрелки отображались цветом меню - добавим флаг VMENU_COMBOBOX


svs 17.03.2008 20:23:22 +0300 - build 452

1. Mantis#0000498 - Screen scrolling arrows colors for Menu/Listbox/Combobox
   Добавлены цвета, связанные со стрелками:
     COL_DIALOGLISTARROWS,
     COL_DIALOGLISTARROWSSELECTED,
     COL_DIALOGCOMBOARROWS,
     COL_DIALOGCOMBOARROWSSELECTED,
     COL_WARNDIALOGLISTARROWS,
     COL_WARNDIALOGLISTARROWSSELECTED,
     COL_WARNDIALOGCOMBOARROWS,
     COL_WARNDIALOGCOMBOARROWSSELECTED,
     COL_MENUARROWS,
     COL_MENUARROWSSELECTED,

2. Добьем '>' - выкинут лишний кусок по расчету новой длины строки, немного оптимизации.

3. Макросы зависили от раскладки клавиатуры

drkns 17.03.2008 07:36:28 +0200 - build 451

1. Уточнение в отрисовке '>' при прокрутке строк VMenu.

t-rex 16.03.2008 23:39:26 +0200 - build 450

От Denis Kosy:

1. Mantis#497: Строки с масками файлов обрезаются на 60/78 символах.
   Поскольку теперь постоянно включен режим прокрутки (ex-CtrlN), строку уже можно не резать.

t-rex 15.03.2008 19:49:48 +0200 - build 449

От Alexey Samlyukov:

1. Ошибка в математике при отрисовке '>' (для длинных пунктов) в меню.

t-rex 15.03.2008 17:47:09 +0200 - build 448

1. Mantis#87: Копирование и жёсткие связи.

svs 15.03.2008 17:48:39 +0300 - build  447

1. Ctrl-N в списках убираем (http://forum.farmanager.com/viewtopic.php?f=3&t=3130)

drkns 15.03.2008 15:53:04 +0200 - build 446

1. Mantis#0000222: Не вполне корректная работа (или не работа) с потоками, привязанным к директориям.
   Тут потоки в общем не при чём, дело в обработке путей "\\?\c:\" и "\\?\Volume{GUID}\".
   Заодно поправил еще пару мест c этими путями.

t-rex 15.03.2008 13:41:32 +0200 - build 445

1. Mantis#467: Не пускает на плагинную панель; неправильные элемены панели.
   Исправил, но нифига не понимаю :)

t-rex 14.03.2008 19:16:30 +0200 - build 666-666/3

1. Mantis#458: Из истории папок запускается плагин с 1-буквенным префиксом.

t-rex 14.03.2008 17:23:28 +0200 - build 443

1. Mantis#463: Текущая папка процесса не меняется из юзер меню и отличается от активной панели.
   Во первых юзер меню сам переходил по папкам хотя это там нафиг не надо было,
   а во вторых был совершенно не нужный AI с восстановлением пути.
   Просто всё удалил (и ещё мусор который под руку попался).

2. От Denis Kosy: Mantis#493: Execute поломалась.

3. От Alexey Samlyukov: "" -> L"" в hilight.cpp.

svs 14.03.2008 00:18:12 +0300 - build 442

1. Bug в UserMenu.
   а) UserMenu пустое.
      - F2
      - AltF4
      - в редакторе вставляем из клипборда/набираем пункты руками.
      - F2
      - Esc
      Меню по прежнему пустое
   б) В UserMenu есть пункты.
      - F2
      - AltF4
      - в редакторе видим аля "неправильный юникод"
   Решение.
   При открытии UserMenu во встроенном редакторе в качестве кодовой страницы
   выставляем принудительно Unicode и никакого автоопределения.

2. При выставленном TTF-шрифте для консоли симолы указывающие на подменю в UserMenu
   представлены квадратами.
   usermenu.cpp::SubMenuSymbol[1] ==> Unicode символ 0x25BA.

drkns 13.03.2008 19:18:08 +0200 - build 441

1. Mantis#0000462: !=\ изменила поведение

2. Mantis#0000469: Ошибочное сообщение "Длина имени файла превышает системные ограничения"

3. Переполнение буфера в ConvertNameToReal()

4. Macro: в [panel.]fattr|fexist не работала подстановка * и ?.

5. В UserMenu, MainMenu и окне поиска по-разному вели себя курсорные клавиши на основной и доп. клавиатуре.

t-rex 13.03.2008 15:00:43 +0200 - build 440

От Denis Kosy:

1. Mantis#492: FindFile results window теряет информацию.

svs 13.03.2008 14:20:19 +0300 - build 439

1. От Denis Kosy: Mantis#0000491: макро panel.fexist не работает.

t-rex 12.03.2008 23:55:03 +0200 - build 438

1. От Alexey Samlyukov: wrapper: FarInputBoxA в отличии от 1.7х выставлял DestText даже если отменили диалог.

2. Не работало копирование (и т.п. операции) в плагины c выставленным OPIF_REALNAMES (TmpPanel например).

t-rex 12.03.2008 15:24:39 +0200 - build 437

От Andrey Kuznetsov:

1. Mantis#459: Невозможно войти в каталог, если имя состоит из одной буквы.
   Специфичный баг Win2K SP4.

svs 12.03.2008 14:24:00 +0300 - build 436

1. В диалоге фильтров нажать Reset - в комбобоксах размера и даты видим символ '&'
   Введем Edit::SetHiString(), аналог HiText2Str.

t-rex 12.03.2008 11:28:17 +0200 - build 435

1. Mantis#489: Crash in ConvertPanelItemA()
   pItemsNumber посланый плагину в GetFindData не обнулялся а некоторые
   плагины (network) возвращают TRUE ничего не выставив (типа пустая папка).

svs 12.03.2008 11:42:45 +0300 - build 434

1. После 431 "сломалась" навигация по раскраске в диалоге FileFilterConfig

2. Если в при вызове диалога фильтра/раскраски/сортировки второй параметр ColorConfig равен true
   то меняем заголовок диалога и подставляем нужный топик хелпа, относящийся не к фильтрам, а к раскраске.

t-rex 12.03.2008 00:36:38 +0200 - build 433

1. Расширяем UnicodeString:
   bool Pos(size_t &nPos, wchar_t Ch, size_t nStartPos=0)
   bool Pos(size_t &nPos, const wchar_t *lpwszFind, size_t nStartPos=0)
   bool RPos(size_t &nPos, wchar_t Ch, size_t nStartPos=0)
   bool Contains(wchar_t Ch, size_t nStartPos=0)
   bool Contains(const wchar_t *lpwszFind, size_t nStartPos=0)

2. Выставил const для ещё пару методов в UnicodeString.

3. Заюзал новый Pos в одном месте и ещё пару мелочей.

t-rex 11.03.2008 22:51:56 +0200 - build 432

1. Небольшая оптимизация HiText2Str().

svs 11.03.2008 21:01:02 +0300 - build 431

1. Macro: клавиша вызова наследуется из основного макроса при вызове eval()
   для этого у функции KeyMacro::PostNewMacro() добавлен новый параметр - клавиша вызова.
   например ('y' - клавиша назначения),
     y=eval("< $AKey >")
   теперь печатает "<y>" (было '<>')

2. Macro: V=akey(N) - функция возвращает имя или код клавиши, инициировавшей макрос.

3. Macro: Bug: если в макропоследовательности есть только 1 "клавиша", отличная от набираемых на клавиатуре
   (например, $AKey), то такой макрос ничего не делает (точнее может делать все, что угодно).
   Это остатки (недопеределки) предыдущих изысканий из области сокращения объемов памяти
   (было - если клавиша одна, то память не выделяется, а Buffer считается не как указатель на массив DWORD`ов,
   а как значение DWORD).

4. Dialog: bug: когда в комбобоксах применяются хоткеи, в строку редактирования символ '&' тоже попадает.

5. Фильтры: в конце filefilterparams.cpp::MenuString() сделаем обрезание концевых пробелов.

6. API: добавлены флаги: FMENU_TRUNCPATH, FMENU_TRUNCSTR, FMENU_TRUNCSTREND.
   Показывают как нужно обрезать выводимый на экран пункт меню. Оригинальный текст пункта не изменяется.

7. В любом объекте, основанном на VMenu действуют клавиши
     Ctr-N - включить/выключить режим обрезания выводимых итемов списка
     Alt-Home/Alt-End - прокрутка всех элементов списка по горизонтали в начало/конец
     Alt-Left/Alt-Right - прокрутка всех элементов списка по горизонтали влево/вправо на 1 символ
     Alt-Shift-Left/Alt-Shift-Right - прокрутка текущего элемента списка по горизонтали влево/вправо на 1 символ

    TODO: ОТКРЫТЫЙ ВОПРОС ПРО Ctrl-N !!!

8. Mantis#0000264: Недочёты диалога редактирования группы раскраски
    1. изменен tab-ордер задаваемых цветов
    2. добавлены горячие клавиши в комбобоксах Size и Data/Time.

9. Добавлены функции
     wchar_t* WINAPI TruncStrFromEnd(wchar_t *Str,int MaxLength)
      (по аналогии с TruncStr и TruncPathStr)
   и
     string& HiText2Str(string& strDest, const wchar_t *Str)
      (аналог HiText(), но вывод в строку)

10. Возможно с LIF_USETEXTPTR перебор вышел...
    возможно этот флаг ненужно было тянуть из 1.7x


t-rex 11.03.2008 11:17:36 +0200 - build 430

1. Mantis#488: Crash in GetRegKey()
   в общем просто неправельный вызов из PrepareTable().

2. Mantis#468: Закрытие быстрого просмотра папок вызывает VE_CLOSE (без VE_READ)
   Тут типа 2 бага:
   1. То что qview вообще создаёт объект въювера при просмотре папки.
   2. То что в деструкторе посылается VE_CLOSE хотя никакого файла открыто небыло.

t-rex 10.03.2008 22:39:06 +0200 - build 429

1. Mantis#487: Memory under FAR_FIND_DATA is removed twice
   Тока там всё хуже было, фар нагло освобождал плагиновую память и свою подсовывал.

t-rex 10.03.2008 21:47:59 +0200 - build 428

1. От Alexey Samlyukov: Mantis#486: Баг в Dialog::ProcessLastHistory - не подставлялось значение из истории.

2. В связи с 1 нашелся ещё баг в UnicodeString, если в кратце то возможное чтение из недоступной памяти при
   str = (const wchar_t *)str;
   str += str;

3. Заодно ещё немного форматирования табами.

4. Обновил немного "readme".

t-rex 09.03.2008 23:11:42 +0200 - build 427

from Alexander Mitin

1. Mantis#484: Memory corruption in GetPathRootOne().

t-rex 09.03.2008 14:35:11 +0200 - build 426

1. Грузились все плагины подряд даже когда не надо.
   К примеру колорер загружался при открытии въювера, диалогов и архивов :)

2. Кэш всех плагинов читался тока из первой записи кэша из за чего плагины
   могли тупо не грузится пока их не вызвать из меню плагинов, а в некоторых
   случаях не грузится вообще (особенно с фиксом 1 :).

drkns 09.03.2008 12:28:26 +0200 - build 425

1. Обнаружены чудеса: wcsncat(dst,src,sizeof(dst)-1)
   На всякий случай: 3-й параметр в wcsncat - это "сколько дописываем", а не "сколько влезает".
   Во всех подобных местах wcsncat заменена на xwcsncat, где 3-й параметр уже таки размер приёмника-1.

2. Комбобокс, открытый по Alt-Hotkey, при закрытии получал DN_EDITCHANGE
   с параметрами предыдущего фокусного элемента.

3. В открытый комбобокс не приходили события от мыши.

4. Мелкий баг в диалоге задания макрокоманды.

t-rex 09.03.2008 12:23:43 +0200

1. Конфликты хоткеев в диалоге фильтров (анг).

t-rex 09.03.2008 11:38:53 +0200 - build 424

От Dmitry Ovdienko:

1. Mantis#483: Undefined behavior in Search window.

t-rex 08.03.2008 19:21:05 +0200 - build 423

От Alexey Samlyukov:

1. Mantis#439: Cancel after Ctrl+G should not update the panels.

t-rex 08.03.2008 15:51:50 +0200 - build 422

От George Yohng:
1. Mantis#475: Отображение заголовка панели ЗАГЛАВНЫМИ буквами даже когда директорий не заглавный.

warp 02.03.2008 17:50:00 +0300 - build 421

1. Так, постебаться. Исправил недопоказ плагинов в меню дисков.

t-rex 25.02.2008 01:28:29 +0200 - build 420

От Stanislav Vinokurov:

1. Mantis#436: PrepareExecuteModule() bug(s)

zg 20.02.2008 19:27:59 +0200 - build 419

1. hotplug devices list. при удалении подряд нескольких устройств - визуальные глюки.

drkns 12.02.2008 22:41:34 +0200 - build 418

1. Mantis#0000464: В панелях F10 F1... появляется "Requested help topic not found:"

2. Для плагинов не вызывался ExitFAR при выходе.

3. Уточение в отрисовке открытого комбобокса.

4. Мелкие правки во враппере.

svs 30.01.2008 01:38:39 +0300 - build 417

1. В headers.hpp закомменчен "#include <crtdbg.h>" - кому надо - ставьте "#if"
   в зависимости от компилятора. MSVC (по крайней мере у меня) и без этого
   компилит.

2. Mantis#0000460: Add support of FILE_ATTRIBUTE_VIRTUAL
   "временно" патч принимается.
   "временно" - потому, что диалог фильтра не вмещается в 25 строк.
   нужен редизайн диалога фильтра - это отдельная песня.

3. Букмарки в редакторе... перенесены в макросы:
     N=BM.Add()
     N=BM.Clear()
     N=BM.Next()
     N=BM.Prev()
     N=BM.Stat()
   Причем...
   а) нужно доработать математику "BM.Stat()" (что-то типа StatStackBookmark())
   б) "BM.XXX" в принципе может быть не только "редактор" :-)
   d) Хмм... индикацию, опять же... стекового букмарка...

4. Хмм... трабла? откуда?
   В панелях F10 F1... появляется "Requested help topic not found:"
   Таки Хто?

Zuz 25.01.2008 23:11:21 +0500 - build 416

1. Mantis#000337, Mantis#0000176 refix
2. Двойное обновление панели после CTRL-Z.

ts 23.01.2008 15:32:27 +0200 - build 415

1. Добавлена поддержка навигации а-ля браузер в редакторе: Ctrl-<Gray Enter> сохраняет
   позицию навигации, Ctrl-<Gray -> и Ctrl-<Gray +> переход на следующую и предыдущую
   позиции навигации.
2. В апи редактора добавлены команды управления позициями навигации: ECTL_ADDSTACKBOOKMARK,
   ECTL_PREVSTACKBOOKMARK, ECTL_NEXTSTACKBOOKMARK, ECTL_CLEARSTACKBOOKMARKS для добавления
   позиции навигации, переход к предыдущей, следующей позициям навигации и очистка списка
   навигаций.

drkns 18.01.2008 23:48:39 +0200 - build 414

1. Враппер:
   - Изменена логика хранения массивов структур FarDialogItem и oldfar::FarDialogItem,
     а также конветрирования одного в другой. Теперь (по идее) корректно и без утечек
     обрабатываются DM_GETDLGITEM и прочие сообщения, передающие плагину FarDialogItem.

   - в макросы EXECUTE_FUNCTION/EXECUTE_FUNCTION_EX (pluginA.cpp) добавлена SetFileApisToOEM();

   - добавлен "режим совместимости" - возможность задать версию FAR, возвращаемую в
     ACTL_GETFARVERSION - как оказалось, не все плагины понимают, что 1.80 > 1.70 :-)
     Берётся из \software\far18\wrapper\version, REG_DWORD, формат - как в MAKEFARVERSION.
     Скручивать можно только в меньшую сторону, от текущей версии до 1.70.1.

2. Язык интерфейса периодически сбрасывался на английский.

3. Уточнение в plugin.hpp.

drkns 15.01.2008 19:50:26 +0200 - build 413

1. Враппер:
   - уточнения в DM_LISTGETCURPOS и DM_GETSELECTION;
   - MB_USEGLYPHCHARS был нужен не везде;
   - прочие мелкие правки.

2. В DialogItemEx инициализировались не все поля (в 1.7x это делал memset),
   что при определенных обстоятельствах было чревато падениями.

3. Лишний инкремент количества строк в редакторе при вставке новой строки.

4. gcc warnings.

svs 15.01.2008 14:44:11 +0300 - build 412

1. Mantis#0000425: Add support of FILE_ATTRIBUTE_OFFLINE attribute

2. Добавлен FILE_ATTRIBUTE_VIRTUAL
   Пока что для отображения. Если "нада" - делать изменения по аналогии c FILE_ATTRIBUTE_OFFLINE...
   ..типа ID_FF_VIRTUAL и еже с ним...
   ...если кто объяснит как ЭТО УВИДЕТЬ!

3. Немного добавок в syslog.cpp
   + IO_REPARSE_TAG_* в headers.hpp

4. Не работают хоткеи при русской раскладке (с альтом работают).
   See Dialog::IsKeyHighlighted()

drkns 14.01.2008 19:43:11 +0200 - build 411

1. Враппер:
   - от Tim Sobolev: правильная обработка DI_USERCONTROL;
   - более корректная обработка нескольких одновременно открытых диалогов;
   - не работал DM_LISTDELETE;
   - при преобразовании OEM->Unicode используется флаг MB_USEGLYPHCHARS.
   - прочие мелкие правки.

Zuz 12.01.2008 01:52:26 +0500 - build 410
1. Ещё немного снижены требования к правам (Mantis#0000453).

2. В FindFiles::LookForString замена libc API для файловых операций на WIN32 API.


drkns 11.01.2008 11:12:03 +0200 - build 409

1. Враппер:
   - добавлена ConvertNameToRealA.
   - уточнения в ConvertKeyBarTitlesA, FarMenuFnA и FCTL_GET[ANOTHER]PANEL[SHORT]INFO.
   - DN_* -> oldfar:DN_.
2. Не работал QuickView на плагиновой панели.

svs 11.01.2008 11:48:41 +0300 - build 408

1. Mantis#0000456: Функция ConvertNameToReal не работает для симлинков
   уточнение

svs 09.01.2008 20:53:11 +0300 - build 407

1. Mantis#0000447: Buffer overrun in Edit:ProcessKey()
   "патч на патч"

svs 09.01.2008 19:54:42 +0300 - build 406

1. Mantis#0000456: Функция ConvertNameToReal не работает для симлинков
     Функция ConvertNameToReal не работает для симлинков, т.е. вместо полного пути с
     развёрнутыми симлинками (в случае их наличия) возвращает мусор.

     Что сделано:
     1. В функции ConvertNameToReal исправлена работа с симлинками (ошибки портирования);
     2. Функция ConvertNameToReal не учитывала возможность существования вложенных симлинков,
        т.е. она завершала свою работу после нахождения первого с конца пути симлинка
        (насколько я понимаю, ошибка перетянута из линейки 1.7x, так что неплохо было бы
        фикс портировать и туда).

   От себя добавил приведение к int (у GetBuffer параметр = int)

2. Mantis#0000455: Fix in GetWindowText

ts 07.01.2008 12:25:13 +0200 - build 405

1. В OpenPluginInfo теперь передается полная информация из старых плагинов, во
   враппер добавлены сопутсвующие функции.
2. Во враппер добавлена функция ArrayAnsiToUnicode для преобразования в юникод
   массива строк, конец массива помечается элементом-маркером, при удалении созданного
   массива с помощью FreeArrayUnicode не нужно указывать его размер.
   Рекомендуется использовать эту функцию во всех встречающихся местах.
3. Поправлено отладочный билд, сломанный в 402

ts 07.01.2008 21:02:07 +0200 - build 404

1. Во wrap.cpp добавлены функции OldKeyToKey и KeyToOldKey для перевода внутренних
   кодов клавиш FAR со старого формата в новый и обратно.
2. В KeyNameToKeyA и FarKeyToNameA добавлено коррекцию кода клавиши.
3. Доработаны (возможно) ECTL_PROCESSINPUT, ECTL_PROCESSKEY, ECTL_READINPUT.
4. Добавлена заглушка FarCharTableA.

t-rex 07.01.2008 08:31:08 +0200

1. Правки индентации во врапере, без билда.

ts 07.01.2008 06:45:38 +0200 - build 403

1. Поправлена передача флагов во враппере для FarStandardFunctions:
   a. FarRecursiveSearchA
   b. ProcessNameA
2. Во враппер добавлена функция AnsiToUnicodeBin для преобразования в юникод
   символов из буфера заданной длины (см. UnicodeToAnsiBin).
3. В функции UnicodeToAnsiBin увеличено размер выделяемой под результирующую
   строку памяти на байт для нормальной работы старых плагинов, считающих что
   строка всегда завершается нулем (например в EditorGetString.StringText).
4. Изменена логика обработки команд доступа к АПИ редактора во враппере
   (функция FarEditorControlA), заменена обработка команд:
   a. ECTL_SAVEFILE, ECTL_SETKEYBAR, ECTL_SETTITLE - полностью.
   b. ECTL_PROCESSINPUT, ECTL_PROCESSKEY, ECTL_READINPUT - временно, в работе.
   d. ECTL_SETPARAM - полностью, кроме заглушки на команду ESPT_CHARTABLE в
                      силу отсутствия обработки в самом фаре.
                      А для команды ESPT_GETWORDDIV в самом фаре пора бы
                      использовать Reserved2 для передачи длины принимающего
                      буфера.
   e. ECTL_SETSTRING - непонятно что подразумевалось под "Помещаемая строка
                       должна быть в кодировке редактора", считаем что строка
                       была в ОЕМ (как результат ECTL_GETSTRING).

   Теперь работают все АПИ вызовы редактора кроме ECTL_EDITORTOOEM и ECTL_OEMTOEDITOR

   Не забываем во враппере правильно передавать флаги, в юникодовой ветке у них часто
   другие значения!

drkns 06.01.2008 14:57:04 +0200 - build 402

1. Новые псевдоклавиши MsWheelLeft и MsWheelRight - горизонтальная прокрутка колеса мыши (для Vista и выше).
   В TI#33 добавлены параметры MsHWheelDelta*.

svs 05.01.2008 19:19:19 +0300 - build 401

1. По аналогии с Mantis#0000414 "починем" хэндлы файлов в поисковике и вьювере

2. Mantis#0000453: При поиске файлов с учетом содержимого файлы открываются с запросом прав на изменение
   (тянет еще аж с 1.65...)

3. Небольшое уточнение в registry.cpp::MkKeyName - RegMon`у не нравится... например, такое: "HKCU\\Console"


ts 05.01.2008 11:39:30 +0200 - build 400

1. Changes in wrapper messages handling for listbox and combobox.

t-rex 04.01.2008 18:07:50 +0200 - build 399

1. From Hannes Eder (and some changes from me): remove redundant definition of GetFileDateAndTime from setattr.cpp.

2. Mantis#445: Makefiles have no -mno-cygwin switch.

drkns 31.12.2007 20:03:57 +0200 - build 398

1. Некорректная работа GetPathRoot() для относительного пути внутри симлинка.

2. При вызове меню плагинов из диалогов не выставлялась соответствующая макрообласть.

3. В диалог подтверждения перезаписи файла добавлена кнопка "Append all".

4. Mantis#0000023: ConsoleAlias. Работает в комстроке и меню пользователя.
   Поддерживается стандартный спецсимвол $*. Управлять этим делом можно с помощью doskey.

5. Из 1.7 перетащено наследование от региональных настоек системы разделителей
   групп разрядов и целой/дробной части чисел.

6. TechInfo #78:
   [HKEY_CURRENT_USER\Software\Far\Interface]
   "FormatNumberSeparators":REG_DWORD
   Параметр  "Interface/FormatNumberSeparators"  с  типом  DWORD  позволяет
   определять символы,  используемые в качестве разделителей групп разрядов
   и целой/дробной части чисел.
   Старшее слово - код символа для разделителя групп разрядов.
   Младшее слово - код символа для разделителя целой и дробной части.
   По умолчанию значение - 0 (использовать региональные настройки ОС).

7. Добавлена команда ACTL_REDRAWALL - перерисовка всех фреймов фара.

svs 28.12.2007 13:39:19 +0300 - build 397

1. Mantis#0000452: Bug, doubling code and improvements in hotplug.cpp

svs 23.12.2007 16:14:14 +0300 - build 396

from Alexey Samlyukov:

1. memcpy()/wmemcpy() + прочая уникодная мелочь + убраны анахронизмы (#if defined(FAR_ANSI)), может и зря..

svs 23.12.2007 15:54:37 +0300 - build 395

1. Mantis#0000447: Buffer overrun in Edit:ProcessKey()

2. Mantis#0000446: Wrong function to free memory in TreeList::SaveState()

3. Mantis#0000449: Handle leak in History::ReadHistory()

4. Mantis#0000444: Bugs and memory leaks in class History

5. Mantis#0000441: Cannot delete file "Descript.ion"
   Здесь в panel.hpp было неправильное определение виртуальной функции GetDizName().
   Поэтому в ShellDelete() конструкция SrcPanel->GetDizName(strDizName); возвращала...
   да ничего она не возвращала!

yjh 15.12.2007 00:54:56 +0300 - build 394

1. Доделка фильтров "исключения" при поиске (Alt-F7) в отношении каталогов.
   Теперь поведение фильтров такое же как в копировании, т.е. если включена
   фильтрации и в списке есть "запрещающий" (-) фильтр, то когда под его
   действие попадает каталог пропускается не только сам каталог, но и всё
   что находится в нём (и его подкаталогах). Разумеется, это верно только при
   выключенном D+ :)


svs 15.12.2007 00:35:38 +0300 - build 393

1. Неправильно сохранялись макросы, содержащие буквы, оличные от латиницы.
   По этому поводу:
   а) уточнение в KeyNameToKey и KeyToText;
   б) в KeyMacro::ReadMacros юзалась не та функция GetRegKey().

drkns 14.12.2007 21:59:01 +0200 - build 392

1. Меню плагинов можно вызывать по F11 из диалогов.
   Чтобы попасть в это меню, плагин должен установить флаг PF_DIALOG в PluginInfo.Flags.
   Вызванный плагин получает следующие параметры в OpenPlugin():
   - OpenFrom: OPEN_DIALOG
   - Item: указатель на структуру OpenDlgPluginData:
     struct OpenDlgPluginData
     {
      int ItemNumber; //номер выбранного пункта в меню из зарегистрированных плагином пунктов
      HANDLE hDlg;    //хэндл диалога, из которого вызван плагин
     };

2. Плагин может экспортировать ProcessDialogEvent для обработки поступающих в диалог событий:
   int ProcessDialogEvent(int Event, void* Param)
   Event:
    DE_DLGPROCINIT - событие поступает в обработчик
    DE_DEFDLGPROCINIT - событие поступает в стандартный обработчик
    DE_DLGPROCEND - событие уже обработано

   Param - указатель на структуру FarDialogEvent:
   struct FarDialogEvent
   {
    HANDLE hDlg;
    int Msg;
    int Param1;
    LONG_PTR Param2;
    LONG_PTR Result;
   };

   return:
   - TRUE - событие обработали сами, не продолжать обработку.
     FarDialogEvent.Result - указатель на переменную, используемую обработчиком
     в качестве возвращаемого значения.
   - FALSE - продолжить обработку события.

svs 14.12.2007 13:45:16 +0300 - build 391

from Alexander Mitin

1. Mantis#0000432: Assertion while creating a submenu in User Menu

2. Mantis#0000431: Crash when deleting the File Highlighting entry

3. Mantis#0000430: Crash in "Системные параметры"


svs 13.12.2007 20:31:34 +0300 - build 390

1. Mantis#0000433: Updated operator new in new.cpp

2. Mantis#408: Memory leak in struct MacroState.
    тыкс... перебор вышел с Work.locVarTable :-(
    Сам "Work.locVarTable" нужно удалять только в деструкторе.
    В остальных случаях - только содержимое таблицы.

3. API: Команда MCMD_GETSTATE для ACTL_KEYMACRO,
    возвращает одно из значений (перечисление FARMACROSTATE):
      enum FARMACROSTATE {
        MACROSTATE_NOMACRO          =0,  // не в режиме макро
        MACROSTATE_EXECUTING        =1,  // исполнение: без передачи плагину пимп
        MACROSTATE_EXECUTING_COMMON =2,  // исполнение: с передачей плагину пимп
        MACROSTATE_RECORDING        =3,  // запись: без передачи плагину пимп
        MACROSTATE_RECORDING_COMMON =4,  // запись: с передачей плагину пимп
      };

4. Попытка исправить
   Mantis#0000432: Assertion while creating a submenu in User Menu
   Mantis#0000430: Crash in "Системные параметры"

svs 10.12.2007 21:22:18 +0300 - build 389

1. Mantis#0000428: Вновь DI_COMBOBOX
   Отсутствовала проверка на тип элемента.

2. Mantis#0000429: Не очищается и не сохраняется кеш директорий

3. Macro: BOF, EOF, EMPTY и SELECTED не обрабатывались в ком.строке

4. Mantis#0000415: произошли какие-то непонятные изменения в DI_COMBOBOX
   (сломалось в 306)

5. API: пусть OPEN_FILEPANEL будет официальным, а не спрятанным.

t-rex 08.12.2007 23:40:46 +0200 - build 388

От Stanislav Vinokurov:

1. Mantis#411: Batch files are executed in the external window.

t-rex 08.12.2007 17:55:02 +0200 - build 387

1. Mantis#416: Crash while deleting folders
   Это в общем более глубокая проблема была, глюк был в UnicodeString,
   размер буффера рос при операциях для которых его рост был не нужен и при многих
   операциях над одной и той же строкой буффер вырастал до нереальных значений.

2. Mantis#408: Memory leak in struct MacroState.

3. Коррупция хипа при удаление несуществующих макросов.

4. Некорректное сохранение REG_MULTI_SZ макросов.

5. From Hannes Eder: StrLength in clipboard.cpp.

6. Потенциальные коррупции хипа и за неправильного не/использование sizeof(wchar_t) в паре мест.

7. От Alexey Samlyukov: wmem* вместо mem* в strmix.cpp.

t-rex 07.12.2007 16:36:54 +0200 - build 386

1. Mantis#421: Memory leak caused by using memset() to initialize values of structures.

svs 06.12.2007 18:45:06 +0300 - build 385

1. 2 новых эвента для панельного плагина: FE_GOTFOCUS и FE_KILLFOCUS
   Параметр Param для ProcessEvent равен NULL.
   В соответствии с этим переделан механизм (очередность) посыла событий - сначала Gotfocus, а потом остальное.
   Для этого в SetPluginMode() добавлен параметр SendOnFocus

2. В диалогах, сразу после DN_INITDIALOG приходит DN_GOTFOCUS для того элемента, который Focus=1

3. 2 новых эвента для редакторного плагина: EE_GOTFOCUS и EE_KILLFOCUS
   Параметр Param для ProcessEditorEvent равен EditorID.
   Для этого в класс FileEditor добавлена virtual функция OnChangeFocus.


svs 06.12.2007 13:31:33 +0300 - build 384

1. Mantis#0000417: Memory leak in Viewer::ProcessKey()

2. Mantis#0000418: Wrong memory copy function used in TArray<Object>::Pack()

3. Mantis#0000419: Wrong memory copy function used in ScreenBuf::Scroll(int Num)

4. Mantis#0000420: INVALID_HANDLE_VALUE used in FindClose() in ScanTree::GetNextName()


svs 05.12.2007 17:29:24 +0300 - build 383

1. Mantis#0000414: Handle leak in FileEditor::LoadFile()

2. Mantis#0000412: Wrong delete type in Language::Init()

3. Mantis#0000413: Wrong delete type in FileEditor::SaveFile()


t-rex 04.12.2007 23:41:54 +0200 - build 382

1. Различные глюки - по большому кривое использование sizeof в связи с wchar_t.

drkns 04.12.2007 19:55:33 +0200 - build 381

1. Мелкий глюк в 379.

svs 04.12.2007 20:25:07 +0300 - build 380

1. Mantis#0000410: Memory leak in class History

drkns 04.12.2007 18:51:36 +0200 - build 379

1. Mantis#0000409: User Menu (F2) doesn't handle process INS key when Opt.UseNumPad == 1
   Также поправлено в истории строк ввода, ссылках на папки, фильтрах и ассоциациях.

svs 04.12.2007 09:26:51 +0300 - build 378

1. Mantis#0000354: Goto dialog in editor
   Здесь сделано не так, как хотелка звучит.
   Добавлен флаг DIF_NOAUTOCOMPLETE, но т.к. код в dialog.cpp закомменчен, то
   просто обозначено место в коде...

2. Mantis#0000331: ...
   про комбобокс; уточнение:
   - корректировка Top`а
   - динамическое изменение открытого выпадающего списка (Hide+Show)


t-rex 04.12.2007 08:18:31 +0200 - build 377

1. Mantis#406: Memory corruption and crash in Editor::AddUndoData().

2. Mantis#407: Memory leak in CommandLine class.

t-rex 03.12.2007 23:19:20 +0200 - build 376

1. Mantis#367: Не загружаются плагины, когда FAR запущен из папки которая сама или одина из её папок более высокого уровня являются связью.

2. Mantis#401: Handle leak in ProcessGlobalFileTypes().

3. Mantis#402: Handle leak in History::SaveHistory().

4. Mantis#403: Not initialized variable used in MessageRemoveConnection().

5. Mantis#404: Handle leak in CopyKeyTree().

6. Mantis#400: Function xf_wcsdup() should replace wcsdup().

drkns 03.12.2007 20:20:28 +0200 - build 375

1. Mantis#0000364: Maximize button doesn't work as expected
   Попробуем с другой стороны :-)
   Теперь работает "as expected" (кнопка, даблклик по заголовку, Maximize/Restore в системном меню и т. п.)
   Также учитывается состояние окна консоли при старте (start /max, настройка в lnk и т. п.)

drkns 03.12.2007 07:54:40 +0200 - build 374

1. Mantis#0000399: Memory leak in add_sid_cache()

2. Не работал DM_SETDLGITEM

t-rex 03.12.2007 00:01:04 +0200 - build 373

1. По наводке от Sten, Mantis#398: Patches to fix crashes after adding file to archive by pressing Shift+F1/Enter.

2. One of the memory leaks fixed in 372 was not a memory leak at all :), it was a perfectly correct code.

t-rex 02.12.2007 23:06:15 +0200 - build 372

1. From Hannes Eder: removed unused variables and corrected a condition in macro processing.

2. Fixed two memory leaks found along the way.

t-rex 02.12.2007 20:05:17 +0200 - build 371

1. От Stanislav Vinokurov: Mantis#397: Неправильная обработка oldfar::DM_GETTEXTPTR в FarSendDlgMessageA()

2. Тоже самое для oldfar::DM_GETTEXT.

t-rex 02.12.2007 13:59:53 +0200 - build 370

1. Из Mantis#396, неверная проверка при реалоке в TreeList::ReadTreeFile.

t-rex 02.12.2007 00:15:59 +0200 - build 369

1. Mantis#394: В OpenFilePlugin() должен передаваться в Name полный путь, а не имя файла.

t-rex 01.12.2007 19:47:22 +0200 - build 368

1. Memory leak в DeletePluginItemList.

2. Mantis#314: поле Description в PluginPanelItem находится мусор при вызове GetFilesW.
   И дупликат, Mantis#393.

3. Mantis#380: Memory leak in ConvertWildcards().

t-rex 01.12.2007 15:54:34 +0200 - build 367

от Stanislav Vinokurov (Sten):

1. Mantis#391: Wrapper: Реализация FarRecursiveSearchA.

2. Mantis#392: Wrapper: Некорректная обработка DI_EDIT и DI_FIXEDIT в AnsiDialogItemToUnicode().

t-rex 30.11.2007 16:28:14 +0200 - build 366

от Alexey Samlyukov:

1. Mantis#388: фиксы инициализации диалогов File/Folder descriptions.

t-rex 30.11.2007 16:12:41 +0200 - build 365

от Alexandr Zamaraev:

1. Mantis#387: copy.cpp, цикл подсчёта количества вместо вызова функции.

t-rex 30.11.2007 16:02:33 +0200 - build 364

от Alexey Samlyukov:

1. Mantis#389: удалим ConvertOldSettings().

t-rex 30.11.2007 15:30:14 +0200 - build 363

1. UnicodeString: Удалил RShift, глюкодром полный и оно не нужно.

2. UnicodeString: Исправил LShift, не выставлялась длина строки после изменения.

3. По наводке от Sten, неправильно работал цикл в PluginManager::OpenFilePlugin.

drkns 27.11.2007 21:20:14 +0200 - build 362

1. Обновление DialogAPI: FarListItem.Text теперь const wchar_t*.
   Плагины c DI_LISTBOX/DI_COMBOBOX надо править.

2. Криво работал DM_LISTGETITEM.

svs 27.11.2007 09:46:25 +0300 - build 361

1. TechInfo#48 по умолчанию делаем 1, а для Numpad5 TechInfo#48 игнорируем.

2. Mantis#0000360: Неверное отображение назначаемой клавиши
   Здесь есть вопросы...
   а) Не отработан код (в InitKeysArray), когда TechInfo#21 == 0
   б) проверял под двумя локалями - 409 и 419: проверить бы на остальных.
   с) замечено (кстати, в 1.7x тоже самое) в русской раскладке 2 правых
      нижних клавиши '.' и '/' выдают один и тот же код ==> '.', т.к.
      нажали <.> ==> LocalKeyToKey(0x44E) ==> 0x2E
      нажали </> ==> LocalKeyToKey(0x02E) ==> 0x2E
      В принципе, на работоспособность это не влияет, но визуально...

3. Уточнения в SysLogDump()

svs 26.11.2007 12:49:47 +0300 - build 360

From Alexander Mitin (alexmitin):
1. Mantis#0000379: Memory corruption in QuickView::DisplayObject()

В остальном - в keyboard.cpp local.cpp macro.cpp отмечены спорные моменты для Mantis#360

t-rex 25.11.2007 21:15:46 +0200

Без билда.

1. Не нужный "wchar_t *m_lpwszBuffer" в UnicodeString.hpp.

2. Обновления в HACKING-*.

t-rex 25.11.2007 20:39:14 +0200 - build 359

от Alexey Samlyukov:

1. Mantis#376: Фикс диалога Viewer settings.

drkns 24.11.2007 18:24:58 +0200 - build 358

1. Не обрабатывались макросы, содержащие макрокоманды $If, $Else и т. п.

2. Не работала макрофункция Date().


t-rex 24.11.2007 18:03:42 +0200 - build 357

1. Mantis#375: Не вызывался Network плагин при ChangeUp из сетевого ресурса. По наводке Redart.

t-rex 24.11.2007 17:30:03 +0200 - build 356

1. Вернул поиск в редакторе.

2. При поиске в редакторе мог пропадать курсор.

drkns 22.11.2007 19:33:01 +0200 - build 355

1. Mantis#0000365: Падение при вводе любого символа в поле "Опциональный символ пометки" в диалоге фильтра раскраски файлов

2. Mantis#0000366: В диалоге раскраски файлов и групп сортировки не всегда корректно показываются опциональные символы пометки


svs 19.11.2007 11:57:58 +0300 - build 354

1. Mantis#0000358: Для элемента "точки" PluginPanelItem.UserData всегда 0

t-rex 18.11.2007 23:23:43 +0200 - build 353

1. Доделал DN_EDITCHANGE и DN_DRAWDLGITEM на предмет передачи FarDialogItem.

2. Юзаем правильные xf_(free|malloc|realloc) во всём коде.

drkns 18.11.2007 12:11:21 +0200 - build 352

1. для меню пользователя выставлялась макрообласть Menu, a не UserMenu.


t-rex 18.11.2007 02:19:42 +0200 - build 351

1. Mantis#357 По наводке от Oleg Bekhter: Удар по памяти при удаление блока в редакторе.

t-rex 18.11.2007 01:33:22 +0200 - build 350

1. Мешанина new и malloc при работе с Clipboard.
   Заодно убраны пару мем ликов и около того.

2. Юзаем правильные xf_(free|malloc|realloc) во врапере.

t-rex 16.11.2007 22:52:36 +0200 - build 349

1. Снова обновление DialogAPI, теперь вроде бы с ним удобно работать
   (нету больше аллокатора и выходных данных).
   Плагины которые используют DialogAPI надо переделывать!
-----------------------------------------
   Описание нового API:
   Теперь есть 3 функции: (Dialog и DialogEx больше нету)
   а. HANDLE DialogInit(те же параметры что и были у DialogEx), возвращает
      описатель диалога или INVALID_HANDLE_VALUE в случае ошибки.
   б. int DialogRun(HANDLE hDlg), запускает диалог, возвращает то что раньше
      возвращал DialogEx.
   с. void DialogFree(HANDLE hDlg), освобождает всю память связанную с диалогом.

   FarDialogItem уже не имеет DataIn и DataOut а только const wchar_t *PtrData.
   Этот PtrData является начальным текстом для элемента.

   Главное отличие от старого DialogAPI это то что массив структур FarDialogItem
   является только входным, в него не пишутся ни какие изменения при закрытии
   диалога.

   Система работы с новым API такова:
   DialogInit()
   DialogRun()
   *** различные вызовы SendDlgMessage()                ***
   *** для получения нужных выходных данных из диалога. ***
   DialogFree()

   Также появились дополнительные DM_* и изменён один старый:
   а. DM_GETDLGITEM - изменён, Param2 должен быть 0, а поинтер на нужный
                      элемент возвращается самой функцией (NULL если ошибка).
                      Фар сам аллоцирует память под элемент, его нельзя
                      изменять и в конце использования его надо освободить с
                      помощью DM_FREEDLGITEM.
   б. DM_FREEDLGITEM - освобождает элемент полученый с помощью DM_GETDLGITEM.
                       Param1=0, Param2 = поинтер полученый от DM_GETDLGITEM.
   с. DM_GETCONSTTEXTPTR - возвращает (const wchar_t *) поинтер на внутренний
                           буффер фара связаный со строкой элемента. Не в коем
                           случае нельзя изменять, а также нельзя сохранять сам
                           поинтер так как он меняется при изменениях в строке
                           элемента. Добавлен для удобства работы после
                           закрытия диалога (DialogRun) и до DialogFree, но
                           можно конечно использовать и в обработчике, только
                           аккуратно :). Param1 = ID элемента, Param2 = 0.
-----------------------------------------

yjh 16.11.2007 07:20:48 +0300 - build 348

1. В операции Move при включенной фильтрации не удалялся полностью
   скопированный каталог

2. В операции Move при включенной фильтрации пустые каталоги не копировались
   даже если они соотвествуют фильту


yjh 16.11.2007 00:17:38 +0300 - build 347

1. В правке фильтров исключений не учитывался запрет на фильтрацию каталогов



drkns 15.11.2007 20:04:49 +0200 - build 346

1. Ещё одна небольшая правка с овнерами.


yjh 15.11.2007 04:10:08 +0300 - build 345

1. Доделка фильтров "исключения" при копировании в отношении каталогов.
   Если при копировании включена фильтраци, то в отношении "разрещающих"
   фильтров всё работает как раньше. В отношении же "запрещающих" (-) фильтров,
   если встречается каталог подпадающий под действие фильтра, то пропускается
   и он и всё его содержимое

2. Убрана пара BUGBUG в копировании при включенных фильтрах. Теперь работает :)


drkns 14.11.2007 22:22:05 +0200 - build 344

1. Мелкий глюк в 343.

drkns 14.11.2007 21:22:05 +0200 - build 343

1. Не обрабатывалась маска %pathext% в раскраске файлов.

2. В режиме отображения овнеров не работало кеширование и не освобождалась память.

3. К типу колонки "владелец файла" можно добавлять флаг 'L' - отображать домен.

4. Можно вводить юникодные символы по Alt-NumX :)


yjh 14.11.2007 22:04:42 +0300 - build 342

1. В FarMkTempEx игнорировлася параметр WithPath, что далеко не всегда допустимо

2. В FarMkTempEx убран потенциальный infinite loop. При ошибке возвращается
   "пустая" строка (при референсах по другому не получится)

3. В WipeDirectory переименование сделано именно переименованием (inplace)
   вместо "перемещения". Это дешевле, исчезает ошибка "восстановления" (при
   невозможности удаления и ответе Skip оставались частично переименованные
   каталоги, да ещё и не всегда на своём месте :), меньше вероятность нарваться
   на "забитость" каталога (при генерации имени временного файла).
   Кроме того. в старой логие оно вооще не могло работать, когда  Opt.TempPath
   на другом диске - MoveFile не позволяет перемещать каталоги между дисками



drkns 13.11.2007 22:45:17 +0200 - build 341

1. Падение в режиме панели "File owners".

2. В панелях не работал быстрый поиск по неанглийским символам.

3. Правки на предмет юникода в меню выбора принтера.


yjh 13.11.2007 09:44:34 +0300

1. Возможность компилировать хук vc7 (для извращенцев :). Очень рекомендую
   в этом случае омпилировать определив -DLINK_WITH_ULINK и компоновать
   ulink'ом. В противном случае, работать-то будет, но меньше степень
   защиты :). О чём будет сообщение при компиляции :)


yjh 13.11.2007 07:06:56 +0300 - build 340

1. FarNameToKey для плугинов


yjh 13.11.2007 03:04:15 +0300 - build 339

1. Hook позволяющий 32хбитовому Far'у корректно работать с FS в Win64
   (отключение WOW64-fs redirection). По умолчанию оно отключено и
   включается только на моменты загрузки DLL/запуска задач (для "штатной"
   работы 32хбитовых процессов).
   При желании собрать Far без этого кода следует определить (для make)
   DISABLE_WOW64_HOOK.
   Корректно это будет компоноваться (и, как следствие, работать) либо
   ms-link не ниже чем от vc8, либо ulink версии >= 1.05 build 3.9 (лучше
   использовать build >= 3.11 - иначе будет ненужное информационное сообщение).


t-rex 12.11.2007 22:58:42 +0200 - build 338

1. Пару глюков в открытие хэлпа в фаре и в АПЙ.

drkns 12.11.2007 21:59:08 +0200 - build 337

1. Мелкие правки во враппере

2. При записи макроса руками по Ctrl. запоминалась только последняя нажатая клавиша.

3. Цикличный перевод фокуса с первого элемента диалога на последний приводил к зависанию.

4. В меню дисков нельзя было одновременно включить показ метки и файловой системы.

svs 12.11.2007 19:09:32 +0300 - build 336

1. Mantis#0000352: Undo, вызываемое CTRL+Z не работает если открыть существующий файл на редактирование
   Продолжаем...
   ...слишком мало данных сохранялось :-(

svs 12.11.2007 14:51:46 +0300 - build 335

1. Падает FAR в следующих ситуациях:

   a) Запущен FAR без макросов в реестре
   b) Запущен FAR с макросами в реестре но запущен как Far.exe /m
   c) Запущен FAR с макросами но их удалили во время сеанса FAR и вызвали плагин UpdateMacros.dll

   когда падает:

   Ctrl. Ctrl. Любая_допустимая_клавиша Enter
   FAR упал

2. Пусть у нас есть 2 макроса:
   [HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\F10]
   "Sequence"="F5"
   [HKEY_CURRENT_USER\Software\Far\KeyMacros\Common\F10]
   "Sequence"="F4"

   запускаем FAR
   находясь на панели жмем Ctrl. Ctrl. F10
   выбираем "ДА"

   ещё раз делаем Ctrl. Ctrl. F10
   выбираем "ДА"

   жмем F10 и видим макрос не снялся если ещё раз сделать Ctrl. Ctrl. F10
   нам опять предлагает удалить...

   те макрос (общий) в такой ситуации не снимается



yjh 11.11.2007 22:33:53 +0300 - build 334

1. plugin.hpp скорректирован для работы с .c (не .cpp) файлами


t-rex 10.11.2007 23:26:42 +0200 - build 333

1. Правки во врапере по теме нового DialogAPI и около.

2. ViewerInfoW -> ViewerInfo.

yjh 10.11.2007 20:39:24 +0300 - build 332

1. Убран memory leak в GETDLGITEM

2. Добавлен DM_GETREALLOC (для враппера и DialogManager)

3. ВНИМАНИЕ: при получении Item с динамическим буфером
             (IsEdit(Type) && MaxLen==0)
             выделенный буфер (DataOut) должен особождаться плагином


t-rex 10.11.2007 19:11:17 +0200 - build 331

1. Напутал с CutToSlash в 326.

yjh 10.11.2007 18:41:37 +0300 - build 330

1. Изменения в DialogAPI (для нормальной работы с памятью редактируемых
   строк).
   !!!ВНИМАНИЕ!!! почти все (уже "готовые" плугины надо править)
***
   Краткое описание нового API:
    В FarDialogItem есть 3 поля
      const wchar_t* DataIn;
      wchar_t* DataOut;
      size_t MaxLen;
    DataIn - задаёт все ВХОДНЫЕ строковые данные (было в DataPtr)
    DataOut - для полей с редактируемоей строкой (см. IsEdit() в pluging.hpp)
              здесь находится указатель на возвращаемые данные.
              для всех остальных типов полей всегда возвращается NULL (см. ниже)
    MaxLen имеет двойное назначение:
       if(MaxLen ), то это максимальный размер (включая закрывающий 0)
       ЗАРАНЕЕ выделенного (плугином) буфера указатель на который должен
       передаваться через DataOut.
       Кроме того, это ограничитель размера для строки ввода (currently not implemented)

       Если же MaxLen==0, то подразумевается, что работа(редактирование) идёт
       со строками с НЕ лимитированным размером. В этом случае в DataOut
       попадает указатель на динамически выделяемую память (см. ниже) которую
       плугин должен особождать сам.

    В ф-циях FSF.Dialog и FSF.DialogEx добавил ещё один параметр - указатель
    на ф-цию ReAlloc. которая используется Far'ом для аллокации "неограниченных"
    возвращаемых "неограниченных" строк (и освобождения памяти - см. ниже).
    В случае отсуствия в диалоге IsEdit полей, можно передавать NULL.

    При обработке Dialog/DialoEx осуществляется дополнительная проверка
    параметра DataOut - если MaxLen, то
       IsBadWritePtr(DataOut,MaxLen*sizeof(wchar_t))
    если же MaxLen==0, то ReAlloc не может быть NULL.
        IsBadReadDataIn должен быть valid read ptr, а DataOut (если Ь

    Если параметр (одного из Item) невалиден, до возвращается -1 БЕЗ исполнения
    диалога.

    Если после "отработки" диалога, при возвращении строк ReAlloc вернёт NULL,
    то будет освобождена вся ранее захваченная им память (через ReAlloc(ptr, 0);)
    и так же возвращена -1.

    При нормальном же завершении Dialog/DialogEx плугин должен сам освободить
    память (все OutPtr) если, конечно, выделял её динамически :)

***

2. Выкинута ф-ция FSF.FreeDialogAnsStr - она теперь не нужна

3. Некоторое (попавшееся по пути :) убирание знаковых целых там где им
   сoвсем не место. По хорошему, надо бы тормознуть все правки и сначала
   навести порядок с этим...

4. Пара ошибок предыдущих патчей обнаруженная в посиках отавшейся ошибки
   в использовании CutToSlash :)


t-rex 09.11.2007 21:34:19 +0200 - build 329

1. Исправил ещё одни недочёт в АПЙ для x64 версии. Надеюсь что это последний.

t-rex 09.11.2007 18:12:56 +0200 - build 328

1. В UnicodeString::GetBuffer nLength переименован в nSize.

от Alex Alabuzhev:

2. API 1.7:
   a) Control: всё, кроме:
      - в FCTL_GET[ANOTHER]PANELINFO не заполняются поля PanelItems и SelectedItems;
      - не реализован FCTL_SET[ANOTHER]SELECTION, т. к. зависит от предыдущего.
   b) MkLink
   c) GetNumberOfLinks
   d) правильно работает DM_KEY
   e) пропущен break после VCTL_GETINFO в ViewerControl

svs 09.11.2007 15:54:24 +0300 - build 327

1. Mantis#0000352: Undo, вызываемое CTRL+Z не работает если открыть существующий файл на редактирование
   Проблема в том, что в 1.7x Editor::FreeAllocatedData вызывалась только из деструктора класса Editor.
   В 1.8x эта же функция так же вызывается из FileEditor::LoadFile, при этом массив UndoData удаляется.
   В общем, сделал очередную затычку - новый параметр у Editor::FreeAllocatedData - удалять или очищать
   массив UndoData.
   Для номальной работы (в т.ч. и для реализации Redo) необходимо отказаться от массива в пользу
   двусвязанного списка (или еще чего...)

t-rex 09.11.2007 13:18:53 +0200 - build 326

1. Различные фиксы и улучшения связанные с string.GetBuffer().

2. Немного правок на предмет табы-пробелы в коде.

svs 09.11.2007 11:57:41 +0300 - build 325

1. TVar вынесен в отдельный модуль tvar.?pp + компилятор из macro.cpp в syntax.cpp

2. KeyNameToKey теперь для макроязыка возвращает -1.

3. GetMacroParseError - теперь функция класса Macro.

4. После 2280 пункт 6 отвалился $MMode.
   Теперь $MMode будет компилится по правилам...
   т.е. если раньше было для "$MMode 1":
     0: MCODE_OP_MACROMODE
     1: '1'
   то теперь все встало на свои места:
     0: MCODE_OP_PUSHINT
     1: HIDWORD(1)
     2: LODWORD(1)
     3: MCODE_OP_MACROMODE

5. Mantis#0000351: ACTL_POSTKEYSEQUENCE: пауза при выполнении и лишняя перерисовка


t-rex 07.11.2007 17:47:14 +0200 - build 324

1. Пару мелких BUGBUG и немного правок на предмет табы-пробелы в коде.

zg 05.11.2007 12:04:08 +0200 - build 323

1. Траблы с...
     > есть 2 макроса
     > а) в области shell Ctrl-CapsLock=CtrlShiftTab flock(1,2)
     > б) в области редактора Ctrl-CapsLock=CtrlShiftTab flock(1,2)
     >
     > 0. в shell открыли файл в редаторе, переключились снова в shell
     > 1. нажали Ctrl-CapsLock, у нас таки есть макрос, макрос запускается
     > 2. макрос отработал, в конце саданул в очередь Up-Down для VK_CAPITAL (тот самый flock(1,2))
     > 3. макрос закончился, но:
     > 3.1 состояние Ctrl - в "нажато"
     > 3.2 на подходе Up-Down для капслоск
     > 4. ФАР видит в очереди CtrlCapsLock, проверяет, что мы в редакторе, а там такой же макрос тоже есть - начинает работать макрос
     > 5. goto п.2
     >
     > Помогает только кнопка на морде системного блока

   исправлено зависание. но так как во время физического нажатия *Lock программно изменить состояние этого самого *Lock нельзя, то макросы надо чуть доработать:
   CtrlCapsLock="CtrlShiftTab %a=flock(1,-1)&1; $while((flock(1,-1)&1)==%a) sleep(50) flock(1,2) $end"

yjh 05.11.2007 05:01:40 +0300 - build 322

1. Для возможности обхода недоделок в API добавлена FSF.FreeDialogAnsStr
   (освобождение памяти аллоцированной ядром для ответа в DI_EDIT).
   Пример использования можно посмотреть в MacroView


t-rex 04.11.2007 22:41:29 +0200 - build 321

1. Исправил пару мелких BUGBUG, в ком строке и запускаторе.

yjh 04.11.2007 22:21:28 +0300 - build 320

1. В FarKeyToName параметр Size и возвращаемое значение в символах, а не
   байтах.

yjh 04.11.2007 21:33:24 +0300 - build 319

1. Добавлена нормальная имплементация FarKeyToName. Изменения в API:
   typedef size_t  (WINAPI *FARSTDKEYTOKEYNAME)(int Key,wchar_t *KeyText,size_t Size);
   Возвращает общий размер (с финальным нулём) скопированный в KeyText.
   Если Size == 0, то возвращает необходимый размер

t-rex 01.11.2007 23:37:35 +0200 - build 318

от chupakabra:

1. При отрисовке рамки вывода информации о панели плагина (Ctrl+L) не используется BoxSymbols[].

t-rex 01.11.2007 22:42:35 +0200 - build 317

от Alex Alabuzhev:

1. API 1.7:
   - ViewerControl
   - еще несколько сообщений Dialog API
   - Text: рекурсия при Str = NULL

svs 01.11.2007 16:57:56 +0300 - build 316

1. Mantis#0000344: Ключи для отключения при запуске макросов / автостартующих макросов
   [+] Добавлены параметры командной строки:
       /m - при старте FAR не будет загружать макросы из реестра
       /ma - при старте ФАР не будет исполнять автостартующие макросы.

2. Падение, если в поисковике файлов в качестве маски указать "*.*, ,*.*"

3. В Хелпе FarEng.hlf.m4 есть русские буковки!
   В очередном патче кто-нить исправьте сей недостаток :-)


t-rex 30.10.2007 20:55:12 +0200 - build 315

от Alex Alabuzhev (с долей исправлений от меня :):
Вообще всё это надо очень хорошо потом протестировать.

1. API 1.7:
   - более-менее рабочий DialogEx.
   - AdvControl.
   - в FARKEYSEQUENCEFLAGS пропущен флаг KSFLAGS_REG_MULTI_SZ

svs 29.10.2007 09:52:31 +0300 - build 314

от _anton_ (?)

1. в plugin.hpp второй параметр у функции MakeDirectoryW char* вместо
   wchar_t*.

t-rex 28.10.2007 21:10:05 +0200

1. Мелкое исправление в EXCEPTION лицензии, неправельный набор слов
   приводил к тому что плагины должны были использовать один или все хидеры
   плагинов а не любой чтоб не попадать под лицензию фара.
   Но полюбому в самих хедерах и так написано что их можно юзать, в LICENSE это
   написано для суммирования.

t-rex 28.10.2007 20:04:06 +0200 - build 313

от Alexandr Zamaraev:

1. Улучшение GCC сборки.

t-rex 28.10.2007 17:59:38 +0200 - build 312

1. По наводке Yurij, в истории редактора\въювера теперь нет ограничения на размер строки,
   ну и за одно падать перестало :).

t-rex 28.10.2007 17:31:13 +0200 - build 311

от Alexandr Zamaraev (Tonal):

1. Сборка под GCC 4.2.1

t-rex 28.10.2007 16:37:51 +0200 - build 310

от Alex Alabuzhev:

1. API 1.7:
   a) Dialog (вроде всё), DialogEx (пока без обработчика) (wrap.cpp)
   b) Menu: пользовательская метка выбора (FarMenuItem.Checked>1) во враппере не перекодировалась
      в юникод (wrap.cpp), глубже тоже были грабли - приводилось к char (vmenu.cpp)

svs 28.10.2007 17:00:58 +0300 - build

1. Добавлен файл SYSLOG-RU, описывающий элементы логирования в FAR`е

svs 28.10.2007 01:54:39 +0300 - build 309

1. Macro: Падение при записи последовательности с клавиатуры.

2. Вернем обратно KEY_MACRO_BASE в разряд "клавиш".
   Есть проблемы.


svs 28.10.2007 01:15:53 +0300 - build 308

from DrKnS (Alex Alabuzhev):

1. при выводе плагинового диалога в заголовке консоли был мусор

2. при закрытии некоторых диалогов фар падал из-за неинициализированных переменных.

3. поправлена рамка внизу панели (flshow.cpp).

4. Editor: падала дебажная версия на выходе из редактора после сохранения

5. Editor: неправильно отрезался путь сохр. файла

6. Editor: если новый файл и вышли без сохр - UpdateFileList() не вызываем


t-rex 27.10.2007 22:08:48 +0200 - build 307

1. После 301 всплыл глюк с не вытеранием FEDITLINE_CLEARFLAG у Edit контролев.

t-rex 27.10.2007 20:05:33 +0200 - build 306

1. Оптимизация вывода строк редактора на экран, очень ощутимо на очень длинных строках.

2. Убрал SHITHAPPENS за ненадобностью.

t-rex 27.10.2007 17:05:41 +0200 - build 305

от chupakabra:

1. Вход в бесконечный цикл в FarMkTempEx().

2. DeleteFileWithFolder() удаляет только файл и оставляет каталог.

svs 27.10.2007 15:37:28 +0300 - build 304

1. Добавлен MCODE_OP_NOP

2. Уточнения кода по поводу падения во время удаления макроса
   и/или воспроизведенния...


t-rex 27.10.2007 14:18:57 +0200 - build 303

1. Исправил Debug и GCC сборку, и ещё пару варнингов.

svs 27.10.2007 13:15:23 +0300 - build 302

1. Уточнение в KeyMacro::MkTextSequence.

svs 26.10.2007 19:09:24 +0300 - build 301

Поехали....

1. MCODE_OP_EXPR и MCODE_OP_DOIT удалены как класс.

2. KEY_MACRO_BASE ... KEY_MACRO_ENDBASE ужО не "клавиши"!
   Остались только KEY_OP_*, кторые являются "клавишами"

3. В логирование добавлен _MOUSE_EVENT_RECORD_Dump()

4. Изменена SetFLockState
   GetKeyboardState отстой, работает только в дебажной версии (вот ить!)
   вместо нее юзаем нашу GetKeyState()

5. Хмм... а, ну да, оп-коды макросов теперь навинаются с 0
   (небольшое приближение к...)

6. В парсере макросов.
   между MCODE_OP_KEYS и MCODE_OP_ENDKEYS находятся настоящие клавиши!
   сейчас можем наблюдать фигню типа когда parseMacroString() каждую
   "настояшую клавишу" обрамляет этими кода (избыток!), но
   это промежуточный этап....
   В конце будет отдельный DLL, который ФАРу будет отдавать только байткод.

7. В PostNewMacro() добавлен новый параметр...
   предполагается (сейчас!), что плагины "пидалят" макросы с чистыми
   кодами клавиш!
   Но т.к. эта функция испльзуется не только для плагинов, то...
   ...нужно отличать "где мы".

9. Траблы с...
     есть 2 макроса
     а) в области shell Ctrl-CapsLock=CtrlShiftTab flock(1,2)
     б) в области редактора Ctrl-CapsLock=CtrlShiftTab flock(1,2)

     0. в shell открыли файл в редаторе, переключились снова в shell
     1. нажали Ctrl-CapsLock, у нас таки есть макрос, макрос запускается
     2. макрос отработал, в конце саданул в очередь Up-Down для VK_CAPITAL (тот самый flock(1,2))
     3. макрос закончился, но:
     3.1 состояние Ctrl - в "нажато"
     3.2 на подходе Up-Down для капслоск
     4. ФАР видит в очереди CtrlCapsLock, проверяет, что мы в редакторе, а там такой же макрос тоже есть - начинает работать макрос
     5. goto п.2

     Помогает только кнопка на морде системного блока


t-rex 26.10.2007 14:34:01 +0200 - build 300

1. Все готовы? Are you ready? :)
