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): 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 нету, то происходит удаление. %VALUE% %VALUE% %SEQUENCE% 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" %VALUE% %VALUE% если 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: строка и позиция в строке (например, 2: текст сообщения об ошибке (например, ) 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 - 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. Исправляем 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: Пред.базу удалить (восстановить можно через экспорт-импорт). 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. Теперь так: %SEQUENCE% 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_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 . 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 больше нет, "персональные" плагины грузятся из \plugins. 3. В связи с п. 2 *.db плагинов переехали в \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 [Custom location for Far configuration files - overrides Far.exe.ini] Far.exe /import [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::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\". 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\", или в "%FARHOME%\UserData\Profiles\". Переключается в Far.exe.ini\General\UseSystemProfiles, 1|0. drkns 21.03.2011 16:17:18 +0200 - build 1922 1. Уточнение 1921: /u задает только профиль. /s[] задает путь к профилям. Если "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" (или в "\Default") "far.exe /u foo" - профиль в "%APPDATA%\Far Manager\Profiles\foo" (или в "\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::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\ в 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\, а в Plugins\. 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: Улучшение вывода и Теперь в хедпе данные (и подобные им) конструкции берут инфу только из памяти (не из реестра). В данный момент есть небольшой недостаток - неотсортированный список. 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: Улучшение вывода и 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\\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: Сейчас в код добавлены куски кода, убирающие перед работой функций лочку экрана (и выставляющие ее обратно, после исполнения) - см. между тэгами и . Это решение позволяет "увидеть" тот самый месаг о процессе сбора данных. Здесь "непонятки" - нужны ли эти куски? * если нужны, то возникает ситуация для случая, когда месаг появился и юзер прервал сканирование... незаконченная транзакция * если не нужны, то ситуация обратная - пользователь для такого макроса будет видеть не реагирующий ни на что 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, 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 расширят кругозор в соответствующем направлении. АХТУНГ! - в этом режиме гарантированно будет напрочь сносить крышу плагинам, самостоятельно рисующим что-либо в консоли напрямую, или наивно предполагающим, что размер фара можно получать через 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/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: Убрать . (точка) при автодолнении. Элементы "." и"..", иногда возвращаемые FindFile, теперь режутся централизованно на уровне класса 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- (где неназначенный шорткат) - прыгал в самое начало файла б) Сохранение шорткатов в реестре было возможно только, если был назначен нулевой элемент (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<=Param1FarNameToKey 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- в списке дополнения. 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_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. xn изменены, теперь третий параметр - размер приёмника. 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. Меняют высоту только текущей панели. 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. !?$$?<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 такова: Dia