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

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

Автор: Mushroomer
Дата сообщения: 10.01.2009 23:42
KapralBel
Да ну? Если я ничего не путаю, то пути в реестре в Vista отличаются от путей в реестре в Windows XP.
Автор: WARP_ItSelf
Дата сообщения: 11.01.2009 00:12
Mushroomer

Хм. У Far 1.75 и Far 2.0 отличаются. А Vista, причем тут Vista?
Автор: KapralBel
Дата сообщения: 11.01.2009 00:25
А разве человек уточнял, что ему надо под 2ку?
Автор: WARP_ItSelf
Дата сообщения: 11.01.2009 00:37
KapralBel

Ну это я так, на случай атомной войны.
Автор: Victor_VG
Дата сообщения: 11.01.2009 03:39
Ну и от меня, раз обещал для всех сделать - gcc-4.3.2-setup.exe. Это уже не архив, а простенький инсталлятор. Инструкция-описание на сайте. Пользуйтесь, может и пригодится.
Автор: Raimon
Дата сообщения: 11.01.2009 03:57

Цитата:
KapralBel
1. SaveSettings.bat
2. FarSave1.reg + FarSave2.reg
3. RestoreSettings.bat

Если бы было так просто я бы не спрашивал. Не работает
с ХР на ХР - пожалуйста, а на Висту - нифига.

Автор: Victor_VG
Дата сообщения: 11.01.2009 05:08
Провёл серию экспериментов (около 60 для исключения влияния случайных факторов на результат) с отладочными библиотеками. Установлено:

1) Если использовать плугин Advanced Compare собранный в gcc с Far запущенным под ConMan, то при сравнении Far 100% завершается аварийно, отладочный (трап) лог не успевает создаваться в следствии реакции DrWtsn32 на исключение c0000005.
2) Если использовать плугин Advanced Compare собранный в VS8 из ночных сборок, то всё работает нормально вне зависимости от того, запущен ли процесс Far.exe как дочерний процесс ConMan 1.3.4.

Для сравнения в серии использовались как архивы, так и неупакованные каталоги различного уровня вложенности.

