[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rstrpos: version 5.2 and version 5.3



David Fanning wrote:
> 
> J.D. Smith (jdsmith@astro.cornell.edu) writes:
> 
> > It's there.
> >
> > You just need to add lib/obsolete under rsi/idl to your IDL search path, or,
> > equivalently, search all sub-paths of lib.  I do this as a matter of course, to
> > ensure such things don't happen.
> 
> Yes, or alternatively (this is what I decided to do recently),
> include the code in the source that uses it. I did this because
> I *know* people don't have the OBSOLETE directory on their
> path and I get tired of finding 10 e-mails in the morning
> asking why my programs don't work. :-(
> 
> I resorted to this after first trying something like this:
> 
>   IF Float(!Version.Release) GT 5.2 THEN BEGIN
>         dot = StrPos(line, ".", /Reverse_Search)
>   ENDIF ELSE BEGIN
>       dot = RStrPos(line, ".")
>   ENDELSE
> 
> Although that *seemed* like a good idea at the time,
> I found that the line won't compile in versions of
> IDL older than IDL 5.3. :-(
> 

IDL objects to the mentioning of a function it can't find.  Simply use
call_function and it can't complain (how can it object to a string?).

IF Float(!Version.Release) GT 5.2 THEN $
	dot=call_function("StrPos",line,".",/Reverse_Search) $
ELSE $
	dot=call_function("RStrPos",line, ".")

JD

-- 
 J.D. Smith                             |*|      WORK: (607) 255-5842    
 Cornell University Dept. of Astronomy  |*|            (607) 255-6263
 304 Space Sciences Bldg.               |*|       FAX: (607) 255-5875 
 Ithaca, NY 14853                       |*|