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

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

Автор: AlVlS
Дата сообщения: 22.02.2009 13:54
Кэш очисти.
Автор: Victor_VG
Дата сообщения: 22.02.2009 15:47
AlVlS

Ты прав. но точное место где возникает ошибка я нашёл - это не враппер как я считал, а плугин verinfo.dll, а если ещё точнее, то его русский языковый файл VerInfoRus.lng, конкретно вот этот блок:

Цитата:
.Language=Russian,Russian (Русский)
"Язык :"
"Название продукта:"
"Версия продукта :"
"Описание файла :"
"Версия файла :"
"Оригинальное имя :"
"Внутреннее имя :"
"Компания :"
"Копирайт :"
"Торговая марка :"
"Комментарий :"

Замена его значений на английские мгновенно снимает проблему. А это уже повод для подробного исследования причины её возникновения. Сброс кэша плугинов у меня делается автоматически при установке - я этот фокус знаю, и в скрипте стоит команда удаления кэша:

Код: Section -Post
DeleteRegKey HKCU "Software\Far2\PluginsCache"
...
Автор: Victor_VG
Дата сообщения: 23.02.2009 03:58
Far 2.0 alpha build 785/786 x86

Баг в функции IsSlash() - пошёл сразу после билда 784 - в 785 и 786. Проявляется при копировании или пересылке файлов в подкаталог USB Flash/IEEE-1394 носителя с файловой системой FAT/FAT32. На жёсткие диски с файловой системой NTFS ошибка не воздействует, хотя лишний слэш в конце имени каталога назначения всё равно добавляет в формате <каталог_приёмник>\<имя_файла_источника>. Жирным выделен именно этот лишний слэш. Скриншот снимался на "чистой" машине, всё ключи настроек Far там предварительно были удалены. Лишний вставленный слэш виден в пути - N:\Far\Bin\\far-2.0.786-gcc.rar и вызывает ошибку копирования начиная с билда 785. В 786 она видна на снимке. До 784.2603 включительно ошибки нет, и введение новой функции позволяет однозначно локализовать точку ошибки в её вызове. Проявление ошибки не зависит от способа сборки бинарных модулей SVN ревизий 2605/2608 она проявляется и в сборке с офсайта, и в gcc сборке и в тестовых MS VC++ 9 сборках, следовательно это ошибка алгоритма копирования, а не компиляции или настроек.



Более того, ошибка находится в файле copy.cpp, скорее всего в строках 2087 - 2088:

Код: if (IsSlash(strDestPath.At(Length-1)) && strDestPath.At(Length-1)!=L':')
strDestPath += L"\\";.
Автор: Victor_VG
Дата сообщения: 23.02.2009 11:20
2.0.787.2610

DrKnS СПАСИБО! С праздником тебя, дружище! Опечатку видел, где и говорили. Досадно, но бывает. Главное, собрал тестовый Far.exe - работает без замечаний. Ещё раз с Праздником!


И ещё, ребята переслали в качестве подарка:

В итоге, давно я так не смеялся:

Цитата:
Mantis#0000752: hex view on utf8 files shows each byte as 0x00
Description: When viewing an utf8 file, and switching to hex view (F4), all data shows as 00.
Is this the best way to handle this sort of situation?

Example:
0000000000: 00 00 00 00 00 00 &#9474; ?&#225;&#233;&#237;&#243;&#250;

When using shift+F8 to change codepage to ANSI, it displays corectly.
When using F8 to switch between ANSI/OEM, it switches to ascii display and works too.
Steps To Reproduce:
Additional Information: To reproduce:
1. create new file with encoding set to UTF-8
2. write something and save
3. view the new file in hex mode (F3, then F4)

Файл-то пустой, чего ещё от него ждать кроме 00 00 00 00 00 00? Короче, бред сивой кобылы этот баг репорт. Может создадим музей пользовательских ошибок? Это точно туда кандидат в раздел - САМАЯ БОЛЬШАЯ ГЛУПОСТЬ.
Автор: Victor_VG
Дата сообщения: 24.02.2009 14:03
Снова "здорово!" одно чиним, остальное ломаем.

Цитата:
------ Build started: Project: EMenu, Configuration: Release Unicode Win32 ------
Compiling...
auto_sz.cpp
Plugin.cpp
.\Plugin.cpp(800) : error C2065: 'FCTL_FREEPANELITEM' : undeclared identifier
.\Plugin.cpp(835) : error C2065: 'FCTL_FREEPANELITEM' : undeclared identifier
.\Plugin.cpp(869) : error C2065: 'FCTL_FREEPANELITEM' : undeclared identifier
Pidl.cpp
OleThread.cpp
MenuDlg.cpp
FarMenu.cpp
EMenu.cpp
Generating Code...
Build log was saved at "file://j:\Temp\17\fardev\emenu\obj\BuildLog.htm"
EMenu - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

