far manager и git_shell_ext64.dll (git-cheetah)

Здесь можно сообщить о найденных багах в Far.
Post Reply
x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

far manager и git_shell_ext64.dll (git-cheetah)

Post by x-yuri »

Не уверен, что это баг Far Manager. git-cheetah - это расширение shell (explorer). Толком не знаю, что оно делает, но предлагается как альтернатива пунктам контекстного меню "Git GUI Here", "Git Bash Here". Так вот, выяснилось, что при запуске bat/cmd-файлов в Far Manager с помощью Enter и установленном git-cheetah начинают вылазить какие-то левые git-команды, например, "git rev-parse --show-prefix". Выглядит примерно так:

Code: Select all

>type 1.bat
echo 1
<Enter> on 1.bat
>1.bat
fatal: Not a git repository (or any of the parent directories): .git
>echo 1
1
Я предполагаю, что оно пытается запихнуть в prompt информацию о текущем репозитории. В общем, разработчики предложили мне запустить версию из ветки hv/read_output_from_tools. Но эта версия не устанавливает себя (regsvr32) или я что-то делаю не так. Any ideas? Спасибо.
poksh
Posts: 2
Joined: Tue 26 Feb, 2013 13:18

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by poksh »

аналогичная проблема.
есть ли идеи, куда копать?
User avatar
HaRT
Moderator
Posts: 10869
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by HaRT »

1. Что в %COMSPEC%?
2. Что в [HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun]?
Фар есть инструмент, а не нянька. © 2009 DrKnS
poksh
Posts: 2
Joined: Tue 26 Feb, 2013 13:18

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by poksh »

D:\>cmd /c echo %COMSPEC%
C:\Windows\system32\cmd.exe

D:\>reg query "HKCU\Software\Microsoft\Command Processor\AutoRun"
Ошибка: Не удается найти указанный раздел или параметр в реестре.

D:\>reg query "HKCU\Software\Microsoft\Command Processor"

HKEY_CURRENT_USER\Software\Microsoft\Command Processor
CompletionChar REG_DWORD 0x9
DefaultColor REG_DWORD 0x0
EnableExtensions REG_DWORD 0x1
PathCompletionChar REG_DWORD 0x9
User avatar
HaRT
Moderator
Posts: 10869
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by HaRT »

Ничего подозрительного…
И ведь интересно, откуда вообще берётся разница запуска из панели и из командной строки.
А не прописаны ли в реестре какие-то дополнительные обработчики на расширение .bat на уровне системы или текущего пользователя?
Фар есть инструмент, а не нянька. © 2009 DrKnS
x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by x-yuri »

HaRT wrote:А не прописаны ли в реестре какие-то дополнительные обработчики на расширение .bat на уровне системы или текущего пользователя?

Code: Select all

>assoc .bat
.bat=batfile

>ftype batfile
batfile="%1" %*
Проблема исчезает после regsvr32 /u git_shell_ext64.dll. Так что дело определенно или в far manager, или в git-cheetah.
x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by x-yuri »

Один из вариантов решения - помочь мне с компиляцией/запуском git-cheetah из ветки hv/read_output_from_tools или помочь выяснить, почему она не регистрируется. Тогда можно будет продолжить обсуждение на github.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by DrKnS »

Где взять этот ваш git-cheetah в собранном виде?
x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by x-yuri »

Он входит в состав git (должен быть установлен по умолчанию, а не как здесь).
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: far manager и git_shell_ext64.dll (git-cheetah)

Post by DrKnS »

К проблеме приводит комбинация параметров ShellExecuteEx:

Code: Select all

#define UNICODE
#include <windows.h>
#include <shellapi.h>

int wmain(int argc, wchar_t* argv[])
{
    SHELLEXECUTEINFO sei = {sizeof(sei)};
    sei.lpFile = argv[1];
    sei.lpVerb = L"open";
    sei.fMask = SEE_MASK_INVOKEIDLIST;
    ShellExecuteEx(&sei);
} 
Если убрать L"open" или SEE_MASK_INVOKEIDLIST - бага видно не будет.
Post Reply

Return to “Глюки и баги”