Mercurial > hg > octave-nkf
diff scripts/help/__gripe_missing_component__.m @ 17516:21656a949661
Add hook function to handle missing Octave components
* __gripe_missing_component__.m: New internal function to handle errors due
to missing Octave components.
* scripts/help/module.mk (help_FCN_FILES): Add __gripe_missing_component__.m.
* variables.cc (Vmissing_component_hook): New internal variable.
* doc.m, mkoctfile.m, configure_make.m: Call __gripe_missing_component__
if required files are not found.
* NEWS: Mention missing_component_hook.
author | Mike Miller <mtmiller@ieee.org> |
---|---|
date | Sun, 29 Sep 2013 16:06:41 -0400 |
parents | |
children | 0f9c5a15c8fa |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/help/__gripe_missing_component__.m @@ -0,0 +1,56 @@ +## Copyright (C) 2013 Mike Miller +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} __gripe_missing_component__ (@var{caller}, @var{component}) +## Undocumented internal function. +## @end deftypefn + +function __gripe_missing_component__ (caller, component) + + if (nargin != 2) + print_usage (); + endif + + msg = ""; + fcn = missing_component_hook (); + + ftype = exist (fcn); + if (ftype == 2 || ftype == 3 || ftype == 5 || ftype == 103) + msg = feval (fcn, component); + endif + + if (isempty (msg)) + switch (component) + case "info-file" + msg = "unable to find the Octave info manual, Octave installation is incomplete"; + case "mkoctfile" + msg = "unable to find the mkoctfile command, Octave installation is incomplete"; + case "octave" + msg = "unable to find the octave executable, Octave installation is incomplete"; + case "octave-config" + msg = "unable to find the octave-config command, Octave installation is incomplete"; + otherwise + msg = ["unable to find required Octave component \"" component "\""]; + endswitch + endif + + error ("%s: %s\n", caller, msg); + +endfunction +