И где сегодня собака порылась? В gcc не собирается, в MS VC++ 9.0 так же. Последний нормально собравшийся билд 2613, хотя с привычной уже руганью.

Цитата:
svs 24.02.2009 11:49:33 +0300 - build 791

1. Macro: N=atoi(S[,radix])
radix=0 ==> autodetect

yjh 24.02.2009 08:56:09 +0300 - build 790

1. Предупреждения кастингов в 64-бит

zg 23.02.2009 23:08:36 +0200 - build 789

1. FCTL_FREEPANELITEM больше нет. FCTL_GET[SELECTED|CURRENT]PANELITEM возвращают необходимый размер буфера.
все плагины, использовавшие FCTL_* - сломались.

Теперь может помочь только правка исходников авторами. Ребята, поправьте пожалуйста быстрее...

В 793 SVN 2627 ситуация на данный момент та же. Ждём изменений и ASCII SVN-2531 от 24.02.2009 - список изменений уже видел, понял, без Вас лезть не считаю возможным дабы дров не наломать. Попытался grep поискать FCTL_FREEPANELITEM - не нашла, как понимаю надо эту структуру где-то явно объявить?
Автор: Benchmark
Дата сообщения: 24.02.2009 15:10
Еще одна ошибка, связанная с просмотром UTF-8.

Берем любой текстовый файл в UTF-8, жмем просмотр F3, а затем жмем F4 (hex view). Вместо 16-ричного вида файла видим полный бред.

С другими форматами такой ошибки не возникает.
Автор: Victor_VG
Дата сообщения: 24.02.2009 15:29
Benchmark

Похоже на Mantis#0000752? Но, тогда там парень методику проверки описал не верно. Если создать пустой в UTF-8, то при сохранении 2.0.788 сохраняет 3 байта с кодом 0х000000 (это он показывает), т.е. в заголовок пустой заготовки записывает неверный BOM, а просмотр в любом HEX редакторе выводит иной код первых трёх байт 0хEFBBBF. И т.к. это наблюдается в в любом из тестированных Hex-редакторов и на Win и на BSD, то я считаю, что вьер Far.exe неверно интерпретирует Hex-значения, по крайней мере в первых байтах блока. Думаю, что дальше смотреть не стоит, а надо проверить алгоритм в Hex-просмотре. Где-то он ошибается.
Автор: sabio
Дата сообщения: 24.02.2009 17:01
Victor_VG
как-то мне все больше это оффтопиком кажется..
может, вам со всеми этими постами лучше переехать в форум самого Far?
ну или здесь создать новый топик, типа "Баги и исправления Far 2.0"

как-то не очень правильно, по-моему, обсуждать "Mantis#0000752" в теме про "плагины и настройки"
Автор: Victor_VG
Дата сообщения: 24.02.2009 17:36
sabio

Ну, тут ты наверное прав. Пошли в ПМ - подумаем. Не против?

Всё, проблема с EMenu решена в SVN 2632. DrKnS - СПАСИБО!

На данный момент не работают в новом (Far 2.0.796 SVN 2634): FarHints (UNICODE) 1.1.2 - хотя не вышибает Far, но ничего не выводит кроме общих данных о каталогах, да и у тех по нему размер и количество файлов в них равны нулю. qPleayEx, 7-Zip Alternative, Opera Cach - ждите, скоро будут переписаны, говорил с CrOm-ом, не дёргайте парня, как сделает - выложит.

WM Explorer и NTFS File Info - оба обновлены. DVDPanel, FontMan - требуют обновления. Font Manager хинт выводит, но если попытаться посмотреть свойства шрифта сразу Far.exe вышибает. Старые (ANSII) плугины вроде в большинстве своём работают. Пока бегло проверил - DriveInfo, Recycle Bin - эти работают, а Registry Brouser может и сбойнуть иной раз. Причины пока не понял. YAC похоже работает, но я им не пользуюсь, потому особо не проверял.
Автор: zg
Дата сообщения: 25.02.2009 00:22
Victor_VG

Цитата:
И где сегодня собака порылась? В gcc не собирается
научи emenu gcc собирать.
Автор: Victor_VG
Дата сообщения: 25.02.2009 01:19
zg

Подскажи пожалуйста что исправить:

EMenu.gcc.def:

