Skip to content
Commit 18ea0da7 authored by Manfred Hanke's avatar Manfred Hanke 💻
Browse files

`#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");
parent a12c9598
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment