GNU Octave 10.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
help.h
Go to the documentation of this file.
1////////////////////////////////////////////////////////////////////////
2//
3// Copyright (C) 1993-2025 The Octave Project Developers
4//
5// See the file COPYRIGHT.md in the top-level directory of this
6// distribution or <https://octave.org/copyright/>.
7//
8// This file is part of Octave.
9//
10// Octave is free software: you can redistribute it and/or modify it
11// under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// Octave is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with Octave; see the file COPYING. If not, see
22// <https://www.gnu.org/licenses/>.
23//
24////////////////////////////////////////////////////////////////////////
25
26#if ! defined (octave_help_h)
27#define octave_help_h 1
28
29#include "octave-config.h"
30
31#include <iosfwd>
32#include <string>
33
34class string_vector;
35
36class octave_value;
38
40
41class cdef_class;
42class interpreter;
43
45{
46public:
47
49 : m_interpreter (interp),
50 m_built_in_docstrings_file (init_built_in_docstrings_file ()),
51 m_doc_cache_file (init_doc_cache_file ()),
52 m_info_file (init_info_file ()),
53 m_info_program (init_info_program ()),
54 m_makeinfo_program ("makeinfo"),
55 m_suppress_verbose_help_message (false),
56 m_texi_macros_file (init_texi_macros_file ())
57 { }
58
60 built_in_docstrings_file (const octave_value_list& args, int nargout);
61
62 std::string
63 built_in_docstrings_file () const { return m_built_in_docstrings_file; }
64
65 std::string built_in_docstrings_file (const std::string& file)
66 {
67 return set (m_built_in_docstrings_file, file);
68 }
69
70 octave_value doc_cache_file (const octave_value_list& args, int nargout);
71
72 std::string doc_cache_file () const { return m_doc_cache_file; }
73
74 std::string doc_cache_file (const std::string& file)
75 {
76 return set (m_doc_cache_file, file);
77 }
78
79 octave_value info_file (const octave_value_list& args, int nargout);
80
81 std::string info_file () const { return m_info_file; }
82
83 std::string info_file (const std::string& file)
84 {
85 return set (m_info_file, file);
86 }
87
88 octave_value info_program (const octave_value_list& args, int nargout);
89
90 std::string info_program () const { return m_info_program; }
91
92 std::string info_program (const std::string& file)
93 {
94 return set (m_info_program, file);
95 }
96
98
99 std::string makeinfo_program () const { return m_makeinfo_program; }
100
101 std::string makeinfo_program (const std::string& file)
102 {
103 return set (m_makeinfo_program, file);
104 }
105
108
110 {
111 return m_suppress_verbose_help_message;
112 }
113
115 {
116 return set (m_suppress_verbose_help_message, flag);
117 }
118
120
121 std::string texi_macros_file () const { return m_texi_macros_file; }
122
123 std::string texi_macros_file (const std::string& file)
124 {
125 return set (m_texi_macros_file, file);
126 }
127
128 std::string raw_help (const std::string&, bool&) const;
129
130 std::string which (const std::string& name) const;
131 std::string which (const std::string& name, std::string& type) const;
132
134
135 void get_help_text (const std::string& name, std::string& text,
136 std::string& format) const;
137
138 void get_help_text_from_file (const std::string& fname, std::string& text,
139 std::string& format) const;
140
141private:
142
143 interpreter& m_interpreter;
144
145 // Name of the file containing doc strings for built-in functions.
146 // (--built-in-docstrings-file file)
147 std::string m_built_in_docstrings_file;
148
149 // Name of the doc cache file specified on the command line.
150 // (--doc-cache-file file)
151 std::string m_doc_cache_file;
152
153 // Name of the info file specified on command line.
154 // (--info-file file)
155 std::string m_info_file;
156
157 // Name of the info reader we'd like to use.
158 // (--info-program program)
159 std::string m_info_program;
160
161 // Name of the makeinfo program to run.
162 std::string m_makeinfo_program;
163
164 // If TRUE, don't print additional help message in help and usage
165 // functions.
166 bool m_suppress_verbose_help_message;
167
168 // Name of the file containing local Texinfo macros that are prepended
169 // to doc strings before processing.
170 // (--texi-macros-file)
171 std::string m_texi_macros_file;
172
173 static std::string init_built_in_docstrings_file ();
174
175 static std::string init_doc_cache_file ();
176
177 static std::string init_info_file ();
178
179 static std::string init_info_program ();
180
181 static std::string init_texi_macros_file ();
182
183 template <typename T>
184 T set (T& var, const T& new_val)
185 {
186 T old_val = var;
187 var = new_val;
188 return old_val;
189 }
190
191 bool get_which_info_from_fcn (const std::string& name, const octave_value& ov_fcn, std::string& file, std::string& type) const;
192
193 string_vector local_functions () const;
194
195 bool raw_help_for_class (const cdef_class& cls, const std::string& nm,
196 std::string& h, std::string& w,
197 bool& symbol_found) const;
198
199 bool raw_help_from_symbol_table (const std::string& nm,
200 std::string& h, std::string& w,
201 bool& symbol_found) const;
202
203 bool raw_help_from_file (const std::string& nm,
204 std::string& h, std::string& file,
205 bool& symbol_found) const;
206
207 bool raw_help_from_docstrings_file (const std::string& nm, std::string& h,
208 bool& symbol_found) const;
209};
210
212
213OCTAVE_END_NAMESPACE(octave)
214
215#endif
string_vector make_name_list() const
std::string texi_macros_file() const
Definition help.h:121
void get_help_text_from_file(const std::string &fname, std::string &text, std::string &format) const
std::string makeinfo_program(const std::string &file)
Definition help.h:101
void get_help_text(const std::string &name, std::string &text, std::string &format) const
octave_value built_in_docstrings_file(const octave_value_list &args, int nargout)
std::string raw_help(const std::string &, bool &) const
bool suppress_verbose_help_message(bool flag)
Definition help.h:114
std::string info_file() const
Definition help.h:81
std::string info_program() const
Definition help.h:90
bool suppress_verbose_help_message() const
Definition help.h:109
std::string which(const std::string &name) const
octave_value info_file(const octave_value_list &args, int nargout)
std::string info_program(const std::string &file)
Definition help.h:92
std::string which(const std::string &name, std::string &type) const
std::string texi_macros_file(const std::string &file)
Definition help.h:123
help_system(interpreter &interp)
Definition help.h:48
octave_value info_program(const octave_value_list &args, int nargout)
std::string built_in_docstrings_file(const std::string &file)
Definition help.h:65
std::string built_in_docstrings_file() const
Definition help.h:63
octave_value suppress_verbose_help_message(const octave_value_list &args, int nargout)
std::string doc_cache_file() const
Definition help.h:72
octave_value doc_cache_file(const octave_value_list &args, int nargout)
std::string makeinfo_program() const
Definition help.h:99
std::string info_file(const std::string &file)
Definition help.h:83
std::string doc_cache_file(const std::string &file)
Definition help.h:74
octave_value makeinfo_program(const octave_value_list &args, int nargout)
octave_value texi_macros_file(const octave_value_list &args, int nargout)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
string_vector make_name_list()
std::size_t format(std::ostream &os, const char *fmt,...)
Definition utils.cc:1514