Предварительное предположение: ConMan работает не корректно в системе. Возможно, что он как-то портит память процесса Far.exe в системе если в ней установлен SP3 + .NET 3 и выше ( в данный момент стоит DOTNET 3.5.1. Следовательно, влияние MultiArc с высокой степенью вероятности можем из анализа исключить. Предполагаю, что в результате внутренней ошибки связки "ConMan+Far.exe" ConMan затирает память процесса Far.exe что и приводит к перехваченному логу системного отладчика [more=DrWtsn32 (выдержка)]Исключение в приложении:
Прил.: C:\Program Files\Far20\far.exe (pid=4740)
Время: 11.01.2009 @ 05:30:29.671
Номер: c0000005 (нарушение прав доступа)

*----> Сведения о системе <----*
Код сеанса терминала: 0
Число процессоров: 1
Тип процессора: x86 Family 6 Model 10 Stepping 0
Версия Windows: 5.1
Текущая сборка: 2600
Пакет обновления: 3
Текущий тип: Uniprocessor Free


*----> Копия памяти для потока 0x52c<----*

eax=ffffffff ebx=00000000 ecx=00c97970 edx=02a6ba60 esi=00000000 edi=00000000
eip=00000000 esp=0022f468 ebp=00000000 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202

*** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\Far20\far.exe
функция: <nosymbols>
No prior disassembly possible
:
00000000 ?? ???
00000002 ?? ???
00000004 ?? ???
00000006 ?? ???
00000008 ?? ???
0000000a ?? ???
0000000c ?? ???
0000000e ?? ???
СБОЙ -> :
00000000 ?? ???
Error 0x00000001
00000002 ?? ???
00000004 ?? ???
00000006 ?? ???
00000008 ?? ???
0000000a ?? ???
0000000c ?? ???
0000000e ?? ???
00000010 ?? ???
00000012 ?? ???
00000014 ?? ???

*----> Обратная трассировка стека <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr Args to Child
0022f464 00000000 00000000 00000000 00000000 0x0[/more]. Думаю, что с практически 100% уверенностью следует утверждать, что в данном случае в доработке нуждается ConMan затирающий в некоторых случаях память запущенных под ним процессов.
Автор: Mushroomer
Дата сообщения: 11.01.2009 06:04
WARP_ItSelf
Цитата:
А Vista, причем тут Vista
Еще как причем.

Цитата:
Raimon
Господа, как перенести настройки FAR из ХР в Висту???
Автор: Victor_VG
Дата сообщения: 11.01.2009 20:00
Слегка переписал сценарий для сборки - вроде часть вылезших ошибок (например неверное копирование подкаталога MultiArc/Formats) должна исчезнуть: [more=код сценария farbld.cmd]@echo off
@echo Far Manager 2.0 builder
@echo =======================
@echo Please, see this notes. This script is use the relative folders structure on UNC notation.
@echo This script is build Far Manager and some plugins using GNU GCC/MinGW compiller
@echo Please, remove remark of plugin's Compare and EMenu if this plugins is can builds and work's correctly.
@echo Press any key for start SVN check for source code update.
@pause
svn co http://farmanager.com/svn/trunk %TEMP%\fardev
@pause
@echo Please, updates header's for ANSI build use latest
@echo http://www.farmanager.com/nightly.php build version 1.75 - just unpack
@echo all files on Headers.c sub folder in to plugins/common/ascii
@echo and overwrite existing files, then continue build...
@echo off
start http://www.farmanager.com/nightly.php
@pause
make -C fardev/unicode_far -f makefile_gcc WIDE=1 COMMON=../plugins/common
cp -f fardev/unicode_far/Include/*.hpp fardev/plugins/common/unicode
make -C fardev/plugins/common/crt -f makefile_lib_gcc
make -C fardev/plugins/align -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/autowrap -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/brackets -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/compare -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/drawline -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/editcase -f makefile_gcc WIDE=1 COMMON=../common
rem make -C fardev/plugins/emenu -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/farcmds -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/filecase -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/ftp -f makefile_gcc COMMON=../common
make -C fardev/plugins/hlfviewer -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/macroview -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/multiarc -f makefile_gcc_libpcre COMMON=../common
make -C fardev/plugins/multiarc -f makefile_gcc COMMON=../common
make -C fardev/plugins/network -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/proclist -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/tmppanel -f makefile_gcc WIDE=1 COMMON=../common
cd %TEMP%
cd %TEMP%\fardev
mkdir Far\Addons\Headers.c Far\Addons\Headers.p Far\plugins Far\plugins\compare Far\plugins\editor Far\plugins\editor\align Far\plugins\editor\autowrap Far\plugins\editor\brackets Far\plugins\editor\drawline Far\plugins\editor\editcase Far\plugins\editor\hlfviewer Far\plugins\editor\macroview Far\plugins\emenu Far\plugins\farcmds Far\plugins\filecase Far\plugins\ftp Far\plugins\multiarc Far\plugins\multiarc\Formats Far\plugins\network Far\plugins\proclist Far\plugins\tmppanel
cp -f unicode_far/Include/*.hpp Far/Addons/Headers.c
cp -f unicode_far/Include/*.pas Far/Addons/Headers.p
cp -f plugins/align/changelog Far/plugins/compare
cp -f plugins/autowrap/changelog Far/plugins/editor/align
cp -f plugins/brackets/changelog Far/plugins/editor/autowrap
cp -f plugins/compare/changelog Far/plugins/editor/brackets
cp -f plugins/drawline/changelog Far/plugins/editor/drawline
cp -f plugins/editcase/changelog Far/plugins/editor/editcase
cp -f plugins/emenu/changelog Far/plugins/editor/hlfviewer
cp -f plugins/farcmds/changelog Far/plugins/editor/macroview
cp -f plugins/filecase/changelog Far/plugins/emenu
cp -f plugins/ftp/changelog Far/plugins/farcmds
cp -f plugins/hlfviewer/changelog Far/plugins/filecase
cp -f plugins/macroview/changelog Far/plugins/ftp
cp -f plugins/multiarc/changelog Far/plugins/multiarc
cp -f plugins/multiarc/custom.ini Far/plugins/multiarc/Formats
cp -f plugins/network/changelog Far/plugins/network
cp -f plugins/proclist/changelog Far/plugins/proclist
cp -f plugins/tmppanel/changelog Far/plugins/tmppanel
cp -f plugins/changelog plugins Far/plugins
cp -f unicode_far/changelog Far
rm -fR unicode_far/GCC/obj
rm -fR plugins/align/final.32W.gcc/obj
rm -fR plugins/autowrap/final.32W.gcc/obj
rm -fR plugins/brackets/final.32W.gcc/obj
rm -fR plugins/compare/final.32W.gcc/obj
rm -fR plugins/drawline/final.32W.gcc/obj
rm -fR plugins/editcase/final.32W.gcc/obj
rm -fR plugins/emenu/final.32W.gcc/obj
rm -fR plugins/farcmds/final.32W.gcc/obj
rm -fR plugins/filecase/final.32W.gcc/obj
rm -fR plugins/ftp/final.32.gcc/obj
rm -fR plugins/hlfviewer/final.32W.gcc/obj
rm -fR plugins/macroview/final.32W.gcc/obj
rm -fR plugins/multiarc/final.32.gcc/obj
rm -fR plugins/network/final.32W.gcc/obj
rm -fR plugins/proclist/final.32W.gcc/obj
rm -fR plugins/tmppanel/final.32W.gcc/obj
mv -f -t Far unicode_far/GCC/*
mv -f -t Far/plugins/editor/align plugins/align/final.32W.gcc/*
mv -f -t Far/plugins/editor/autowrap plugins/autowrap/final.32W.gcc/*
mv -f -t Far/plugins/editor/brackets plugins/brackets/final.32W.gcc/*
mv -f -t Far/plugins/compare plugins/compare/final.32W.gcc/*
mv -f -t Far/plugins/editor/drawline plugins/drawline/final.32W.gcc/*
mv -f -t Far/plugins/editor/editcase plugins/editcase/final.32W.gcc/*
mv -f -t Far/plugins/emenu plugins/emenu/final.32W.gcc/*
mv -f -t Far/plugins/farcmds plugins/farcmds/final.32W.gcc/*
mv -f -t Far/plugins/filecase plugins/filecase/final.32W.gcc/*
mv -f -t Far/plugins/ftp plugins/ftp/final.32.gcc/*
mv -f -t Far/plugins/editor/hlfviewer plugins/hlfviewer/final.32W.gcc/*
mv -f -t Far/plugins/editor/macroview plugins/macroview/final.32W.gcc/*
mv -f -t Far/plugins/multiarc/Formats plugins/multiarc/final.32.gcc/Formats/*
mv -f -t Far/plugins/multiarc plugins/multiarc/final.32.gcc/*
mv -f -t Far/plugins/network plugins/network/final.32W.gcc/*
mv -f -t Far/plugins/proclist plugins/proclist/final.32W.gcc/*
mv -f -t Far/plugins/tmppanel plugins/tmppanel/final.32W.gcc/*
rm -fR unicode_far/GCC
rm -fR plugins/align/final.32W.gcc
rm -fR plugins/autowrap/final.32W.gcc
rm -fR plugins/brackets/final.32W.gcc
rm -fR plugins/compare/final.32W.gcc
rm -fR plugins/drawline/final.32W.gcc
rm -fR plugins/editcase/final.32W.gcc
rm -fR plugins/emenu/final.32W.gcc
rm -fR plugins/farcmds/final.32W.gcc
rm -fR plugins/filecase/final.32W.gcc
rm -fR plugins/ftp/final.32.gcc
rm -fR plugins/hlfviewer/final.32W.gcc
rm -fR plugins/macroview/final.32W.gcc
rm -fR plugins/multiarc/final.32.gcc
rm -fR plugins/network/final.32W.gcc
rm -fR plugins/proclist/final.32W.gcc
rm -fR plugins/tmppanel/final.32W.gcc
rm -fR unicode_far/GCC
rm -fR unicode_far/Include
make -f unicode_far/makefile_gcc clean
@echo -= Finish =-
@echo Far Manager and plugins is build finished and moved to %TEMP%\fardev\Far dir.
@pause[/more]. Поглядите что стоит добавить. Если есть идеи - реализуем. Всем думаю пригодится.

И ещё, по поводу ConMan: измерение расхода памяти в консольных программах с ConMan и без него показало, что он активно освобождает память запускаемых процессов. При этом видно, что после запуска дочернего процесса ConMan стабилизирует объём памяти выделенной процессу на некотором фиксированном значении вне зависимости от необходимости в расходе памяти процессом. Следовательно, можно предположить, что причина сбоев находится в некорректной работе алгоритма стабилизации объёма памяти запускаемым под ConMan процессов.

P.S.

С Mantis#697 столкнулся при записи образа FreeBSD 7.1 - 7.1-RELEASE-i386-dvd1.iso - было сообщение об ошибке, но я его посчитал последствием сбоя по питанию - напряжение вырубалось.
Автор: KapralBel
Дата сообщения: 11.01.2009 22:59
Raimon
И что дает?
Автор: Victor_VG
Дата сообщения: 12.01.2009 00:17
2All

Маленькая подсказка - не используйте для запуска скриптов содержащих команды UNIX (типа моего farbld.cmd) командные процессоры от JPSoftware 4NT/TCMD - они имеют UNIX подобные команды, но с иным синтаксисом, и в итоге Ваши скрипты могут неверно работать.

И специально отловленный (использовал JP Software TC9) на SVN 2454 лог компиляции (может и пригодится) в [more=GNU GCC-4.3.2 TDM сообщения о ошибках и предупреждения при сборке (остались только в плугинах)]:

Brackets
========

compiling Brackets.cpp
In file included from Brackets.cpp:26:
BrackMix.cpp: In function 'int ShowMenu(int)':
BrackMix.cpp:45: warning: missing braces around initializer for 'FarMenuItem'

FTP
===

compiling ftp_cnDownload.cpp
ftp_cnDownload.cpp: In member function 'void Connection::recvrequestINT(char*, char*, char*, const char*)':
ftp_cnDownload.cpp:177: warning: comparison between signed and unsigned integer expressions
ftp_cnDownload.cpp:189: warning: comparison between signed and unsigned integer expressions
ftp_cnDownload.cpp:212: warning: comparison between signed and unsigned integer expressions
ftp_cnDownload.cpp:223: warning: comparison between signed and unsigned integer expressions
ftp_cnDownload.cpp:234: warning: comparison between signed and unsigned integer expressions
ftp_cnDownload.cpp:258: warning: comparison between signed and unsigned integer expressions

compiling ftp_FAR.cpp
In file included from ftp_FAR.cpp:5:
./FStdLib/mem.inc: In function 'void* operator new(size_t)':
./FStdLib/mem.inc:5: warning: 'operator new' must not return NULL unless it is declared 'throw()' (or -fcheck-new is in effect)
./FStdLib/mem.inc: In function 'void* operator new [](size_t)':
./FStdLib/mem.inc:15: warning: 'operator new' must not return NULL unless it is declared 'throw()' (or -fcheck-new is in effect)

compiling ftp_FileList.cpp
ftp_FileList.cpp: In member function 'void FTP::SaveList(FP_SizeItemList*)':
ftp_FileList.cpp:132: warning: unknown conversion type character 'I' in format
ftp_FileList.cpp:132: warning: too many arguments for format
ftp_FileList.cpp:161: warning: unknown conversion type character 'I' in format
ftp_FileList.cpp:161: warning: too many arguments for format

compiling ftp_FTPConnect.cpp
ftp_FTPConnect.cpp: In member function 'BOOL FTP::DoFtpConnect(int)':
ftp_FTPConnect.cpp:95: warning: comparison between signed and unsigned integer expressions

compiling lib/Notify/nt_Main.cpp
lib/Notify/nt_Main.cpp: In function 'void idNotify(FTNNotify*)':
lib/Notify/nt_Main.cpp:41: warning: format '%I64u' expects type 'unsigned int', but argument 4 has type 'long long int'

MultiArc
========

compiling MultiArc.cpp
In file included from MultiArc.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling arccfg.cpp
In file included from arccfg.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling arccmd.cpp
In file included from arccmd.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling arcget.cpp
In file included from arcget.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling ArcMix.cpp
In file included from ArcMix.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling ArcPlg.cpp
In file included from ArcPlg.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling ArcProc.cpp
In file included from ArcProc.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling arcput.cpp
In file included from arcput.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling arcread.cpp
In file included from arcread.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling arcreg.cpp
In file included from arcreg.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling global.cpp
In file included from global.cpp:1:
multiarc.hpp: In member function 'MAAdvFlags& MAAdvFlags::operator=(int)':
multiarc.hpp:224: warning: dereferencing type-punned pointer will break strict-aliasing rules
compiling MultiArc.rc

compiling targz.cpp
targz.cpp: In function 'long long unsigned int _strtoxq(const char*, const char**, int, int)':
targz.cpp:809: warning: integer overflow in expression
targz.cpp:809: warning: comparison between signed and unsigned integer expressions

NetWork
=======

compiling NetClass.cpp
NetClass.cpp: In constructor 'NetBrowser::NetBrowser()':
NetClass.cpp:181: warning: dereferencing type-punned pointer will break strict-aliasing rules
NetClass.cpp: In member function 'void NetBrowser::GetOpenPluginInfo(OpenPluginInfo*)':
NetClass.cpp:750: warning: dereferencing type-punned pointer will break strict-aliasing rules

ProcList
========

compiling Proclist.cpp
Proclist.cpp: In function 'void dynamic_bind()':
Proclist.cpp:121: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:123: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:125: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:127: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:129: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:133: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:137: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:139: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:141: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:143: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:145: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:149: warning: dereferencing type-punned pointer will break strict-aliasing rules
Proclist.cpp:153: warning: dereferencing type-punned pointer will break strict-aliasing rules

compiling handles.cpp
handles.cpp: In function 'bool GOODSTATUS(DWORD)':
handles.cpp:144: warning: comparison between signed and unsigned integer expressions
handles.cpp: In function 'bool PrintNameByType(void*, WORD, void*, PerfThread*)':
handles.cpp:297: warning: deprecated conversion from string constant to 'TCHAR*'
handles.cpp:300: warning: deprecated conversion from string constant to 'TCHAR*'
handles.cpp:305: warning: deprecated conversion from string constant to 'TCHAR*'
handles.cpp:307: warning: deprecated conversion from string constant to 'TCHAR*'
handles.cpp:308: warning: deprecated conversion from string constant to 'TCHAR*'
handles.cpp: In function 'wchar_t* GetUserAccountID()':
handles.cpp:512: warning: deprecated conversion from string constant to 'wchar_t*'

compiling Pcfg.cpp
Pcfg.cpp: In function 'int Config()':
Pcfg.cpp:56: warning: deprecated conversion from string constant to 'TCHAR*'
Pcfg.cpp:56: warning: deprecated conversion from string constant to 'TCHAR*'
Pcfg.cpp:56: warning: deprecated conversion from string constant to 'TCHAR*'

compiling Pclass.cpp
Pclass.cpp: In member function 'void Plist::GetOpenPluginInfo(OpenPluginInfo*)':
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp:342: warning: deprecated conversion from string constant to 'wchar_t*'
Pclass.cpp: In function 'BOOL EnumWndProc(HWND__*, LPARAM)':
Pclass.cpp:361: warning: suggest parentheses around && within ||
Pclass.cpp: In member function 'int Plist::GetFindData(PluginPanelItem*&, int&, int)':
Pclass.cpp:393: warning: deprecated conversion from string constant to 'TCHAR*'
Pclass.cpp:413: warning: deprecated conversion from string constant to 'TCHAR*'
Pclass.cpp: In member function 'int Plist::GetFiles(PluginPanelItem*, int, int, const wchar_t**, int, _Opt&)':
Pclass.cpp:642: warning: dereferencing type-punned pointer will break strict-aliasing rules
Pclass.cpp: In member function 'bool Plist::Connect(const TCHAR*, const TCHAR*, const TCHAR*)':
Pclass.cpp:955: warning: deprecated conversion from string constant to 'WCHAR*'
Pclass.cpp: In member function 'int Plist::ProcessKey(int, unsigned int)':
Pclass.cpp:1016: warning: suggest parentheses around && within ||
Pclass.cpp:1056: warning: missing braces around initializer for 'InitDialogItem'
Pclass.cpp:1119: warning: deprecated conversion from string constant to 'TCHAR*'
Pclass.cpp:1119: warning: deprecated conversion from string constant to 'TCHAR*'
Pclass.cpp:1119: warning: deprecated conversion from string constant to 'TCHAR*'
Pclass.cpp:1255: warning: suggest parentheses around && within ||
Pclass.cpp:1446: warning: comparison between signed and unsigned integer expressions

compiling perfthread.cpp
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp:34: warning: deprecated conversion from string constant to 'TCHAR*'
perfthread.cpp: In member function 'ProcessPerfData* PerfThread::GetProcessData(DWORD, DWORD) const':
perfthread.cpp:169: warning: suggest parentheses around && within ||

compiling PlistNT.cpp
PlistNT.cpp: In function 'BOOL GetListNT(PluginPanelItem*&, int&, PerfThread&)':
PlistNT.cpp:326: warning: dereferencing type-punned pointer will break strict-aliasing rules
PlistNT.cpp:326: warning: dereferencing type-punned pointer will break strict-aliasing rules
PlistNT.cpp: In function 'void GetOpenProcessDataNT(void*, TCHAR*, DWORD, TCHAR*, DWORD, TCHAR*, DWORD, TCHAR**, wchar_t**)':
PlistNT.cpp:362: warning: missing braces around initializer for 'LIST_ENTRY'
PlistNT.cpp: In function 'void DumpNTCounters(void*, PerfThread&, DWORD, DWORD)':
PlistNT.cpp:584: warning: dereferencing type-punned pointer will break strict-aliasing rules
PlistNT.cpp:600: warning: dereferencing type-punned pointer will break strict-aliasing rules
PlistNT.cpp:600: warning: dereferencing type-punned pointer will break strict-aliasing rules[/more]. Коли надо полный лог сохранил, но он эдак раза в четыре с гаком побольше будет (887 строк) и не столь читабелен (для удобства чтения вставил разделители и имена плугинов) .
Автор: Raimon
Дата сообщения: 12.01.2009 01:21
KapralBel

Цитата:
И что дает?

Кто даёт?
Автор: Victor_VG
Дата сообщения: 12.01.2009 03:36
Raimon

На что система ругается? Какие сообщения об ошибках выводит? Так более понятен вопрос?
Автор: KapralBel
Дата сообщения: 12.01.2009 06:55
Raimon
В чем проблема переноса?
не заносятся данные в реестр? и что при этом выдает
какие симптомы?
Автор: nikrons
Дата сообщения: 13.01.2009 10:59
С недавних пор настроил в Far плугин 7z464, всё работало нормально, а сегодня столкнулся с проблемой распаковки file.arj, file.a01, file.a02, т.е. он распаковывает каждый из этих файлов, а не итоговый. Multiarc плугин работает нормально. Может есть какие-то настройки ?
Автор: Victor_VG
Дата сообщения: 13.01.2009 14:01
nikrons

Используй не родной, а 7-Zip Alternative в масках файлов (в его настройке) убираешь те форматы, которые плугин не должен обрабатывать и снимаешь флажок "использовать по умолчанию". Тогда приоритеты вызовов будут такие: MultiArc -> 7-Zip Alternative. Для версии 1.75 старший билд плугина 5. Найдёшь на сайте, нет, и если CrOm-83 не будет возражать - стучись в ПМ. Он автор, и решать можно ли раздавать его труд другим - только ему. Я слишком высоко оцениваю его профессиональный уровень чтобы класть ему подобную свинью.
Автор: pzaytsev
Дата сообщения: 14.01.2009 07:38
Привет всем!
Имеется файл, на который установлены Hardlink. В 9-м режиме просмотра панелей я вижу, что у данного файла 3 связи. Вопрос - каким образом в FAR можно увидеть где находятся остальные 2 ссылки на файл?
Может кто-то какой-то плагин знает по этому поводу?
Автор: Victor_VG
Дата сообщения: 14.01.2009 08:38
pzaytsev

Есть такой зверь - плугин NTFS File Information. В режиме просмотра метаданных увидишь и куда линки кинуты. Плугин доступен с офсайта. У меня стоит версия 4.2.1 под Far 2.0.732 SVN 2470 с патченными исходниками Network и FARCmds. Вопросов по его работе пока не имею.

Правда, есть такое неудобство в TMPPanel как запоминание состояния на момент помещения на неё объектов. Дальше можно выполнять любые файловые операции, и состояние панели не изменится, в том числе и по Ctrl-R. Не действительные записи с неё можно только руками по F7 удалить. Хотелось бы как минимум иметь возможность её обновления по Ctrl+R, об отслеживании состояния файловой системы я понимаю, говорить пока рано - работы полно, и много более срочной чем данная хотелка.
Автор: pzaytsev
Дата сообщения: 14.01.2009 11:43
Victor_VG
Спасибо!! Меня вполне устроил плагин NTFS File Information

Добавлено:
Хотя, ИМХО, данная фича достойна отображения по Ctrl+A, пусть даже с дополнительной кнопкой. Ведь Far показывает реальное местоположение симлинков безо всяких плагинов. Следуя этой логике, там могла бы быть и информация по хардлинкам.
Автор: zg
Дата сообщения: 14.01.2009 12:55
pzaytsev

Цитата:
Ведь Far показывает реальное местоположение симлинков безо всяких плагинов.
для симлинка эта информация известна.

Цитата:
Следуя этой логике, там могла бы быть и информация по хардлинкам.
для хардлинка такой информации нет. надо сканировать mtf.

Автор: Victor_VG
Дата сообщения: 14.01.2009 16:39
pzaytsev

Нет, из хардлинка информацию так просто не вытянешь. Только сканировать структуры файловой системы, в этом zg абсолютно прав. Симлинк это простой указатель, фактически тот же ярлык - информация о целевом объекте хранится в нём самом в виде UNC пути, и её не сложно прочитать, а хардлинк это запись в структуре дерева каталогов файловой системы и его формат и сам факт существования зависит от её свойств. Так что, хочешь не хочешь, а придётся файловую систему сканировать. И добро, если её дерево простое, с малым числом узлов. А если это сложная структура типа NFS-дерева с кучей клиентов-поддеревьев? Представляешь себе сложность задачи? Пройтись по всем поддеревьям от корневого узла до конечных файлов-листьев. А если их не десятки - сотни тысяч, а несколько сотен триллионов, как обычно бывает в таких структурах? Тогда у тебя время сканирования, а соответственно и период достоверного обновления состояния панелей файл менеджера может стать не соизмеримым со временем изменения структуры файловой системы, и задача отображения актуального состояния дерева в реальном времени станет не разрешимой.
Автор: DrKnS
Дата сообщения: 14.01.2009 18:34

Цитата:

Цитата: Следуя этой логике, там могла бы быть и информация по хардлинкам.
для хардлинка такой информации нет. надо сканировать mtf.
Автор: pzaytsev
Дата сообщения: 14.01.2009 18:47
Victor_VG
В теории файловых систем я слабо подкован. Но теория баз данных говорит, что что в сложных/древовидных структурах должен существовать индекс для ускорения поиска данных.
В подтверждение моих слов упомянутый нами плагин умеет это делать быстро . Причем количество файлов на диске измеряется миллионами. Тупой перебор "While not EOF" не дал бы такой скорости поиска.

Добавлено:
DrKnS
Стесняюсь заметить, но в плаге что-то работает. И Ось - WinXP SP2
Автор: Victor_VG
Дата сообщения: 14.01.2009 19:36
DrKnS
pzaytsev

Всё верно, мы все говорим об одном и том же, но разными словами. Тупой перебор, да приводит к большой длительности процесса. Поиск средствами алгоритмов типа b-tree ускорит этот процесс, хотя он и останется сложным. Именно для ускорения поиска и нужен индекс, но при большом его объёме нам всё равно потребуется большое время на поиск в разветвлённой файловой системе. И тут DrKnS ты прав - в Vista реализована часть функционала UNIX, но мы просто упустили из виду, что NTFS изначально имеет средства поддержки хард- и симлинков. Другое дело, что эти функции не были реализованы, да это не наша вина. Работаем с чем есть, увы.

DrKnS

Твой патч попробовал, многие проблемы спасибо, решаются, но вот как бы нам решить проблему с обновлением TMPPanel. У меня сейчас никаких идей нет. Только на тебя вся надежда. Помоги пожалуйста.
Автор: DrKnS
Дата сообщения: 14.01.2009 20:08
pzaytsev

Ну так плагин как раз мфт ручками и сканирует.
Автор: zg
Дата сообщения: 14.01.2009 20:57
pzaytsev

Цитата:
В подтверждение моих слов упомянутый нами плагин умеет это делать быстро.
дело не в скорости. дело в прямом доступе к mft. по мне — это хак, место которому как раз в плагине.
Автор: pzaytsev
Дата сообщения: 14.01.2009 21:32
zg
Quod licet Jоvi, non licet bovi? (лат. «Что дозволено Юпитеру, не дозволено быку»)
Что разрешено Биллу, то нельзя Фару?

Добавлено:
Извините, что так резко, но в винде вообще нет интерфейса для создания сим/хард-линков. А в Фаре - есть. Так что, фар-тим после этого - "грязные хакеры"?

Добавлено:
За 15 лет программирования встречался со всяким. Но если ты программой не удовлетворил конечного юзера - грош цена твоей работе. Программист пишет не для себя, а для других. И если для полного "кайфа" нужно совсем чуть-чуть вывернуться наизнанку - каждый уважающий себя программер пойдет на это.

Добавлено:
Опять же - я не силен в теории файловых систем. Если в базе данных есть индекс, то поиск по нему происходит очень быстро. На несколько порядков быстрее, чем при брутальном переборе.
Знаете детскую задачку - угадать загаданное число от 1 до 1000. Тот кто загадал отвечет на предположение только "больше", "меньше" или "угадал". И за сколько предположений угадывается число? Максимум за 10 итераций. Все поняли почему. Так же происходит и при поиске по индексу. И это если не использовать хитрые алгоритмы.
Автор: zg
Дата сообщения: 14.01.2009 23:32
pzaytsev

Цитата:
Извините, что так резко, но в винде вообще нет интерфейса для создания сим/хард-линков. А в Фаре - есть. Так что, фар-тим после этого - "грязные хакеры"?
в винде есть интерфейс для создания симлинков/хардлинков.
Автор: Victor_VG
Дата сообщения: 15.01.2009 00:08
GCC майки поменялись, поправил и скрипт для сборки Far силами gcc. Лучше всего кинуть его в каталог gcc/bin (mmsus/bin), дабы с cmd/4NT/tc не дрался за команды.
[more=Скрипт для сборки farbld.cmd]@echo off
@echo Far Manager 2.0 builder
@echo =======================
@echo Please, see this notes. This script is use the relative folders structure on UNC notation.
@echo This script is build Far Manager and some plugins using GNU GCC/MinGW compiller
@echo Please, remove remark of plugin's Compare and EMenu if this plugins is can builds and work's correctly.
@echo Press any key for start SVN check for source code update.
@pause
svn co http://farmanager.com/svn/trunk %TEMP%\fardev
@pause
@echo Please, updates header's for ANSI build use latest
@echo http://www.farmanager.com/nightly.php build version 1.75 - just unpack
@echo all files on Headers.c sub folder in to plugins/common/ascii
@echo and overwrite existing files, then continue build...
@echo off
start http://www.farmanager.com/nightly.php
@pause
cd %TEMP%
make -C fardev/unicode_far -f makefile_gcc WIDE=1 COMMON=../plugins/common
cp -f fardev/unicode_far/Include/*.hpp fardev/plugins/common/unicode
make -C fardev/plugins/common/crt -f makefile_lib_gcc
make -C fardev/plugins/align -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/autowrap -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/brackets -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/compare -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/drawline -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/editcase -f makefile_gcc WIDE=1 COMMON=../common
rem make -C fardev/plugins/emenu -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/farcmds -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/filecase -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/ftp -f makefile_gcc COMMON=../common
make -C fardev/plugins/hlfviewer -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/macroview -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/multiarc -f makefile_gcc_libpcre COMMON=../common
make -C fardev/plugins/multiarc -f makefile_gcc COMMON=../common
make -C fardev/plugins/network -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/proclist -f makefile_gcc WIDE=1 COMMON=../common
make -C fardev/plugins/tmppanel -f makefile_gcc WIDE=1 COMMON=../common
cd %TEMP%
cd %TEMP%\fardev
mkdir Far\Addons\Headers.c Far\Addons\Headers.p Far\plugins Far\plugins\compare Far\plugins\editor Far\plugins\editor\align Far\plugins\editor\autowrap Far\plugins\editor\brackets Far\plugins\editor\drawline Far\plugins\editor\editcase Far\plugins\editor\hlfviewer Far\plugins\editor\macroview Far\plugins\emenu Far\plugins\farcmds Far\plugins\filecase Far\plugins\ftp Far\plugins\ftp\lib Far\plugins\multiarc Far\plugins\multiarc\Formats Far\plugins\network Far\plugins\proclist Far\plugins\tmppanel
cp -f unicode_far/Include/*.hpp Far/Addons/Headers.c
cp -f unicode_far/Include/*.pas Far/Addons/Headers.p
cp -f plugins/align/changelog Far/plugins/compare
cp -f plugins/autowrap/changelog Far/plugins/editor/align
cp -f plugins/brackets/changelog Far/plugins/editor/autowrap
cp -f plugins/compare/changelog Far/plugins/editor/brackets
cp -f plugins/drawline/changelog Far/plugins/editor/drawline
cp -f plugins/editcase/changelog Far/plugins/editor/editcase
cp -f plugins/emenu/changelog Far/plugins/editor/hlfviewer
cp -f plugins/farcmds/changelog Far/plugins/editor/macroview
cp -f plugins/filecase/changelog Far/plugins/emenu
cp -f plugins/ftp/changelog Far/plugins/farcmds
cp -f plugins/hlfviewer/changelog Far/plugins/filecase
cp -f plugins/macroview/changelog Far/plugins/ftp
cp -f plugins/multiarc/changelog Far/plugins/multiarc
cp -f plugins/multiarc/custom.ini Far/plugins/multiarc/Formats
cp -f plugins/network/changelog Far/plugins/network
cp -f plugins/proclist/changelog Far/plugins/proclist
cp -f plugins/tmppanel/changelog Far/plugins/tmppanel
cp -f plugins/changelog plugins Far/plugins
cp -f unicode_far/changelog Far
rm -fR unicode_far/Release.32.gcc/obj
rm -fR plugins/align/final.32W.gcc/obj
rm -fR plugins/autowrap/final.32W.gcc/obj
rm -fR plugins/brackets/final.32W.gcc/obj
rm -fR plugins/compare/final.32W.gcc/obj
rm -fR plugins/drawline/final.32W.gcc/obj
rm -fR plugins/editcase/final.32W.gcc/obj
rem rm -fR plugins/emenu/final.32W.gcc/obj
rm -fR plugins/farcmds/final.32W.gcc/obj
rm -fR plugins/filecase/final.32W.gcc/obj
rm -fR plugins/ftp/final.32.gcc/obj
rm -fR plugins/hlfviewer/final.32W.gcc/obj
rm -fR plugins/macroview/final.32W.gcc/obj
rm -fR plugins/multiarc/final.32.gcc/obj
rm -fR plugins/network/final.32W.gcc/obj
rm -fR plugins/proclist/final.32W.gcc/obj
rm -fR plugins/tmppanel/final.32W.gcc/obj
mv -f -t Far unicode_far/Release.32.gcc/*
mv -f -t Far/plugins/editor/align plugins/align/final.32W.gcc/*
mv -f -t Far/plugins/editor/autowrap plugins/autowrap/final.32W.gcc/*
mv -f -t Far/plugins/editor/brackets plugins/brackets/final.32W.gcc/*
mv -f -t Far/plugins/compare plugins/compare/final.32W.gcc/*
mv -f -t Far/plugins/editor/drawline plugins/drawline/final.32W.gcc/*
mv -f -t Far/plugins/editor/editcase plugins/editcase/final.32W.gcc/*
rem mv -f -t Far/plugins/emenu plugins/emenu/final.32W.gcc/*
mv -f -t Far/plugins/farcmds plugins/farcmds/final.32W.gcc/*
mv -f -t Far/plugins/filecase plugins/filecase/final.32W.gcc/*
mv -f -t Far/plugins/ftp plugins/ftp/final.32.gcc/*
mv -f -t Far/plugins/editor/hlfviewer plugins/hlfviewer/final.32W.gcc/*
mv -f -t Far/plugins/editor/macroview plugins/macroview/final.32W.gcc/*
mv -f -t Far/plugins/multiarc/Formats plugins/multiarc/final.32.gcc/Formats/*
mv -f -t Far/plugins/multiarc plugins/multiarc/final.32.gcc/*
mv -f -t Far/plugins/network plugins/network/final.32W.gcc/*
mv -f -t Far/plugins/proclist plugins/proclist/final.32W.gcc/*
mv -f -t Far/plugins/tmppanel plugins/tmppanel/final.32W.gcc/*
rm -fR unicode_far/Release.32.gcc
rm -fR plugins/align/final.32W.gcc
rm -fR plugins/autowrap/final.32W.gcc
rm -fR plugins/brackets/final.32W.gcc
rm -fR plugins/compare/final.32W.gcc
rm -fR plugins/drawline/final.32W.gcc
rm -fR plugins/editcase/final.32W.gcc
rem rm -fR plugins/emenu/final.32W.gcc
rm -fR plugins/farcmds/final.32W.gcc
rm -fR plugins/filecase/final.32W.gcc
rm -fR plugins/ftp/final.32.gcc
rm -fR plugins/hlfviewer/final.32W.gcc
rm -fR plugins/macroview/final.32W.gcc
rm -fR plugins/multiarc/final.32.gcc
rm -fR plugins/network/final.32W.gcc
rm -fR plugins/proclist/final.32W.gcc
rm -fR plugins/tmppanel/final.32W.gcc
rm -fR unicode_far/Release.32.gcc
rm -fR unicode_far/Include
make -f unicode_far/makefile_gcc clean
@echo -= Finish =-
@echo Far Manager and plugins is build finished and moved to %TEMP%\fardev\Far dir.
@pause
exit[/more]

zg

Да, но тут мы снова упираемся в то, что это по большому счёту API драйвера. И много ли пользователей смогут написать например что-то типа драйвера ядра для обработки нестандартных исключений ввода-вывода, вдобавок работающего при замаскированных прерываниях кроме прерываний от схем контроля и в кольце ноль с приоритетом реального времени и в привилегированном режиме работы ЦП? Да ещё и самостоятельно всё это получающим и с минимальным размером кода и расходом памяти. Ну, так байт на 250 - 300? И на чём такую задачу они будут решать? У меня где-то валяется код такого драйвера для OS/370 SVM написанный мной на ассемблере ещё в 1984 году. Как раз 200 байт. И пошёл сразу, без ошибок, даже отладки не потребовалось. На его написание у меня тогда было 10 минут. Сделал, отдал, работает, может и до сих пор. И потому и ставлю вопрос так - сложность задачи реально много выше средней, хотя часть её снимает API HAL, ядра и подсистемы ввода/вывода ОС. А коли в задаче надо это реализовать минуя средства API? Военные например такие вещи любят, в авиации так приходится делать, в энергетике - система имеет слишком большое и не детерминированное время ответа, даже для универсальной системы не промышленного и специального применения. О реальном времени и говорить не чего - Windows в нём не работоспособна - архитектура иная, в ней реальное время не предусмотрено.
Автор: Victor_VG
Дата сообщения: 15.01.2009 02:16
DrKnS

Глянь пожалуйста код farwinapi.cpp - FindFirstFileNameW не определена:

Цитата:
compiling farwinapi.cpp
farwinapi.cpp: In function 'void* apiFindFirstFileName(const WCHAR*, DWORD, UnicodeString&)':
farwinapi.cpp:608: error: 'FindFirstFileNameW' was not declared in this scope
make[1]: *** [Release.32.gcc/obj/farwinapi.o] Error 1
make[1]: Leaving directory `/j/Temp/fardev/unicode_far'
make: *** [all] Error 2


Конкретно проблемные место:

Код: HANDLE apiFindFirstFileName(LPCWSTR lpFileName,DWORD dwFlags,string& strLinkName)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

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


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