Page 1 of 2

Использование исходников FAR в стороннем продукте

Posted: Mon 09 Oct, 2017 22:11
by Dec
Ищу помощи (оплачиваемой мной (в разумных пределах)).

Я являюсь разработчиком небольшой утилитки под названием TC4Shell. Ее суть в том, что она позволяет пользователю открывать прямо в обычном виндовом Проводнике различные архивы, такие как 7z или rar, аналогично встроенной по умолчанию в Проводник поддержке формата zip. TC4Shell поддерживает работу с WCX-плагинами Total Commander, и еще я решил добавить в TC4Shell поддержку FAR-овских панельных плагинов. В принципе, TC4Shell уже поддерживает плагины FAR, но с некоторыми ограничениями. Как это выглядит можно посмотреть на анимированной гифке (4 MB).

Сам я пишу на Delphi, с C++ знаком не очень (точнее очень не знаком), поэтому исходные коды фара могу только читать, и то с большими ограничениями. В данное время в SetStartupInfoW для некоторых функция я передаю просто заглушки, поскольку некоторые функций я не могу реализовать в силу ограничений языка (например, sprintf или snprintf) или в силу того, что просто не знаю, как их реализовывать (например, RegExpControl).

Собственно, суть моего поста. Ищу человека, который согласится сделать для меня dll на основе исходников FAR, которая бы экспортировала бы следующие функции:

RegExpControl
sprintf (A и W варианты)
sscanf (A и W варианты)
snprintf (A и W варианты)
GetPathRoot
FarInputRecordToName
FarNameToInputRecord
ConvertPath

Эти функции, кроме ConvertPath, будут передаваться в SetStartupInfoW. Отдельное замечание о ConvertPath. Я бы хотел, что бы она имела прототип вида

size_t WINAPI ConvertPath(
enum CONVERTPATHMODES Mode,
const wchar_t *Src,
const wchar_t *CurrentDirectory,
wchar_t *Dest,
size_t DestSize
);

CurrentDirectory - это дополнительный параметр, который бы использовался в этой функции вместо вызова os::GetCurrentDirectory.

В идеале хотелось бы иметь проект, например, для VS 2015, который бы я смог сам скомпилировать. Возможно, в будущем будут найдены какие либо неточности или ошибки в коде FAR этих функций, что бы я мог самостоятельно подправить и скомпилировать новую версию.

Повторюсь, я готов оплатить создание такой dll. Как то так.

Использование исходников FAR в стороннем продукте

Posted: Tue 10 Oct, 2017 03:52
by 2useven10
В SetStartupInfoW фар передаёт плагину структуру с указателями на стандартные ф-и, которыми плагин может пользоваться.
Эти ф-и не надо реализовывать в плагине, их там можно использовать.

Не понял сразу для чего это нужно.

Использование исходников FAR в стороннем продукте

Posted: Tue 10 Oct, 2017 04:00
by Dec
2useven10 wrote:
Tue 10 Oct, 2017 03:52
В SetStartupInfoW фар передаёт плагину
Я не спорю с утверждением. Но я реализую не плагин, а хост для плагинов, т.е. ПО, которое использует плагины FAR и эмулирует FAR api.

Использование исходников FAR в стороннем продукте

Posted: Tue 10 Oct, 2017 04:02
by 2useven10
Уже понял, не успел удалить :)

Использование исходников FAR в стороннем продукте

Posted: Wed 22 Nov, 2017 22:47
by Dec
Господа, скажите, а вообще существует ли какая либо сумма, которая способна заинтересовать вас решить мою проблему? 8000 руб, 16000 руб, 32000 руб, 64000 руб... Или есть какие то идеологические мотивы, типа "Нечего наше ФАРовское добро разбазаривать, уж тем более ради тех, кто пользуется Проводником, не к ночи будучи упомянутым".

Использование исходников FAR в стороннем продукте

Posted: Wed 22 Nov, 2017 23:00
by Shmuel
- Нет никаких идеологических мотивов.
- У меня, например, на данном "этапе" тупо нет времени.
- Насчёт отсутствия реакции от других - не знаю.
- Нормальная сумма может заинтересовать любого.

Использование исходников FAR в стороннем продукте

Posted: Wed 22 Nov, 2017 23:24
by Dec
Shmuel, спасибо за ответ. Я с самого начала писал, что готов оплатить свои хотелки. Но тем не менее, к моему сожалению, желающих не возникло. Вот я и подумал, что существуют идеологические мотивы. Или те, кто могут реализовать задачу, думают, что я априори не соглашусь оплатить озвученную ими сумму, поэтому даже и не писали. Вот я и пытаюсь понять, что является "нормальной" суммой.

Использование исходников FAR в стороннем продукте

Posted: Thu 23 Nov, 2017 00:01
by Shmuel
Dec wrote:
Wed 22 Nov, 2017 23:24
Вот я и пытаюсь понять, что является "нормальной" суммой.
Если кто-то откликнется, он озвучит эту величину (не в форуме, разумеется) :)

Использование исходников FAR в стороннем продукте

Posted: Mon 27 Nov, 2017 14:27
by 2useven10
Dec, Пробуйте...
Вырезано ножницами (#ifndef TC4FSF).
Тянет много лишнего, но фигурной кройкой заниматься времени нет.
Отрезано от b5101.
Проект и дополнительные файлы надо поместить в каталог far/

Использование исходников FAR в стороннем продукте

Posted: Mon 27 Nov, 2017 14:37
by 2useven10
Была опечатка. Поправлю - перевыложу.

Использование исходников FAR в стороннем продукте

Posted: Mon 27 Nov, 2017 14:40
by 2useven10
Опечатку убрал. Проверять надо всё, я не тестировал никак.

Использование исходников FAR в стороннем продукте

Posted: Mon 27 Nov, 2017 21:07
by Dec
Большое спасибо! Буду пробовать.

Использование исходников FAR в стороннем продукте

Posted: Sat 09 Dec, 2017 02:11
by Dec
2useven10, к сожалению, моих мозгов не хватит, что бы собрать.


Использование исходников FAR в стороннем продукте

Posted: Sun 10 Dec, 2017 00:38
by 2useven10
Dec, Лучше бы 'по горячим следам' ...
В выложенном архиве вместо изменённого network.cpp нетронутый network.hpp, можно diff накатить на b5101.
чтобы получить все изменения. diff полный, остальные файлы вроде на месте.
Можно и руками перенести изменения - там всего 2 пары #ifndef TC4FSF / #endif.
Я у себя проект уже удалил, но если будут сложности - завтра восстановлю.

Использование исходников FAR в стороннем продукте

Posted: Sun 10 Dec, 2017 00:49
by Dec
2useven10, С ifdef собралось. Буду тестировать, спасибо.

Использование исходников FAR в стороннем продукте

Posted: Mon 11 Dec, 2017 10:54
by 2useven10
Архив перезалит.
Кроме пропущенного файла - s[n]printf, sscanf A и W варианты.
PS: фидбек лучше сразу, пока не забыл, что там делалось.