View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000493 | Far Manager | Command Line/Execute | public | 2008-03-13 12:11 | 2008-03-14 09:29 |
Reporter | Denis | Assigned To | alexy | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 1.80 alpha 1 | ||||
Summary | 0000493: Execute поломалась | ||||
Description | Создаём новый item в меню и в поле Commands добавляем существующие в данной директори файлы: res_log.txt res.txt Теперь если запустить этот item на выполнение, то в текстовом редакторе открывается только первый файл (res_log.txt), на втором Far замирает и ждёт закрытия текстового редактора. Только после закрытия текстового редактора Far запустит второй файл на выполнение. Far 1.80 alpha 1 build 441, Vista, EmEditor в качестве ассоциированного с txt редактора. | ||||
Tags | No tags attached. | ||||
Build | 443 | ||||
|
Пример можно упростить - достаточно одного файла в коммандах меню. На его запуске Far останавливается и ждёт закрытия запущенного приложения. |
|
Прилагаю патч, исправляющий проблему. |
2008-03-13 14:26
|
execute.diff (724 bytes)
Index: execute.cpp =================================================================== --- execute.cpp (revision 1540) +++ execute.cpp (working copy) @@ -319,11 +319,16 @@ apiExpandEnvironmentStrings(strNewValue,strNewValue); wchar_t *Ptr = strNewValue.GetBuffer (); + wchar_t *PtrOrig = Ptr; // ������ �� ����� if (*Ptr==L'\"') { - if ((Ptr=wcschr(Ptr,L'\"'))!=NULL) + // ������� �� ��������� �������, ������ � ��� '"' + if ((Ptr=wcschr(Ptr + 1,L'\"'))!=NULL) *Ptr=0; + + // ������ ���� ����� '"' + wmemmove(PtrOrig, PtrOrig + 1, Ptr-PtrOrig); } else { |
2008-03-13 14:29
|
execute.2.diff (767 bytes)
Index: execute.cpp =================================================================== --- execute.cpp (revision 1540) +++ execute.cpp (working copy) @@ -319,11 +319,18 @@ apiExpandEnvironmentStrings(strNewValue,strNewValue); wchar_t *Ptr = strNewValue.GetBuffer (); + wchar_t *PtrOrig = Ptr; // ������ �� ����� if (*Ptr==L'\"') { - if ((Ptr=wcschr(Ptr,L'\"'))!=NULL) + // ������� �� �������� �������, ������ � ��� '"' + if ((Ptr=wcschr(Ptr + 1,L'\"'))!=NULL) + { *Ptr=0; + // ������ ���� ����� '"' + wmemmove(PtrOrig, PtrOrig + 1, Ptr-PtrOrig); + } + } else { |
|
fixed. 443. |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-03-13 12:11 | Denis | New Issue | |
2008-03-13 12:11 | Denis | Status | new => assigned |
2008-03-13 12:11 | Denis | Assigned To | => alexy |
2008-03-13 13:44 | Denis | Note Added: 0001314 | |
2008-03-13 14:26 | Denis | Note Added: 0001315 | |
2008-03-13 14:26 | Denis | File Added: execute.diff | |
2008-03-13 14:29 | Denis | File Added: execute.2.diff | |
2008-03-14 09:29 | alexy | Build | => 443 |
2008-03-14 09:29 | alexy | Status | assigned => closed |
2008-03-14 09:29 | alexy | Note Added: 0001321 | |
2008-03-14 09:29 | alexy | Resolution | open => fixed |
2008-03-14 09:29 | alexy | Fixed in Version | => 1.80 alpha 1 |