From 059e243b166d994ac8044a7e771d8d0b88b2ace7 Mon Sep 17 00:00:00 2001 From: Elly Jones Date: Fri, 20 Jan 2012 11:12:03 -0500 Subject: [PATCH] [core] extfmt: support %% to escape a % --- src/libcore/core.rs | 2 +- src/libcore/extfmt.rs | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libcore/core.rs b/src/libcore/core.rs index 1e48890cfff..93fa3522fdb 100644 --- a/src/libcore/core.rs +++ b/src/libcore/core.rs @@ -32,4 +32,4 @@ mod core { mod std { use std; import std::test; -} \ No newline at end of file +} diff --git a/src/libcore/extfmt.rs b/src/libcore/extfmt.rs index 61b6ec3c1b4..04600a628a0 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -101,6 +101,7 @@ mod ct { } let curr2 = str::substr(s, i, 1u); if str::eq(curr2, "%") { + buf += curr2; i += 1u; } else { buf = flush_buf(buf, pieces); @@ -451,6 +452,16 @@ mod rt { ret false; } } + +#[cfg(test)] +mod tests { + #[test] + fn test_percent() { + let s = #fmt["ab%%cd"]; + assert(s == "ab%cd"); + } +} + // Local Variables: // mode: rust; // fill-column: 78;