@@ -1846,6 +1846,33 @@ static void test_string_escape(void)
18461846 assert_json_strings_eq (
18471847 "Hello, world!\n'Blah', \"blah\"." ,
18481848 "Hello, world!\\n'Blah', \\\"blah\\\"." );
1849+ assert_json_strings_eq (
1850+ "Hello blah" ,
1851+ "Hello \\u001bblah" );
1852+
1853+ const char unescaped_short_hex [] = {
1854+ 'B' , 'l' , 'a' , 'h' , '\\' , 'u' , '0' , '0' , '\0' };
1855+ const char escaped_short_hex [] = {
1856+ 'B' , 'l' , 'a' , 'h' , '\\' , '\\' , 'u' , '0' , '0' , '\0' };
1857+ assert_json_strings_eq (unescaped_short_hex , escaped_short_hex );
1858+
1859+ const char unescaped_invalid_u [] = {
1860+ 'B' , 'l' , 'a' , 'h' , '\\' , 'u' , '\0' };
1861+ const char escaped_invalid_u [] = {
1862+ 'B' , 'l' , 'a' , 'h' , '\\' , '\\' , 'u' , '\0' };
1863+ assert_json_strings_eq (unescaped_invalid_u , escaped_invalid_u );
1864+
1865+ const char unescaped_valid_hex [] = {
1866+ 'B' , 'l' , 'a' , 'h' , '\\' , 'u' , '0' , '0' , '1' , 'b' , '\0' };
1867+ const char escaped_valid_hex [] = {
1868+ 'B' , 'l' , 'a' , 'h' , '\\' , '\\' , 'u' , '0' , '0' , '1' , 'b' , '\0' };
1869+ assert_json_strings_eq (unescaped_valid_hex , escaped_valid_hex );
1870+
1871+ const char unescaped_invalid_hex [] = {
1872+ 'B' , 'l' , 'a' , 'h' , '\\' , 'u' , '0' , 'z' , '1' , 'b' , '\0' };
1873+ const char escaped_invalid_hex [] = {
1874+ 'B' , 'l' , 'a' , 'h' , '\\' , '\\' , 'u' , '0' , 'z' , '1' , 'b' , '\0' };
1875+ assert_json_strings_eq (unescaped_invalid_hex , escaped_invalid_hex );
18491876}
18501877
18511878#define assert_json5_data_eq (_size , unescaped , escaped ) \
0 commit comments