Цитата:
EXPORTS
GetMinFarVersion=GetMinFarVersion@0
SetStartupInfo=SetStartupInfo@4
GetPluginInfo=GetPluginInfo@4
OpenPlugin=OpenPlugin@8
Configure=Configure@4
ExitFAR=ExitFAR@0

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

Буду рад подсказке. Вот лог:

Цитата:
$make -f makefile_gcc WIDE=1 COMMON=../common
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

Переменные я эти смотрел, определены через библиотеки MS VC++ и подстановка не помогает.
Автор: zg
Дата сообщения: 25.02.2009 12:31
Victor_VG

Цитата:
Подскажи пожалуйста что исправить
вопрос был к тебе. emenu gcc никогда не собирался. ты ноешь, что поломали в том числе и сборку gcc. так что это ты подсказывай, что исправить, чтобы gcc emenu собирал.
Автор: Victor_VG
Дата сообщения: 25.02.2009 13:52
zg

Вот на что ругается компилятор - неопределённые переменные, в том числе и TCHAR. Они определены через инклюды в MS VC++ 9. Мог бы ты правильно прописать их в *.hpp для gcc? Тогда соберётся. Майки я перепроверил - вроде нет в них ошибок. Дальше это выходит за пределы моих знаний, и потому прошу тебя помочь. Будь добр, помоги пожалуйста.
Автор: zg
Дата сообщения: 25.02.2009 23:25
Victor_VG ты в сторону не уходи. сначала за слова свои ответь, а уж потом фичи проси.
Автор: Victor_VG
Дата сообщения: 26.02.2009 18:19
zg

А я именно про то и говорю - посмотри сам список переменных и функций которые gcc считает не определёнными: wchar, empty_wstr, TCHAR*, arrLen. В итоге компиляция прерывается на FarMenu.cpp строка 146. Дальше как я понимаю встаёт задача их определить. Правильно? Если я не верно понял, то поправь меня, хорошо? Я понял это так, что в одном из FarMenu.hpp данные переменные и функции для gcc должны быть явно объявлены, а для MS VC++ это не требуется поскольку их объявления описаны в его инклюдах. Правильно или нет? Может я неверно трактую логи компилятора?
Автор: Victor_VG
Дата сообщения: 28.02.2009 02:15
Сломался FarCase - SVN 2646

Вот лог ошибок сформированный gcc:

Цитата:
$make -f makefile_gcc WIDE=1 COMMON=../common
compiling FileCase.cpp
In file included from FileCase.cpp:28:
filecvt.cpp: In function 'void CaseConvertion()':
filecvt.cpp:180: error: jump to label 'done'
filecvt.cpp:98: error: from here
filecvt.cpp:129: error: crosses initialization of 'wchar_t* CurDir'
filecvt.cpp:128: error: crosses initialization of 'int Size'
filecvt.cpp:120: error: crosses initialization of 'const TCHAR* MsgItems [2]'
filecvt.cpp:119: error: crosses initialization of 'void* hScreen'
filecvt.cpp:180: error: jump to label 'done'
filecvt.cpp:95: error: from here
filecvt.cpp:129: error: crosses initialization of 'wchar_t* CurDir'
filecvt.cpp:128: error: crosses initialization of 'int Size'
filecvt.cpp:120: error: crosses initialization of 'const TCHAR* MsgItems [2]'
filecvt.cpp:119: error: crosses initialization of 'void* hScreen'
filecvt.cpp:180: error: jump to label 'done'
filecvt.cpp:88: error: from here
filecvt.cpp:129: error: crosses initialization of 'wchar_t* CurDir'
filecvt.cpp:128: error: crosses initialization of 'int Size'
filecvt.cpp:120: error: crosses initialization of 'const TCHAR* MsgItems [2]'
filecvt.cpp:119: error: crosses initialization of 'void* hScreen'
filecvt.cpp:180: error: jump to label 'done'
filecvt.cpp:81: error: from here
filecvt.cpp:129: error: crosses initialization of 'wchar_t* CurDir'
filecvt.cpp:128: error: crosses initialization of 'int Size'
filecvt.cpp:120: error: crosses initialization of 'const TCHAR* MsgItems [2]'
filecvt.cpp:119: error: crosses initialization of 'void* hScreen'
make: *** [final.32W.gcc/obj/FileCase.o] Error 1

Но, собрался в MS VC++ 9, хотя не полностью. Сравнение вывода команды ls >> ../ls.txt для обоих вариантов ниже:

SVN 2645

CaseEng.hlf
CaseEng.lng
CaseRus.hlf
CaseRus.lng
FileCase.dll
FileCase.map

SVN 2646

CaseEng.lng
CaseRus.lng
FileCase.dll
FileCase.exp
FileCase.lib
FileCase.map
changelog

