Mercurial > octave
annotate libinterp/corefcn/help.cc @ 25438:cb1606f78f6b
prefer <istream>, <ostream>, or <iosfwd> to <iostream> where possible
Using <iostream> brings with it a static initializer for the std::cin,
std::cout, and std::cerr streams. In most cases they are not needed
and should be avoided if possible.
Files affected:
build-aux/mk-opts.pl
libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp
libinterp/corefcn/__dsearchn__.cc
libinterp/corefcn/c-file-ptr-stream.cc
libinterp/corefcn/c-file-ptr-stream.h
libinterp/corefcn/daspk.cc
libinterp/corefcn/dasrt.cc
libinterp/corefcn/dassl.cc
libinterp/corefcn/defaults.cc
libinterp/corefcn/defun.cc
libinterp/corefcn/file-io.cc
libinterp/corefcn/ft-text-renderer.cc
libinterp/corefcn/gl-render.cc
libinterp/corefcn/help.cc
libinterp/corefcn/ls-ascii-helper.cc
libinterp/corefcn/ls-hdf5.cc
libinterp/corefcn/ls-hdf5.h
libinterp/corefcn/ls-mat-ascii.cc
libinterp/corefcn/ls-mat4.cc
libinterp/corefcn/ls-mat5.cc
libinterp/corefcn/ls-oct-binary.cc
libinterp/corefcn/ls-oct-text.cc
libinterp/corefcn/lsode.cc
libinterp/corefcn/oct-iostrm.cc
libinterp/corefcn/oct-procbuf.cc
libinterp/corefcn/oct-stdstrm.h
libinterp/corefcn/procstream.cc
libinterp/corefcn/procstream.h
libinterp/corefcn/quad.cc
libinterp/corefcn/symscope.h
libinterp/corefcn/symtab.h
libinterp/corefcn/toplev.cc
libinterp/corefcn/urlwrite.cc
libinterp/corefcn/utils.cc
libinterp/corefcn/zfstream.cc
libinterp/dldfcn/__ode15__.cc
libinterp/dldfcn/convhulln.cc
libinterp/octave-value/ov-base-diag.cc
libinterp/octave-value/ov-base-int.cc
libinterp/octave-value/ov-base-mat.cc
libinterp/octave-value/ov-base-scalar.cc
libinterp/octave-value/ov-base-sparse.cc
libinterp/octave-value/ov-base.cc
libinterp/octave-value/ov-bool-mat.cc
libinterp/octave-value/ov-bool-sparse.cc
libinterp/octave-value/ov-bool.cc
libinterp/octave-value/ov-cell.cc
libinterp/octave-value/ov-ch-mat.cc
libinterp/octave-value/ov-class.cc
libinterp/octave-value/ov-colon.cc
libinterp/octave-value/ov-complex.cc
libinterp/octave-value/ov-cs-list.cc
libinterp/octave-value/ov-cx-mat.cc
libinterp/octave-value/ov-cx-sparse.cc
libinterp/octave-value/ov-fcn-handle.cc
libinterp/octave-value/ov-fcn-inline.cc
libinterp/octave-value/ov-float.cc
libinterp/octave-value/ov-flt-complex.cc
libinterp/octave-value/ov-flt-cx-mat.cc
libinterp/octave-value/ov-flt-re-mat.cc
libinterp/octave-value/ov-int16.cc
libinterp/octave-value/ov-int32.cc
libinterp/octave-value/ov-int64.cc
libinterp/octave-value/ov-int8.cc
libinterp/octave-value/ov-java.cc
libinterp/octave-value/ov-range.cc
libinterp/octave-value/ov-re-mat.cc
libinterp/octave-value/ov-re-sparse.cc
libinterp/octave-value/ov-scalar.cc
libinterp/octave-value/ov-str-mat.cc
libinterp/octave-value/ov-struct.cc
libinterp/octave-value/ov-typeinfo.cc
libinterp/octave-value/ov-uint16.cc
libinterp/octave-value/ov-uint32.cc
libinterp/octave-value/ov-uint64.cc
libinterp/octave-value/ov-uint8.cc
libinterp/octave.cc
libinterp/parse-tree/bp-table.cc
libinterp/parse-tree/lex.h
libinterp/parse-tree/profiler.cc
libinterp/parse-tree/pt-arg-list.cc
libinterp/parse-tree/pt-array-list.cc
libinterp/parse-tree/pt-assign.cc
libinterp/parse-tree/pt-cell.cc
libinterp/parse-tree/pt-const.cc
libinterp/parse-tree/pt-eval.cc
libinterp/parse-tree/pt-exp.cc
libinterp/parse-tree/pt-fcn-handle.cc
libinterp/parse-tree/pt-jit.cc
libinterp/parse-tree/pt-pr-code.cc
libinterp/parse-tree/pt-tm-const.cc
libinterp/parse-tree/pt.cc
liboctave/array/Array.cc
liboctave/array/CColVector.cc
liboctave/array/CDiagMatrix.cc
liboctave/array/CMatrix.cc
liboctave/array/CNDArray.cc
liboctave/array/CRowVector.cc
liboctave/array/CSparse.cc
liboctave/array/DiagArray2.cc
liboctave/array/MArray.cc
liboctave/array/Range.cc
liboctave/array/Sparse.cc
liboctave/array/boolMatrix.cc
liboctave/array/boolSparse.cc
liboctave/array/chMatrix.cc
liboctave/array/dColVector.cc
liboctave/array/dDiagMatrix.cc
liboctave/array/dMatrix.cc
liboctave/array/dNDArray.cc
liboctave/array/dRowVector.cc
liboctave/array/dSparse.cc
liboctave/array/fCColVector.cc
liboctave/array/fCDiagMatrix.cc
liboctave/array/fCMatrix.cc
liboctave/array/fCNDArray.cc
liboctave/array/fCRowVector.cc
liboctave/array/fColVector.cc
liboctave/array/fDiagMatrix.cc
liboctave/array/fMatrix.cc
liboctave/array/fNDArray.cc
liboctave/array/fRowVector.cc
liboctave/array/idx-vector.cc
liboctave/numeric/CollocWt.cc
liboctave/numeric/eigs-base.cc
liboctave/system/file-ops.cc
liboctave/system/oct-time.cc
liboctave/util/cmd-hist.cc
liboctave/util/data-conv.cc
liboctave/util/data-conv.h
liboctave/util/file-info.cc
liboctave/util/lo-utils.cc
liboctave/util/lo-utils.h
liboctave/util/quit.cc
liboctave/util/str-vec.cc
liboctave/util/url-transfer.cc
liboctave/util/url-transfer.h
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 07 Jun 2018 10:11:54 -0400 |
parents | a656665b671d |
children | 69fc8935020b |
rev | line source |
---|---|
1 | 1 /* |
2 | |
25054
6652d3823428
maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
3 Copyright (C) 1993-2018 John W. Eaton |
1 | 4 |
5 This file is part of Octave. | |
6 | |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24361
diff
changeset
|
7 Octave is free software: you can redistribute it and/or modify it |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22556
diff
changeset
|
8 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:
24361
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22556
diff
changeset
|
10 (at your option) any later version. |
1 | 11 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22556
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22556
diff
changeset
|
13 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22556
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22556
diff
changeset
|
15 GNU General Public License for more details. |
1 | 16 |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 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:
24361
diff
changeset
|
19 <https://www.gnu.org/licenses/>. |
1 | 20 |
21 */ | |
22 | |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
23 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21200
diff
changeset
|
24 # include "config.h" |
1 | 25 #endif |
26 | |
1343 | 27 #include <cstdlib> |
28 #include <cstring> | |
29 | |
5769 | 30 #include <algorithm> |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
31 #include <fstream> |
25438
cb1606f78f6b
prefer <istream>, <ostream>, or <iosfwd> to <iostream> where possible
John W. Eaton <jwe@octave.org>
parents:
25395
diff
changeset
|
32 #include <istream> |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
33 #include <map> |
5765 | 34 #include <sstream> |
1755 | 35 #include <string> |
36 | |
3295 | 37 #include "cmd-edit.h" |
38 #include "file-ops.h" | |
6253 | 39 #include "file-stat.h" |
2926 | 40 #include "oct-env.h" |
19269
65554f5847ac
don't include oct-locbuf.h in header files unnecessarily
John W. Eaton <jwe@octave.org>
parents:
19152
diff
changeset
|
41 #include "oct-locbuf.h" |
1755 | 42 #include "str-vec.h" |
43 | |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
44 #include "Cell.h" |
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
45 #include "builtin-defun-decls.h" |
22091
0f6fc2ec3b1a
move call_stack class to a separate file
John W. Eaton <jwe@octave.org>
parents:
22022
diff
changeset
|
46 #include "call-stack.h" |
23466
5da300c55e89
use "" instead of <> for including defaults.h and version.h
John W. Eaton <jwe@octave.org>
parents:
23450
diff
changeset
|
47 #include "defaults.h" |
1352 | 48 #include "defun.h" |
49 #include "dirfns.h" | |
50 #include "error.h" | |
21100
e39e05d90788
Switch gripe_XXX to either err_XXX or warn_XXX naming scheme.
Rik <rik@octave.org>
parents:
21017
diff
changeset
|
51 #include "errwarn.h" |
1352 | 52 #include "help.h" |
2177 | 53 #include "input.h" |
23438
d24d01273bd0
eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
54 #include "interpreter-private.h" |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
55 #include "interpreter.h" |
5832 | 56 #include "load-path.h" |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
57 #include "ov-fcn-handle.h" |
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
58 #include "ov-usr-fcn.h" |
20940
48b2ad5ee801
maint: Rename oct-obj.[cc|h] to ovl.[cc|h] for clarity.
Rik <rik@octave.org>
parents:
20939
diff
changeset
|
59 #include "ovl.h" |
1352 | 60 #include "pager.h" |
3018 | 61 #include "parse.h" |
1466 | 62 #include "pathsearch.h" |
3295 | 63 #include "procstream.h" |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
64 #include "quit.h" |
529 | 65 #include "sighandlers.h" |
66 #include "symtab.h" | |
8672
2a49c32d4322
allow help to work with files containing only comments
John W. Eaton <jwe@octave.org>
parents:
8631
diff
changeset
|
67 #include "unwind-prot.h" |
242 | 68 #include "utils.h" |
1352 | 69 #include "variables.h" |
3301 | 70 #include "version.h" |
529 | 71 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
72 #include "default-defs.h" |
2189 | 73 |
22199
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
74 const static char * const operators[] = |
8575
f134925a1cfa
m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
8503
diff
changeset
|
75 { |
22199
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
76 "!", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
77 "~", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
78 "!=", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
79 "~=", |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
80 R"(")", |
22199
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
81 "#", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
82 "%", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
83 "#{", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
84 "%{", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
85 "#}", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
86 "%}", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
87 "...", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
88 "&", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
89 "&&", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
90 "'", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
91 "(", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
92 ")", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
93 "*", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
94 "**", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
95 "^", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
96 "+", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
97 "++", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
98 ",", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
99 "-", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
100 "--", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
101 ".'", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
102 ".*", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
103 ".**", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
104 ".^", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
105 "./", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
106 "/", |
23804
8057d3f0673d
Use C++11 raw string literals to avoid escaping backslashes in strings.
Rik <rik@octave.org>
parents:
23803
diff
changeset
|
107 R"(.\)", |
8057d3f0673d
Use C++11 raw string literals to avoid escaping backslashes in strings.
Rik <rik@octave.org>
parents:
23803
diff
changeset
|
108 R"(\)", |
22199
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
109 ":", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
110 ";", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
111 "<", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
112 "<=", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
113 "=", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
114 "==", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
115 ">", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
116 ">=", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
117 "[", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
118 "]", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
119 "|", |
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
120 "||", |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23721
diff
changeset
|
121 nullptr |
1 | 122 }; |
123 | |
22199
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
124 const static string_vector operator_names (operators); |
1 | 125 |
8575
f134925a1cfa
m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
8503
diff
changeset
|
126 static bool |
f134925a1cfa
m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
8503
diff
changeset
|
127 looks_like_html (const std::string& msg) |
3014 | 128 { |
8575
f134925a1cfa
m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
8503
diff
changeset
|
129 const size_t p1 = msg.find ('\n'); |
f134925a1cfa
m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
8503
diff
changeset
|
130 std::string t = msg.substr (0, p1); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
131 // FIXME: this comparison should be case-insensitive |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
132 const size_t p2 = t.find ("<html"); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11572
diff
changeset
|
133 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
134 return (p2 != std::string::npos); |
2470 | 135 } |
3014 | 136 |
137 static bool | |
3523 | 138 looks_like_texinfo (const std::string& msg, size_t& p1) |
3295 | 139 { |
140 p1 = msg.find ('\n'); | |
141 | |
3523 | 142 std::string t = msg.substr (0, p1); |
3295 | 143 |
8021 | 144 if (p1 == std::string::npos) |
3295 | 145 p1 = 0; |
146 | |
147 size_t p2 = t.find ("-*- texinfo -*-"); | |
148 | |
8021 | 149 return (p2 != std::string::npos); |
3295 | 150 } |
151 | |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
152 namespace octave |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
153 { |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
154 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
155 help_system::built_in_docstrings_file (const octave_value_list& args, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
156 int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
157 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
158 return set_internal_variable (m_built_in_docstrings_file, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
159 "built_in_docstrings_file", false); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
160 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
161 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
162 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
163 help_system::doc_cache_file (const octave_value_list& args, int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
164 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
165 return set_internal_variable (m_doc_cache_file, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
166 "doc_cache_file", false); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
167 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
168 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
169 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
170 help_system::info_file (const octave_value_list& args, int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
171 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
172 return set_internal_variable (m_info_file, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
173 "info_file", false); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
174 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
175 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
176 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
177 help_system::info_program (const octave_value_list& args, int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
178 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
179 return set_internal_variable (m_info_program, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
180 "info_program", false); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
181 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
182 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
183 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
184 help_system::makeinfo_program (const octave_value_list& args, int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
185 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
186 return set_internal_variable (m_makeinfo_program, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
187 "makeinfo_program", false); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
188 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
189 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
190 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
191 help_system::suppress_verbose_help_message (const octave_value_list& args, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
192 int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
193 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
194 return set_internal_variable (m_suppress_verbose_help_message, args, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
195 nargout, "suppress_verbose_help_message"); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
196 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
197 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
198 octave_value |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
199 help_system::texi_macros_file (const octave_value_list& args, int nargout) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
200 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
201 return set_internal_variable (m_texi_macros_file, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
202 "texi_macros_file", false); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
203 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
204 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
205 std::string |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
206 help_system::raw_help (const std::string& nm, bool& symbol_found) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
207 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
208 std::string h; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
209 std::string w; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
210 std::string f; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
211 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
212 bool found; |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
213 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
214 found = raw_help_from_symbol_table (nm, h, w, symbol_found); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
215 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
216 if (! found) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
217 found = raw_help_from_file (nm, h, f, symbol_found); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
218 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
219 bool external_doc = h.compare (0, 12, "external-doc") == 0; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
220 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
221 if (! found || external_doc) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
222 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
223 std::string tmp_nm = nm; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
224 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
225 if (external_doc && h.length () > 12 && h[12] == ':') |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
226 tmp_nm = h.substr (13); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
227 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
228 raw_help_from_docstrings_file (tmp_nm, h, symbol_found); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
229 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
230 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
231 return h; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
232 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
233 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
234 std::string help_system::which (const std::string& name, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
235 std::string& type) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
236 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
237 std::string file; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
238 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
239 type = ""; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
240 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
241 symbol_table& symtab = m_interpreter.get_symbol_table (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
242 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
243 octave_value val = symtab.find_function (name); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
244 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
245 if (name.find_first_of ('.') == std::string::npos) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
246 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
247 if (val.is_defined ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
248 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
249 octave_function *fcn = val.function_value (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
250 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
251 if (fcn) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
252 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
253 file = fcn->fcn_file_name (); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
254 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
255 if (file.empty ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
256 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
257 if (fcn->is_user_function ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
258 type = "command-line function"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
259 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
260 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
261 file = fcn->src_file_name (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
262 type = "built-in function"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
263 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
264 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
265 else |
23829
01899bdd2a3a
Eliminate unnecessary std::string ("...") constructor calls when "..." suffices.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
266 type = val.is_user_script () ? "script" : "function"; |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
267 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
268 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
269 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
270 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
271 // We might find a file that contains only a doc string. |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
272 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
273 load_path& lp = m_interpreter.get_load_path (); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
274 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
275 file = lp.find_fcn_file (name); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
276 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
277 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
278 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
279 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
280 // File query. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
281 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
282 load_path& lp = m_interpreter.get_load_path (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
283 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
284 // For compatibility: "file." queries "file". |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
285 if (name.size () > 1 && name[name.size () - 1] == '.') |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
286 file = lp.find_file (name.substr (0, name.size () - 1)); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
287 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
288 file = lp.find_file (name); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
289 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
290 file = sys::env::make_absolute (file); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
291 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
292 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
293 return file; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
294 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
295 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
296 std::string help_system::which (const std::string& name) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
297 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
298 std::string type; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
299 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
300 return which (name, type); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
301 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
302 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
303 string_vector help_system::make_name_list (void) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
304 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
305 const static string_vector keywords |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
306 = Fiskeyword ()(0).string_vector_value (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
307 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
308 const static int key_len = keywords.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
309 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
310 symbol_table& symtab = m_interpreter.get_symbol_table (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
311 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
312 const string_vector bif = symtab.built_in_function_names (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
313 const int bif_len = bif.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
314 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
315 const string_vector cfl = symtab.cmdline_function_names (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
316 const int cfl_len = cfl.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
317 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
318 const string_vector lcl = symtab.variable_names (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
319 const int lcl_len = lcl.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
320 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
321 load_path& lp = m_interpreter.get_load_path (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
322 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
323 const string_vector ffl = lp.fcn_names (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
324 const int ffl_len = ffl.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
325 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
326 const string_vector afl = autoloaded_functions (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
327 const int afl_len = afl.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
328 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
329 const string_vector lfl = local_functions (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
330 const int lfl_len = lfl.numel (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
331 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
332 const int total_len |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
333 = key_len + bif_len + cfl_len + lcl_len + ffl_len + afl_len + lfl_len; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
334 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
335 string_vector list (total_len); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
336 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
337 // Put all the symbols in one big list. |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
338 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
339 int j = 0; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
340 int i = 0; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
341 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
342 for (i = 0; i < key_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
343 list[j++] = keywords[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
344 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
345 for (i = 0; i < bif_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
346 list[j++] = bif[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
347 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
348 for (i = 0; i < cfl_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
349 list[j++] = cfl[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
350 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
351 for (i = 0; i < lcl_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
352 list[j++] = lcl[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
353 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
354 for (i = 0; i < ffl_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
355 list[j++] = ffl[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
356 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
357 for (i = 0; i < afl_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
358 list[j++] = afl[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
359 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
360 for (i = 0; i < lfl_len; i++) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
361 list[j++] = lfl[i]; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
362 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
363 return list; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
364 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
365 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
366 void help_system::get_help_text (const std::string& name, std::string& text, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
367 std::string& format) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
368 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
369 bool symbol_found = false; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
370 text = raw_help (name, symbol_found); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
371 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
372 format = "Not found"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
373 if (symbol_found) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
374 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
375 size_t idx = -1; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
376 if (text.empty ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
377 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
378 format = "Not documented"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
379 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
380 else if (looks_like_texinfo (text, idx)) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
381 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
382 format = "texinfo"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
383 text.erase (0, idx); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
384 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
385 else if (looks_like_html (text)) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
386 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
387 format = "html"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
388 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
389 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
390 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
391 format = "plain text"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
392 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
393 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
394 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
395 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
396 void help_system::get_help_text_from_file (const std::string& fname, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
397 std::string& text, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
398 std::string& format) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
399 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
400 bool symbol_found = false; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
401 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
402 std::string f; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
403 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
404 raw_help_from_file (fname, text, f, symbol_found); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
405 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
406 format = "Not found"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
407 if (symbol_found) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
408 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
409 size_t idx = -1; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
410 if (text.empty ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
411 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
412 format = "Not documented"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
413 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
414 else if (looks_like_texinfo (text, idx)) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
415 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
416 format = "texinfo"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
417 text.erase (0, idx); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
418 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
419 else if (looks_like_html (text)) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
420 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
421 format = "html"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
422 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
423 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
424 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
425 format = "plain text"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
426 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
427 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
428 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
429 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
430 std::string help_system::init_built_in_docstrings_file (void) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
431 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
432 std::string df = sys::env::getenv ("OCTAVE_BUILT_IN_DOCSTRINGS_FILE"); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
433 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
434 std::string dir_sep = sys::file_ops::dir_sep_str (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
435 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
436 if (df.empty ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
437 df = config::oct_etc_dir () + dir_sep + "built-in-docstrings"; |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
438 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
439 return df; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
440 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
441 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
442 std::string help_system::init_doc_cache_file (void) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
443 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
444 std::string def_file = config::prepend_octave_home (OCTAVE_DOC_CACHE_FILE); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
445 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
446 std::string env_file = sys::env::getenv ("OCTAVE_DOC_CACHE_FILE"); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
447 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
448 return (env_file.empty () ? def_file : env_file); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
449 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
450 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
451 std::string help_system::init_info_file (void) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
452 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
453 std::string std_info_file = config::prepend_octave_home (OCTAVE_INFOFILE); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
454 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
455 std::string oct_info_file = sys::env::getenv ("OCTAVE_INFO_FILE"); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
456 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
457 return (oct_info_file.empty () ? std_info_file : oct_info_file); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
458 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
459 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
460 std::string help_system::init_info_program (void) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
461 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
462 std::string info_prog = sys::env::getenv ("OCTAVE_INFO_PROGRAM"); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
463 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
464 if (info_prog.empty ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
465 info_prog = "info"; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
466 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
467 return info_prog; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
468 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
469 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
470 std::string help_system::init_texi_macros_file (void) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
471 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
472 std::string def_file |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
473 = config::prepend_octave_home (OCTAVE_TEXI_MACROS_FILE); |
22295
12f1d273d22a
maint: Remove trailing spaces from code.
Rik <rik@octave.org>
parents:
22199
diff
changeset
|
474 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
475 std::string env_file = sys::env::getenv ("OCTAVE_TEXI_MACROS_FILE"); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
476 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
477 return (env_file.empty () ? def_file : env_file); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
478 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
479 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
480 // Return a vector of all functions from this file, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
481 // for use in command line auto-completion. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
482 string_vector help_system::local_functions (void) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
483 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
484 string_vector retval; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
485 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
486 call_stack& cs = m_interpreter.get_call_stack (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
487 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
488 octave_user_code *curr_fcn = cs.caller_user_code (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
489 |
25394
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
490 if (! curr_fcn) |
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
491 return retval; |
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
492 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
493 // All subfunctions are listed in the top-level function of this file. |
25394
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
494 // If curr_fcn is a subfunction, then there must be a parent and |
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
495 // curr_fcn will always be valid in and after executing this loop. |
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
496 |
9e39a53b4e00
make listing local functions for command completion work again (bug #53925)
John W. Eaton <jwe@octave.org>
parents:
25388
diff
changeset
|
497 while (curr_fcn->is_subfunction ()) |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
498 { |
24361
8bcfddad15ec
use shared_ptr to manage symbol_scope objects
John W. Eaton <jwe@octave.org>
parents:
24270
diff
changeset
|
499 symbol_scope pscope = curr_fcn->parent_fcn_scope (); |
8bcfddad15ec
use shared_ptr to manage symbol_scope objects
John W. Eaton <jwe@octave.org>
parents:
24270
diff
changeset
|
500 curr_fcn = pscope.function (); |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
501 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
502 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
503 // Get subfunctions. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
504 const std::list<std::string> names = curr_fcn->subfunction_names (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
505 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
506 size_t sz = names.size (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
507 retval.resize (sz); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
508 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
509 // Loop over them. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
510 size_t i = 0; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
511 for (const auto& nm : names) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
512 retval(i++) = nm; |
22556
121e9639b604
doc: Correctly get last entry from DOCSTRINGS file (bug #49224).
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
513 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
514 return retval; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
515 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
516 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
517 bool help_system::raw_help_from_symbol_table (const std::string& nm, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
518 std::string& h, std::string& w, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
519 bool& symbol_found) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
520 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
521 bool retval = false; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
522 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
523 symbol_table& symtab = m_interpreter.get_symbol_table (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
524 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
525 octave_value val = symtab.find_function (nm); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
526 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
527 if (val.is_defined ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
528 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
529 octave_function *fcn = val.function_value (); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
530 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
531 if (fcn) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
532 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
533 symbol_found = true; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
534 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
535 h = fcn->doc_string (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
536 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
537 retval = true; |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
538 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
539 w = fcn->fcn_file_name (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
540 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
541 if (w.empty ()) |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
542 w = fcn->is_user_function () ? "command-line function" |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
543 : "built-in function"; |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
544 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
545 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
546 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
547 return retval; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
548 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
549 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
550 bool help_system::raw_help_from_file (const std::string& nm, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
551 std::string& h, std::string& file, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
552 bool& symbol_found) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
553 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
554 bool retval = false; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
555 |
25336
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
556 h = get_help_from_file (nm, symbol_found, file); |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
557 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
558 if (h.length () > 0) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
559 retval = true; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
560 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
561 return retval; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
562 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
563 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
564 bool |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
565 help_system::raw_help_from_docstrings_file (const std::string& nm, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
566 std::string& h, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
567 bool& symbol_found) const |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
568 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
569 typedef std::pair<std::streampos, std::streamoff> txt_limits_type; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
570 typedef std::map<std::string, txt_limits_type> help_txt_map_type; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
571 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
572 static help_txt_map_type help_txt_map; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
573 static bool initialized = false; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
574 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
575 h = ""; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
576 symbol_found = false; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
577 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
578 // FIXME: Should we cache the timestamp of the file and reload the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
579 // offsets if it changes? Or just warn about that? Or just ignore |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
580 // it, and assume it won't change? |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
581 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
582 if (! initialized) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
583 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
584 std::ifstream file (m_built_in_docstrings_file.c_str (), |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
585 std::ios::in | std::ios::binary); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
586 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
587 if (! file) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
588 error ("failed to open docstrings file: %s", |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
589 m_built_in_docstrings_file.c_str ()); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
590 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
591 // Ignore header; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
592 file.ignore (std::numeric_limits<std::streamsize>::max(), 0x1d); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
593 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
594 if (file.eof ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
595 error ("invalid built-in-docstrings file!"); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
596 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
597 // FIXME: eliminate fixed buffer size. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
598 size_t bufsize = 1000; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
599 OCTAVE_LOCAL_BUFFER (char, buf, bufsize); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
600 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
601 while (! file.eof ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
602 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
603 std::string name; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
604 int i = 0; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
605 int c; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
606 while (file && (c = file.get ()) != std::istream::traits_type::eof ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
607 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
608 if (c == '\n' || c == '\r') |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
609 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
610 buf[i] = '\0'; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
611 name = buf; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
612 break; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
613 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
614 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
615 buf[i++] = c; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
616 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
617 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
618 // Skip @c FILENAME which is part of current DOCSTRINGS |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
619 // syntax. This may disappear if a specific format for |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
620 // docstring files is developed. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
621 while (file |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
622 && (c = file.get ()) != std::istream::traits_type::eof () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
623 && c != '\n' && c != '\r') |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
624 ; // skip text |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
625 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
626 // skip newline characters |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
627 while (file |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
628 && (c = file.get ()) != std::istream::traits_type::eof () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
629 && c == '\n' && c == '\r') |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
630 ; // skip text |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
631 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
632 file.unget (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
633 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
634 // Position of beginning of help text. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
635 std::streampos beg = file.tellg (); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
636 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
637 // Skip help text. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
638 file.ignore (std::numeric_limits<std::streamsize>::max(), 0x1d); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
639 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
640 // Position of end of help text. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
641 std::streamoff len; |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
642 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
643 if (! file.eof ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
644 len = file.tellg () - beg - 1; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
645 else |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
646 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
647 file.seekg (0, file.end); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
648 len = file.tellg () - beg - 1; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
649 file.setstate (file.eofbit); // reset eof flag |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
650 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
651 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
652 help_txt_map[name] = txt_limits_type (beg, len); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
653 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
654 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
655 initialized = true; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
656 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
657 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
658 help_txt_map_type::const_iterator it = help_txt_map.find (nm); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
659 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
660 if (it != help_txt_map.end ()) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
661 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
662 txt_limits_type txt_limits = it->second; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
663 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
664 std::streampos beg = txt_limits.first; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
665 std::streamoff len = txt_limits.second; |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
666 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
667 std::ifstream file (m_built_in_docstrings_file.c_str (), |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
668 std::ios::in | std::ios::binary); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
669 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
670 if (! file) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
671 error ("failed to open docstrings file: %s", |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
672 m_built_in_docstrings_file.c_str ()); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
673 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
674 file.seekg (beg); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
675 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
676 size_t txt_len = len; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
677 OCTAVE_LOCAL_BUFFER (char, buf, txt_len + 1); |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
678 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
679 file.read (buf, txt_len); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
680 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
681 buf[txt_len] = '\0'; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
682 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
683 h = buf; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
684 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
685 symbol_found = true; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
686 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
687 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
688 return symbol_found; |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
689 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
690 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
691 // FIXME: It's not likely that this does the right thing now. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
692 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
693 string_vector make_name_list (void) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
694 { |
25336
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25103
diff
changeset
|
695 help_system& help_sys = __get_help_system__ ("make_name_list"); |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
696 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
697 return help_sys.make_name_list (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
698 } |
22198
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
699 } |
f6181638f6c5
search docstrings file for built-in and dld function help text (bug #48554)
John W. Eaton <jwe@octave.org>
parents:
22172
diff
changeset
|
700 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
701 DEFMETHOD (get_help_text, interp, args, , |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
702 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
703 @deftypefn {} {[@var{text}, @var{format}] =} get_help_text (@var{name}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
704 Return the raw help text of function @var{name}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
705 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
706 The raw help text is returned in @var{text} and the format in @var{format} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
707 The format is a string which is one of @qcode{"texinfo"}, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
708 @qcode{"html"}, or @qcode{"plain text"}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
709 @seealso{get_help_text_from_file} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
710 @end deftypefn */) |
529 | 711 { |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
712 if (args.length () != 1) |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
713 print_usage (); |
1755 | 714 |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
715 const std::string name = args(0).xstring_value ("get_help_text: NAME must be a string"); |
529 | 716 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
717 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
718 |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20922
diff
changeset
|
719 std::string text, format; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11572
diff
changeset
|
720 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
721 help_sys.get_help_text (name, text, format); |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
722 |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20922
diff
changeset
|
723 return ovl (text, format); |
529 | 724 } |
725 | |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
726 DEFMETHOD (get_help_text_from_file, interp, args, , |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
727 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
728 @deftypefn {} {[@var{text}, @var{format}] =} get_help_text_from_file (@var{fname}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
729 Return the raw help text from the file @var{fname}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
730 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
731 The raw help text is returned in @var{text} and the format in @var{format} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
732 The format is a string which is one of @qcode{"texinfo"}, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
733 @qcode{"html"}, or @qcode{"plain text"}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
734 @seealso{get_help_text} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
735 @end deftypefn */) |
9806
8e345f2fe4d6
improved support for Contents.m files
John W. Eaton <jwe@octave.org>
parents:
9416
diff
changeset
|
736 { |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
737 if (args.length () != 1) |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
738 print_usage (); |
9806
8e345f2fe4d6
improved support for Contents.m files
John W. Eaton <jwe@octave.org>
parents:
9416
diff
changeset
|
739 |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
740 const std::string fname = args(0).xstring_value ("get_help_text_from_file: NAME must be a string"); |
9806
8e345f2fe4d6
improved support for Contents.m files
John W. Eaton <jwe@octave.org>
parents:
9416
diff
changeset
|
741 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
742 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
743 |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20922
diff
changeset
|
744 std::string text, format; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11572
diff
changeset
|
745 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
746 help_sys.get_help_text_from_file (fname, text, format); |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
747 |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20922
diff
changeset
|
748 return ovl (text, format); |
9806
8e345f2fe4d6
improved support for Contents.m files
John W. Eaton <jwe@octave.org>
parents:
9416
diff
changeset
|
749 } |
8e345f2fe4d6
improved support for Contents.m files
John W. Eaton <jwe@octave.org>
parents:
9416
diff
changeset
|
750 |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
751 // Return a cell array of strings containing the names of all operators. |
8812
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
752 |
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
753 DEFUN (__operators__, , , |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
754 doc: /* -*- texinfo -*- |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
755 @deftypefn {} {} __operators__ () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
756 Undocumented internal function. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
757 @end deftypefn */) |
3355 | 758 { |
22199
af0dca907fae
get help text for operators and keywords from docstrings file
John W. Eaton <jwe@octave.org>
parents:
22198
diff
changeset
|
759 return ovl (Cell (operator_names)); |
3355 | 760 } |
761 | |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
762 // Return a cell array of strings containing the names of all keywords. |
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
763 // iskeyword() function is located in lex.ll and is based on what the parser |
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
764 // thinks is a keyword. |
8812
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
765 |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
766 DEFALIAS (__keywords__, iskeyword) |
581 | 767 |
23065
7c7a61c2e0ed
Replace out-of-date __keywords__ with alias to iskeyword.
Rik <rik@octave.org>
parents:
23052
diff
changeset
|
768 // Return a cell array of strings with the names of all builtin functions. |
8812
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
769 |
23599
5cb3a2bb5e1e
don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents:
23553
diff
changeset
|
770 DEFMETHOD (__builtins__, interp, , , |
5cb3a2bb5e1e
don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents:
23553
diff
changeset
|
771 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
772 @deftypefn {} {} __builtins__ () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
773 Undocumented internal function. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
774 @end deftypefn */) |
3355 | 775 { |
23693
b9378eff6d13
move symbol_table class inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23604
diff
changeset
|
776 octave::symbol_table& symtab = interp.get_symbol_table (); |
23599
5cb3a2bb5e1e
don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents:
23553
diff
changeset
|
777 |
5cb3a2bb5e1e
don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents:
23553
diff
changeset
|
778 const string_vector bif = symtab.built_in_function_names (); |
3355 | 779 |
21127
df7891224709
maint: Use "return ovl (...)" in DEFUN macros.
Rik <rik@octave.org>
parents:
21100
diff
changeset
|
780 return ovl (Cell (bif)); |
3355 | 781 } |
782 | |
23553
14723784b9f2
don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents:
23466
diff
changeset
|
783 DEFMETHOD (localfunctions, interp, args, , |
14723784b9f2
don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents:
23466
diff
changeset
|
784 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
785 @deftypefn {} {} localfunctions () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
786 Return a list of all local functions, i.e., subfunctions, within the current |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
787 file. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
788 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
789 The return value is a column cell array of function handles to all local |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
790 functions accessible from the function from which @code{localfunctions} is |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
791 called. Nested functions are @emph{not} included in the list. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
792 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
793 If the call is from the command line, an anonymous function, or a script, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
794 the return value is an empty cell array. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
795 |
22974
ecc5eeada8dc
Don't mark nested functions in primary function as subfunctions.
Rik <rik@octave.org>
parents:
22885
diff
changeset
|
796 @seealso{functions} |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
797 @end deftypefn */) |
21765
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
798 { |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
799 if (args.length () != 0) |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
800 print_usage (); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
801 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
802 Cell retval; |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
803 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
804 // Find the main function we are in. |
23553
14723784b9f2
don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents:
23466
diff
changeset
|
805 octave::call_stack& cs = interp.get_call_stack (); |
14723784b9f2
don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents:
23466
diff
changeset
|
806 octave_user_code *parent_fcn = cs.debug_user_code (); |
21765
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
807 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
808 if (! parent_fcn) |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
809 return ovl (retval); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
810 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
811 // Find the subfunctions of this function. |
22974
ecc5eeada8dc
Don't mark nested functions in primary function as subfunctions.
Rik <rik@octave.org>
parents:
22885
diff
changeset
|
812 // 1) subfunction_names contains only valid subfunctions |
ecc5eeada8dc
Don't mark nested functions in primary function as subfunctions.
Rik <rik@octave.org>
parents:
22885
diff
changeset
|
813 // 2) subfunctions contains both nested functions and subfunctions |
21765
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
814 const std::list<std::string> names = parent_fcn->subfunction_names (); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
815 const std::map<std::string, octave_value> h = parent_fcn->subfunctions (); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
816 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
817 size_t sz = names.size (); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
818 retval.resize (dim_vector (sz, 1)); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
819 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
820 // loop over them. |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
821 size_t i = 0; |
22862
e365e87371a3
maint: Use C++ range feature to simplify some for loops in libinterp/corefcn.
Rik <rik@octave.org>
parents:
22825
diff
changeset
|
822 for (const auto& nm : names) |
21765
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
823 { |
22862
e365e87371a3
maint: Use C++ range feature to simplify some for loops in libinterp/corefcn.
Rik <rik@octave.org>
parents:
22825
diff
changeset
|
824 std::map<std::string, octave_value>::const_iterator nm_fcn = h.find (nm); |
22974
ecc5eeada8dc
Don't mark nested functions in primary function as subfunctions.
Rik <rik@octave.org>
parents:
22885
diff
changeset
|
825 if (nm_fcn != h.end ()) |
22862
e365e87371a3
maint: Use C++ range feature to simplify some for loops in libinterp/corefcn.
Rik <rik@octave.org>
parents:
22825
diff
changeset
|
826 retval(i++) = octave_value (new octave_fcn_handle (nm_fcn->second, nm)); |
21765
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
827 } |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
828 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
829 return ovl (retval); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
830 } |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
831 |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
832 /* |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
833 %!test |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
834 %! f = tempname (".", "oct_"); |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
835 %! fcn_name = f(3:end); |
22016
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
836 %! f = [f ".m"]; |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
837 %! unwind_protect |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
838 %! fid = fopen (f, "w+"); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
839 %! fprintf (fid, "function z = %s\n z = localfunctions; end\n", fcn_name); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
840 %! fprintf (fid, "function z = b(x)\n z = x+1; end\n"); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
841 %! fprintf (fid, "function z = c(x)\n z = 2*x; end\n"); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
842 %! fclose (fid); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
843 %! d = eval (fcn_name); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
844 %! assert (size (d), [2, 1]); |
22974
ecc5eeada8dc
Don't mark nested functions in primary function as subfunctions.
Rik <rik@octave.org>
parents:
22885
diff
changeset
|
845 %! assert (d{1} (3), 4); |
ecc5eeada8dc
Don't mark nested functions in primary function as subfunctions.
Rik <rik@octave.org>
parents:
22885
diff
changeset
|
846 %! assert (d{2} (3), 6); |
22016
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
847 %! unwind_protect_cleanup |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
848 %! unlink (f); |
d4ce10f57918
Clean up localfunctions BIST test
Mike Miller <mtmiller@octave.org>
parents:
21966
diff
changeset
|
849 %! end_unwind_protect |
21765
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
850 */ |
23a610a3f001
Implement localfunctions Matlab command (bug #47705).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21733
diff
changeset
|
851 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
852 DEFMETHOD (__which__, interp, args, , |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
853 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
854 @deftypefn {} {} __which__ (@var{name}, @dots{}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
855 Undocumented internal function. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
856 @end deftypefn */) |
581 | 857 { |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
858 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
859 |
20996 | 860 string_vector argv = args.make_argv (); |
1755 | 861 |
20922
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
862 int nargin = argv.numel (); |
581 | 863 |
20922
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
864 octave_map m (dim_vector (1, nargin)); |
581 | 865 |
20922
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
866 Cell names (1, nargin); |
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
867 Cell files (1, nargin); |
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
868 Cell types (1, nargin); |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
869 |
20922
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
870 for (int i = 0; i < nargin; i++) |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
871 { |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
872 std::string name = argv[i]; |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
873 |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
874 std::string type; |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
875 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
876 std::string file = help_sys.which (name, type); |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
877 |
20922
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
878 names(i) = name; |
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
879 files(i) = file; |
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
880 types(i) = type; |
20803
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
881 } |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
882 |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
883 m.assign ("name", names); |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
884 m.assign ("file", files); |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
885 m.assign ("type", types); |
c22206c1a88f
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20714
diff
changeset
|
886 |
20922
49081851fddc
Eliminate duplicate input arg checking in which.m and __which__.
Rik <rik@octave.org>
parents:
20884
diff
changeset
|
887 return ovl (m); |
581 | 888 } |
889 | |
8812
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
890 // Return a cell array of strings containing the names of all |
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
891 // functions available in DIRECTORY. If no directory is given, search |
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
892 // the current path. |
7d48766c21a5
use consistent format for doc strings of internal functions
John W. Eaton <jwe@octave.org>
parents:
8672
diff
changeset
|
893 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
894 DEFMETHOD (__list_functions__, interp, args, , |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
895 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
896 @deftypefn {} {@var{retval} =} __list_functions__ () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
897 @deftypefnx {} {@var{retval} =} __list_functions__ (@var{directory}) |
22337
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
898 Return a list of all functions (.m and .oct functions) in the load path. |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
899 |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
900 If the optional argument @var{directory} is given then list only the functions |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
901 in that directory. |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
902 @seealso{path} |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
903 @end deftypefn */) |
8575
f134925a1cfa
m-file implementation of help system
Soren Hauberg <soren@hauberg.org>
parents:
8503
diff
changeset
|
904 { |
8863
34a821854961
pkg.m (generate_lookfor_cache): generate a DOC file for each directory
Jason Riedy <jason@acm.org>
parents:
8861
diff
changeset
|
905 octave_value retval; |
5447 | 906 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
907 octave::load_path& lp = interp.get_load_path (); |
23438
d24d01273bd0
eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
908 |
22337
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
909 if (args.length () == 0) |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
910 { |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
911 // Get list of all functions |
23438
d24d01273bd0
eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
912 string_vector ffl = lp.fcn_names (); |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
23065
diff
changeset
|
913 string_vector afl = octave::autoloaded_functions (); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11572
diff
changeset
|
914 |
22337
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
915 retval = Cell (ffl.append (afl)); |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
916 } |
20581
fd0efcdb3718
use new string_value method to handle value extraction errors
John W. Eaton <jwe@octave.org>
parents:
20232
diff
changeset
|
917 else |
5447 | 918 { |
20700
68e3a747ca02
rename octave_value value extractors that accept error message args
John W. Eaton <jwe@octave.org>
parents:
20678
diff
changeset
|
919 std::string dir = args(0).xstring_value ("__list_functions__: DIRECTORY argument must be a string"); |
8863
34a821854961
pkg.m (generate_lookfor_cache): generate a DOC file for each directory
Jason Riedy <jason@acm.org>
parents:
8861
diff
changeset
|
920 |
23438
d24d01273bd0
eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
921 string_vector fl = lp.files (dir, true); |
19403
03067dab10ca
Use stricter input validation when looking for a string as input (bug #42651).
Rik <rik@octave.org>
parents:
19269
diff
changeset
|
922 |
22337
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
923 // Return a sorted list with unique entries (in case of .m and .oct |
77c209d63b75
Update __list_functions__ internal function.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
924 // versions of the same function in a given directory, for example). |
20581
fd0efcdb3718
use new string_value method to handle value extraction errors
John W. Eaton <jwe@octave.org>
parents:
20232
diff
changeset
|
925 fl.sort (true); |
8863
34a821854961
pkg.m (generate_lookfor_cache): generate a DOC file for each directory
Jason Riedy <jason@acm.org>
parents:
8861
diff
changeset
|
926 |
20581
fd0efcdb3718
use new string_value method to handle value extraction errors
John W. Eaton <jwe@octave.org>
parents:
20232
diff
changeset
|
927 retval = Cell (fl); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11572
diff
changeset
|
928 } |
5447 | 929 |
930 return retval; | |
931 } | |
932 | |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
933 DEFMETHOD (built_in_docstrings_file, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
934 doc: /* -*- texinfo -*- |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
935 @deftypefn {} {@var{val} =} built_in_docstrings_file () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
936 @deftypefnx {} {@var{old_val} =} built_in_docstrings_file (@var{new_val}) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
937 @deftypefnx {} {} built_in_docstrings_file (@var{new_val}, "local") |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
938 Query or set the internal variable that specifies the name of the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
939 file containing docstrings for built-in Octave functions. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
940 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
941 The default value is |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
942 @file{@var{octave-home}/share/octave/@var{version}/etc/built-in-docstrings}, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
943 in which @var{octave-home} is the root directory of the Octave installation, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
944 and @var{version} is the Octave version number. The default value may be |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
945 overridden by the environment variable |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
946 @w{@env{OCTAVE_BUILT_IN_DOCSTRINGS_FILE}}, or the command line argument |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
947 @option{--built-in-docstrings-file FNAME}. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
948 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
949 Note: This variable is only used when Octave is initializing itself. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
950 Modifying it during a running session of Octave will have no effect. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
951 @end deftypefn */) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
952 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
953 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
954 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
955 return help_sys.built_in_docstrings_file (args, nargout); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
956 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
957 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
958 DEFMETHOD (doc_cache_file, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
959 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
960 @deftypefn {} {@var{val} =} doc_cache_file () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
961 @deftypefnx {} {@var{old_val} =} doc_cache_file (@var{new_val}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
962 @deftypefnx {} {} doc_cache_file (@var{new_val}, "local") |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
963 Query or set the internal variable that specifies the name of the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
964 Octave documentation cache file. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
965 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
966 A cache file significantly improves the performance of the @code{lookfor} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
967 command. The default value is |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
968 @file{@var{octave-home}/share/octave/@var{version}/etc/doc-cache}, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
969 in which @var{octave-home} is the root directory of the Octave installation, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
970 and @var{version} is the Octave version number. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
971 The default value may be overridden by the environment variable |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
972 @w{@env{OCTAVE_DOC_CACHE_FILE}}, or the command line argument |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
973 @option{--doc-cache-file FNAME}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
974 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
975 When called from inside a function with the @qcode{"local"} option, the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
976 variable is changed locally for the function and any subroutines it calls. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
977 The original variable value is restored when exiting the function. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
978 @seealso{doc_cache_create, lookfor, info_program, doc, help, makeinfo_program} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
979 @seealso{lookfor} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
980 @end deftypefn */) |
8861 | 981 { |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
982 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
983 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
984 return help_sys.doc_cache_file (args, nargout); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
985 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
986 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
987 DEFMETHOD (info_file, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
988 doc: /* -*- texinfo -*- |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
989 @deftypefn {} {@var{val} =} info_file () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
990 @deftypefnx {} {@var{old_val} =} info_file (@var{new_val}) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
991 @deftypefnx {} {} info_file (@var{new_val}, "local") |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
992 Query or set the internal variable that specifies the name of the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
993 Octave info file. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
994 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
995 The default value is |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
996 @file{@var{octave-home}/info/octave.info}, in |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
997 which @var{octave-home} is the root directory of the Octave installation. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
998 The default value may be overridden by the environment variable |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
999 @w{@env{OCTAVE_INFO_FILE}}, or the command line argument |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1000 @option{--info-file FNAME}. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1001 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1002 When called from inside a function with the @qcode{"local"} option, the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1003 variable is changed locally for the function and any subroutines it calls. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1004 The original variable value is restored when exiting the function. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1005 @seealso{info_program, doc, help, makeinfo_program} |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1006 @end deftypefn */) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1007 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1008 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1009 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1010 return help_sys.info_file (args, nargout); |
8861 | 1011 } |
1012 | |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1013 DEFMETHOD (info_program, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1014 doc: /* -*- texinfo -*- |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1015 @deftypefn {} {@var{val} =} info_program () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1016 @deftypefnx {} {@var{old_val} =} info_program (@var{new_val}) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1017 @deftypefnx {} {} info_program (@var{new_val}, "local") |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1018 Query or set the internal variable that specifies the name of the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1019 info program to run. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1020 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1021 The default value is |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1022 @file{@var{octave-home}/libexec/octave/@var{version}/exec/@var{arch}/info} |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1023 in which @var{octave-home} is the root directory of the Octave installation, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1024 @var{version} is the Octave version number, and @var{arch} is the system |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1025 type (for example, @code{i686-pc-linux-gnu}). The default value may be |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1026 overridden by the environment variable |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1027 @w{@env{OCTAVE_INFO_PROGRAM}}, or the command line argument |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1028 @option{--info-program NAME}. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1029 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1030 When called from inside a function with the @qcode{"local"} option, the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1031 variable is changed locally for the function and any subroutines it calls. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1032 The original variable value is restored when exiting the function. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1033 @seealso{info_file, doc, help, makeinfo_program} |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1034 @end deftypefn */) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1035 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1036 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1037 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1038 return help_sys.info_program (args, nargout); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1039 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1040 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1041 DEFMETHOD (makeinfo_program, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1042 doc: /* -*- texinfo -*- |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1043 @deftypefn {} {@var{val} =} makeinfo_program () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1044 @deftypefnx {} {@var{old_val} =} makeinfo_program (@var{new_val}) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1045 @deftypefnx {} {} makeinfo_program (@var{new_val}, "local") |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1046 Query or set the internal variable that specifies the name of the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1047 program that Octave runs to format help text containing |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1048 Texinfo markup commands. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1049 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1050 The default value is @code{makeinfo}. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1051 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1052 When called from inside a function with the @qcode{"local"} option, the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1053 variable is changed locally for the function and any subroutines it calls. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1054 The original variable value is restored when exiting the function. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1055 @seealso{texi_macros_file, info_file, info_program, doc, help} |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1056 @end deftypefn */) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1057 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1058 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1059 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1060 return help_sys.makeinfo_program (args, nargout); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1061 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1062 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1063 DEFMETHOD (suppress_verbose_help_message, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1064 doc: /* -*- texinfo -*- |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1065 @deftypefn {} {@var{val} =} suppress_verbose_help_message () |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1066 @deftypefnx {} {@var{old_val} =} suppress_verbose_help_message (@var{new_val}) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1067 @deftypefnx {} {} suppress_verbose_help_message (@var{new_val}, "local") |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1068 Query or set the internal variable that controls whether Octave |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1069 will add additional help information to the end of the output from |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1070 the @code{help} command and usage messages for built-in commands. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1071 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1072 When called from inside a function with the @qcode{"local"} option, the |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1073 variable is changed locally for the function and any subroutines it calls. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1074 The original variable value is restored when exiting the function. |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1075 @end deftypefn */) |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1076 { |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1077 octave::help_system& help_sys = interp.get_help_system (); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1078 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1079 return help_sys.suppress_verbose_help_message (args, nargout); |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1080 } |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1081 |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1082 DEFMETHOD (texi_macros_file, interp, args, nargout, |
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1083 doc: /* -*- texinfo -*- |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1084 @deftypefn {} {@var{val} =} texi_macros_file () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1085 @deftypefnx {} {@var{old_val} =} texi_macros_file (@var{new_val}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1086 @deftypefnx {} {} texi_macros_file (@var{new_val}, "local") |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1087 Query or set the internal variable that specifies the name of the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1088 file containing Texinfo macros that are prepended to documentation strings |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1089 before they are passed to makeinfo. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1090 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1091 The default value is |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1092 @file{@var{octave-home}/share/octave/@var{version}/etc/macros.texi}, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1093 in which @var{octave-home} is the root directory of the Octave installation, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1094 and @var{version} is the Octave version number. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1095 The default value may be overridden by the environment variable |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1096 @w{@env{OCTAVE_TEXI_MACROS_FILE}}, or the command line argument |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1097 @option{--texi-macros-file FNAME}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1098 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1099 When called from inside a function with the @qcode{"local"} option, the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1100 variable is changed locally for the function and any subroutines it calls. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1101 The original variable value is restored when exiting the function. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1102 @seealso{makeinfo_program} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1103 @end deftypefn */) |
14614
4e9dc46d4125
handle texinfo macros consistently in help system and manual
John W. Eaton <jwe@octave.org>
parents:
14360
diff
changeset
|
1104 { |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1105 octave::help_system& help_sys = interp.get_help_system (); |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
1106 |
23721
b2d55b52ee51
new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents:
23693
diff
changeset
|
1107 return help_sys.texi_macros_file (args, nargout); |
5794 | 1108 } |