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;