From 817b8f058c4bf3607af354a8c71ac8a6d52f9cae Mon Sep 17 00:00:00 2001 From: Felix Hanley Date: Mon, 2 Sep 2019 15:58:16 +1000 Subject: Fix classes so sequences are in ASCII order --- generator.go | 10 +++++++--- generator_test.go | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/generator.go b/generator.go index 27ff770..226b78a 100644 --- a/generator.go +++ b/generator.go @@ -131,7 +131,7 @@ func (g Generator) getClass(c string) (string, error) { var out string switch c { case ":alnum:": - out = lower + upper + numeric + out = numeric + upper + lower case ":cntrl:": out = g.getRange('\u0000', '\u001F') + "\u007F" case ":lower:": @@ -139,7 +139,7 @@ func (g Generator) getClass(c string) (string, error) { case ":space:": out = space case ":alpha:": - out = lower + upper + out = upper + lower case ":digit:": out = numeric case ":print:": @@ -156,7 +156,11 @@ func (g Generator) getClass(c string) (string, error) { case ":blank:": out = " \t" case ":word:": - out = lower + upper + numeric + "_" + c, err := g.getClass(":alnum:") + if err != nil { + return "", err + } + out = c + "_" case ":punct:": out = punct case ":xdigit:": diff --git a/generator_test.go b/generator_test.go index 45c4ea0..1bf9373 100644 --- a/generator_test.go +++ b/generator_test.go @@ -21,12 +21,12 @@ func TestGenerator(t *testing.T) { {"[^-:cntrl::digit:]", " !\"#$%&'()*+,./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"}, {"[^]:cntrl::digit:]", " !\"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`abcdefghijklmnopqrstuvwxyz{|}~"}, // Classes - {"[:alnum:]", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}, - {"[:alpha:]", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"}, + {"[:alnum:]", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"}, + {"[:alpha:]", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"}, {"[:digit:]", "0123456789"}, {"[:space:]", " \t\n\r\f\v"}, {"[:blank:]", " \t"}, - {"[:word:]", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"}, + {"[:word:]", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_"}, {"[:cntrl:]", "\x00\x01\x02\x03\x04\x05\x06\a\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\u007f"}, {"[:lower:]", "abcdefghijklmnopqrstuvwxyz"}, {"[:upper:]", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"}, -- cgit v1.2.3