annotate libinterp/corefcn/ls-oct-text.h @ 20482:c6224b4e7774

maint: Rename instances of LS_ASCII to LS_TEXT for clarity. Octave's default save format is '-text' which is confusingly referred to in the code base as LS_ASCII (looks like '-ascii' mode). * ls-oct-text.cc, ls-oct-text.h: Renamed from ls-oct-ascii.[cc|h]. * ls-oct-ascii.cc, ls-oct-ascii.h: Removed files. * libinterp/corefcn/module.mk: Add ls-oct-text.cc, ls-oct-text.h to build system. * load-save.h (load_save_format_type): Change first value of enum from LS_ASCII to LS_TEXT. * load-save.cc: Rename instances of LS_ASCII to LS_TEXT. Rename instances of read_ascii_data to read_text_data. * ov-base-diag.cc, ov-base-int.cc, ov-base-sparse.cc, ov-bool-mat.cc, ov-bool.cc, ov-complex.cc, ov-cx-mat.cc ov-fcn-inline.cc, ov-float.cc, ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-perm.cc, ov-re-mat.cc, ov-scalar.cc, ov-str-mat.cc, ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc: Use '#include "ls-oct-text.h"' rather than ls-oct-ascii.h. ov-cell.cc, ov-class.cc, ov-fcn-handle.cc, ov-lazy-idx.cc, ov-struct.cc: Use '#include "ls-oct-text.h"' rather than ls-oct-ascii.h. Rename save_ascii_data to save_text_data, read_ascii_data to read_text_data.
author Rik <rik@octave.org>
date Mon, 17 Aug 2015 09:20:03 -0700
parents libinterp/corefcn/ls-oct-ascii.h@a9574e3c6e9e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
1 /*
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
2
19731
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
3 Copyright (C) 2003-2015 John W. Eaton
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
4
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
6
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
10 option) any later version.
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
11
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
15 for more details.
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
16
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
18 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
19 <http://www.gnu.org/licenses/>.
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
20
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
21 */
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
22
20482
c6224b4e7774 maint: Rename instances of LS_ASCII to LS_TEXT for clarity.
Rik <rik@octave.org>
parents: 20267
diff changeset
23 #if !defined (octave_ls_oct_text_h)
c6224b4e7774 maint: Rename instances of LS_ASCII to LS_TEXT for clarity.
Rik <rik@octave.org>
parents: 20267
diff changeset
24 #define octave_ls_oct_text_h 1
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
25
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
26 #include <cfloat>
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
27
5765
7ba9ad1fec11 [project @ 2006-04-17 05:05:15 by jwe]
jwe
parents: 5754
diff changeset
28 #include <sstream>
5099
f7e39f977fe8 [project @ 2004-12-24 19:06:01 by jwe]
jwe
parents: 4687
diff changeset
29 #include <string>
f7e39f977fe8 [project @ 2004-12-24 19:06:01 by jwe]
jwe
parents: 4687
diff changeset
30
f7e39f977fe8 [project @ 2004-12-24 19:06:01 by jwe]
jwe
parents: 4687
diff changeset
31 #include "str-vec.h"
f7e39f977fe8 [project @ 2004-12-24 19:06:01 by jwe]
jwe
parents: 4687
diff changeset
32
8946
e7e928088e90 fix CRLF issues with text-mode reading in windows when loading ascii data
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents: 8920
diff changeset
33 #include "ls-ascii-helper.h"
e7e928088e90 fix CRLF issues with text-mode reading in windows when loading ascii data
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents: 8920
diff changeset
34
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
35 // Flag for cell elements
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
36 #define CELL_ELT_TAG "<cell-element>"
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
37
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
38 // Used when converting Inf to something that gnuplot can read.
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
39
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
40 #ifndef OCT_RBV
15213
336f42406671 use numeric_limits functions instead of DBL_MIN, DBL_MAX, etc.
John W. Eaton <jwe@octave.org>
parents: 15195
diff changeset
41 #define OCT_RBV (std::numeric_limits<double>::max () / 100.0)
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
42 #endif
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
43
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
44 extern OCTINTERP_API std::string
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
45 extract_keyword (std::istream& is, const char *keyword,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
46 const bool next_only = false);
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4634
diff changeset
47
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
48 extern OCTINTERP_API std::string
20482
c6224b4e7774 maint: Rename instances of LS_ASCII to LS_TEXT for clarity.
Rik <rik@octave.org>
parents: 20267
diff changeset
49 read_text_data (std::istream& is, const std::string& filename, bool& global,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
50 octave_value& tc, octave_idx_type count);
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
51
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
52 extern OCTINTERP_API bool
20482
c6224b4e7774 maint: Rename instances of LS_ASCII to LS_TEXT for clarity.
Rik <rik@octave.org>
parents: 20267
diff changeset
53 save_text_data (std::ostream& os, const octave_value& val_arg,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
54 const std::string& name, bool mark_as_global, int precision);
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
55
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
56 extern OCTINTERP_API bool
20482
c6224b4e7774 maint: Rename instances of LS_ASCII to LS_TEXT for clarity.
Rik <rik@octave.org>
parents: 20267
diff changeset
57 save_text_data_for_plotting (std::ostream& os, const octave_value& t,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
58 const std::string& name);
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
59
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
60 extern OCTINTERP_API bool
5958
85c7dc4afe6b [project @ 2006-08-23 18:35:38 by jwe]
jwe
parents: 5956
diff changeset
61 save_three_d (std::ostream& os, const octave_value& t,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
62 bool parametric = false);
5958
85c7dc4afe6b [project @ 2006-08-23 18:35:38 by jwe]
jwe
parents: 5956
diff changeset
63
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
64 // Match KEYWORD on stream IS, placing the associated value in VALUE,
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
65 // returning TRUE if successful and FALSE otherwise.
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
66 //
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
67 // Input should look something like:
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
68 //
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
69 // [%#][ \t]*keyword[ \t]*int-value.*\n
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
70
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
71 template <class T>
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
72 bool
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
73 extract_keyword (std::istream& is, const char *keyword, T& value,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
74 const bool next_only = false)
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
75 {
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
76 bool status = false;
14846
460a3c6d8bf1 maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
77 value = T ();
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
78
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
79 char c;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
80 while (is.get (c))
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
81 {
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
82 if (c == '%' || c == '#')
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
83 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
84 std::ostringstream buf;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
85
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
86 while (is.get (c) && (c == ' ' || c == '\t' || c == '%' || c == '#'))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
87 ; // Skip whitespace and comment characters.
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
88
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
89 if (isalpha (c))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
90 buf << c;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
91
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
92 while (is.get (c) && isalpha (c))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
93 buf << c;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
94
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
95 std::string tmp = buf.str ();
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
96 bool match = (tmp.compare (0, strlen (keyword), keyword) == 0);
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
97
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
98 if (match)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
99 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
100 while (is.get (c) && (c == ' ' || c == '\t' || c == ':'))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
101 ; // Skip whitespace and the colon.
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
102
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
103 is.putback (c);
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
104 if (c != '\n' && c != '\r')
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
105 is >> value;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
106 if (is)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
107 status = true;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
108 skip_until_newline (is, false);
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
109 break;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
110 }
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
111 else if (next_only)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
112 break;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
113 }
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
114 }
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
115 return status;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
116 }
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
117
9852
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8946
diff changeset
118 template <class T>
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8946
diff changeset
119 bool
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
120 extract_keyword (std::istream& is, const std::string& kw, T& value,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
121 const bool next_only = false)
9852
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8946
diff changeset
122 {
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8946
diff changeset
123 return extract_keyword (is, kw.c_str (), value, next_only);
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8946
diff changeset
124 }
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 8946
diff changeset
125
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
126 // Match one of the elements in KEYWORDS on stream IS, placing the
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
127 // matched keyword in KW and the associated value in VALUE,
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
128 // returning TRUE if successful and FALSE otherwise.
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
129 //
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
130 // Input should look something like:
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
131 //
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
132 // [%#][ \t]*keyword[ \t]*int-value.*\n
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
133
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
134 template <class T>
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
135 bool
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
136 extract_keyword (std::istream& is, const string_vector& keywords,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
137 std::string& kw, T& value, const bool next_only = false)
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
138 {
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
139 bool status = false;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
140 kw = "";
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
141 value = 0;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
142
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
143 char c;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
144 while (is.get (c))
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
145 {
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
146 if (c == '%' || c == '#')
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
147 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
148 std::ostringstream buf;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
149
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
150 while (is.get (c) && (c == ' ' || c == '\t' || c == '%' || c == '#'))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
151 ; // Skip whitespace and comment characters.
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
152
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
153 if (isalpha (c))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
154 buf << c;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
155
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
156 while (is.get (c) && isalpha (c))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
157 buf << c;
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
158
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
159 std::string tmp = buf.str ();
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
160
20267
a9574e3c6e9e Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents: 19731
diff changeset
161 for (int i = 0; i < keywords.numel (); i++)
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
162 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
163 int match = (tmp == keywords[i]);
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
164
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
165 if (match)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
166 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
167 kw = keywords[i];
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
168
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
169 while (is.get (c) && (c == ' ' || c == '\t' || c == ':'))
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
170 ; // Skip whitespace and the colon.
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
171
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
172 is.putback (c);
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
173 if (c != '\n' && c != '\r')
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
174 is >> value;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
175 if (is)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
176 status = true;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
177 skip_until_newline (is, false);
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
178 return status;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
179 }
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
180 }
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
181
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
182 if (next_only)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
183 break;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
184 }
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
185 }
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
186 return status;
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
187 }
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5099
diff changeset
188
4634
79fe96966ca0 [project @ 2003-11-19 21:22:39 by jwe]
jwe
parents:
diff changeset
189 #endif