shmuz / far2m Goto Github PK
View Code? Open in Web Editor NEWThis project forked from elfmz/far2l
Linux port of FAR2 with FAR3 macro system and extended plugins' API
License: GNU General Public License v2.0
This project forked from elfmz/far2l
Linux port of FAR2 with FAR3 macro system and extended plugins' API
License: GNU General Public License v2.0
Палитра в tty заметно отличается от far2l:
Если есть возможность, было бы неплохо синхронизировать. Вроде бы нужные фиксы были где-то здесь: https://github.com/elfmz/far2l/commits/master?since=2023-01-05&until=2023-01-05
Первое - при нажатии Alt-Tab для перехода в другое окно, в фаре выскакивает и остается висеть окошко "Quick Search" (если вернуться в фар и снова нажать Alt-Tab, окошко пропадает, т.е., я так понимаю, Quick Search срабатывает на нажатие Alt - логичнее было бы, если б срабатывал на отпускание)
Второе - если в текущей директории есть файл, начинающийся с "Б" (именно с большой "б"), то после нажатия Alt в выскакивающее "Quick Search" вставляется символ "<", и курсор перескакивает на этот файл на "Б":
Given something was placed into the clipboard then after exiting Far2L the clipboard becomes empty.
Event {
group="EditorEvent";
action=function(Id, Event, Param)
if Event==far.Flags.EE_CLOSE then far.Show("closing"); end
end;
}
version info
$ git log -3
commit ed4b214927ab546ddfc41a88ded3c69377731bba (HEAD -> master, origin/master, origin/HEAD)
Author: Shmuel Zeigerman <[email protected]>
Date: Sun Sep 17 12:22:07 2023 +0300
A special build with logging enabled (for PPA debugging)
commit 3bda361d20db0b8191e147aa3170ad3fcecd78cc
Author: Shmuel Zeigerman <[email protected]>
Date: Sat Sep 16 16:27:44 2023 +0300
LuaFAR API: export.ProcessEvent -> export.ProcessPanelEvent
commit acb37853cb55d2505377a327a26a8c8e536b0c74
Author: Shmuel Zeigerman <[email protected]>
Date: Sat Sep 16 15:22:50 2023 +0300
Refactoring
far2m built successfully
there is no error text after start in terminal
$ export FAR_STD=/tmp/farstd.log
$ export NETROCKS_VERBOSE=9
$ ./far2m --tty
$ tail -n 6 /tmp/farstd.log
FSNotify: watching 1 entries for '/home/user'
FSNotify: watching 1 entries for '/home/user'
CommandLine::ShowBackground: done
PANIC: unprotected error in call to Lua API (bad light userdata pointer)
PipeIPCError: PipeIPCRecver: read (11)
TTYX: PipeIPCRecver: read (11)
Не выходит собрать, хотя даже попробовал пересобрать билд который стоит. Я думаю это по причине недавнего обновления на GCC 13.1.1. Вначале выдало такое:
/home/vlk/Downloads/far2m/WinPort/src/APIConsole.cpp: In function ‘COMP_CHAR WINPORT_CompositeCharRegister(const WCHAR*)’:
/home/vlk/Downloads/far2m/WinPort/src/APIConsole.cpp:398:44: error: ‘logic_error’ is not a member of ‘std’
398 | throw std::logic_error("wcsdup failed");
| ^~~~~~~~~~~
/home/vlk/Downloads/far2m/WinPort/src/APIConsole.cpp:7:1: note: ‘std::logic_error’ is defined in header ‘<stdexcept>’; did you forget to ‘#include <stdexcept>’?
6 | #include "Backend.h"
+++ |+#include <stdexcept>
7 |
[9/718] Building CXX object WinPort/CMakeFiles/WinPort.dir/src/APIFiles.cpp.o
ninja: build stopped: subcommand failed.
А когда я добавил include как мне и советует компилятор получил такое:
[6/710] Building CXX object WinPort/CMakeFiles/WinPort.dir/src/APIRegistry.cpp.o
/home/vlk/Downloads/far2m/WinPort/src/APIRegistry.cpp: In function ‘LONG WINPORT_RegSetValueEx(HKEY, LPCWSTR, DWORD, DWORD, const BYTE*, DWORD)’:
/home/vlk/Downloads/far2m/WinPort/src/APIRegistry.cpp:738:25: warning: array subscript 0 is outside array bounds of ‘volatile int [0]’ [-Warray-bounds=]
738 | *(volatile int*)100 = 200;
| ^~~~~~~~~~~~~~~~~~~
cc1plus: note: source object is likely at address zero
[9/710] Building CXX object WinPort/CMakeFiles/WinPort.dir/src/CustomPanic.cpp.o
FAILED: WinPort/CMakeFiles/WinPort.dir/src/CustomPanic.cpp.o
/usr/bin/c++ -I/home/vlk/Downloads/far2m/utils/include -I/home/vlk/Downloads/far2m/WinPort/. -I/home/vlk/Downloads/far2m/WinPort/src -I/home/vlk/Downloads/far2m/WinPort/src/Backend -Wall -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -Wl,--gc-sections -DWINPORT_REGISTRY -Wall -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -O2 -std=c++11 -fvisibility=hidden -MD -MT WinPort/CMakeFiles/WinPort.dir/src/CustomPanic.cpp.o -MF WinPort/CMakeFiles/WinPort.dir/src/CustomPanic.cpp.o.d -o WinPort/CMakeFiles/WinPort.dir/src/CustomPanic.cpp.o -c /home/vlk/Downloads/far2m/WinPort/src/CustomPanic.cpp
In file included from /home/vlk/Downloads/far2m/utils/include/utils.h:7,
from /home/vlk/Downloads/far2m/WinPort/src/CustomPanic.cpp:1:
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp: In function ‘V RevBytes(const V&)’:
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp:38:54: error: ‘uint64_t’ was not declared in this scope
38 | case 8: return (V)__builtin_bswap64((uint64_t)value);
| ^~~~~~~~
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp:1:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
+++ |+#include <cstdint>
1 | #pragma once
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp:39:54: error: ‘uint32_t’ was not declared in this scope
39 | case 4: return (V)__builtin_bswap32((uint32_t)value);
| ^~~~~~~~
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp:39:54: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp:40:54: error: ‘uint16_t’ was not declared in this scope
40 | case 2: return (V)__builtin_bswap16((uint16_t)value);
| ^~~~~~~~
/home/vlk/Downloads/far2m/utils/include/BitTwiddle.hpp:40:54: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
[13/710] Building CXX object WinPort/CMakeFiles/WinPort.dir/src/PathHelpers.cpp.o
ninja: build stopped: subcommand failed.
Ubuntu 23.04, SSH
В последующих запущенных экземплярах фара
не работает буфер обмена
те ctrlc/shiftins/ctrlv...
при попытке активации как бы подвисает ввод/вывод
нужно жать ESC чтобы отвисло
Far2L норм работает
может надо какой то код утянуть оттуда?
ps. FAR2L может ещё запросить в другом экзепмляре FAR2L текст диалог:
Please choose how this terminal application may use clipboard
пока не понял когда это может возникнуть, в FAR2M есть обработка этого?
Добавить "понимание" командой goto: путей содержащих обратные слеши
например есть файл с пробелом "custom.ini.man 2.txt"
CtrF на в FAR'e (linux) скидывает в ком строку путь в таком виде:
/home/admin/Dindikov-Home/Import/f/Plugins/multiarc/plug/custom.ini.man\ 2.txt
сделали CtrlC (те скопировали в буфер обмена)
на второй панели
goto: +Shift Ins
goto: /home/admin/Dindikov-Home/Import/f/Plugins/multiarc/plug/custom.ini.man\ 2.txt
сейчас произойдёт переход в каталог /home/admin/Dindikov-Home/Import/f/Plugins/multiarc/plug/
без позиционирования на файл
а если пути были с пробелами, то никуда переход не происходит вообще
пример пути:
/home/admin/Dindikov-Home/Import/f/Plugins/1\ 2\ 3/custom.ini.man.txt
Скопированное в буфер, например из Firefox, можно вставить, а вот наоборот к сожалению нет и скопированное в буфер остается доступным только в пределах FAR. Хотелось бы полноценного взаимодействия с буфером.
N.B. Использую GNOME под Wayland
hello !
this bug is reproduced in fresh builds of elfmz/far2l and shmuz/far2m
for details and some screenshots see original issue in far2l repo
some info
screen and tmux in terminal (far2l TTY) has the same bug as freebsd elfmz#929 and linux elfmz#925
I builded far2l leaving only
support_esc_b = false
and this bug disappeared.
Originated from: https://bugs.farmanager.com/view.php?id=3336
Test case:
local rex = regex
--local rex = require "rex_onig"
--local rex = require "rex_pcre"
local pat = "(b)?b"
far.Show( rex.find("b", pat) )
Results for Far regexp: 1,1,b
Results for Oniguruma and PCRE: 1,1,false
Pre-Condition:
Test Steps:
Actual Result:
Expected Result:
сейчас при запуске FAR2L
выдаётся:
FAR2L, version 2.4.0-d8649393-beta Linux x86_64
Copyright (C) 1996-2000 Eugene Roshal, Copyright (C) 2000-2016 Far Group, Copyright (C) 2016-2023 Far People
рано или поздно надо как то показывать что это мод
например FAR2L-Lua хотя бы...
Заметил что F8 в редакторе (и в родителе тоже) переключает между кодировками 1252/437, а не 1251/866 как в Windows версии FAR. Возможно ли сделать поведение аналогично Windows версии или так сделано специально?
Implement event EE_CHANGE
.
Viewer & Editor F8: ANSI/OEM/UTF8
реализация в FAR2L:
elfmz@fce0f76
$SelWord does not work on position next to a word.
It works in Far3 in that case.
Повторное (не первое) применение флага EF_DELETEONCLOSE
в функции editor.Editor
приводит к зависанию Фара с потреблением процессора 50-80%.
EF_DELETEONLYFILEONCLOSE
к этому эффекту не приводитVF_DELETEONCLOSE
в функции viewer.Viewer
к этому эффекту не приводит.Сборка far2m под FreeBSD 13.2 с ключами cmake по умолчанию завершается с ошибкой:
[265/774] Building C object luafar/CMakeFiles/luafar.dir/src/mytimer.c.o
FAILED: luafar/CMakeFiles/luafar.dir/src/mytimer.c.o
/usr/bin/cc -DFAR_DONT_USE_INTERNALS -DWINPORT_DIRECT -Dluafar_EXPORTS -I/home/alexax/src/far2l-shmuz-2/utils/include -I/usr/local/include/luajit-2.1 -I/home/alexax/src/far2l-shmuz-2/far/far2sdk -I/home/alexax/src/far2l-shmuz-2/WinPort -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -DWINPORT_REGISTRY -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -O2 -std=gnu11 -fPIC -fvisibility=hidden -MD -MT luafar/CMakeFiles/luafar.dir/src/mytimer.c.o -MF luafar/CMakeFiles/luafar.dir/src/mytimer.c.o.d -o luafar/CMakeFiles/luafar.dir/src/mytimer.c.o -c /home/alexax/src/far2l-shmuz-2/luafar/src/mytimer.c
/home/alexax/src/far2l-shmuz-2/luafar/src/mytimer.c:5:10: fatal error: 'sys/timerfd.h' file not found
#include <sys/timerfd.h>
^~~~~~~~~~~~~~~
1 error generated.
[267/774] Building C object luafar/CMakeFiles/luafar.dir/src/ustring.c.o
FAILED: luafar/CMakeFiles/luafar.dir/src/ustring.c.o
/usr/bin/cc -DFAR_DONT_USE_INTERNALS -DWINPORT_DIRECT -Dluafar_EXPORTS -I/home/alexax/src/far2l-shmuz-2/utils/include -I/usr/local/include/luajit-2.1 -I/home/alexax/src/far2l-shmuz-2/far/far2sdk -I/home/alexax/src/far2l-shmuz-2/WinPort -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -DWINPORT_REGISTRY -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -O2 -std=gnu11 -fPIC -fvisibility=hidden -MD -MT luafar/CMakeFiles/luafar.dir/src/ustring.c.o -MF luafar/CMakeFiles/luafar.dir/src/ustring.c.o.d -o luafar/CMakeFiles/luafar.dir/src/ustring.c.o -c /home/alexax/src/far2l-shmuz-2/luafar/src/ustring.c
/home/alexax/src/far2l-shmuz-2/luafar/src/ustring.c:1:10: fatal error: 'uuid/uuid.h' file not found
#include <uuid/uuid.h>
^~~~~~~~~~~~~
1 error generated.
Если отключть сборку плагина lua (-DUSELUA=NO), то процесс завершается с ошибкой:
[388/502] Building CXX object netcfg/CMakeFiles/netcfg.dir/src/netif/netif.cpp.o
FAILED: netcfg/CMakeFiles/netcfg.dir/src/netif/netif.cpp.o
/usr/bin/c++ -DFAR_DONT_USE_INTERNALS -DUNICODE -DUSEUCD=OFF -DWINPORT_DIRECT -Dnetcfg_EXPORTS -I/home/alexax/src/far2l-shmuz-2/utils/include -I/home/alexax/src/far2l-shmuz-2/netcfg/src -I/home/alexax/src/far2l-shmuz-2/far/far2sdk -I/home/alexax/src/far2l-shmuz-2/WinPort -Wall -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -DWINPORT_REGISTRY -Wall -Wall -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -O2 -std=c++17 -fPIC -fvisibility=hidden -MD -MT netcfg/CMakeFiles/netcfg.dir/src/netif/netif.cpp.o -MF netcfg/CMakeFiles/netcfg.dir/src/netif/netif.cpp.o.d -o netcfg/CMakeFiles/netcfg.dir/src/netif/netif.cpp.o -c /home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp
In file included from /home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:6:
In file included from /home/alexax/src/far2l-shmuz-2/netcfg/src/common/netutils.h:15:
/usr/include/net/route.h:64:18: error: field has incomplete type 'struct sockaddr'
struct sockaddr ro_dst;
^
/usr/include/net/route.h:64:9: note: forward declaration of 'sockaddr'
struct sockaddr ro_dst;
^
In file included from /home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:6:
In file included from /home/alexax/src/far2l-shmuz-2/netcfg/src/common/netutils.h:16:
/usr/include/net/if_arp.h:90:18: error: field has incomplete type 'struct sockaddr'
struct sockaddr arp_pa; /* protocol address */
^
/usr/include/net/route.h:64:9: note: forward declaration of 'sockaddr'
struct sockaddr ro_dst;
^
In file included from /home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:6:
In file included from /home/alexax/src/far2l-shmuz-2/netcfg/src/common/netutils.h:16:
/usr/include/net/if_arp.h:91:18: error: field has incomplete type 'struct sockaddr'
struct sockaddr arp_ha; /* hardware address */
^
/usr/include/net/route.h:64:9: note: forward declaration of 'sockaddr'
struct sockaddr ro_dst;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:605:41: error: use of undeclared identifier 'NET_RT_IFLIST2'
int mib[6] = {CTL_NET, PF_ROUTE, 0, 0, NET_RT_IFLIST2, 0};
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:629:25: error: use of undeclared identifier 'RTM_IFINFO2'
if( ifm->ifm_type == RTM_IFINFO2 ) {
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:631:59: error: arithmetic on a pointer to an incomplete type 'struct if_msghdr2'
struct sockaddr_dl *sdl = (struct sockaddr_dl *)(if2m + 1);
~~~~ ^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:634:22: error: member access into incomplete type 'struct if_msghdr2'
ifa_flags = if2m->ifm_flags;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:635:25: error: member access into incomplete type 'struct if_msghdr2'
send_packets = if2m->ifm_data.ifi_opackets;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:636:25: error: member access into incomplete type 'struct if_msghdr2'
recv_packets = if2m->ifm_data.ifi_ipackets;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:637:23: error: member access into incomplete type 'struct if_msghdr2'
send_bytes = if2m->ifm_data.ifi_obytes;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:638:23: error: member access into incomplete type 'struct if_msghdr2'
recv_bytes = if2m->ifm_data.ifi_ibytes;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:639:23: error: member access into incomplete type 'struct if_msghdr2'
send_errors =if2m->ifm_data.ifi_oerrors;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:640:24: error: member access into incomplete type 'struct if_msghdr2'
recv_errors = if2m->ifm_data.ifi_ierrors;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:641:23: error: member access into incomplete type 'struct if_msghdr2'
collisions = if2m->ifm_data.ifi_collisions;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:642:22: error: member access into incomplete type 'struct if_msghdr2'
multicast = if2m->ifm_data.ifi_imcasts + if2m->ifm_data.ifi_omcasts;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:642:51: error: member access into incomplete type 'struct if_msghdr2'
multicast = if2m->ifm_data.ifi_imcasts + if2m->ifm_data.ifi_omcasts;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:643:16: error: member access into incomplete type 'struct if_msghdr2'
mtu = if2m->ifm_data.ifi_mtu;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:630:12: note: forward declaration of 'if_msghdr2'
struct if_msghdr2 *if2m = (struct if_msghdr2 *)ifm;
^
/home/alexax/src/far2l-shmuz-2/netcfg/src/netif/netif.cpp:664:56: error: use of undeclared identifier 'IFF_NOTRAILERS'
bool NetInterface::IsNotrailers() { return ifa_flags & IFF_NOTRAILERS; };
^
18 errors generated.
ninja: build stopped: subcommand failed.
Не знаю будет ли это вам интересно, но тем не менее напомню, о том, что некоторые вещи можно реализовать лучше чем в Far 3.
https://bugs.farmanager.com/view.php?id=2750
https://bugs.farmanager.com/view.php?id=3771
Кроме того, тема связана с #10: некоторые плагины вынуждены использовать EE_CHANGE для "ручного" отслеживания своих закладок, поскольку отсутствует нормальное апи.
Предлагаю заменить иконку приложения, хотя бы по цвету, сделать ее серой к примеру.
Я иногда использую far2m и far2l параллельно, и хотелось бы, чтобы на панели задач по иконке сразу было бы видно, кто есть кто.
Надеюсь я не обнаглел до предела :) Планируете ли вы написать хоть самый простенький плагин для просмотра изображений чтобы хотя-бы можно было листать их посредством PgUp/PgDn и делать пометку на панели кнопкой Ins ?
Far.DisableHistory(0xF) does not disable any history.
See https://bugs.farmanager.com/view.php?id=2297
Test
lua: far.Menu({Flags="FMENU_SHOWAMPERSAND"},{{text="S&R"}})
The menu appears. Pressing R
closes the menu while it shouldn't.
..при котором бы он не ждал окончания фаровской операции (типа копирования, подсчёта размера, построения дерева), которая была запущена клавишей из Keys
.
Проблема: макродвижок по умолчанию "нажимает клавиши" синхронно: очередное нажатие возвращает управление после завершения операции, вызванной этим нажатием.
Поэтому текущая реализация предусматривает запрет обработки клавиатуры в процессе операции, что приводит к невозможности прервать (затянувшуюся) операцию штатным образом (Esc/CtrlBreak).
Потенциальное решение: предусмотреть возможность как-то явно указать, для определённых случаев, что синхронность не нужна. Например mf.mode(3)
и/или Keys("EnAsync/NoWait",...)
.
See https://bugs.farmanager.com/view.php?id=1722
Description:
[ Far 2.0.1807, Far 3.0.1897 ]
Допустим диалог состоит из единственного элемента DI_EDIT, больше элементов нет. При появлении диалога сразу нажмём на клавишу, допустим, W. Приходят два события DN_EDITCHANGE вместо одного, причём в первом из них PtrData указывает на пустую строку.
Последующие нажатия на клавиши, вызывающие изменения текста, отрабатываются правильно, лишние ложные события не приходят.
Что в целом в общем-то и ожидаемо.
Это я был автором коммита 60e93e7
После закрытия диалогового окна и срабатывания деструктора ~ConsoleTitle()
восстанавливается старое значение window title без учёта последних изменений.
Но что странно, в far2l видно, как сначала восстанавливается старое значение, а потом сразу меняется на новое.
А в far2m надо, чтобы сработало изменение window title, например после смены текущего каталога.
Такое чувство, что в far2l SetFarTitle
дёргается кем-то ещё раз, а в far2m этого уже не происходит.
У вас есть идеи, из-за чего это происходит в far2l, и как это можно поправить в far2m?
Implement flag ECF_AUTODELETE
.
Добавить функционал
far:config
far:about
из кодовой базы Far2l
I tried to use following macro in far2l with LuaMacro
Macro {
area="Shell"; key="..."; flags=""; description="..."; action = function()
panel.SetPanelDirectory(nil,0,panel.GetPanelDirectory(nil,1))
if (((Bof and APanel.Root) or not Bof) and PPanel.Visible) then
Panel.SetPath(1,PPanel.Path,APanel.Current)
end
end;
}
It shows following error text
.../Macros/scripts/test.lua:3: bad argument #1 to 'GetPanelDirectory' (integer or light userdata expected, got nil)
stack traceback:
[C]: in function 'GetPanelDirectory'
...
This macro works as expected in Far Manager ver. 3.0.xxxx for Windows.
Actually FAR2M uses TTY Clipboard and COPY/PAST working fine in/from console and other many applications, but it's not working for some other applications for example Telegram
Is it possible to investigate how it can be fixed?
Reference: elfmz#810
All available means show "Other" (or 0) whereas it should be "FindFolder" (or 13).
Far2 for Window gives the correct result.
Иногда после завершения в терминале вижу "Aborted (core dumped)". Думаю это не очень хорошо.
Если зажать клавишу Alt и нажать мышью на первую или вторую команду в панели команд внизу окна, то вместо открытия окна перехода открываются либо справка, либо главное меню.
В тоже время если нажать на третью команду "Просмотр", открывается окно просмотра текущего файла, т.е. команда срабатывает как и должна.
проблема с прорисовкой результата поиска файлов
[рассинхронизация потоков поиска и отображения информации?]
как минимум после запроса на повышение прав
проверено на FAR2M 2.6.0-2024-03-07-3eaf5b3-beta Linux x86_64
авторизовались на Linux под ограниченным юзером
запустили Far2m
перешли в корень
зашли в \boot\
запустили поиск файлов *
какие то файлы появляются но попутно просит в фоне задать пароль для повышения прав
вводим в результате информация найденных файлов исчезает (но она есть там)
если стрелочки вверх вниз покрутить появляются найденные данные
Компиляция far2m на Dragonfly BSD 6.4 завершается с ошибкой:
[250/739] Building CXX object far/CMakeFiles/far2m.dir/src/cache.cpp.o
FAILED: far/CMakeFiles/far2m.dir/src/cache.cpp.o
/usr/bin/CC -DUNICODE -DUSELUA -DUSEUCD -Dfar2m_EXPORTS -I/home/user/src/far2m/utils/include -I/home/user/src/far2m/far/. -I/home/user/src/far2m/far/far2sdk -I/home/user/src/far2m/far/src -I/home/user/src/far2m/far/src/base -I/home/user/src/far2m/far/src/mix -I/home/user/src/far2m/far/src/bookmarks -I/home/user/src/far2m/far/src/cfg -I/home/user/src/far2m/far/src/console -I/home/user/src/far2m/far/src/filemask -I/home/user/src/far2m/far/src/hist -I/home/user/src/far2m/far/src/locale -I/home/user/src/far2m/far/src/macro -I/home/user/src/far2m/far/src/panels -I/home/user/src/far2m/far/src/plug -I/home/user/src/far2m/far/src/vt -I/home/user/src/far2m/_build/far -I/usr/local/include/uchardet -I/home/user/src/far2m/far/../WinPort -Wall -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -Wl,--gc-sections -DWINPORT_REGISTRY -Wall -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -O2 -fvisibility=hidden -std=c++11 -MD -MT far/CMakeFiles/far2m.dir/src/cache.cpp.o -MF far/CMakeFiles/far2m.dir/src/cache.cpp.o.d -o far/CMakeFiles/far2m.dir/src/cache.cpp.o -c /home/user/src/far2m/far/src/cache.cpp
In file included from /home/user/src/far2m/far/src/cache.cpp:32:
/home/user/src/far2m/far/src/headers.hpp:48:10: fatal error: malloc.h: No such file or directory
#include <malloc.h>
^~~~~~~~~~
Решение: elfmz@1b96d70
Hello!
В требованиях указана версия cmake ( >= 3.2.2 ).
В Ubuntu 16.04 cmake version 3.5.1.
При компиляции возникает ошибка:
CMake Error at luamacro/CMakeLists.txt:27 (list): list does not recognize sub-command TRANSFORM
Причина - для TRANSFORM требуется cmake не ниже 3.12 https://cmake.org/cmake/help/latest/command/list.html#transform.
Все остальные бинарники собираются в Ubuntu 16.04.
Можно ли в luamacro обойтись без TRANSFORM?
И второй вопрос, так же связанный с компиляцией в Ubuntu 16.04.
В CMakeLists.txt прописана зависимость от luajit-2.1. Можно ли использовать luajit-2.0, или эта версия не совместима с luafar?
In required dependencies cmake version specified >= 3.2.2.
When I compile far2l with lua support in Ubuntu 16.04 (cmake version 3.5.1), I get an error:
CMake Error at luamacro/CMakeLists.txt:27 (list): list does not recognize sub-command TRANSFORM
Because TRANSFORM is new in cmake since 3.12 https://cmake.org/cmake/help/latest/command/list.html#transform.
All other binaries build fine in Ubuntu 16.04.
Is it possible not to use "TRANSFORM" in luamacro?
And one more question, may I use luajit-2.0 instead of luajit-2.1 with luafar?
Executing Keys("Enter") with non-empty command line causes painting panels on the "desktop".
Example:
git diff > 123.diff
in the command lineThe command executes correctly but CtrlO
reveals file panels drawn on the "desktop".
В последнее время заметил при сборке сообщение rar archives support disabled due to UNRAR=.
, после чего из MultiArc пропала возможность создавать rar архивы и его нет в списке архивов в конфигураторе плагина. Rar и unrar конечно есть. Собрал для теста свежий far2l-elfmz и там такой проблемы нет и rar архивы создаються.
a) It is needed by my plugins.
b) It exists in Far3 (https://api.farmanager.com/ru/service_functions/colordialog.html) since the build 3.0.1950.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.