Ru-Board.club
← Вернуться в раздел «Программы»

» Far Manager

Автор: skipik001
Дата сообщения: 19.02.2016 22:07
VictorVG2

Цитата:
Far30.4552.13845_gcc_5.10_seh.7z

Интересно, на этой сборке у меня svcmgr работает, а в собранной MS VS 2015 — нет. Система Windows 10. И ещё в GCC-сборке появилась полоса прокрутки справа.
Автор: VictorVG2
Дата сообщения: 19.02.2016 22:12
Alexyz21

Нет, там походу х86 криво собрался - у друга и у меня в х86 AV выскакивает, с х64 всё
прекрасно...

Добавлено:
skipik001

Ладно, отложим это на некоторое время ибо мне вот эта пакость не по нутру:



тут сперва подумать надо, а дабы горячку не пороть...
Автор: skipik001
Дата сообщения: 19.02.2016 22:22
VictorVG2
Я проверял GCC x64, она исправно запустилась.
Кстати, w17 исправил сборку в MS VS 2010, вам можно пока на эту платформу вернуться.
Автор: VictorVG2
Дата сообщения: 19.02.2016 22:30
skipik001

Заметил, а в х86 вообще "весело" (из отладчика):

Цитата:
_DebugBreak@0:
74E4322A mov edi,edi
74E4322C int 3 <---- AV словили ибо лезем о нулевому адресу.
74E4322D ret
74E4322E int 3
74E4322F int 3
74E43230 int 3
74E43231 int 3
74E43232 int 3
_CreateDBWinMutex@0:

а сам сбой как ему и положено в kernel32.dll вылез (судя по стеку)

Цитата:
>    KernelBase.dll!_DebugBreak@0()    Нет данных
    Far.exe!005aafd2()    Нет данных
    [Указанные ниже фреймы могут быть неверны и (или) отсутствовать, символы для Far.exe не загружены]    
    Far.exe!0052c661()    Нет данных
    Far.exe!0052efa3()    Нет данных
    Far.exe!0053f6bf()    Нет данных
    [Внешний код]    
    Far.exe!0052bbb4()    Нет данных
    Far.exe!0053c459()    Нет данных
    Far.exe!00921f94()    Нет данных
    [Внешний код]    
    Far.exe!006fe0d6()    Нет данных
    Far.exe!0050dd08()    Нет данных
    Far.exe!0050e882()    Нет данных
    Far.exe!006fe861()    Нет данных
    [Внешний код]    
    Far.exe!00920f3a()    Нет данных
    Far.exe!008dfc43()    Нет данных
    [Внешний код]    
    Far.exe!00920f3a()    Нет данных
    Far.exe!008dfc43()    Нет данных
    Far.exe!0078dfff()    Нет данных
    [Внешний код]    
    Far.exe!00920f3a()    Нет данных
    Far.exe!007021c4()    Нет данных
    Far.exe!00705e1c()    Нет данных
    Far.exe!0070c678()    Нет данных
    Far.exe!00711560()    Нет данных
    Far.exe!00713420()    Нет данных
    Far.exe!0074684e()    Нет данных
    Far.exe!007472db()    Нет данных
    Far.exe!0050bb86()    Нет данных
    [Внешний код]    
    Far.exe!0083e953()    Нет данных
    Far.exe!007fe548()    Нет данных
    Far.exe!00510050()    Нет данных

видимо просто придётся х86 другим компилятором собирать, ну это уже проще - у меня GCC в трёх вариантах стоит TDM64 SjLj, MinGW64 v5.10 SjLj и SEH. Похоже надо будет в SjLj попробовать.
Автор: shmuz
Дата сообщения: 19.02.2016 22:31
VictorVG2
Я собрал 4552 с помощью GCC 5.2.0, на Windows XP SP3 x86 работает, падений нет, тесты прошли нормально.
Автор: VictorVG2
Дата сообщения: 19.02.2016 23:17
shmuz

Я думаю это у меня сбой какой вылез - размер бинарника слишком велик. Мгновенный вопрос к себе "А почему бинарник х86 больше чем бинарник х64?" похоже при сборке какой сбой произошёл и в него слинковался мусор. По моему эта гипотеза выглядит самой вероятной. Могла и клавиатура (у меня беспроводная стоит) чего нашалить - вроде вчера там менял батарейки, а сегодня она сбоит, хотя кварц и обвеску чипа я в ней сам пропаивал ибо у A4TECH монтаж .... руки оторвать. В 79-м эти ребята у Захаровны не только прогрессивки, но и зарплаты бы лишились за сырые пайки и откровенную халтуру.
Автор: Angel_Ka
Дата сообщения: 19.02.2016 23:28
shmuz
Нельзя ли присвоить гуид меню "Пользовательская сортировка в панелях", которое вызывается командой lua:Panel.CustomSortMenu () ?
Автор: shmuz
Дата сообщения: 19.02.2016 23:43
Angel_Ka
Будет в следующей ночной сборке - "C323FBCF-6803-4F2C-B8B4-E576E7F125DC".
Автор: Angel_Ka
Дата сообщения: 20.02.2016 00:15
shmuz
Из разделов LoadCustomSortMode и SetCustomSortMode справки %FarHome%\Encyclopedia\macroapi_manual.ru.chm скопировал макрос-пример:


