Re: Automatic Structure Definition [message #15834 is a reply to message #13632] |
Wed, 16 June 1999 00:00   |
Daniel Peduzzi
Messages: 29 Registered: June 1999
|
Junior Member |
|
|
J.D. Smith wrote in message <3767D7DA.31F1E6DB@astrosun.tn.cornell.edu>...
> "R.Bauer" wrote:
>>
>> Daniel Peduzzi wrote:
>>
>>> I recently spent quite a bit of time wondering why my automatic structure
>>> definition files could not be seen by IDL. All attempts to instantiate the structure
>>> in my calling program resulted in the error "attempt to call undefined procedure/function".
>>>
>>> As it turns out, the problem was that I had a capital letter in my filename containing
>>> the structure definition procedure. Renaming it from abc_Struct__define.pro to
>>> abc_struct__define.pro remedied the problem, even though all references still
>>> contained the capital "S".
>>>
>>> Has anybody else experienced this problem? Or perhaps it is not a problem
>>> at all, and I missed the explanation? This requirement is definitely not explained
>>> in the "Automatic Structure Definition" section.
>>>
>>> Dan Peduzzi
>>> peduzzi@mediaone.net
>>
>> This a problem using idl on unix.
>> IDL on windows did not distinguish lower or upper cases.
>>
>> R.Bauer
>
> It's the only reasonable solution though, since IDL is case-insensitive
> and unix file systems are case-sensitive. How is IDL to know which file
> to use? Either it adopts a given convention (e.g., all lower-case), or
> it searches for all upper-lower permutations of the given name, which,
> for abc_Struct__define.pro, includes 262144 possibilities. (Or it
> becomes case-sensitive, which is a whole different kettle of fish).
>
> A lesson learned: always use lower case for naming files containing IDL
> routines under unix.
>
I agree...adopting a lower-case convention is the way to go.
I was just feeling a little foolish that I'd spent so much time tracking down
something which, as you clearly illustrated above, is a reasonable
implementation on UNIX systems. I just wish the docs had contained
some sort of warning.
I guess I shouldn't feel TOO foolish, though, since this passage is
copied verbatim from the V.5 "Building IDL Applications" documentation
(note the capital letters):
"When IDL encounters a reference to an undefined named structure, it
will automatically search the directories specified in !PATH for a procedure
named Name__DEFINE, where Name is the actual name of the structure."
It was unclear to me that the above refers only to the name of the structure
definition procedure, and that there shouldn't be, in this case, a consistency
between the procedure name and the filename which contains it.
Like you said...lesson learned!
Dan Peduzzi
peduzzi@mediaone.net
|
|
|