|
User Documentation |
|||||||||
prev file | next file | ||||||||||
SUMMARY: fields | routine DETAILS: routine | ||||||||||
./toolbox which.pro
which |
procedure which, name |
Search for any file in the IDL !path that contains the user-supplied IDL routine (procedure or function) name. Also indicates compilation status of each routine (in IDL lingo, whether or not the routine is "resolved".)
Restrictions: The IDL !path is searched for file names that are simply the module (in IDL documentation, "module" and "routine" are used interchangeably) name with a ".pro" suffix appended to them. A module stored inside a file whose name is different than the module name (followed by a ".pro") will not be found UNLESS that module happens to be the currently-resolved module! E.g., if the module "pro test_proc" lives in a file named "dumb_name.pro", then it will not be found:
IDL> which, 'test_proc' Module TEST_PROC Not Compiled. % WHICH: test_proc.pro not found on IDL !path.unless it happens to be resolved:
IDL> .run dumb_name % Compiled module: TEST_PROC. IDL> which, 'test_proc' Currently-Compiled Module TEST_PROC in File: /home/robishaw/dumb_name.proHowever, this is terrible programming style and sooner or later, if you hide generically-named modules in inappropriately-named files, bad things will (deservedly) happen to you. The routine further assumes that a file named "dumb_name.pro" actually contains a module named "dumb_name"! If it doesn't, then you are a bad programmer and should seek professional counseling. Finally, if the user has somehow compiled a module as a procedure and then compiled a module of the same name as a function, they will both be available to the user, therefore both are listed. This situation should probably be avoided.
Notes: First, all currently-compiled procedures and functions are searched. Then the remainder of the IDL !path is searched. The current directory is searched before the IDL !path, whether or not the current directory is in the IDL !path, because this is the behavior of .run, .compile, .rnew, DOC_LIBRARY, etc.
MODIFICATION HISTORY:
IDL> which, 'defroi Module DEFROI Not Compiled. Other Files Containing Module DEFROI in IDL !path: /usr/local/rsi/idl/lib/defroi.proFor some reason you have two modules with the same name. (This can occur in libraries of IDL routines such as the Goddard IDL Astronomy User's Library; an updated version of a routine is stored in a special directory while the old version is stored in its original directory.) Let's see which version of the module ADSTRING we are currently using:
IDL> which, 'adstring.pro' Currently-Compiled Module ADSTRING in File: /home/robishaw/idl/goddard/pro/v5.4+/adstring.pro Other Files Containing Module ADSTRING in IDL !path: /home/robishaw/idl/goddard/pro/astro/adstring.pro
Parameters | |
name |
The procedure or function name to search for. |