Код: -- Загрузить сортировку по длине имени файла.
local ffi = require "ffi"
local C = ffi.C
ffi.cdef [[
int wcslen(const wchar_t*,const wchar_t*);
]]
Panel.LoadCustomSortMode (113,
{
Description="Sort files by their name length";
Compare = function(p1, p2, opt)
return C.wcslen(p1.FileName) - C.wcslen(p2.FileName)
end;
Indicator = "bB";
})
-- Установить заданную пользовательскую сортировку в активной панели.
Macro {
description="Sort files by their name length";
area="Shell"; key="CtrlShiftF1";
action=function() Panel.SetCustomSortMode(113,0) end;
}
Автор: shmuz
Дата сообщения: 20.02.2016 00:34
Angel_Ka

Цитата:
Подскажите, пожалуйста, что я сделал не так?

Скорее всего, у вас режим сортировки 113 уже где-то использован в макрофайлах. При повторном задании существующего режима при вызове LoadCustomSortMode() существующий режим заменяется данным.

Добавлено:
Сейчас проверил, у меня работает.
Автор: Alexyz21
Дата сообщения: 20.02.2016 00:56

Цитата:
Indicator = "bB"

Почему не L? - Вроде свободна.
Автор: Angel_Ka
Дата сообщения: 20.02.2016 01:05
shmuz
Спасибо за помощь! Но и повтора номера сортировки нет, и со сменой на другой номер всё тоже. Вот, думаю, может что-то при копировании вклинилось и теперь мешает...
Продолжу попытки.

Добавлено:

Цитата:
Почему не L? - Вроде свободна.
Тоже попробую.
Автор: shmuz
Дата сообщения: 20.02.2016 01:16
Angel_Ka
В таком случае даже не знаю, что у вас может быть. Если бы так было у меня, то нашёл бы причину легко, но по переписке это займёт слишком много времени.
Автор: Angel_Ka
Дата сообщения: 20.02.2016 01:27
Похоже, что-то с перерисовкой панелей: перехожу в другую папку и новый режим сортировки проявляется. При этом ни cls, ни гашение/возврат панелей по CtrlO эффекта не дают, а переход в другую папку — даёт. Повторяется стабильно. Что бы это могло быть?
Автор: shmuz
Дата сообщения: 20.02.2016 01:31
Angel_Ka
А CtrlR в исходной папке помогает?
Автор: Alexyz21
Дата сообщения: 20.02.2016 01:49
Кстати, здесь сравниваются не длины имён, а длины полных путей, что правильно лишь в одной папке. Для временной панели, где пути могут быть разными, результаты могут быть несколько неожиданными.
Автор: Angel_Ka
Дата сообщения: 20.02.2016 01:59
И, в добавок ко всему, с порядком сортировки тоже получается непорядок: как угодно, но только не по размерам имён файлов, и при этом и направления l и L не отличаются друг от друга и после переходов по папкам...

shmuz
Не могли бы Вы где нибудь файл с макросом поместить? Чтобы исключить мусорное вкрапление типа русской буквы вместо английской.

Добавлено:

Цитата:
А CtrlR в исходной папке помогает?
Да.
Автор: Alexyz21
Дата сообщения: 20.02.2016 02:03

Код: -- Загрузить сортировку по длине полного пути.
local ffi = require "ffi"
local C = ffi.C
Panel.LoadCustomSortMode (113, {
Description="Sort files by their name length"; Indicator = "lL";
Compare = function(p1, p2, opt)
return C.wcslen(p1.FileName) - C.wcslen(p2.FileName)
end;
})
-- Установить заданную пользовательскую сортировку в активной панели.
Macro {
description="Sort files by their name length";
area="Shell"; key="CtrlShiftF1";
action=function() Panel.SetCustomSortMode(113) end;
}
Автор: Angel_Ka
Дата сообщения: 20.02.2016 02:11
Alexyz21
Спасибо!
И про полное имя с полным путём к файлу — дельное замечание.
Но пока всё в стабильных папках пробую.
Автор: Alexyz21
Дата сообщения: 20.02.2016 02:23
Длины именно имён возвращает функция GetPtrName(name), при этом функция Сompare примет вид:

Код: Compare = function(p1,p2,opt)
local st1,len1 = GetPtrName(p1.FileName)
local st2,len2 = GetPtrName(p2.FileName)
return len1-len2
end;
Автор: Angel_Ka
Дата сообщения: 20.02.2016 02:28
Alexyz21
Чудненько! Как только разберусь с ситуацией, воспользуюсь — это действительно существенно чтобы временная панель не вываливалась. Спасибо!


Добавлено:
Существенная поправка: наблюдаемое явление проявляется в Far x64, а в x32 макрос работает полностью как ожидается.
Автор: Alexyz21
Дата сообщения: 20.02.2016 02:40
schmuel, имхо есть смысл добавить в winapi.lua описания и:

Код: wchar_t* wcsrchr(const wchar_t*, wchar_t);
wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
Автор: Angel_Ka
Дата сообщения: 20.02.2016 02:48
Уточнение: Win10entRu x64, Far 3.0.4552 x64 (и в чистом Фаре, и из под КонЭму стабильно проявляется глюк на двух машинах).

Добавлено:
Перепроверил на последних сборках (4554) от VictorVG — всё тоже: в x64 макрос глючит, а в x86 работает.
Автор: shmuz
Дата сообщения: 20.02.2016 10:17
Angel_Ka
Спасибо за репорт. Ошибка исправлена.

Код: -- Загрузить сортировку по длине имени файла.
local ModeNumber = 200
local ffi = require "ffi"
local C = ffi.C

Panel.LoadCustomSortMode (ModeNumber,
{
Description="Sort files by their name length";
Compare = function(p1, p2, opt)
local l1, l2 = C.wcslen(p1.FileName), C.wcslen(p2.FileName)
return l1<l2 and -1 or l1>l2 and 1 or 0
end;
Indicator = "bB";
})

Macro {
description="Sort files by their name length";
area="Shell"; key="CtrlShiftF1";
action=function() Panel.SetCustomSortMode(ModeNumber,0) end;
}
Автор: Angel_Ka
Дата сообщения: 20.02.2016 11:35
shmuz

Цитата:
Ошибка исправлена.

Благодарю Вас! Теперь макрос работает и в Far x64 тоже.
Автор: DmitriC
Дата сообщения: 21.02.2016 15:36
Ребята, в последних сборках Far'а, например с Far30b4559.x86.20160221, у меня появились артефакты изображения.
Если запустить Far, затем нажать Alt+F9, чтобы развернуть окно на весь экран, а затем нажать Ctrl+O (погасить обе панели), то на экране остаются нестертые "куски" панелей. Глюк проявляется как из под ConEmu, так и с чистым Far'ом без дополнительных плагинов. Кто-нибудь подскажет: это только у меня? И если не только, то уже навсегда?
Раньше при любых операциях с панелями такого не было.
Автор: VictorVG2
Дата сообщения: 21.02.2016 16:00
FarUE3 b4559 r13863 Sun Feb 21 16:19:33 +0300 2016

Цитата:
1. Far b4559 r13863
2. System.ExcludeCmdHistory=7 соответственно в БД и default.farconfig
3. Рефакторинг. Обновление совместимо с SVN r13824 - SVN r13863

b4559 r13862 Sun Feb 21 10:57:19 +0300 2016

1. Far b4559 r13862
2. LuaCheck v0.13.0 Git-6950bfe212
3. Рефакторинг. Обновление совместимо с SVN r13824 - SVN r13862

Изменения в х64 аналогичны за исключением инсталлятора и того, что параметр System.ExcludeCmdHistory=7 там включён по времени раньше, а у меня на машинах он наверное с год как используется, просто я забыл его в сборки перенести и в историю попадал мусор.

DmitriC

Цитата:
drkns 01.02.2016 23:00:10 +0200 - build 4530

1. Оптимизация 4525 для System.WindowMode = true

2. System.WindowMode теперь true по умолчанию, ибо:
- это хорошо;
- нужно тестирование.

поставьте его в false - far:config System.WindowMode=false (нажмите на этой строке F4 или Enter, затем ShiftF9) и всё вернётся к старому поведению.
Автор: Angel_Ka
Дата сообщения: 21.02.2016 16:34
DmitriC
В Win10entRu ни в Far30b4559.x86.20160221, ни в Far30b4559.x64.20160221, ни в нативных версиях, ни из под КонЭму такого глюка не наблюдаю.



Добавлено:
Перепроверил: везде System.WindowMode выставлена в true.
Автор: Alexyz21
Дата сообщения: 21.02.2016 17:50
DmitriC

Цитата:
появились артефакты изображения

Подтверждаю - при запуске cURL изображение панелей сдвигается вверх, освобождая место для индикатора приёма-передачи.
Автор: VictorVG2
Дата сообщения: 21.02.2016 18:20
Alexyz21

Ребят, вы об этом? Так это специально недавно сделали после b4525 именно для того, чтобы видеть вывод команды. Мне это ничуть не мешает.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: оффтоп


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.