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

» Плагины и настройки FAR часть 2

Автор: Ventru1983
Дата сообщения: 15.01.2009 08:33
Здравствуйте возникла проблема с печатью из Far 1.7.05, на принтере HP 1320 распечатывается всё корректно, но при подключении HP 1300 распечатывается в некорректной кодировке. Помогите решить проблему!
Автор: Victor_VG
Дата сообщения: 15.01.2009 19:03
Компилятор обновил до GCC до версии 4.3.2 TDM-2 SJLJ.

Отчёт о работе:

Сборка удачная, исходники Far SVN 2479 с традиционной руганью на код плугинов в тех же же местах, где это было и раньше, но теперь собирается быстро. Во всяком случае, моей машине потребовалось на всё про всё минут пять, вместо десяти на старом компиляторе. А раз так, можем считать что работу мы сделали не зря, хотя стоит "дошлифовать" исходный код - многие вещи компилятор сам исправляет, выводя предупреждения.

Компилятор выложил - можете забирать, вот его анонс. Там есть ссылки на страницы закачки. Размер архива 48 Мб , но главное, что SVN 2479 собирается и работает, а вот SVN 2475 вылетал с ошибкой на сборке Far.exe.
Автор: pzaytsev
Дата сообщения: 16.01.2009 09:10
zg

Цитата:
в винде есть интерфейс для создания симлинков/хардлинков.

Открываю проводник. Даже 2. Так привычнее . И начинаю баловаться правой/левой кнопкой мыши с разными там Ctrl/Shift/Alt/Win/F1-F12/Space и прочим, что только может придумать мозг в пятницу.
Странно, ничего не получилось...
Я что-то пропустил?
Ах, да! Я пропустил самое важное. WinXP SP2. Причем на висту пересаживаться не буду. Уж лучше Mandriva.

Я все-же настаиваю, что не существует встроенного дружелюбного ИНТЕРФЕЙСА для создания хардлинков (симлинков тоже) в Windows, ибо такая конструкция

Цитата:

fsutil hardlink create "D:\Strong\Раздача\Сериалы\Агент национальной безопасности\Сезон 1\ANB.1.CD01.avi"
"D:\Torrents\Агент национальной безопасности\AGENT.NAZIONALNOY.BEZOPASNOSTI.1\Agent.Nazionalnoi.Besopasnosti.1.CD01.avi"

для набирания руками слишком сложна. Хотя, видимо, не для всех.

Добавлено:
В догонку, чтобы сообщение не сочли за оффтоп:
А в FAR существует встроенный дружелюбный ИНТЕРФЕЙС для создания и работы с хард/сим-линками. За что авторам отдельный и глубокий респект.
Автор: zg
Дата сообщения: 16.01.2009 14:35
pzaytsev

Цитата:
Открываю проводник.
если для вас винда и проводник эквивалентные вещи, то это не ко мне.
Автор: pzaytsev
Дата сообщения: 16.01.2009 16:14
zg
Согласен - охрененный интерфейс (юниксоидам - привет):
1. Win+R
2. cmd; Enter
3. набрать (не забыть про пробелы, точки и кавычки) fsutil hardlink create "D:\Strong\Раздача\Сериалы\Агент национальной безопасности\Сезон 1\ANB.1.CD01.avi"
"D:\Torrents\Агент национальной безопасности\AGENT.NAZIONALNOY.BEZOPASNOSTI.1\Agent.Nazionalnoi.Besopasnosti.1.CD01.avi"; Enter

Ничего личного. Это просто я плохо понимаю разницу между проводником и виндой.
Ну нету интерфейса для создания хард/сим-линков. Утилиты - есть, а интерфейса - нет.
Я закончил и к этой теме не возвращаюсь.
Сорри за флейм.
Автор: Victor_VG
Дата сообщения: 17.01.2009 01:58
pzaytsev

Дядь, zg прав - если ставишь для себя знак равенства между "встроенный" и "существует ли в принципе", то вопрос не к нам, а к дяде Билли из Редмонда. Он там у них главный мозг, вот пусть и шевелит извилинами. А в Far интерфейс есть - команда Alt+F6. Просто, и красиво.

