annotate scripts/help/__makeinfo__.m @ 30564:796f54d4ddbf stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021. In all .txi and .texi files except gpl.txi and gpl.texi in the doc/liboctave and doc/interpreter directories, change the copyright to "Octave Project Developers", the same as used for other source files. Update copyright notices for 2022 (not done since 2019). For gpl.txi and gpl.texi, change the copyright notice to be "Free Software Foundation, Inc." and leave the date at 2007 only because this file only contains the text of the GPL, not anything created by the Octave Project Developers. Add Paul Thomas to contributors.in.
author John W. Eaton <jwe@octave.org>
date Tue, 28 Dec 2021 18:22:40 -0500
parents 7854d5752dd2
children 0ef88c485786
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ########################################################################
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 ##
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
3 ## Copyright (C) 2009-2022 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 27899
diff changeset
4 ##
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
7 ##
11104
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10803
diff changeset
8 ## This file is part of Octave.
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10803
diff changeset
9 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23220
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
11 ## under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23220
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22323
diff changeset
13 ## (at your option) any later version.
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
14 ##
11104
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10803
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22323
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22323
diff changeset
18 ## GNU General Public License for more details.
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
19 ##
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
20 ## You should have received a copy of the GNU General Public License
11104
2c356a35d7f5 fix copyright notices
John W. Eaton <jwe@octave.org>
parents: 10803
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23220
diff changeset
22 ## <https://www.gnu.org/licenses/>.
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 ##
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ########################################################################
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
25
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
26 ## -*- texinfo -*-
20852
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20778
diff changeset
27 ## @deftypefn {} {[@var{retval}, @var{status}] =} __makeinfo__ (@var{text}, @var{output_type})
25039
40a65b30fadf maint: Match variable names in documentation to those in function prototype.
Rik <rik@octave.org>
parents: 24534
diff changeset
28 ## @deftypefnx {} {[@var{retval}, @var{status}] =} __makeinfo__ (@var{text}, @var{output_type}, @var{fsee_also})
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
29 ## Undocumented internal function.
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
30 ## @end deftypefn
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
31
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
32 ## Run @code{makeinfo} on a given text.
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
33 ##
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
34 ## The string @var{text} is run through the @code{__makeinfo__} program
21751
b571fc85953f maint: Use two spaces after period to indicate sentence break.
Rik <rik@octave.org>
parents: 21000
diff changeset
35 ## to generate output in various formats. This string must contain valid
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
36 ## Texinfo formatted text.
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
37 ##
21751
b571fc85953f maint: Use two spaces after period to indicate sentence break.
Rik <rik@octave.org>
parents: 21000
diff changeset
38 ## The @var{output_type} selects the format of the output. This can be either
b571fc85953f maint: Use two spaces after period to indicate sentence break.
Rik <rik@octave.org>
parents: 21000
diff changeset
39 ## @t{"html"}, @t{"texinfo"}, or @t{"plain text"}. By default this is
b571fc85953f maint: Use two spaces after period to indicate sentence break.
Rik <rik@octave.org>
parents: 21000
diff changeset
40 ## @t{"plain text"}. If @var{output_type} is @t{"texinfo"}, the @t{@@seealso}
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
41 ## macro is expanded, but otherwise the text is unaltered.
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
42 ##
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
43 ## If the optional argument @var{see_also} is present, it is used to expand the
25039
40a65b30fadf maint: Match variable names in documentation to those in function prototype.
Rik <rik@octave.org>
parents: 24534
diff changeset
44 ## Octave specific @t{@@seealso} macro. This argument must be a function
40a65b30fadf maint: Match variable names in documentation to those in function prototype.
Rik <rik@octave.org>
parents: 24534
diff changeset
45 ## handle, that accepts a cell array of strings as input argument (each
40a65b30fadf maint: Match variable names in documentation to those in function prototype.
Rik <rik@octave.org>
parents: 24534
diff changeset
46 ## elements of the array corresponds to the arguments to the @t{@@seealso}
40a65b30fadf maint: Match variable names in documentation to those in function prototype.
Rik <rik@octave.org>
parents: 24534
diff changeset
47 ## macro), and return the expanded string. If this argument is not given, the
40a65b30fadf maint: Match variable names in documentation to those in function prototype.
Rik <rik@octave.org>
parents: 24534
diff changeset
48 ## @t{@@seealso} macro will be expanded to the text
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
49 ##
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
50 ## @example
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
51 ## See also: arg1, arg2, ...
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
52 ## @end example
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
53 ##
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
54 ## @noindent
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
55 ## for @t{"plain text"} output, and
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
56 ##
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
57 ## @example
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
58 ## See also: @@ref@{arg1@}, @@ref@{arg2@}, ...
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
59 ## @end example
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
60 ##
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
61 ## @noindent
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
62 ## otherwise.
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
63 ##
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
64 ## The optional output argument @var{status} contains the exit status of the
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
65 ## @code{makeinfo} program as returned by @code{system}.
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
66
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
67 function [retval, status] = __makeinfo__ (text, output_type = "plain text", fsee_also)
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
68
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
69 ## Check input
28789
28de41192f3c Eliminate unneeded verification of nargin, nargout in m-files.
Rik <rik@octave.org>
parents: 27923
diff changeset
70 if (nargin < 1)
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
71 print_usage ();
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
72 endif
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
73
13122
f80273b38cc4 more fixes to __makeinfo__
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13121
diff changeset
74 if (! ischar (text))
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
75 error ("__makeinfo__: first input argument must be a string");
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
76 endif
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
77
13122
f80273b38cc4 more fixes to __makeinfo__
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13121
diff changeset
78 if (! ischar (output_type))
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
79 error ("__makeinfo__: second input argument must be a string");
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
80 endif
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
81
25836
07cb3e098c0a Use "Octave Forge" spelling in all files.
Rik <rik@octave.org>
parents: 25054
diff changeset
82 ## NOTE: The 3rd argument is used by Octave Forge function
17425
cc7815488981 __makeinfo__.m: Add documentation note to code about use of 3rd argument.
Rik <rik@octave.org>
parents: 17424
diff changeset
83 ## generate_package_html, not by core Octave. This functionality
cc7815488981 __makeinfo__.m: Add documentation note to code about use of 3rd argument.
Rik <rik@octave.org>
parents: 17424
diff changeset
84 ## can only be removed when that function has been updated.
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
85 if (nargin < 3)
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
86 if (strcmpi (output_type, "plain text"))
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 19928
diff changeset
87 fsee_also = @(T) ["\nSee also:", sprintf(" %s,", T{:})(1:end-1), "\n"];
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
88 else
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 19928
diff changeset
89 fsee_also = @(T) ["\nSee also:", sprintf(" @ref{%s},", T{:})(1:end-1), "\n"];
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
90 endif
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
91 endif
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
92
25803
23483673ba43 Use is_function_handle instead of isa (x, "function_handle").
Rik <rik@octave.org>
parents: 25054
diff changeset
93 if (! is_function_handle (fsee_also))
17424
8c22a8d42833 __makeinfo__.m: Backout changeset 687872d279be which removes 3rd argument to func.
Rik <rik@octave.org>
parents: 17339
diff changeset
94 error ("__makeinfo__: third input argument must be a function handle");
13121
390add500107 Add back the third input parameter to __makeinfo__
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13120
diff changeset
95 endif
13141
e81ddf9cacd5 maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 13122
diff changeset
96
14360
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
97 ## Formatting in m-files has an extra space at the beginning of every line.
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
98 ## Remove these unwanted spaces if present. First text char is "\n" delim.
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
99 if (text(2) == " ")
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
100 text = strrep (text, "\n ", "\n");
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
101 endif
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
102 ## Texinfo crashes if @end tex does not appear first on the line.
97883071e8e4 doc: Correct off-by-1 spacings in all .cc docstrings
Rik <octave@nomad.inbox5.com>
parents: 14327
diff changeset
103 text = regexprep (text, '^ +@end tex', '@end tex', 'lineanchors');
26941
ca5344dd5f1c * __makeinfo__.m: Also translate @seealso here (bug #55952)
John W. Eaton <jwe@octave.org>
parents: 26736
diff changeset
104 text = regexprep (text, '@seealso', '@xseealso');
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
105
27566
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
106 ## We don't want *ref macros to clutter plain text output with "Note ..."
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
107 if (strcmp (output_type, "plain text"))
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
108 text = regexprep (text, '@ref{(?:[^}]*?),?(?:XREF)?([^,}]+)}', '$1');
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
109 text = regexprep (text, '@xref{(?:[^}]*?),?(?:XREF)?([^,}]+)}', 'See $1');
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
110 text = regexprep (text, '@pxref{(?:[^}]*?),?(?:XREF)?([^,}]+)}', 'see $1');
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
111 endif
b86adf277734 Display documentation cross-references more clearly in plaintext format (bug #56929).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26941
diff changeset
112
14614
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
113 file = texi_macros_file ();
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
114 fid = fopen (file, "r");
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
115 if (fid < 0)
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
116 error ("unable to open %s for reading", file);
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
117 else
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
118 macros_text = fread (fid, Inf, "*char")';
16994
333243133364 Use matrix concatenation for strings, rather than cstrcat(), for clarity and performance.
Rik <rik@octave.org>
parents: 15701
diff changeset
119 text = [macros_text text];
14614
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
120 endif
4e9dc46d4125 handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents: 14363
diff changeset
121 fclose (fid);
10803
75780a2b0417 __makeinfo__.m: Add support to process @nopsell macro.
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
122
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
123 if (strcmpi (output_type, "texinfo"))
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
124 status = 0;
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
125 retval = text;
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
126 return;
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
127 endif
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
128
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
129 ## Create the final TeXinfo input string
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
130 text = sprintf ("\\input texinfo\n\n%s\n\n@bye\n", text);
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
131
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
132 unwind_protect
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
133 ## Write Texinfo to tmp file
9983
2d347a2f4a0a __makeinfo__: style fixes
John W. Eaton <jwe@octave.org>
parents: 9982
diff changeset
134 template = "octave-help-XXXXXX";
15701
edce7d75597b Change .m files to use tempdir instead of P_tmpdir (patch #7875)
Corbin Champion <corbinlc@gmail.com>
parents: 14614
diff changeset
135 [fid, name] = mkstemp (fullfile (tempdir, template), true);
9982
7cef030b8069 let __makeinfo__ create temporary file in P_tmpdir
Jaroslav Hajek <highegg@gmail.com>
parents: 9263
diff changeset
136 if (fid < 0)
7cef030b8069 let __makeinfo__ create temporary file in P_tmpdir
Jaroslav Hajek <highegg@gmail.com>
parents: 9263
diff changeset
137 error ("__makeinfo__: could not create temporary file");
7cef030b8069 let __makeinfo__ create temporary file in P_tmpdir
Jaroslav Hajek <highegg@gmail.com>
parents: 9263
diff changeset
138 endif
18597
2633b5f3106a __makeinfo__: Process Texinfo docstrings without type conversion (bug #41965)
Mike Miller <mtmiller@ieee.org>
parents: 18401
diff changeset
139 fprintf (fid, "%s", text);
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
140 fclose (fid);
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
141
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
142 ## Take action depending on output type
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
143 switch (lower (output_type))
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
144 case "plain text"
27899
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
145 cmd = sprintf ('%s --no-headers --no-warn --no-validate --plaintext --output=- "%s"',
13121
390add500107 Add back the third input parameter to __makeinfo__
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13120
diff changeset
146 makeinfo_program (), name);
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
147 case "html"
27899
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
148 cmd = sprintf ('%s --no-headers --html --no-warn --no-validate --output=- "%s"',
13121
390add500107 Add back the third input parameter to __makeinfo__
Carlo de Falco <kingcrimson@tiscali.it>
parents: 13120
diff changeset
149 makeinfo_program (), name);
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
150 otherwise
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
151 error ("__makeinfo__: unsupported output type: '%s'", output_type);
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
152 endswitch
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
153
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
154 ## Call makeinfo
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
155 [status, retval] = system (cmd);
10803
75780a2b0417 __makeinfo__.m: Add support to process @nopsell macro.
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
156
27899
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
157 ## On error, retry with force to ensure user gets *something*
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
158 if (status)
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
159 cmd = regexprep (cmd, '--output=', '--force --output=', 'once');
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
160 [status_force, retval] = system (cmd);
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
161 ## original return value usually more useful
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
162 if (status_force)
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
163 status = status_force;
28947
b73a54c31152 maint: Use Octave-specific end keywords rather than just 'end'.
Rik <rik@octave.org>
parents: 28789
diff changeset
164 endif
b73a54c31152 maint: Use Octave-specific end keywords rather than just 'end'.
Rik <rik@octave.org>
parents: 28789
diff changeset
165 endif
27899
fde18e0a2984 Have TexInfo errors result in warning delivered to user (patch #9464)
Colin Macdonald <cbm@m.fsf.org>
parents: 27566
diff changeset
166
19928
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
167 ## Clean up extra newlines generated by makeinfo
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
168 if (strcmpi (output_type, "plain text"))
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
169 if (numel (retval) > 2 && retval(end-1:end) == "\n\n")
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
170 retval = retval(1:end-2);
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
171 endif
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
172 endif
e884d5816471 Remove extra newlines at end of help printout (bug #44504).
Rik <rik@octave.org>
parents: 19697
diff changeset
173
20944
a7ebc9815d71 doc: Start help text with " -- ", not " -- : ".
Rik <rik@octave.org>
parents: 19928
diff changeset
174 ## Clean up start of @deftypefn expansion which includes extra ':'
a7ebc9815d71 doc: Start help text with " -- ", not " -- : ".
Rik <rik@octave.org>
parents: 19928
diff changeset
175 retval = regexprep (retval, '^ -- : +', ' -- ', "lineanchors");
a7ebc9815d71 doc: Start help text with " -- ", not " -- : ".
Rik <rik@octave.org>
parents: 19928
diff changeset
176
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
177 unwind_protect_cleanup
8768
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
178 if (exist (name, "file"))
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
179 delete (name);
e0fbf17a17bb __makeinfo__.m: rename from makeinfo.m
John W. Eaton <jwe@octave.org>
parents: 8717
diff changeset
180 endif
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
181 end_unwind_protect
20944
a7ebc9815d71 doc: Start help text with " -- ", not " -- : ".
Rik <rik@octave.org>
parents: 19928
diff changeset
182
8575
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
183 endfunction
f134925a1cfa m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
diff changeset
184
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14360
diff changeset
185
13044
a04e32272ecb codesprint: Turn off test warning for various internal helper functions
Rik <octave@nomad.inbox5.com>
parents: 12606
diff changeset
186 ## No test needed for internal helper function.
a04e32272ecb codesprint: Turn off test warning for various internal helper functions
Rik <octave@nomad.inbox5.com>
parents: 12606
diff changeset
187 %!assert (1)