Hi all,
most of the system routines are compiled C functions, but there are some routines distributed as .pro source file in the IDL lib directory. Source files use KEYWORD_SET() to evaluate boolean keywords, with well documented rules. However, the builtin C routines use different rules,:
IDL> help, keyword_set(0.5)
<Expression> INT = 1
IDL> help, where(0, null=0.5)
<Expression> LONG = -1
0.5 is true in the first case, false in the second. For non-integer keywords, users must know the type of the system routine to use it correctly. Is this a bug or a feature?
best regards,
Lajos
(this was originally discovered by the GDL folks.)