P.S.

Реже читаем рекламу, внимательнее изучаем маны.
Автор: Victor_VG
Дата сообщения: 18.01.2009 01:54
Забавно получилось - в новой "ночнушке" 2.0.741 Far.exe кудай-то из архива потерялся:

Цитата:
Far Manager v2.0 alpha build 741 (2009-01-18) full changelog
Last change: drkns 17.01.2009 21:28:37 +0200 - build 741
size: 110630 byte(s)

я это случайно увидел, когда открыл архив changlog туда добавить. Смотрю чегой-то не хватает. Естественно, не сразу понял что произошло, но потом решил предупредить о возникшей накладке. Кто-нибудь может и попасться, я то из из исходников себе уже скомпилил и доволен - новый Far.exe стал и быстрее работать, и меньше памяти берёт - в моей сборке 7,1 Мб (компилирую своей сборкой gcc 4.3.2 tdm-2) в тот момент как подсчитывал размер каталога с примерно 1000000 файлов общим весом в 53 Гб. Это радует. Старые сборки (в т.ч. 739-я) на этой операции имели резкий скачок расхода памяти до 16 - 39 Мб и более (скомпилированные в VS9) в зависимости от того каким компилятором они собирались.
Автор: Victor_VG
Дата сообщения: 18.01.2009 11:49
Ошибка на сайте исправлена. Спасибо. И я всё же реализовал старое обещание - сборка на основе Far 2.0-gcc. Анонс уже есть, но на сайте всё перезалито - сбой на хостинге. Всем мои извинения. Жду туда баг-репорты если что вылезет, будем устранять ошибки.

P.S.

DrKnS

Твою идею с Custom.ini надо было бы давно реализовать - необходимость 100%. Спасибо за это! Коли прибьют/изменят код - достану твои исходники из боцманских запасов, но это решение надо сохранить обязательно, и может даже сделать возможность подключения нескольких дополнительных табов - коли разрастётся могут пойти ошибки, ловить их там будет много труднее. Я встретил уже монстра - custom.ini почти на 60 Кб и половина строк не рабочие. Пришлось сидеть и править на сотовом - у парня система была "заархивирована" ... вместе с данными в клубок.
Автор: Victor_VG
Дата сообщения: 23.01.2009 22:49
Возникла проблема со сборкой плугина EMenu - не хочет собираться ни в какую. Я уже и VC++ 8 SR1 Express ставил, и свой мэйк для gcc написал... В обоих случаях вылезают ошибки. С MS VC++ - компилятор никак не хочет в упор видеть Windows.h хотя в пути прописаны и /bin, и /Include, и сам файл кидал ему в каталог с исходниками - в любом случае компиляция завершалась с ошибкой "1". Снёс в итоге дурака. А в gcc вот логи [more=компиляции]Begin log ->
$make -f makefile_gcc WIDE=1 COMMON=../common
making depends for Reg.cpp
making depends for Plugin.cpp
making depends for Pidl.cpp
making depends for OleThread.cpp
making depends for MenuDlg.cpp
making depends for FarMenu.cpp
making depends for auto_sz.cpp
compiling auto_sz.cpp
compiling FarMenu.cpp
FarMenu.cpp:7: error: uninitialized const 'empty_wstr'
FarMenu.h: In constructor 'CFarMenu::CFarMenu(const TCHAR*, unsigned int)':
FarMenu.h:31: warning: 'CFarMenu::m_szArrow' will be initialized after
FarMenu.h:27: warning: 'bool CFarMenu::m_bArrowsAdded'
FarMenu.cpp:13: warning: when initialized here
FarMenu.cpp:44: warning: comparison between signed and unsigned integer expressions
FarMenu.cpp: In member function 'unsigned int CFarMenu::InsertItem(unsigned int, const TCHAR*, bool, CFarMenu::ECheck, bool)':
FarMenu.cpp:118: warning: enumeration value 'UNCHECKED' not handled in switch
FarMenu.cpp: In member function 'void CFarMenu::AddArrows()':
FarMenu.cpp:146: warning: unused variable 'arrLen'
make: *** [final.32W.gcc/obj/FarMenu.o] Error 1
$
<- End log
Begin makefile_gcc ->
NAME = EMenu
SRCS = EMenu.cpp \
auto_sz.cpp \
FarMenu.cpp \
MenuDlg.cpp \
OleThread.cpp \
Pidl.cpp \
Plugin.cpp \
Reg.cpp

