View Issue Details

IDProjectCategoryView StatusLast Update
0000493Far ManagerCommand Line/Executepublic2008-03-14 09:29
ReporterDenis Assigned Toalexy  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.80 alpha 1 
Summary0000493: 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 редактора.

TagsNo tags attached.
Build443

Activities

Denis

2008-03-13 13:44

reporter   bugnote:0001314

Пример можно упростить - достаточно одного файла в коммандах меню. На его запуске Far останавливается и ждёт закрытия запущенного приложения.

Denis

2008-03-13 14:26

reporter   bugnote:0001315

Прилагаю патч, исправляющий проблему.

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
         {
execute.diff (724 bytes)   

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
         {
execute.2.diff (767 bytes)   

alexy

2008-03-14 09:29

administrator   bugnote:0001321

fixed. 443.

Issue History

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