Mercurial > octave-nkf
comparison src/strfns.cc @ 10315:57a59eae83cc
untabify src C++ source files
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 11 Feb 2010 12:41:46 -0500 |
parents | c4c2bda71f82 |
children | 9966f1f71c32 |
comparison
equal
deleted
inserted
replaced
10314:07ebe522dac2 | 10315:57a59eae83cc |
---|---|
80 | 80 |
81 int nargin = args.length (); | 81 int nargin = args.length (); |
82 | 82 |
83 if (nargin == 1) | 83 if (nargin == 1) |
84 retval = args(0).convert_to_str (true, true, | 84 retval = args(0).convert_to_str (true, true, |
85 args(0).is_dq_string () ? '"' : '\''); | 85 args(0).is_dq_string () ? '"' : '\''); |
86 else if (nargin > 1) | 86 else if (nargin > 1) |
87 { | 87 { |
88 int n_elts = 0; | 88 int n_elts = 0; |
89 | 89 |
90 int max_len = 0; | 90 int max_len = 0; |
91 | 91 |
92 std::queue<string_vector> args_as_strings; | 92 std::queue<string_vector> args_as_strings; |
93 | 93 |
94 for (int i = 0; i < nargin; i++) | 94 for (int i = 0; i < nargin; i++) |
95 { | 95 { |
96 string_vector s = args(i).all_strings (); | 96 string_vector s = args(i).all_strings (); |
97 | 97 |
98 if (error_state) | 98 if (error_state) |
99 { | 99 { |
100 error ("char: unable to convert some args to strings"); | 100 error ("char: unable to convert some args to strings"); |
101 return retval; | 101 return retval; |
102 } | 102 } |
103 | 103 |
104 if (s.length () > 0) | 104 if (s.length () > 0) |
105 n_elts += s.length (); | 105 n_elts += s.length (); |
106 else | 106 else |
107 n_elts += 1; | 107 n_elts += 1; |
108 | 108 |
109 int s_max_len = s.max_length (); | 109 int s_max_len = s.max_length (); |
110 | 110 |
111 if (s_max_len > max_len) | 111 if (s_max_len > max_len) |
112 max_len = s_max_len; | 112 max_len = s_max_len; |
113 | 113 |
114 args_as_strings.push (s); | 114 args_as_strings.push (s); |
115 } | 115 } |
116 | 116 |
117 string_vector result (n_elts); | 117 string_vector result (n_elts); |
118 | 118 |
119 int k = 0; | 119 int k = 0; |
120 | 120 |
121 for (int i = 0; i < nargin; i++) | 121 for (int i = 0; i < nargin; i++) |
122 { | 122 { |
123 string_vector s = args_as_strings.front (); | 123 string_vector s = args_as_strings.front (); |
124 args_as_strings.pop (); | 124 args_as_strings.pop (); |
125 | 125 |
126 int n = s.length (); | 126 int n = s.length (); |
127 | 127 |
128 if (n > 0) | 128 if (n > 0) |
129 { | 129 { |
130 for (int j = 0; j < n; j++) | 130 for (int j = 0; j < n; j++) |
131 { | 131 { |
132 std::string t = s[j]; | 132 std::string t = s[j]; |
133 int t_len = t.length (); | 133 int t_len = t.length (); |
134 | 134 |
135 if (max_len > t_len) | 135 if (max_len > t_len) |
136 t += std::string (max_len - t_len, ' '); | 136 t += std::string (max_len - t_len, ' '); |
137 | 137 |
138 result[k++] = t; | 138 result[k++] = t; |
139 } | 139 } |
140 } | 140 } |
141 else | 141 else |
142 result[k++] = std::string (max_len, ' '); | 142 result[k++] = std::string (max_len, ' '); |
143 } | 143 } |
144 | 144 |
145 retval = octave_value (result, '\''); | 145 retval = octave_value (result, '\''); |
146 } | 146 } |
147 else | 147 else |
148 print_usage (); | 148 print_usage (); |
209 size_t max_len = 0; | 209 size_t max_len = 0; |
210 | 210 |
211 std::queue<string_vector> args_as_strings; | 211 std::queue<string_vector> args_as_strings; |
212 | 212 |
213 for (int i = 0; i < nargin; i++) | 213 for (int i = 0; i < nargin; i++) |
214 { | 214 { |
215 string_vector s = args(i).all_strings (); | 215 string_vector s = args(i).all_strings (); |
216 | 216 |
217 if (error_state) | 217 if (error_state) |
218 { | 218 { |
219 error ("strvcat: unable to convert some args to strings"); | 219 error ("strvcat: unable to convert some args to strings"); |
220 return retval; | 220 return retval; |
221 } | 221 } |
222 | 222 |
223 size_t n = s.length (); | 223 size_t n = s.length (); |
224 | 224 |
225 // do not count empty strings in calculation of number of elements | 225 // do not count empty strings in calculation of number of elements |
226 if (n > 0) | 226 if (n > 0) |
230 if (s[j].length () > 0) | 230 if (s[j].length () > 0) |
231 n_elts++; | 231 n_elts++; |
232 } | 232 } |
233 } | 233 } |
234 | 234 |
235 size_t s_max_len = s.max_length (); | 235 size_t s_max_len = s.max_length (); |
236 | 236 |
237 if (s_max_len > max_len) | 237 if (s_max_len > max_len) |
238 max_len = s_max_len; | 238 max_len = s_max_len; |
239 | 239 |
240 args_as_strings.push (s); | 240 args_as_strings.push (s); |
241 } | 241 } |
242 | 242 |
243 string_vector result (n_elts); | 243 string_vector result (n_elts); |
244 | 244 |
245 octave_idx_type k = 0; | 245 octave_idx_type k = 0; |
246 | 246 |
247 for (int i = 0; i < nargin; i++) | 247 for (int i = 0; i < nargin; i++) |
248 { | 248 { |
249 string_vector s = args_as_strings.front (); | 249 string_vector s = args_as_strings.front (); |
250 args_as_strings.pop (); | 250 args_as_strings.pop (); |
251 | 251 |
252 size_t n = s.length (); | 252 size_t n = s.length (); |
253 | 253 |
254 if (n > 0) | 254 if (n > 0) |
255 { | 255 { |
256 for (size_t j = 0; j < n; j++) | 256 for (size_t j = 0; j < n; j++) |
257 { | 257 { |
258 std::string t = s[j]; | 258 std::string t = s[j]; |
259 if (t.length () > 0) | 259 if (t.length () > 0) |
260 { | 260 { |
261 size_t t_len = t.length (); | 261 size_t t_len = t.length (); |
262 | 262 |
263 if (max_len > t_len) | 263 if (max_len > t_len) |
264 t += std::string (max_len - t_len, ' '); | 264 t += std::string (max_len - t_len, ' '); |
265 | 265 |
266 result[k++] = t; | 266 result[k++] = t; |
267 } | 267 } |
268 } | 268 } |
269 } | 269 } |
270 } | 270 } |
271 | 271 |
272 retval = octave_value (result, '\''); | 272 retval = octave_value (result, '\''); |
273 } | 273 } |
274 else | 274 else |
275 print_usage (); | 275 print_usage (); |
872 if (nargin == 1 || nargin == 2) | 872 if (nargin == 1 || nargin == 2) |
873 { | 873 { |
874 string_vector s = args(0).all_strings (); | 874 string_vector s = args(0).all_strings (); |
875 | 875 |
876 if (! error_state) | 876 if (! error_state) |
877 { | 877 { |
878 std::ostringstream buf; | 878 std::ostringstream buf; |
879 | 879 |
880 if (nargin == 1) | 880 if (nargin == 1) |
881 // Let list_in_columns query terminal width. | 881 // Let list_in_columns query terminal width. |
882 s.list_in_columns (buf); | 882 s.list_in_columns (buf); |
883 else | 883 else |
884 { | 884 { |
885 int width = args(1).int_value (); | 885 int width = args(1).int_value (); |
886 | 886 |
887 if (! error_state) | 887 if (! error_state) |
888 s.list_in_columns (buf, width); | 888 s.list_in_columns (buf, width); |
889 else | 889 else |
890 error ("list_in_columns: expecting width to be an integer"); | 890 error ("list_in_columns: expecting width to be an integer"); |
891 } | 891 } |
892 | 892 |
893 retval = buf.str (); | 893 retval = buf.str (); |
894 } | 894 } |
895 else | 895 else |
896 error ("list_in_columns: expecting cellstr or char array"); | 896 error ("list_in_columns: expecting cellstr or char array"); |
897 } | 897 } |
898 else | 898 else |
899 print_usage (); | 899 print_usage (); |
900 | 900 |
901 return retval; | 901 return retval; |