DOCS = EMenuEng.hlf EMenuRus.hlf EMenuEng.lng EMenuRus.lng EMenuDel.reg Hotkey.reg HotkeyClipboard.reg HotkeyProperties.reg

USERLIBS = -libCRT

include ..\makefile_gcc_def_inc

include ..\makefile_gcc_target_inc
<- End makefile_gcc

Begin EMenu.gcc.def ->
EXPORTS
GetMinFarVersion=GetMinFarVersion@0
SetStartupInfo=SetStartupInfo@4
GetPluginInfo=GetPluginInfo@4
OpenPlugin=OpenPlugin@8
Configure=Configure@4
ExitFAR=ExitFAR@0
<- End EMenu.gcc.def

Что в каталоге EMenu после компиляции?

./EMenu.VS2008.vcproj
./EMenu.cpp
./EMenu.gcc.def
./EMenu.rc
./EMenu.vc.def
./EMenuDel.reg
./EMenuEng.hlf
./EMenuEng.lng
./EMenuRus.hlf
./EMenuRus.lng
./EMenuW.vc.def
./FarMenu.cpp
./FarMenu.h
./HMenu.h
./Handle.h
./Hotkey.reg
./HotkeyClipboard.reg
./HotkeyProperties.reg
./MenuDlg.cpp
./MenuDlg.h
./OleThread.cpp
./OleThread.h
./Pidl.cpp
./Pidl.h
./Plugin.cpp
./Plugin.h
./Reg.cpp
./TODO_64.txt
./auto_sz.cpp
./auto_sz.h
./changelog
./final.32W.gcc
./makefile_gcc
./makefile_vc
./resource.h
./final.32W.gcc/
./final.32W.gcc/objEMenu.d
./final.32W.gcc/objEMenu.o
./final.32W.gcc/objEMenu.res.o
./final.32W.gcc/objFarMenu.d
./final.32W.gcc/objMenuDlg.d
./final.32W.gcc/objOleThread.d
./final.32W.gcc/objPidl.d
./final.32W.gcc/objPlugin.d
./final.32W.gcc/objReg.d
./final.32W.gcc/objauto_sz.d
./final.32W.gcc/objauto_sz.o[/more]. Не могу понять что я делаю не так?

P.S.

Поставил Visual Studio 2008 Express Edition - итог тот же - сначала не собирается libCRT, затем ресурс-компиллер естественно не способен вообще ничего собрать. Ну, я не удивляюсь - компиляторы в исполнении MS вечно кривыми были. Не зря от них все кого я знаю как чёрт от ладана шарахается. В gcc по крайней мере не удаётся собрать только один плугин EMenu, да и тот вылетает на конкретном файле из-за ошибок в его коде. Знал бы что там поменять - давно бы для всех сам это сделал.
Автор: abi
Дата сообщения: 24.01.2009 14:13
Собрать фар под х64 пакетом не получится вашми? На офф. сайте собираются только ночные сборки под х32, а под х64 выше 690 билда в интернеет вообще не найти.
Автор: Victor_VG
Дата сообщения: 24.01.2009 15:57
abi

GNU GCC 4.40 x64 - только им. Мой компилятор x86 IA32. Проверит собираемость мне не начем - обе машины 32 бит, так, что только могу предполагать по сборке 32-х битных вариантов что должно по идее собраться, но с руганью - мои логи достаточно чётко показывают эти места.
Автор: abi
Дата сообщения: 24.01.2009 20:34
Victor_VG
Спасибо.
А где брать инклуды, которые относятся к winapi и т.п. ? Выходит и так и сяк придется ставить студию? Как раз этого-то я и хотел избежать Ошибки типа no include path in which to search....

