Mercurial > hg > octave-nkf
diff libinterp/corefcn/graphics.cc @ 19843:408361a8c72f
Don't register gnuplot toolkit if gnuplot is not available (bug #35391)
* __init_gnuplot__.cc (F__have_gnuplot__, have_gnuplot_binary): New functions
to test for existence of gnuplot external program. (PKG_ADD): Don't register
gnuplot toolkit unless gnuplot binary is available. (F__init_gnuplot): Error
if gnuplot binary is not available.
* graphics.cc (gtk_manager::do_get_toolkit): Provide better error message if
no graphics toolkits are available.
author | Mike Miller <mtmiller@ieee.org> |
---|---|
date | Sat, 31 Jan 2015 02:42:15 -0500 |
parents | db92e7e28e1f |
children | 50f14692e33b |
line wrap: on
line diff
--- a/libinterp/corefcn/graphics.cc +++ b/libinterp/corefcn/graphics.cc @@ -10651,32 +10651,37 @@ { graphics_toolkit retval; - const_loaded_toolkits_iterator pl = loaded_toolkits.find (dtk); - - if (pl == loaded_toolkits.end ()) - { - const_available_toolkits_iterator pa = available_toolkits.find (dtk); - - if (pa != available_toolkits.end ()) - { - octave_value_list args; - args(0) = dtk; - feval ("graphics_toolkit", args); - - if (! error_state) - pl = loaded_toolkits.find (dtk); - - if (error_state || pl == loaded_toolkits.end ()) - error ("failed to load %s graphics toolkit", dtk.c_str ()); + if (! dtk.empty ()) + { + const_loaded_toolkits_iterator pl = loaded_toolkits.find (dtk); + + if (pl == loaded_toolkits.end ()) + { + const_available_toolkits_iterator pa = available_toolkits.find (dtk); + + if (pa != available_toolkits.end ()) + { + octave_value_list args; + args(0) = dtk; + feval ("graphics_toolkit", args); + + if (! error_state) + pl = loaded_toolkits.find (dtk); + + if (error_state || pl == loaded_toolkits.end ()) + error ("failed to load %s graphics toolkit", dtk.c_str ()); + else + retval = pl->second; + } else - retval = pl->second; + error ("default graphics toolkit '%s' is not available!", + dtk.c_str ()); } else - error ("default graphics toolkit '%s' is not available!", - dtk.c_str ()); - } - else - retval = pl->second; + retval = pl->second; + } + else + error ("no graphics toolkits are available!"); return retval; }