Mercurial > hg > octave-nkf
changeset 16815:7a97ff5ef42e
strjoin() should return an empty [0x0] string for an empty input.
* scripts/strings/strjoin.m: Return [0x0] char for an empty input. Add test.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Sun, 23 Jun 2013 09:05:05 +0800 |
parents | 64e7bb01fce2 |
children | 12005245b645 |
files | scripts/strings/strjoin.m |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/strings/strjoin.m +++ b/scripts/strings/strjoin.m @@ -70,14 +70,18 @@ if (numel (delimiter) == 1 && num > 1) delimiter = repmat (delimiter, 1, num); delimiter(end) = {""}; - elseif (numel (delimiter) != num - 1) + elseif (num > 0 && numel (delimiter) != num - 1) error ("strjoin:cellstring_delimiter_mismatch", "strjoin: the number of delimiters does not match the number of strings") else delimiter(end+1) = {""}; endif - rval = [[cstr(:).'; delimiter(:).']{:}]; + if (num == 0) + rval = "" + else + rval = [[cstr(:).'; delimiter(:).']{:}]; + endif endfunction @@ -89,3 +93,4 @@ %! {" ", ",", "-", ";"}), "space comma,dash-semicolon;done") %!assert (strjoin ({'Octave','Scilab'},'\n'), "Octave\nScilab") %!assert (strjoin ({'Octave','Scilab'},{'\n'}), "Octave\\nScilab") +%!assert (strjoin ({},'foo'), "")