Разобрался: надо объявить переменную CPATH и написать путь до инклудов, они есть в пакете.
Автор: Victor_VG
Дата сообщения: 25.01.2009 01:21
abi

Часть ведь, и значительная идёт с GCC. А студия - похоже у меня не приживается - собирает все DLL под одну гребёнку - 7Кб и не рабочие, я и не стал с ней дальше возится. Надоело тратить на неё время - балласт размером почти в 1 Гб - снесу, места жалко на неё. Сам VC9 - 91 Mb, зато скопировали половину DVD с дистрибутивом, дистрибутив SDK который вдобавок не ставится, и прочий мусор объёмом почти в 900 Мб. Микрософт в репертуаре. А попытки чт-то собрать заканчиваются полным обломом на этапе линковки модуля. Причём в любом варианте и через майк, и через солютион. Посему - в болото, и больше сей бред никогда на мои машины не ставить - его писали для "галочки" и заполнения места на дисках - "большие, надо забить туда побольше мусора".

Текущая ревизия: SVN 2521, сборка 2.0 alpha (build 751). Только что смотрел.
Автор: szl
Дата сообщения: 26.01.2009 00:53

Цитата:
Собрать фар под х64 пакетом не получится вашми? На офф. сайте собираются только ночные сборки под х32, а под х64 выше 690 билда в интернеет вообще не найти.


Far Manager v2.0 alpha build 752 x86/x64
Автор: Victor_VG
Дата сообщения: 26.01.2009 01:14
szl

С плугином EMenu не поможешь разобраться? Он один не собирается в gcc. Погляди если не сложно логи http://forum.ru-board.com/topic.cgi?forum=5&topic=19203&start=1779&limit=1&m=1#1 чего ему не хватает? Выручает только то, что он меняется не часто, а если меняется API то его сразу переписывают и он появляется в "ночнушках". Остальная публика меняется куда чаще, но её можно легко перекомпилить и учесть все изменения, а вот этот плугин как заколдованный.

Причём, интересно, в plugins/EMenu/FarMenu.cpp начало выглядит так:

Код: #include "FarMenu.h"
#include "Plugin.h"
#include <tchar.h>
#include <cassert>

#ifdef UNICODE
static const wchar_t empty_wstr;
#define TextPtr Text
#else
#define TextPtr Text.Text
#endif
Автор: Smitis
Дата сообщения: 26.01.2009 10:10
Victor_VG

Цитата:
Сам VC9 - 91 Mb, зато скопировали половину DVD с дистрибутивом, дистрибутив SDK который вдобавок не ставится, и прочий мусор объёмом почти в 900 Мб.

- Делаешь копию студии.
- Сносишь.
- В копии оставляешь папку bin, инклюды, либы, sdk, atlmfc, etc + несколько библиотек из папки IDE (штуки 3-4, непомню, лучше их все заархивировать, там их не много, исключая дот-нетовские).
- Всё остальное удаляется нафиК. Можно оставшееся подрезать под свои нужды.
Для компиляции из ком. строки хватает. Главное - можно держать несколько версий таких урезанных.
Автор: Victor_VG
Дата сообщения: 26.01.2009 14:32
Smitis

Спасибо за идею. Кстати, одну переменную которую "забыли" объявить в plugins/EMenu/FarMenu.cpp нашёл - wchar_t объявил явно - работает, теперь похоже надо и остальные так же явно указать. Похоже расчет ребяток из Редмонда на то, что код написанный в их Visual Studio нигде больше не собрать оправдан. Свинство. В конце концов есть какие никакие рамки приличий даже в такой борьбе без правил как война сред разработки.

И если у тебя есть время можешь с SVN обновить плугин brackets до build 9. Я его уже себе скомпилил:

Цитата:
zg 26.01.2009 14:11:16 +0200 - build 9

1. если скобка не находилась, курсор уезжал в начало/конец.

За что ему спасибо - прибил баг, не сильно вредный, но досадный. Если бы он ещё в EMenu порядок навёл - мечта.
Автор: Victor_VG
Дата сообщения: 30.01.2009 09:16
Пришлось просить доступ к VC++ 2008 у приятеля. Причём как выяснилось альтернатива проста - или ставить полный VC++ 2008, либо ищи к Express Edition подходящие модули. Её не зря урезали - сутками можно искать их по MSDN, и ничего не найти. Монстрософт в репертуаре. Зато в полном VC++ 9 EMenu без собирается вопросов, но смена API в билдах 753 - 757 снова подкинула вопросов и поводов для экспериментов, а заодно и для прибития внесённых компиляторами глюков в исходники. С чем и вожусь, уже повычистил порядком... С ходу после смены Plugins API в билде 753 получил ошибку 8000003, сейчас вожусь с её устранением.
Автор: Victor_VG
Дата сообщения: 30.01.2009 15:24
abi

Пробуй вот chupakabra народ выручил - откомпилировал весь комплект (Far.exe + стандартные плугины) в Win64 UNICODE для поддержки как нового Plugin API, так NTFSFileInfo под него переписанной. Я случайно нашёл - уже достало смотреть листинги в отладчике из-за несовместимости старых плугинов и нового API. Посижу пока на 752, а там и глядишь новые версии плугинов появятся.

На данный момент в новом API не работают (по именам):

Opera4 (замены нет), DVDPanel (заменяется ANSI вариантом 1.19А), 7Zip Alternative Build 7 (заменяется ANSI вариантом) - если кому надо, и Володя не будет возражать, выложу скомпилированный в VC++ 9 ANSI вариант, этот работает, QPlayEx 2.0.331 (заменяется ANSI вариантом 2.8.227, новее ANSI нет), FarHins (заменяется ANSI вариантом 1.12, но тот не показывает пути в панели процессов), FontMan - сразу ставится только ANSI вариант.

Обновлены (на момент проведения испытаний): NTFSFileInfo, WMExplorer, YAC, а также: update и AltHistory (эти два плугина я не тестировал - не пользуюсь ими, sorry).

Несовместимость пары "Плугин - API" чаще всего проявляется в виде ошибке записи по адресу памяти 0xFFFFFFFF, и как следствие этого, вызов системного отладчика указывающего ошибку в коде самого Far.exe.
Автор: Victor_VG
Дата сообщения: 01.02.2009 08:33
Проверка наличия бага mantis#0000716 исходниках Far 2.0.759 (SVN 2545), а конкретно в editor.cpp проводилась по следующей схеме:

1) взял произвольный файл в кодировке ср-1251 (попался под руку editor.cpp из исходников).
2) открыл его в редакторе Far
3) на глаз делим строку примерно пополам, переходим сначала в левую часть, нажимаем Ins, редактируем, выходим по Esc не давая команду сохранить изменения (F2). В итоге получаем ожидаемый запрос сохранения. Значит, эта часть алгоритма работает правильно, проверяем часть вторую.
4) повторяем операцию редактирования после нажатия Ins но, уже в правой половине строки, и также выходим по Esc не давая команду сохранить изменения (F2). В данном случае запрос на сохранение файла не появляется, а сами изменения не сохраняются. Следовательно, ошибка имеет место.
5) согласно инструкции в патче проверил наличие строки 3119:

