diff --git a/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl index 537facd80..e260b04e1 100644 --- a/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl +++ b/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl @@ -744,18 +744,18 @@ t_regex_replace(_) -> ?assertEqual(<<"a[cc]b[c]d">>, apply_func(regex_replace, [<<"accbcd">>, <<"c+">>, <<"[&]">>])). t_unescape(_) -> - ?assertEqual(<<"\n">>, emqx_rule_funcs:unescape(<<"\\n">>)), - ?assertEqual(<<"\t">>, emqx_rule_funcs:unescape(<<"\\t">>)), - ?assertEqual(<<"\r">>, emqx_rule_funcs:unescape(<<"\\r">>)), - ?assertEqual(<<"\b">>, emqx_rule_funcs:unescape(<<"\\b">>)), - ?assertEqual(<<"\f">>, emqx_rule_funcs:unescape(<<"\\f">>)), - ?assertEqual(<<"\v">>, emqx_rule_funcs:unescape(<<"\\v">>)), - ?assertEqual(<<"'">>, emqx_rule_funcs:unescape(<<"\\'">>)), - ?assertEqual(<<"\"">>, emqx_rule_funcs:unescape(<<"\\\"">>)), - ?assertEqual(<<"?">>, emqx_rule_funcs:unescape(<<"\\?">>)), - ?assertEqual(<<"\a">>, emqx_rule_funcs:unescape(<<"\\a">>)), + ?assertEqual(<<"\n">> = <<10>>, emqx_rule_funcs:unescape(<<"\\n">>)), + ?assertEqual(<<"\t">> = <<9>>, emqx_rule_funcs:unescape(<<"\\t">>)), + ?assertEqual(<<"\r">> = <<13>>, emqx_rule_funcs:unescape(<<"\\r">>)), + ?assertEqual(<<"\b">> = <<8>>, emqx_rule_funcs:unescape(<<"\\b">>)), + ?assertEqual(<<"\f">> = <<12>>, emqx_rule_funcs:unescape(<<"\\f">>)), + ?assertEqual(<<"\v">> = <<11>>, emqx_rule_funcs:unescape(<<"\\v">>)), + ?assertEqual(<<"'">> = <<39>>, emqx_rule_funcs:unescape(<<"\\'">>)), + ?assertEqual(<<"\"">> = <<34>>, emqx_rule_funcs:unescape(<<"\\\"">>)), + ?assertEqual(<<"?">> = <<63>>, emqx_rule_funcs:unescape(<<"\\?">>)), + ?assertEqual(<<7>>, emqx_rule_funcs:unescape(<<"\\a">>)), % Test escaping backslash itself - ?assertEqual(<<"\\">>, emqx_rule_funcs:unescape(<<"\\\\">>)), + ?assertEqual(<<"\\">> = <<92>>, emqx_rule_funcs:unescape(<<"\\\\">>)), % Test a string without any escape sequences ?assertEqual(<<"Hello, World!">>, emqx_rule_funcs:unescape(<<"Hello, World!">>)), % Test a string with escape sequences diff --git a/apps/emqx_utils/src/emqx_variform_bif.erl b/apps/emqx_utils/src/emqx_variform_bif.erl index 91bd4f9cf..ed9dfb851 100644 --- a/apps/emqx_utils/src/emqx_variform_bif.erl +++ b/apps/emqx_utils/src/emqx_variform_bif.erl @@ -289,7 +289,8 @@ unescape_string([$\\, $" | Rest], Acc) -> unescape_string([$\\, $? | Rest], Acc) -> unescape_string(Rest, [$\? | Acc]); unescape_string([$\\, $a | Rest], Acc) -> - unescape_string(Rest, [$\a | Acc]); + %% Terminal bell + unescape_string(Rest, [7 | Acc]); %% Start of HEX escape code unescape_string([$\\, $x | [$0 | _] = HexStringStart], Acc) -> unescape_handle_hex_string(HexStringStart, Acc);