diff --git a/core/src/avm1/globals.rs b/core/src/avm1/globals.rs index 7146ae631..b45fa5572 100644 --- a/core/src/avm1/globals.rs +++ b/core/src/avm1/globals.rs @@ -448,6 +448,9 @@ pub fn unescape<'gc>( remain = 0; hex_chars.clear(); } + b'+' => { + out_bytes.push(b' '); + } _ => { out_bytes.push(c); } diff --git a/tests/tests/swfs/avm1/unescape/output.txt b/tests/tests/swfs/avm1/unescape/output.txt index f5992bbf9..701abdbf4 100644 --- a/tests/tests/swfs/avm1/unescape/output.txt +++ b/tests/tests/swfs/avm1/unescape/output.txt @@ -6,6 +6,10 @@ unescape("%40%2a%5f%2b%2d%2e%2f") @*_+-./ unescape("%20") +unescape("Hello+World") +Hello World +unescape("One%20+mo%2+re") +One moe unescape("%C4%80%E3%81%82") Āあ unescape("Āあ") diff --git a/tests/tests/swfs/avm1/unescape/test.fla b/tests/tests/swfs/avm1/unescape/test.fla index a387cc500..51d9417fa 100644 Binary files a/tests/tests/swfs/avm1/unescape/test.fla and b/tests/tests/swfs/avm1/unescape/test.fla differ diff --git a/tests/tests/swfs/avm1/unescape/test.swf b/tests/tests/swfs/avm1/unescape/test.swf index b4f1e8697..8ff0f0d39 100644 Binary files a/tests/tests/swfs/avm1/unescape/test.swf and b/tests/tests/swfs/avm1/unescape/test.swf differ