FAR patch 01713.SearchPath_Execute Дата              : 26.09.2003 Сделал            : Vasily V. Moshninov VVM Описание          : ! При поиске файла сначала ищем по переменной PATH                       и только потом в остальных местах Измененные файлы  : execute.cpp Новые файлы       : Удаленные файлы   : Состав            : 01713.SearchPath_Execute.txt                     execute.cpp.1713.diff Основан на патче  : 1712 Дополнение        :
FAR patch 01713.SearchPath_Execute
Дата              : 26.09.2003
Сделал            : Vasily V. Moshninov VVM
Описание          : ! При поиске файла сначала ищем по переменной PATH
                      и только потом в остальных местах
Измененные файлы  : execute.cpp
Новые файлы       :
Удаленные файлы   :
Состав            : 01713.SearchPath_Execute.txt
                    execute.cpp.1713.diff
Основан на патче  : 1712
Дополнение        :


From: Oleg Danilov <dosoft@yandex.ru>

------------------------------------------------------>8----

=========================================
C:\>set pa
Path=c:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\Program Files\Rational
\common;C:\W\j2sdk1.4.1_03\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

C:\>find
FIND: Parameter format not correct
=========================================

То есть норовит вызваться FIND из c:\winnt\system32, хотя я хочу
звать из c:\cygwin\bin, как следует из PATH.


Посмотрел MSDN. Рискуя быть осмеянным, сваял на коленке вот что:

========================
1.cpp
========================
#include <stdio.h>
#include <windows.h>

int main(void)
{
        char b1[300],b2[300];
        char *a1,*a2;
        SearchPath(getenv("PATH"),"find.exe",NULL,sizeof(b1),b1,&a1);
        SearchPath(NULL,"find.exe",NULL,sizeof(b2),b2,&a2);
        printf("%s\n",b1);
        printf("%s\n",b2);
        return 0;
}
========================

Затем сделал:

C:\>gcc -mconsole -mno-cygwin 1.cpp

C:\>a.exe
C:\Cygwin\bin\find.exe
C:\WINNT\system32\find.exe

То есть, если подсунуть в качестве первого параметра не NULL, а PATH,
то работает, как хочется.

----8<------------------------------------------------------

johnd0e/FarManager,johnd0e/FarManager,johnd0e/FarManager,FarGroup/FarManager,johnd0e/FarManager,johnd0e/FarManager,FarGroup/FarManager,johnd0e/FarManager,johnd0e/FarManager,FarGroup/FarManager,FarGroup/FarManager,FarGroup/FarManager,FarGroup/FarManager,FarGroup/FarManager,johnd0e/FarManager,FarGroup/FarManager