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

» Far Manager

Автор: VictorVG4
Дата сообщения: 22.08.2016 23:18
И там то же самое. Лучше бы через подобный батник собирать:

Цитата:
@echo off
@cd /d .\fardev\unicode_far
@cmd /c "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" x86 && "%VS140COMNTOOLS%\..\IDE\devenv.exe" far.vc14.sln /Build "Release|Win32" /Project "far"
@cmd /c "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64 && "%VS140COMNTOOLS%\..\IDE\devenv.exe" far.vc14.sln /Build "Release|x64" /Project "far"
@tools\m4 -P update_headers.m4
rem @cd ..\
@start /i ..\_build\vc\all14.sln
@exit

но я запутался в выделенных именах из солюшена:

Цитата:
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "align", "..\..\plugins\align\align.vcxproj", "{D9387B45-34A6-4CB6-A1B0-563E3480CFF8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "autowrap", "..\..\plugins\autowrap\AutoWrap.vcxproj", "{370CE5BD-B4C8-4817-B3A1-5B461B4A408D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "brackets", "..\..\plugins\brackets\Brackets.vcxproj", "{A0CB9F6A-2E43-45E0-B57F-0BF483A14160}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compare", "..\..\plugins\compare\compare.vcxproj", "{C4064D6C-AA3F-4C71-B78D-F406929EE036}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "drawline", "..\..\plugins\drawline\DrawLine.vcxproj", "{412F0B80-AB59-4D2A-90C8-16C06EE1B77C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "editcase", "..\..\plugins\editcase\EditCase.vcxproj", "{56007C20-ADD8-4E2A-AB8F-BEB832F94802}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emenu", "..\..\plugins\emenu\EMenu.vcxproj", "{F49B5724-0420-46A9-A3F4-647C5722031C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "farcmds", "..\..\plugins\farcmds\FARCmds.vcxproj", "{C87BBC63-9CA9-4421-8589-5FFDEB000361}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filecase", "..\..\plugins\filecase\FileCase.vcxproj", "{CC7215CC-15E2-48CF-ABAB-294E9600B22E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hlfviewer", "..\..\plugins\hlfviewer\HlfViewer.vcxproj", "{5E4E3EE1-7D35-4BAE-BF4A-A68ABFFCF876}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "network", "..\..\plugins\network\Network.vcxproj", "{731A85E7-6D1F-48BD-A520-4C8DFEC2F6F3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "procList", "..\..\plugins\proclist\ProcList.vcxproj", "{1F12132B-4424-48C4-8B9C-B10E8AEDE9C7}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "samefolder", "..\..\plugins\samefolder\SameFolder.vcxproj", "{090E1BF4-BF2A-42F6-9DCF-64603F62A1D3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tmppanel", "..\..\plugins\tmppanel\TmpPanel.vcxproj", "{B40A055F-5616-4001-B4C0-3DAF156B168C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arclite", "..\..\plugins\arclite\arclite.vcxproj", "{38CF1530-243C-4C81-9B0E-DCA51551AC81}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "arclite", "arclite", "{49398389-E2E4-4E36-9F65-50417EAB8E59}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example", "..\..\plugins\arclite\example\example.vcxproj", "{A39C2D17-4730-4C13-A2BE-8C012616E771}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luafar3", "..\..\plugins\luamacro\luafar3.vcxproj", "{9FF87075-F1E1-410B-818C-2823396FE24F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luamacro", "..\..\plugins\luamacro\luamacro.vcxproj", "{06BE01E6-7DC0-4D83-877C-B7ADE32175F8}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "luamacro", "luamacro", "{17A6D8F3-DFC2-41A4-8D41-DA317C081BE0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{27B75A0D-B6FD-443C-BC07-AB38A5493EA9}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "far", "far", "{B95007A5-F03D-4F39-BE31-AFE6AFB753D6}"

и не пойму как их в цикл for или просто отдельными строками команд в батник вставить? Потому и пользовался IDE только при сборке плагинов...

Добавлено:
wseventeen

Ага, BOM есть в трёх файлах - DlgBuilder.hpp, farcolor.hpp, plugin.hpp, но farversion.hpp записан в ANSI - unicode.7z, значит по идее мешать не должен, но ошибка повторилась и второй машине...
Автор: wseventeen
Дата сообщения: 22.08.2016 23:34
plugin.hpp
должен дать такой же результат - RC1020.

Добавлено:
Т.е. BOM из всех хидеров, используемых при компиляции ресурсов, надо удалять.
Автор: VictorVG4
Дата сообщения: 23.08.2016 00:20
wseventeen

Да, локальная конвертация хидеров в ANSI убрала ошибку. Посмотрел NetBox-ом на WebDAV://anonymous:@svn.code.sf.net:80/p/farmanager/code/trunk/plugins/common/unicode/

DlgBuilder.hpp - UTF-8 с BOM
farcolor.hpp - UTF-8 с BOM
plugin.hpp - UTF-8 без BOM

- байты 0х00000000 - 0х00000002 в хекс-редакторе у DlgBuilder.hpp и farcolor.hpp 0xEFBBBF :



DlgBuilder.hpp

, следовательно вопросы для себя:

1) как они туда попали? - тут ответ очевиден - по ошибке
2) как поступить? - тут вариантов два - временно добавить в сборочный скрипт копирование ANSI копий из бэкапа + конвертация plugin.hpp при каждой сборке руками; или ждать корректирующего коммита?

Добавлено:
На рабочей системе:

r14399 в /trunk/plugins/common/unicode/*.hpp путём пересохранения в редакторе Far убрана BOM:

сборка в VC++2015 Update 3 х86 плагинов: успешно: 18, с ошибками: 0, без изменений: 0, пропущено: 0

сборка в VC++2015 Update 3 AMD64 плагинов: успешно: 18, с ошибками: 0, без изменений: 0, пропущено: 0

значит нужно устранять ошибку в источнике, в т.ч. смотреть почему после сборки Far.exe в ./UNICODE_FAR/Include/ хидеры DlgBuilder.hpp , farcolor.hpp и plugin.hpp формируются в UTF-8 с BOM? Вот они - Include.7z пока релизный скрипт их там не удалил...
Автор: wseventeen
Дата сообщения: 23.08.2016 03:45
VictorVG4
У DlgBuilder.hpp есть BOM, но этот файл не используется при компиляции ресурсов.
farversion.hpp и plugin.hpp имеют свойство svn:mimetype = text/plain
и забираются из svn на локальную машину без BOM.
Почему у Вас они содержат BOM utf-8 -- вопрос только к Вам.


Добавлено:
Хотя может быть после следующего update_header.bat эта проблема вылезет и у других...
Автор: VictorVG4
Дата сообщения: 23.08.2016 04:14
wseventeen

Нашёл где и когда появился приводящий к сбою BOM: в r14395 при сохранении ./UNICODE_FAR/plugin.hpp он случайно сохранился с BOM - до r14394 включительно в нём BOM не было, а дальше он вместе с BOM обрабатывается M4 и попадает в ./Include со всеми последствиями.

Установлено по итогу извлечения данных ревизий из SVN и хекс-просмотра файлов:

r14394:



r14395:



Добавлено:
и в r14399 у этого файла есть BOM:



так что похоже если не исправим, то вылезет...

Добавлено:
Да, собака там порылась - я вручную убрал BOM в ./UNICODE_FAR/plugin.hpp и всё собралось без ошибок - Сборка: успешно: 18, с ошибками: 0, без изменений: 0, пропущено: 0. Отчёт компилятора для х86 и х64 одинаков. Так что есть вероятность что индикатором может стать сегодняшняя ночнушка в которой из-за plugin.hpp могут не собраться плагины.
Автор: wseventeen
Дата сообщения: 23.08.2016 04:41
VictorVG4
unicode_far\plugin.hpp и Include\plugin.hpp не используются при сборке плагинов.
для плагинов включается plugin\common\unicode\plugin.hpp -- там нет BOM.
Автор: VictorVG4
Дата сообщения: 23.08.2016 05:05
wseventeen

plugin\common\unicode\plugin.hpp генерится из при сборке из unicode_far\plugin.hpp:

gcc make:

PHONY: include
include: \
...
    $(FARINCLUDE)plugin.hpp \

командой:

$(FARINCLUDE)plugin.hpp: plugin.hpp farversion.m4 tools.m4 vbuild.m4
    $(MSG)
    $(M4) -DINPUT=plugin.hpp headers.m4 > $@

и после летит в ./Plugins/COMMON/UNICODE:

update_headers.bat и его содержимое:

@tools\m4 -P update_headers.m4

а это находится в update_headers.m4:

m4_include(`farversion.m4')m4_dnl
m4_define(HDRPATH,`..\plugins\common\unicode')m4_dnl
m4_define(CMD,`if exist HDRPATH ( @copy Include\*.hpp HDRPATH && svn commit HDRPATH -m "update headers to BUILD" )')m4_dnl
m4_esyscmd(CMD)m4_dnl

так что случайного BOM в ./unicode_far/plugin.hpp достаточно...



Добавлено:
Ну, похоже ночнушки вчерашние, а значит там и LuaMacro старый - b581, а не свежий b582 который из-за этой опечатки не собрался. По крайней мере на скриншоте видны даты и время его снятия:

Автор: wseventeen
Дата сообщения: 23.08.2016 08:40
VictorVG4

Цитата:
так что случайного BOM в ./unicode_far/plugin.hpp достаточно...

Во-первых BOM не случайный.
Во-вторых не достаточно, к пользователям plugins\common\unicode\plugin.hpp
попадает через svn, который должен отдать его без BOM,
хотя за svn на linux я бы не поручился...
Автор: VictorVG4
Дата сообщения: 23.08.2016 12:42
wseventeen

Я много лет пользовался SVN на OSF/1 и он файлы не менял - т.е. если файл имел BOM, то он его таким и отдаст, да и r14405: removed bom from plugin.hpp, rc compatibility BOM устраняет, так что я по прежнему склонен считать его появление опечаткой...
Автор: skipik001
Дата сообщения: 23.08.2016 19:58
wseventeen
Можно ли надеяться, что вы почините работу ImageView на Windows 10 RS1? Имеется ввиду это и это.
Автор: wseventeen
Дата сообщения: 23.08.2016 21:04
Надеяться можно, но у меня пока нет RS1...

Добавлено:
Если быть более точным, у меня нет разумных доводов для перехода на этот глюкодром.
Автор: VictorVG4
Дата сообщения: 24.08.2016 19:00
Поддержу HaRT и zg в:
zg » Wed 24 Aug, 2016 14:53

Цитата:
HaRT:

Цитата: Это не EMenu, а криво написанные Explorer Extensions, авторы которых не учли, что их код может выполняться в контексте консоли.


не обязательно авторы экстеншенов. могут быть авторы библиотек, используемых этими экстеншенами.
Автор: jFobos
Дата сообщения: 25.08.2016 10:04
Небольшой вопросик... Можно ли как-то сделать, чтоб эта надпись не выводилась при запуске?

Цитата:
Far Manager, version 3.0 (build 4747) x64
Copyright © 1996-2000 Eugene Roshal, Copyright © 2000-2016 Far Group
Автор: VictorVG4
Дата сообщения: 25.08.2016 10:46
CS_OpenPanel.lua

Цитата:
-- Ver 3.1. VictorVG, обновлён Tue Dec 15 16:07:31 +0300 2015
-- Ver 3.1.1, rename uid to id, VictorVG, Thu Aug 04 15:01:14 +0300 2016

Macro{
id="719EF12F-05C7-4162-9C63-EAC21E72FD04";
area="Common Shell";
description="Switch panel visible after Far start";
flags="RunAfterFARStart NoSendKeysToPlugins";
condition=function() return (not PPanel.Visible) end;
action=function() Keys("CtrlP") end;
}

Macro{
id="AA429C65-09D6-4328-9F30-56394F204A12";
area="Common Shell";
description="Switch all panel visible after Far start";
flags="RunAfterFARStart NoSendKeysToPlugins";
condition=function() return (not (PPanel.Visible and APanel.Visible)) end;
action=function() Keys("CtrlO") end;
}

Macro{
id="B4475F5D-0A3A-47AF-8835-7C9EA4F06DDD";
area="Common Shell";
description="Restore all panel visible after Far start";
flags="RunAfterFARStart NoSendKeysToPlugins";
condition=function() return (PPanel.Visible and not APanel.Visible) end;
action=function() Keys("CtrlO CtrlP") end;
}

устроит? При старте Far-о автоматически включает файловые панели. Положить в %FarProfile%\Macros\scripts\ и пользоваться Far. При первом же запуске/перезапуске Far сам подхватится.
Автор: wseventeen
Дата сообщения: 25.08.2016 16:27

Цитата:
Можно ли как-то сделать, чтоб эта надпись не выводилась при запуске?

С какой целью?
Автор: jFobos
Дата сообщения: 25.08.2016 17:42
wseventeen
Вот хотелка у меня такая вылезла))
Автор: VictorVG4
Дата сообщения: 25.08.2016 17:47
jFobos

Цитата:
Вот хотелка у меня такая вылезла))

а я вот грешным делом подумал что у вас включено автосохранение и иной раз панели скрыты.
Автор: wseventeen
Дата сообщения: 25.08.2016 21:36
jFobos

Цитата:
Вот хотелка у меня такая вылезла

Сорсы открыты. Любой вася пупкин может собрать для себя версию без или со своим (c).
Ещё можно создать хотелку на багтрекере для добавления опции -logo.
Автор: gen4gen
Дата сообщения: 26.08.2016 04:48

Цитата:
Любой вася пупкин может собрать для себя версию без или со своим (c).

Плюсую. Я тут уже полгода прошу, чтобы MultiArc-у сохранение настроек прикрутили А тут видишь ли без копирайта захотелось...

Автор: VictorVG4
Дата сообщения: 26.08.2016 10:04
gen4gen

Ну, тут скорее стоит просить NewArc.Ex дописать, но там как я помню возникли технические сложности. А так он более универсален и заменит МА полностью.
Автор: gen4gen
Дата сообщения: 26.08.2016 10:16
VictorVG4
Ой, когда ж это будет. Я быстрее сам программировать научусь...

А мультиарк вот он есть, вполне себе рабочий. Пара моментов, которые поправить и все.
Автор: VictorVG4
Дата сообщения: 26.08.2016 11:34
gen4gen

ANSI плагин МА написан ещё для Far 1.0, и потому хранит настройки так, это как было принято для Far 1.0 (в подключах Реестра HKLM и HKCU) что может приводить к проблемам сохранения общих настроек плагина в многопользовательской среде т.к. доступ по записи в HKLM имеют не все группы пользователей (по умолчанию пользователи групп Guest и выше имеют доступ к данному ключу по чтению, правом записи в него исходно обладают не все группы), это первое, второе как и любой ANSI плагин он использует ANSI подмножество Win API с такими ограничениями как MAX_PATH <= 255 байт (общая длинна пути включая имя файла не должна превышать 255 символов ANSI) и ряд других. NewArc.Ex изначально разрабатывался как UNICODE плагин для Far 2.0 и лишён большинства недостатков MA, но с ним как я говорил есть ряд чисто технических проблем которые как я думаю со временем будут решены.
Автор: jFobos
Дата сообщения: 26.08.2016 12:49
Я вообще-то рассчитывал на что-то вроде -nologo, думал что уже есть что-то схожее
Автор: VictorVG4
Дата сообщения: 26.08.2016 13:51
jFobos

Да оно раньше никому и не требовалось - копирайт обычно скрыт под панелями, да и если что набрать CLS не долго. Коли вам он мешает поставьте себе простенький макрос clean.lua:

Цитата:
Macro{
id="8BA6286E-FB22-49C3-99A2-0FA1B490825E";
area="Common";
description="Пристрелить копирайт";
flags="RunAfterFARStart";
priority=99;
action=function() Far.DisableHistory(-1); print("cls"); Keys("Enter");end;
}

и надеюсь он решит вашу задачу.
Автор: wseventeen
Дата сообщения: 26.08.2016 15:24
gen4gen

Цитата:
Я тут уже полгода прошу, чтобы MultiArc-у сохранение настроек прикрутили

Настройки там совсем не независимы.
После диалога они потом в коде сбрасываются (если это убрать обавлится балкон за углом).
'Просто добавить сохранение' не получится.
А тратить время на приведение старого кода в порядок большого желания ни у кого нет.
Большинство либо вообще не использует плагин (если нужен rar, есть командная строка),
либо вполне довольны его текущим состоянием.
Автор: jFobos
Дата сообщения: 26.08.2016 17:05
VictorVG4
Спасибо А как установить его? Я скопировал в папку ...\Far\Addons\Macros\scripts\ но при запуске ничего не изменилось...
Автор: VictorVG4
Дата сообщения: 26.08.2016 17:14
jFobos

Поместите скрипт в каталог %FARLOCALPROFILE%\Macros\scripts . Его текущее расположение определяется в секции [GENERAL] файла Far.exe.ini формат которого документирован в Far.exe.example.ini .
Автор: skipik001
Дата сообщения: 26.08.2016 17:16
jFobos
Надо сюдать класть: .\Far\Profile\Macros\scripts, ну или где там у вас профиль лежит.
Автор: jFobos
Дата сообщения: 26.08.2016 17:28
Спасибо. Теперь заработало Круть
Автор: VictorVG4
Дата сообщения: 26.08.2016 17:32
jFobos

На деле элементарно - при старте Far выполняется команда CLS - очистка экрана, а после скрипт ждёт следующего запуска Far-а и не мешается под ногами.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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