`#ifexists f' or `#ifeval is_defined("f")' => `#ifeval __get_reference("f")!=NULL'
`is_defined("f")' may be 0 even if `f' is defined, in these cases
one might have to test `is_defined(current_namespace()+"->f")'
(and vice versa). To avoid complex constructions like
`is_defined("f") || is_defined(current_namespace()+"->f")',
I test `__get_reference("f")!=NULL' instead.
Example 1:
require("xfig"); variable rx = is_defined("xfig_plot_new");
require("png"); variable rp = is_defined("png_write");
()=evalfile("png.sl"); variable ep = is_defined("png_write");
print([rx, rp, ep]);
% 2
% 0 % from require("png");
% 1 % from evalfile("png.sl");
Example 2: (to be run in another shell)
require("xfig"); variable rx = __get_reference("xfig_plot_new");
()=evalfile("png.sl"); variable ep = __get_reference("png_write");
require("png"); variable rp = __get_reference("png_write");
print([rx, ep, rp]);
% &xfig_plot_new
% &png_write % from evalfile("png.sl");
% &isis->png_write % from require("png");
Loading
Please register or sign in to comment