comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Top 10 IDL Requests
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Top 10 IDL Requests [message #20794 is a reply to message #20666] Tue, 25 July 2000 00:00 Go to previous messageGo to previous message
Craig Markwardt is currently offline  Craig Markwardt
Messages: 1869
Registered: November 1996
Senior Member
davidf@dfanning.com (David Fanning) writes:

> Craig Markwardt (craigmnet@cow.physics.wisc.edu) writes:
>
>> davidf@dfanning.com (David Fanning) writes:
>>> Vinay L. Kashyap (kashyap@head-cfa.harvard.edu) writes:
>>>> 2. _EXTRA
>>>>
>>>> Please consider having all built-in commands accept _EXTRA as a keyword.
>>>
>>> Uh, this is the way it works. :-)
>>
>> Uh, not quite. There are some built in commands that don't accept any
>> keywords at all. The _EXTRA keyword doesn't work for them, *even* if
>> the value passed is empty!
>>
>> Why is this important? Makes it a pain to write a wrapper procedure
>> or function.
>
> Alright, I must be obtuse today, but I can't figure out why
> it would be hard to write wrapper routines for commands that
> don't take keywords. Surely in writing the wrapper you give
> at least *some* thought to what keywords you might expect
> to be passed. Adding an _Extra to such a command seems
> excessively anal at the very least, and certainly unnecessary. :-)
>
> And what commands did you have in mind? I've never encountered
> a built-in command that didn't accept this keyword mechanism.

Hrmm. The moment I need to find an example, and I can't find it.
Arghh. An example of a built-in command that doesn't take keywords is
EMPTY, but I agree that it's a pretty lame example. I actually would
hope that *all* procedures and functions could be called with _EXTRA,
whether or not they actually accept keywords. For, example, this
statement

call_procedure, 'EMPTY', _EXTRA=null

will fail no matter what, even if null is an undefined variable.
Shouldn't IDL be smart enough to test whether the _EXTRA value is
undefined before it crashes?

I'm always looking for ways to avoid special cases in wrapper
routines. Real world examples of such unavoidable abominations are
given below.

Craig


(from XFWINDOW in XFWINDOW_CALL_PROCEDURE)
sz = size(key)
if sz(sz(0)+1) EQ 8 then begin ;; Keywords are present
xfwindow_rekey, key
case n_args of
0: call_procedure, cmd, _extra=key
1: call_procedure, cmd, x0, _extra=key
2: call_procedure, cmd, x0, x1, _extra=key
3: call_procedure, cmd, x0, x1, x2, _extra=key
4: call_procedure, cmd, x0, x1, x2, x3, _extra=key
5: call_procedure, cmd, x0, x1, x2, x3, x4, _extra=key
endcase
endif else begin ;; No keywords are present
case n_args of
0: call_procedure, cmd
1: call_procedure, cmd, x0
2: call_procedure, cmd, x0, x1
3: call_procedure, cmd, x0, x1, x2
4: call_procedure, cmd, x0, x1, x2, x3
5: call_procedure, cmd, x0, x1, x2, x3, x4
endcase
endelse

(from MPFIT in MPFIT_CALL)
if proc then begin
if n_params() EQ 3 then begin
if n_elements(extra) GT 0 then $
call_procedure, fcn, x, f, fjac, _EXTRA=extra $
else $
call_procedure, fcn, x, f, fjac
endif else begin
if n_elements(extra) GT 0 then $
call_procedure, fcn, x, f, _EXTRA=extra $
else $
call_procedure, fcn, x, f
endelse
endif else begin
if n_params() EQ 3 then begin
if n_elements(extra) GT 0 then $
f = call_function(fcn, x, fjac, _EXTRA=extra) $
else $
f = call_function(fcn, x, fjac)
endif else begin
if n_elements(extra) GT 0 then $
f = call_function(fcn, x, _EXTRA=extra) $
else $
f = call_function(fcn, x)
endelse
endelse

--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: avs field
Next Topic: Dear Santa: PVWAVE Style Date/Time Axes in IDL

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 08:58:46 PDT 2025

Total time taken to generate the page: 1.28267 seconds