aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test
diff options
context:
space:
mode:
authorRory Byrne <[email protected]>2010-01-16 14:47:43 +0000
committerBjörn Gustavsson <[email protected]>2010-01-27 12:27:35 +0100
commitcf7e585bb45970fe0b5a8a6aa6653cd50583d052 (patch)
tree4ebe87470ab3203029a9a7b5e8830569bbaf32b1 /lib/stdlib/test
parent1d2a481cfd016f204183b44d8f95798161b423e3 (diff)
downloadotp-cf7e585bb45970fe0b5a8a6aa6653cd50583d052.tar.gz
otp-cf7e585bb45970fe0b5a8a6aa6653cd50583d052.tar.bz2
otp-cf7e585bb45970fe0b5a8a6aa6653cd50583d052.zip
Fix re:replace/4 to handle unicode charlist Replacement argument
A bug in re:replace/4 causes a badarg exception to be thrown when the Replacement argument is a charlist containing non-ascii codepoints. The problem is that the code incorrectly assumes that the Replacement text is iodata() and calls iolist_to_binary/1 on it. This patch fixes it to obey the 'unicode' option and handle charlist() Replacement arguments correctly.
Diffstat (limited to 'lib/stdlib/test')
-rw-r--r--lib/stdlib/test/re_SUITE.erl1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/stdlib/test/re_SUITE.erl b/lib/stdlib/test/re_SUITE.erl
index f8667bfcee..e0e0670676 100644
--- a/lib/stdlib/test/re_SUITE.erl
+++ b/lib/stdlib/test/re_SUITE.erl
@@ -275,6 +275,7 @@ replace_input_types(Config) when is_list(Config) ->
Dog = ?t:timetrap(?t:minutes(3)),
?line <<"abcd">> = re:replace("abcd","Z","X",[{return,binary},unicode]),
?line <<"abcd">> = re:replace("abcd","\x{400}","X",[{return,binary},unicode]),
+ ?line <<"a",208,128,"cd">> = re:replace(<<"abcd">>,"b","\x{400}",[{return,binary},unicode]),
?t:timetrap_cancel(Dog),
ok.