Change the length of strings created from fixed-size buffers.
Use the usual C rule for NUL-terminated strings instead of discarding all the trailing NUL characters. This was unexpected (as buffers in C code are not necessarily always padded with NULs to their full length) and also inconsistent among languages as this was only done for those of them using typemaps/strings.swg but not for C# or Java, for example, which terminated the string at the first NUL even before this change. Notice that this patch couldn't use strlen() or wcslen() with possibly not NUL-terminated strings, so we had to add [our own equivalents of] strnlen() and wcsnlen() and use them instead. This required adding yet another parameter to string typemap macros, so update the example using them accordingly too.
This commit is contained in:
parent
ad02cb98e6
commit
88a0e228a9
8 changed files with 75 additions and 20 deletions
|
|
@ -5,6 +5,14 @@ See the RELEASENOTES file for a summary of changes in each release.
|
|||
Version 3.0.0 (in progress)
|
||||
============================
|
||||
|
||||
2013-12-23: vadz
|
||||
[Octave, Perl, Python, R, Ruby, Tcl] Change the length of strings created from fixed-size char
|
||||
buffers in C code.
|
||||
|
||||
This is a potential backwards compatibility break: a "char buf[5]" containing "ho\0la" was
|
||||
returned as a string of length 5 before, but is returned as a string of length 2 now. Apply
|
||||
"char FIXSIZE[ANY]" typemaps to explicitly choose the old behaviour.
|
||||
|
||||
2013-12-23: talby
|
||||
[Perl] Add support for directors.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue