Use of CloseProc/OpenProc

Hello,

I have a problem using the CloseProc/OpenProc functions.
I intend to use an external text editor to manage many procedures, and so I want to be able to reload them in Igor.

The code I use is the following:

function ReloadProcList()
   
    String savDF= GetDataFolder(1)
    NewDataFolder/O/S root:Packages:ReloadProc
    string cmd
    string/G filename, stringpath

    NewPath/O pathfd, "Macintosh SSD:Users:efernand:Documents:WaveMetrics:Igor Pro 6 User Files:User Procedures:"
    PathInfo pathfd
    stringpath = S_path
   
    filename="import_SCALA2.ipf"
    sprintf cmd, "CloseProc/FILE=filename/COMP=0/P=pathfd"
    Execute/P cmd
    sprintf cmd, "OpenProc/V=1/P=pathfd filename"
    Execute/P cmd
   
    KillPath pathfd
end

The problem is that, when executed, "pathfd" is not defined, Igor says "No symbolic path of that name" (this was also the case for "filename", but I made it global to solve it), and therefore I do not know how to use OpenProc and CloseProc whith the symbolic path.
So, is there a good way to reload an external procedure file (automaticaly) with Igor?

Any input would be appreciated.


Protra
Quote:
The problem is that, when executed, "pathfd" is not defined, Igor says "No symbolic path of that name"


It seems like pathfd should exist. The commands specified by Execute/P do not execute until all functions return. Use Misc->Path Status to check symbolic paths.

In Igor7, which will be in beta testing before too long, using an external editor will be very simple - you just edit the file in the external editor, thanks to work by John Weeks.
The CloseProc and OpenProc commands are running after KillPath pathfd.

If you want the path killed, do that in another Execute/P statement after the OpenProc Execute/P.

--Jim Prouty
Software Engineer, WaveMetrics, Inc.