Mercurial > hg > octave-lyh
changeset 17432:8c22a8d42833
__makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
* scripts/help/__makeinfo__.m: Backout changeset 687872d279be.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 16 Sep 2013 08:14:56 -0700 |
parents | 0b93af1023f6 |
children | cc7815488981 |
files | scripts/help/__makeinfo__.m |
diffstat | 1 files changed, 47 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/help/__makeinfo__.m +++ b/scripts/help/__makeinfo__.m @@ -17,28 +17,50 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {[@var{retval}, @var{status}] =} __makeinfo__ (@var{text}) -## @deftypefnx {Function File} {[@var{retval}, @var{status}] =} __makeinfo__ (@var{text}, @var{output_type}) +## @deftypefn {Function File} {[@var{retval}, @var{status}] =} __makeinfo__ (@var{text}, @var{output_type}) +## @deftypefnx {Function File} {[@var{retval}, @var{status}] =} __makeinfo__ (@var{text}, @var{output_type}, @var{see_also}) ## Undocumented internal function. ## @end deftypefn ## Run @code{makeinfo} on a given text. ## ## The string @var{text} is run through the @code{__makeinfo__} program -## to generate output in various formats. This string must contain valid +## to generate output in various formats. This string must contain valid ## Texinfo formatted text. ## -## The @var{output_type} selects the format of the output. This can be either -## @qcode{"html"}, @qcode{"texinfo"}, or @qcode{"plain text"}. By default this -## is @qcode{"plain text"}. +## The @var{output_type} selects the format of the output. This can be either +## @t{"html"}, @t{"texinfo"}, or @t{"plain text"}. By default this is +## @t{"plain text"}. If @var{output_type} is @t{"texinfo"}, the @t{@@seealso} +## macro is expanded, but otherwise the text is unaltered. +## +## If the optional argument @var{see_also} is present, it is used to expand the +## Octave specific @t{@@seealso} macro. This argument must be a function handle, +## that accepts a cell array of strings as input argument (each elements of the +## array corresponds to the arguments to the @t{@@seealso} macro), and return +## the expanded string. If this argument is not given, the @t{@@seealso} macro +## will be expanded to the text +## +## @example +## See also: arg1, arg2, ... +## @end example +## +## @noindent +## for @t{"plain text"} output, and +## +## @example +## See also: @@ref@{arg1@}, @@ref@{arg2@}, ... +## @end example +## +## @noindent +## otherwise. ## ## The optional output argument @var{status} contains the exit status of the ## @code{makeinfo} program as returned by @code{system}. -function [retval, status] = __makeinfo__ (text, output_type = "plain text") +function [retval, status] = __makeinfo__ (text, output_type = "plain text", fsee_also) ## Check input - if (nargin < 1 || nargin > 2) + if (nargin < 1 || nargin > 3) print_usage (); endif @@ -47,7 +69,21 @@ endif if (! ischar (output_type)) - error ("__makeinfo__: OUTPUT_TYPE must be a string"); + error ("__makeinfo__: second input argument must be a string"); + endif + + if (nargin < 3) + if (strcmpi (output_type, "plain text")) + fsee_also = @(T) strcat ... + ("\nSee also:", sprintf (" %s,", T{:})(1:end-1), "\n"); + else + fsee_also = @(T) strcat ... + ("\nSee also:", sprintf (" @ref{%s},", T{:})(1:end-1), "\n"); + endif + endif + + if (! isa (fsee_also, "function_handle")) + error ("__makeinfo__: third input argument must be a function handle"); endif ## Formatting in m-files has an extra space at the beginning of every line. @@ -90,10 +126,10 @@ ## Take action depending on output type switch (lower (output_type)) case "plain text" - cmd = sprintf ("%s --no-headers --no-warn --no-validate --force %s", + cmd = sprintf ("%s --no-headers --no-warn --force --no-validate %s", makeinfo_program (), name); case "html" - cmd = sprintf ("%s --html --no-headers --no-warn --no-validate --force %s", + cmd = sprintf ("%s --no-headers --html --no-warn --no-validate --force %s", makeinfo_program (), name); otherwise error ("__makeinfo__: unsupported output type: '%s'", output_type);