[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 |*|