annotate scripts/mk-doc.pl @ 31063:451fb63a10a0

update integral to call quadgk for 'ArrayValued' integrations (bug #62468) * integral.m: Modify integrator selection so that calls with ‘ArrayValued’ go to quadgk instead of quadv. Remove error checks for previously incompatible parameter combinations. Update docstring to remove mention of quadv, point 'ArrayValued' reference to quadgk, change returned error parameter description to match current behavior, and remove parameter incompatibility note. Add BIST to verify combined parameter functionality, and change BISTs checking quadv err parameter. * quadgk.m: Correct parameter name in docstring. * NEWS.8.md: Under General Improvements add note about quadgk now accepting 'ArrayValued' parameter and update integral improvement description of optional returned error parameter. Under Matlab Compatibility add note about integral now accepting all parameter combinations.
author Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
date Thu, 02 Jun 2022 19:56:15 -0400
parents 796f54d4ddbf
children 597f3ee61a48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
1 #! /usr/bin/perl
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
2 use utf8;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
3
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 ########################################################################
29357
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
5 ##
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
6 ## Copyright (C) 2012-2022 The Octave Project Developers
29357
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
7 ##
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
8 ## See the file COPYRIGHT.md in the top-level directory of this
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
9 ## distribution or <https://octave.org/copyright/>.
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
10 ##
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
11 ## This file is part of Octave.
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
12 ##
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
13 ## Octave is free software: you can redistribute it and/or modify it
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
14 ## under the terms of the GNU General Public License as published by
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
15 ## the Free Software Foundation, either version 3 of the License, or
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
16 ## (at your option) any later version.
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
17 ##
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
18 ## Octave is distributed in the hope that it will be useful, but
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
19 ## WITHOUT ANY WARRANTY; without even the implied warranty of
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
20 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
21 ## GNU General Public License for more details.
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
22 ##
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
23 ## You should have received a copy of the GNU General Public License
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
24 ## along with Octave; see the file COPYING. If not, see
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
25 ## <https://www.gnu.org/licenses/>.
bbbe4dcc7200 use the same comment style for copyright headers in .m files and shell scripts
John W. Eaton <jwe@octave.org>
parents: 28377
diff changeset
26 ##
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
27 ########################################################################
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
28
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
29 use strict;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
30 use warnings;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
31 use File::Spec;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
32 use Cwd;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
33
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
34 ## Expecting arguments in this order:
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
35 ##
21959
627f582edbe3 extract documentation from .in.m files instead of generated .m files
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
36 ## SRCDIR SRCDIR-FILES ...
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
37
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
38 unless (@ARGV >= 2) { die "Usage: $0 srcdir m_filename1 ..." ; }
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
39
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
40 my $srcdir = shift (@ARGV);
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
41
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
42 print <<__END_OF_MSG__;
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
43 ### DO NOT EDIT!
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
44 ###
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
45 ### This file is generated automatically from Octave source files.
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
46 ### Edit source files directly and run make to update this file.
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
47
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
48 __END_OF_MSG__
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
49
18943
714ce8ca71ea mkdoc.pl: Tweaks to make code easier to understand for non-Perl experts.
Rik <rik@octave.org>
parents: 18940
diff changeset
50 MFILE: foreach my $m_fname (@ARGV)
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
51 {
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
52 my $full_fname = File::Spec->catfile ($srcdir, $m_fname);
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
53 my @paths = File::Spec->splitdir ($full_fname);
18943
714ce8ca71ea mkdoc.pl: Tweaks to make code easier to understand for non-Perl experts.
Rik <rik@octave.org>
parents: 18940
diff changeset
54 if (@paths < 3
714ce8ca71ea mkdoc.pl: Tweaks to make code easier to understand for non-Perl experts.
Rik <rik@octave.org>
parents: 18940
diff changeset
55 || $paths[-2] eq "private" # skip private directories
21959
627f582edbe3 extract documentation from .in.m files instead of generated .m files
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
56 || $paths[-1] !~ s/(\.in|)\.m$//i) # skip non m-files, and remove extension
18943
714ce8ca71ea mkdoc.pl: Tweaks to make code easier to understand for non-Perl experts.
Rik <rik@octave.org>
parents: 18940
diff changeset
57 { next MFILE; }
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
58
23393
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
59 my $fcn;
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
60 if ($paths[-2] =~ m/^@/)
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
61 {
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
62 ## @classes will have @class/method as their function name
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
63 $fcn = File::Spec->catfile (@paths[-2, -1]);
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
64 }
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
65 elsif ($paths[-2] =~ m/^\+/)
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
66 {
26215
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
67 $fcn = $paths[-1];
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
68 for (my $i = 2; $i < @paths; $i++)
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
69 {
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
70 if ($paths[-$i] =~ m/^\+/)
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
71 {
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
72 ## +package functions have package.name their function name
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
73 $fcn = substr ($paths[-$i], 1) . "." . $fcn;
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
74 }
39e84bf92d18 accept functions in nested +pkg directories in @DOCSTRING macros (bug #52596)
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
75 }
23393
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
76 }
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
77 else
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
78 {
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
79 $fcn = $paths[-1];
675ad11b5c05 recognize docstrings for +package functions
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
80 }
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
81
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
82 my @help_txt = gethelp ($fcn, $full_fname);
18943
714ce8ca71ea mkdoc.pl: Tweaks to make code easier to understand for non-Perl experts.
Rik <rik@octave.org>
parents: 18940
diff changeset
83 next MFILE unless @help_txt;
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
84
17256
ee1d19174316 doc: Use 0x1d as record separator for joint compatibility with Texinfo 4.x and 5.x.
Rik <rik@octave.org>
parents: 17242
diff changeset
85 print "\x{1d}$fcn\n";
22334
fed9aa2ed01d doc: Insert correct location of m-file into @c comment in .texi files.
Rik <rik@octave.org>
parents: 22323
diff changeset
86 print "\@c $fcn $m_fname\n";
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
87
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
88 foreach $_ (@help_txt)
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
89 {
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
90 my $in_example = (m/\s*\@example\b/ .. m/\s*\@end\s+example\b/);
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
91 s/^\s+\@/\@/ unless $in_example;
18940
29fc1736a6be scripts/mkdoc.pl: remove '@(end )?example' leading spaces from DOCSTRING.
Carnë Draug <carandraug@octave.org>
parents: 18939
diff changeset
92 s/^\s+(\@(?:end)\s+(group|example))/$1/;
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
93 print $_;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
94 }
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
95 }
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
96
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
97 ################################################################################
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
98 # Subroutines
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
99 ################################################################################
14644
f49e47ab83ca maint: Rename mygethelp function to gethelp in scripts/mkdoc.pl
Rik <octave@nomad.inbox5.com>
parents: 14617
diff changeset
100 sub gethelp
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
101 {
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
102 my $fcn = shift;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
103 my $fname = shift;
28377
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
104 my $have_cdef_file = 0;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
105 my $found_code = 0;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
106
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
107 open (my $fh, "<", $fname) or return;
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
108
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
109 my @help_txt;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
110 while (my $line = <$fh>)
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
111 {
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
112 next if $line =~ m/^[\s#%]*$/; # skip empty lines
28377
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
113
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
114 if ($line !~ m/^\s*(#|%)/)
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
115 {
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
116 if (! $found_code)
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
117 {
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
118 $found_code = 1;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
119 $have_cdef_file = ! $have_cdef_file && $line =~ m/^\s*classdef/;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
120 }
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
121
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
122 next if $have_cdef_file;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
123 last;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
124 }
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
125
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
126 my $reading_block = sub {defined ($line = <$fh>) && $line !~ m/^\s*$/};
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
127
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
128 ## Skip this block
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
129 if ($line =~ /(Copyright|Author)/)
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
130 { while (&$reading_block ()) {} }
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
131 else
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
132 {
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
133 do
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
134 {
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
135 $line =~ s/^\s*(%|#)+ ?//;
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
136 push (@help_txt, $line);
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
137 } while (&$reading_block ());
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
138 last;
28377
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
139
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
140 ## Instead of jumping out here unconditionally, should we
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
141 ## attempt to extract multiple help comment blocks in a
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
142 ## classdef file by searching forward for the next line that
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
143 ## begins with "function" and then saving the first comment
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
144 ## block after that? We will need a way to recognize the
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
145 ## method name to print the docstring separator line. Maybe
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
146 ## we should just be using Octave's parser and help system for
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
147 ## this job?
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
148
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
149 ## if ($have_cdef_file)
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
150 ## {
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
151 ## while (my $line = <$fh>)
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
152 ## {
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
153 ## last if $line =~ /^\s*function/;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
154 ## }
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
155 ## }
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
156 ## else
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
157 ## {
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
158 ## last;
3ed6fc50d8ae * mk-doc.pl: Find classdef docstrings inside classdef code block.
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
159 ## }
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
160 }
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
161 }
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
162
18939
b0960d4afe5f scripts/mkdoc.pl: improve perl code portability.
Carnë Draug <carandraug@octave.org>
parents: 18938
diff changeset
163 close ($fh);
14617
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
164 return @help_txt;
8ffb01c3a27a doc: Use Perl to create DOCSTRINGS in scripts directory.
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
165 }