From e688d557da3f2ffc72325b6114da03481c932316 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Christophe=20Beaupr=C3=A9?= Date: Fri, 12 Dec 2014 09:55:40 -0500 Subject: [PATCH] string: Fix `to_cmangle` to never end with an underscore. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This permits to use two underscores as a separator between two mangled names (like Nitdoc does). Signed-off-by: Jean-Christophe Beaupré --- lib/standard/string.nit | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/standard/string.nit b/lib/standard/string.nit index 3656e15..c4ae7b0 100644 --- a/lib/standard/string.nit +++ b/lib/standard/string.nit @@ -455,10 +455,13 @@ abstract class Text # # * Contains only US-ASCII letters, digits and underscores. # * Never starts with a digit. + # * Never ends with an underscore. # * Never contains two contiguous underscores. # # assert "42_is/The answer!".to_cmangle == "_52d2_is_47dThe_32danswer_33d" + # assert "__".to_cmangle == "_95d_95d" # assert "__d".to_cmangle == "_95d_d" + # assert "_d_".to_cmangle == "_d_95d" # assert "_42".to_cmangle == "_95d42" # assert "foo".to_cmangle == "foo" # assert "".to_cmangle == "" @@ -500,6 +503,10 @@ abstract class Text underscore = false end end + if underscore then + res.append('_'.ascii.to_s) + res.add('d') + end return res.to_s end -- 1.7.9.5