Skip to content

Commit 511c87d

Browse files
killerswanerickt
authored andcommitted
---
yaml --- r: 28195 b: refs/heads/try c: 4fb675b h: refs/heads/master i: 28193: 533974b 28191: b238f58 v: v3
1 parent f2a0eed commit 511c87d

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
5-
refs/heads/try: 272c5ab0e9573e6e85a1d576a3c95b5213cf5c61
5+
refs/heads/try: 4fb675be2f42a828fb5a6570b9aad2c65f4598b9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: d0c6ce338884ee21843f4b40bf6bf18d222ce5df

branches/try/src/libstd/json.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -428,17 +428,25 @@ impl Parser {
428428
while i < 4u {
429429
match self.next_char() {
430430
'0' to '9' => {
431-
n = n * 10u +
432-
(self.ch as uint) - ('0' as uint);
433-
}
434-
_ => return self.error(~"invalid \\u escape")
431+
n = n * 16u + (self.ch as uint)
432+
- ('0' as uint);
433+
},
434+
'a' | 'A' => n = n * 16u + 10u,
435+
'b' | 'B' => n = n * 16u + 11u,
436+
'c' | 'C' => n = n * 16u + 12u,
437+
'd' | 'D' => n = n * 16u + 13u,
438+
'e' | 'E' => n = n * 16u + 14u,
439+
'f' | 'F' => n = n * 16u + 15u,
440+
_ => return self.error(
441+
~"invalid \\u escape (unrecognized hex)")
435442
}
436443
i += 1u;
437444
}
438445

439446
// Error out if we didn't parse 4 digits.
440447
if i != 4u {
441-
return self.error(~"invalid \\u escape");
448+
return self.error(
449+
~"invalid \\u escape (not four digits)");
442450
}
443451

444452
str::push_char(res, n as char);

0 commit comments

Comments
 (0)