Mercurial > octave
comparison src/ov-cell.cc @ 7285:c8d362c69013
[project @ 2007-12-11 01:54:19 by jwe]
author | jwe |
---|---|
date | Tue, 11 Dec 2007 01:54:19 +0000 |
parents | 1f16da18d85d |
children | 8c32f95c2639 1a7ef7a48be1 |
comparison
equal
deleted
inserted
replaced
7284:a239de118fa6 | 7285:c8d362c69013 |
---|---|
340 string_vector | 340 string_vector |
341 octave_cell::all_strings (bool pad) const | 341 octave_cell::all_strings (bool pad) const |
342 { | 342 { |
343 string_vector retval; | 343 string_vector retval; |
344 | 344 |
345 octave_idx_type nr = rows (); | 345 octave_idx_type nel = numel (); |
346 octave_idx_type nc = columns (); | |
347 | 346 |
348 int n_elts = 0; | 347 int n_elts = 0; |
349 | 348 |
350 octave_idx_type max_len = 0; | 349 octave_idx_type max_len = 0; |
351 | 350 |
352 for (octave_idx_type j = 0; j < nc; j++) | 351 for (octave_idx_type i = 0; i < nel; i++) |
353 { | 352 { |
354 for (octave_idx_type i = 0; i < nr; i++) | 353 string_vector s = matrix(i).all_strings (); |
355 { | 354 |
356 string_vector s = matrix(i,j).all_strings (); | 355 if (error_state) |
357 | 356 return retval; |
358 if (error_state) | 357 |
359 return retval; | 358 octave_idx_type s_len = s.length (); |
360 | 359 |
361 n_elts += s.length (); | 360 n_elts += s_len ? s_len : 1; |
362 | 361 |
363 octave_idx_type s_max_len = s.max_length (); | 362 octave_idx_type s_max_len = s.max_length (); |
364 | 363 |
365 if (s_max_len > max_len) | 364 if (s_max_len > max_len) |
366 max_len = s_max_len; | 365 max_len = s_max_len; |
367 } | |
368 } | 366 } |
369 | 367 |
370 retval.resize (n_elts); | 368 retval.resize (n_elts); |
371 | 369 |
372 octave_idx_type k = 0; | 370 octave_idx_type k = 0; |
373 | 371 |
374 for (octave_idx_type j = 0; j < nc; j++) | 372 for (octave_idx_type i = 0; i < nel; i++) |
375 { | 373 { |
376 for (octave_idx_type i = 0; i < nr; i++) | 374 string_vector s = matrix(i).all_strings (); |
377 { | 375 |
378 string_vector s = matrix(i,j).all_strings (); | 376 octave_idx_type s_len = s.length (); |
379 | 377 |
380 int n = s.length (); | 378 if (s_len) |
381 | 379 { |
382 for (octave_idx_type ii = 0; ii < n; ii++) | 380 for (octave_idx_type j = 0; j < s_len; j++) |
383 { | 381 { |
384 std::string t = s[ii]; | 382 std::string t = s[j]; |
385 int t_len = t.length (); | 383 int t_len = t.length (); |
386 | 384 |
387 if (pad && max_len > t_len) | 385 if (pad && max_len > t_len) |
388 t += std::string (max_len - t_len, ' '); | 386 t += std::string (max_len - t_len, ' '); |
389 | 387 |
390 retval[k++] = t; | 388 retval[k++] = t; |
391 } | 389 } |
392 } | 390 } |
391 else if (pad) | |
392 retval[k++] = std::string (max_len, ' '); | |
393 else | |
394 retval[k++] = std::string (); | |
393 } | 395 } |
394 | 396 |
395 return retval; | 397 return retval; |
396 } | 398 } |
397 | 399 |