internal/language: export the root language tag Change-Id: I61eef748368d6d30cd9e937d78ed903206c59803 Reviewed-on: https://go-review.googlesource.com/98436 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ross Light <light@google.com>
diff --git a/internal/language/language.go b/internal/language/language.go index 7875a7c..aa5f5f4 100644 --- a/internal/language/language.go +++ b/internal/language/language.go
@@ -31,7 +31,7 @@ // Tag represents a BCP 47 language tag. It is used to specify an instance of a // specific language or locale. All language tag values are guaranteed to be -// well-formed. +// well-formed. The zero value of Tag is Und. type Tag struct { // TODO: the following fields have the form TagTypeID. This name is chosen // to allow refactoring the public package without conflicting with its @@ -80,7 +80,7 @@ if int(t.pVariant) < len(t.str) { return false } - return t.equalTags(und) + return t.equalTags(Und) } // IsPrivateUse reports whether the Tag consists solely of an IsPrivateUse use @@ -100,7 +100,7 @@ if t.pVariant > 0 { extra = extra[1:] } - if t.equalTags(und) && strings.HasPrefix(extra, "x-") { + if t.equalTags(Und) && strings.HasPrefix(extra, "x-") { t.str = extra t.pVariant = 0 t.pExt = 0 @@ -241,12 +241,12 @@ // "und" instead of the base language. base, _ := addTags(Tag{LangID: t.LangID}) if base.ScriptID != t.ScriptID { - return und + return Und } return Tag{LangID: t.LangID} } } - return und + return Und } // ParseExtension parses s as an extension and returns it on success.
diff --git a/internal/language/match.go b/internal/language/match.go index bcefcd9..75a2dbc 100644 --- a/internal/language/match.go +++ b/internal/language/match.go
@@ -205,7 +205,7 @@ // minimizeTags mimics the behavior of the ICU 51 C implementation. func minimizeTags(t Tag) (Tag, error) { - if t.equalTags(und) { + if t.equalTags(Und) { return t, nil } max, err := addTags(t)
diff --git a/internal/language/parse.go b/internal/language/parse.go index eca4663..3c48288 100644 --- a/internal/language/parse.go +++ b/internal/language/parse.go
@@ -229,7 +229,7 @@ func Parse(s string) (t Tag, err error) { // TODO: consider supporting old-style locale key-value pairs. if s == "" { - return und, ErrSyntax + return Und, ErrSyntax } if len(s) <= maxAltTaglen { b := [maxAltTaglen]byte{} @@ -251,7 +251,7 @@ } func parse(scan *scanner, s string) (t Tag, err error) { - t = und + t = Und var end int if n := len(scan.token); n <= 1 { scan.toLower(0, len(scan.b)) @@ -260,7 +260,7 @@ } end = parseExtensions(scan) } else if n >= 4 { - return und, ErrSyntax + return Und, ErrSyntax } else { // the usual case t, end = parseTag(scan) if n := len(scan.token); n == 1 {
diff --git a/internal/language/tags.go b/internal/language/tags.go index 5d47329..e7afd31 100644 --- a/internal/language/tags.go +++ b/internal/language/tags.go
@@ -4,8 +4,6 @@ package language -// TODO: Various sets of commonly use tags and regions. - // MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. // It simplifies safe initialization of Tag values. func MustParse(s string) Tag { @@ -46,4 +44,5 @@ return r } -var und = Tag{} +// Und is the root language. +var Und Tag