Код: if (NewLength!=Length || memcmp(CmpStr,NewCmpStr,Length)!=0
Автор: naPmu3aH
Дата сообщения: 01.02.2009 14:20
Victor_VG

Цитата:
Проверка наличия бага mantis#0000716 исходниках Far 2.0.759 (SVN 2545), а конкретно в editor.cpp


Цитата:
Вывод: данный патч необходимо включить в исходный текст editor.cpp, т.к. его алгоритм действительно содержит ошибку описанную в тикете 0000716

Интересно это очередная "рисовка" или случай когда пациент "тихо сам с собою"?
Автор: Victor_VG
Дата сообщения: 01.02.2009 15:41
naPmu3aH

Возьми и проверь. Это тебе надеюсь сделать не сложно? Я вроде всё по полочкам расписал. Ложку уже ко рту поднесли, осталось только проглотить, да и тут лень матушка мешает челюсти открыть.

P.S.

Чем дальше в лес, тем толще и ленивей партизаны...
Автор: naPmu3aH
Дата сообщения: 02.02.2009 18:03
Victor_VG

Цитата:
Возьми и проверь.

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

Мне не нужно чтобы некто озабоченный идеей накормить весь мир быстрее и лучше других пихал мне в рот свою ложку. Я подожду пока мне захочется кушать и будет готова моя порция.
Автор: Victor_VG
Дата сообщения: 02.02.2009 19:05

naPmu3aH

Твои проблемы. Жди. А мне терять данные нет нужды, я проверил, убедился и применил патч. И раз уж ты видел его на мантисе, то скажи по честному все ли баги исправляют быстро? Просто я выполнил независимую проверку, и надеюсь, что это ускорит исправление данного бага. Согласись, "хотелки" и новые функции требуют тщательной проверки, из-за этого могут возникнуть новые ошибки, но если действовать как иные люди, можем получить ошибки ставшие хроническими. Пример - блокировка ядром системы объектов на NTFS даже после того как блокирующий процесс их освободит, либо сам будет завершён. Этому багу на самом деле уже скоро двадцать лет, его истоки лежат ещё в первых альфа версиях ядра Windows NT 3.1 и NTFS, а он благополучно дожил до наших дней. И Микрософт о нём знает, да вот исправлять не торопится. И он не единственный такой. Иные ошибки становятся традиционными, как например не исправленная до сих пор ошибка в реализации протокола аутентификации Kerberos X500 в NT LM, а её так же нашли ещё в 1996 году. Мне бы не хотелось увидеть ещё один такой факт, даже если кого то почему-то он устраивает. Если уж делать вещь - так на совесть, а не халтурить лишь бы отчитаться.

P.S.

И давай если хочешь поговорим об этом в ПМ, зачем тут офтопить? Два последних поста - уже явный перебор с нашей стороны.
Автор: kondrik
Дата сообщения: 03.02.2009 13:40
Подскажите как в Far Manager скопировать выделенные файлы вместе с полными путями. Например, я выполняю поиск файлов в подпапках и вывожу их во временную панель. Потом с этой панели я выделяю необходимые файлы и хочу их скопировать, но необходимо чтобы сохранился полный путь от корня диска.
Такое возможно? Не хотелось бы писать свою программу для такого копирования.
Автор: Victor_VG
Дата сообщения: 03.02.2009 14:10
kondrik

Клавишная комбинация Alt+Shft+Ins скопирует в Буфер Обмена полный путь к файлу. Пример:

D:\Users\gcc\share\bison\location.cc

подойдёт? Работает на панелях, в т.ч. и на Временной, но копируй пути к файлам по одному за операцию. Второй вариант - команды типа Dir/Ls (UNIX), но там придётся их листинг разбирать или макрос свой пиши - в этом я не силён - как-то не было нужды в макроязыке разбираться, увы.
Автор: kondrik
Дата сообщения: 03.02.2009 14:53
придется наверное макросом писать если готового варианта нет.
Автор: novice2
Дата сообщения: 03.02.2009 15:05

Цитата:
но копируй пути к файлам по одному за операцию

у меня Ctrl+Alt+Ins копирует полные пути всех выделенных на панели файлов (FAR 1.71 alpha 4 (build 2449))
Автор: kondrik
Дата сообщения: 03.02.2009 15:15
novice2
нужно создать не спиок файлов, а скопировтьа файлы с сохраненим относительной структуры папок.
Автор: aar
Дата сообщения: 03.02.2009 15:23
novice2

Цитата:
Ctrl+Alt+Ins копирует полные пути всех выделенных на панели файлов


Сколько же я мучился копированием по-одиночке: Ctrl+F, Alt+Ins, Ctrl+Ins...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: Notebook Hardware Control


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