В итоге потерялись *.hlf файлы, а сам плугин не собирается из-за ошибок в исходниках. Просьба починить...

Так же в Far 2.0.800.2645 не работают: плугин DVDPanel 1.20U - последняя его версия для Far 757 при попытке открытия папки на панели плугина валит Far.exe, FarHints 1.0.х при получении хинта документов в формате ODF 1.2 (OpenOffice 3) валят Far.exe. Авторам в очередной раз об этом сообщено по электронной почте, но ответов ни от кого из них до сих пор нет.
Автор: AlVlS
Дата сообщения: 28.02.2009 07:13
единственный человек у которого вечно ничего не работает, тяжко так жить наверно...
Автор: Ajaja
Дата сообщения: 28.02.2009 13:33
Victor_VG
Собрать emenu в gcc в обозримом будущем вряд ли получится. Та ошибка (FarMenu.cpp:7: error: uninitialized const 'empty_wstr' ) - это все мелочи, он ругается всего лишь на неинициализированую константу. В остальном FarMenu.cpp компилируется без проблем. Куда более серьезная проблема в OleThread.cpp - он зависит от comdef.h, которую никто для gcc не адаптировал.
Автор: Victor_VG
Дата сообщения: 28.02.2009 14:24
AlVlS

Цитата:
$farchk

$svn co http://farmanager.com/svn/trunk C:\Temp\fardev
U C:\Temp\fardev\plugins\filecase\changelog
U C:\Temp\fardev\plugins\filecase\filecvt.cpp
U C:\Temp\fardev\plugins\filecase\filecase.rc
Checked out revision 2647.

$make -f makefile_gcc WIDE=1 COMMON=../common
making depends for FileCase.cpp
compiling FileCase.cpp
compiling FileCase.rc

Цитата: linking final.32W.gcc/FileCase.dll

Итог:
CaseEng.hlf
CaseEng.lng
CaseRus.hlf
CaseRus.lng
FileCase.dll
FileCase.map
Автор: sabio
Дата сообщения: 01.03.2009 05:30
Victor_VG
а вы всё о своём..
решили ведь уже, вроде, что никому не интересно пролистывать ваши простыни логов компиляции в теме про "плагины и настройки"
ну уйдите в отдельную тему, а?
а ещё лучше - на форум Far - там этим сообщениям самое место!
Автор: Victor_VG
Дата сообщения: 01.03.2009 13:29
sabio

Реагируй авторы на баг-репорты, этого бы не пришлось писать. А они в основном на них ноль внимания.
Автор: sabio
Дата сообщения: 01.03.2009 13:59

Цитата:
А они в основном на них ноль внимания.

как и вы, впрочем, на мой "баг-репорт" о неподходящем топике..
Автор: Smitis
Дата сообщения: 02.03.2009 16:19
sabio

Цитата:
а ещё лучше - на форум Far - там этим сообщениям самое место!

Виктора там уже забанили.
Автор: Victor_VG
Дата сообщения: 02.03.2009 18:09
Однако, Максим Русов прислал ответ на баг-репорт, и мы постараемся устранить ошибку в FarHints.

Ошибка по словам Максима возникала только под Win2000/XP, а под Vista проявляться не должна. На форуме Максим выложил новую версию 1.0.0.13. Просьба проверить её под Vista. Под 2000/XP всё в порядке, проверено. Баг репорты можно класть мне в ПМ.
Автор: HORiSi
Дата сообщения: 06.03.2009 08:35
Кто-нить знает, как сделать killcopy фоновым копировальщиком/перемещальщиком, при этом сам killcopy не устанавливать?!
Автор: Garrett
Дата сообщения: 06.03.2009 08:52
HORiSi
Чем не нравится Background Copy от zg ?
Автор: Gaidamak
Дата сообщения: 06.03.2009 09:42
Коллеги, ткните в hex-editor для сабж. Раньше это у меня через стандартный вьюер работало, а теперь как отрезало
Автор: Jabbah
Дата сообщения: 06.03.2009 10:08
Gaidamak
Прикрути hiew или biew на F3 или F4
Автор: HORiSi
Дата сообщения: 06.03.2009 11:22

Цитата:
Garrett


ВАЖНО. я пользую. FarPortable

Background Copy от zg
это что такое?

и на сколько я понял Background Copy всё равно надо
1. Инсталлировать (пусть даже через контекстное меню)
2. отдельно стартовать индикатор
Автор: Garrett
Дата сообщения: 06.03.2009 13:37
HORiSi
А не проще взять да попробовать? Глуп... разные предположения отпадут сами...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

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


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