comparison 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
comparison
equal deleted inserted replaced
19842:ebd27d8c63fd 19843:408361a8c72f
10649 graphics_toolkit 10649 graphics_toolkit
10650 gtk_manager::do_get_toolkit (void) const 10650 gtk_manager::do_get_toolkit (void) const
10651 { 10651 {
10652 graphics_toolkit retval; 10652 graphics_toolkit retval;
10653 10653
10654 const_loaded_toolkits_iterator pl = loaded_toolkits.find (dtk); 10654 if (! dtk.empty ())
10655 10655 {
10656 if (pl == loaded_toolkits.end ()) 10656 const_loaded_toolkits_iterator pl = loaded_toolkits.find (dtk);
10657 { 10657
10658 const_available_toolkits_iterator pa = available_toolkits.find (dtk); 10658 if (pl == loaded_toolkits.end ())
10659 10659 {
10660 if (pa != available_toolkits.end ()) 10660 const_available_toolkits_iterator pa = available_toolkits.find (dtk);
10661 { 10661
10662 octave_value_list args; 10662 if (pa != available_toolkits.end ())
10663 args(0) = dtk; 10663 {
10664 feval ("graphics_toolkit", args); 10664 octave_value_list args;
10665 10665 args(0) = dtk;
10666 if (! error_state) 10666 feval ("graphics_toolkit", args);
10667 pl = loaded_toolkits.find (dtk); 10667
10668 10668 if (! error_state)
10669 if (error_state || pl == loaded_toolkits.end ()) 10669 pl = loaded_toolkits.find (dtk);
10670 error ("failed to load %s graphics toolkit", dtk.c_str ()); 10670
10671 if (error_state || pl == loaded_toolkits.end ())
10672 error ("failed to load %s graphics toolkit", dtk.c_str ());
10673 else
10674 retval = pl->second;
10675 }
10671 else 10676 else
10672 retval = pl->second; 10677 error ("default graphics toolkit '%s' is not available!",
10678 dtk.c_str ());
10673 } 10679 }
10674 else 10680 else
10675 error ("default graphics toolkit '%s' is not available!", 10681 retval = pl->second;
10676 dtk.c_str ());
10677 } 10682 }
10678 else 10683 else
10679 retval = pl->second; 10684 error ("no graphics toolkits are available!");
10680 10685
10681 return retval; 10686 return retval;
10682 } 10687 }
10683 10688
10684 void 10689 void