string s = "Copyright \xc2\xa9";
assert (s == "Copyright ©");
+
+ // The escape sequence \x has a variable length
+ // with the lower boundary set to 1
+ string s1 = "\x9q";
+ assert (s1 == "\x09q");
}
void test_u_escape_chars () {
}
void main () {
- // Test case for bug report 704709
+ // Test case for the bug report 704709
test_x_escape_chars ();
test_u_escape_chars ();
}
current++;
token_length_in_chars++;
int digit_length;
- for (digit_length = 0; digit_length < 2 && current < end && current[0].isxdigit (); digit_length++) {
+ for (digit_length = 0; current < end && current[0].isxdigit (); digit_length++) {
current++;
token_length_in_chars++;
}
- if (digit_length != 2) {
- Report.error (get_source_reference (token_length_in_chars), "\\x requires two hex digits");
+ if (digit_length < 1) {
+ Report.error (get_source_reference (token_length_in_chars), "\\x requires at least one hex digit");
}
break;
default:
current++;
token_length_in_chars++;
int digit_length;
- for (digit_length = 0; digit_length < 2 && current < end && current[0].isxdigit (); digit_length++) {
+ for (digit_length = 0; current < end && current[0].isxdigit (); digit_length++) {
current++;
token_length_in_chars++;
}
- if (digit_length != 2) {
- Report.error (get_source_reference (token_length_in_chars), "\\x requires two hex digits");
+ if (digit_length < 1) {
+ Report.error (get_source_reference (token_length_in_chars), "\\x requires at least one hex digit");
}
break;
default:
current++;
token_length_in_chars++;
int digit_length;
- for (digit_length = 0; digit_length < 2 && current < end && current[0].isxdigit (); digit_length++) {
+ for (digit_length = 0; current < end && current[0].isxdigit (); digit_length++) {
current++;
token_length_in_chars++;
}
- if (digit_length != 2) {
- Report.error (get_source_reference (token_length_in_chars), "\\x requires two hex digits");
+ if (digit_length < 1) {
+ Report.error (get_source_reference (token_length_in_chars), "\\x requires at least one hex digit");
}
break;
default: