From 6bf080393d88534aa658ecaff32ae089bd304772 Mon Sep 17 00:00:00 2001 From: Corey Hulen Date: Tue, 4 Apr 2017 11:42:07 -0700 Subject: Fixing race conditions in the code base (#5966) * Adding initial race detector * Remove setting of config twice * Fixing config file watch and config reload on license save * Fixing config file watch and config reload on license save * Fixing build error * Fixing locking issue * Fixing makefile * Fixing race in config * Fixing race in status unit test * Adding EE race tests * Fixing race in cluster info * Removing code that's isn't needed * Fixing some more races * Fixing govet issue --- .../golang.org/x/text/encoding/charmap/charmap.go | 84 ++++++--- .../x/text/encoding/charmap/charmap_test.go | 53 ++++++ .../x/text/encoding/charmap/maketables.go | 4 +- .../golang.org/x/text/encoding/charmap/tables.go | 190 ++++++++++----------- vendor/golang.org/x/text/internal/number/gen.go | 2 +- vendor/golang.org/x/text/internal/number/number.go | 2 +- .../golang.org/x/text/internal/number/pattern.go | 24 +-- .../x/text/internal/number/pattern_test.go | 64 +++---- vendor/golang.org/x/text/internal/number/tables.go | 32 ++-- 9 files changed, 274 insertions(+), 181 deletions(-) (limited to 'vendor/golang.org') diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap.go b/vendor/golang.org/x/text/encoding/charmap/charmap.go index 6e62a8374..e89ff0734 100644 --- a/vendor/golang.org/x/text/encoding/charmap/charmap.go +++ b/vendor/golang.org/x/text/encoding/charmap/charmap.go @@ -33,32 +33,32 @@ var ( ISO8859_8I encoding.Encoding = &iso8859_8I iso8859_6E = internal.Encoding{ - ISO8859_6, - "ISO-8859-6E", - identifier.ISO88596E, + Encoding: ISO8859_6, + Name: "ISO-8859-6E", + MIB: identifier.ISO88596E, } iso8859_6I = internal.Encoding{ - ISO8859_6, - "ISO-8859-6I", - identifier.ISO88596I, + Encoding: ISO8859_6, + Name: "ISO-8859-6I", + MIB: identifier.ISO88596I, } iso8859_8E = internal.Encoding{ - ISO8859_8, - "ISO-8859-8E", - identifier.ISO88598E, + Encoding: ISO8859_8, + Name: "ISO-8859-8E", + MIB: identifier.ISO88598E, } iso8859_8I = internal.Encoding{ - ISO8859_8, - "ISO-8859-8I", - identifier.ISO88598I, + Encoding: ISO8859_8, + Name: "ISO-8859-8I", + MIB: identifier.ISO88598I, } ) // All is a list of all defined encodings in this package. -var All = listAll +var All []encoding.Encoding = listAll // TODO: implement these encodings, in order of importance. // ASCII, ISO8859_1: Rather common. Close to Windows 1252. @@ -70,8 +70,8 @@ type utf8Enc struct { data [3]byte } -// charmap describes an 8-bit character set encoding. -type charmap struct { +// Charmap is an 8-bit character set encoding. +type Charmap struct { // name is the encoding's name. name string // mib is the encoding type of this encoder. @@ -79,7 +79,7 @@ type charmap struct { // asciiSuperset states whether the encoding is a superset of ASCII. asciiSuperset bool // low is the lower bound of the encoded byte for a non-ASCII rune. If - // charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. + // Charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. low uint8 // replacement is the encoded replacement character. replacement byte @@ -91,26 +91,30 @@ type charmap struct { encode [256]uint32 } -func (m *charmap) NewDecoder() *encoding.Decoder { +// NewDecoder implements the encoding.Encoding interface. +func (m *Charmap) NewDecoder() *encoding.Decoder { return &encoding.Decoder{Transformer: charmapDecoder{charmap: m}} } -func (m *charmap) NewEncoder() *encoding.Encoder { +// NewEncoder implements the encoding.Encoding interface. +func (m *Charmap) NewEncoder() *encoding.Encoder { return &encoding.Encoder{Transformer: charmapEncoder{charmap: m}} } -func (m *charmap) String() string { +// String returns the Charmap's name. +func (m *Charmap) String() string { return m.name } -func (m *charmap) ID() (mib identifier.MIB, other string) { +// ID implements an internal interface. +func (m *Charmap) ID() (mib identifier.MIB, other string) { return m.mib, "" } // charmapDecoder implements transform.Transformer by decoding to UTF-8. type charmapDecoder struct { transform.NopResetter - charmap *charmap + charmap *Charmap } func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { @@ -142,10 +146,22 @@ func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, return nDst, nSrc, err } +// DecodeByte returns the Charmap's rune decoding of the byte b. +func (m *Charmap) DecodeByte(b byte) rune { + switch x := &m.decode[b]; x.len { + case 1: + return rune(x.data[0]) + case 2: + return rune(x.data[0]&0x1f)<<6 | rune(x.data[1]&0x3f) + default: + return rune(x.data[0]&0x0f)<<12 | rune(x.data[1]&0x3f)<<6 | rune(x.data[2]&0x3f) + } +} + // charmapEncoder implements transform.Transformer by encoding from UTF-8. type charmapEncoder struct { transform.NopResetter - charmap *charmap + charmap *Charmap } func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { @@ -207,3 +223,27 @@ loop: } return nDst, nSrc, err } + +// EncodeRune returns the Charmap's byte encoding of the rune r. ok is whether +// r is in the Charmap's repertoire. If not, b is set to the Charmap's +// replacement byte. This is often the ASCII substitute character '\x1a'. +func (m *Charmap) EncodeRune(r rune) (b byte, ok bool) { + if r < utf8.RuneSelf && m.asciiSuperset { + return byte(r), true + } + for low, high := int(m.low), 0x100; ; { + if low >= high { + return m.replacement, false + } + mid := (low + high) / 2 + got := m.encode[mid] + gotRune := rune(got & (1<<24 - 1)) + if gotRune < r { + low = mid + 1 + } else if gotRune > r { + high = mid + } else { + return byte(got >> 24), true + } + } +} diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap_test.go b/vendor/golang.org/x/text/encoding/charmap/charmap_test.go index 186bf4c5b..03dd76ebd 100644 --- a/vendor/golang.org/x/text/encoding/charmap/charmap_test.go +++ b/vendor/golang.org/x/text/encoding/charmap/charmap_test.go @@ -16,9 +16,11 @@ import ( func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { return "Decode", e.NewDecoder(), nil } + func encASCIISuperset(e encoding.Encoding) (dir string, t transform.Transformer, err error) { return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement } + func encEBCDIC(e encoding.Encoding) (dir string, t transform.Transformer, err error) { return "Encode", e.NewEncoder(), internal.RepertoireError(0x3f) } @@ -200,6 +202,57 @@ func TestBasics(t *testing.T) { } } +var windows1255TestCases = []struct { + b byte + ok bool + r rune +}{ + {'\x00', true, '\u0000'}, + {'\x1a', true, '\u001a'}, + {'\x61', true, '\u0061'}, + {'\x7f', true, '\u007f'}, + {'\x80', true, '\u20ac'}, + {'\x95', true, '\u2022'}, + {'\xa0', true, '\u00a0'}, + {'\xc0', true, '\u05b0'}, + {'\xfc', true, '\ufffd'}, + {'\xfd', true, '\u200e'}, + {'\xfe', true, '\u200f'}, + {'\xff', true, '\ufffd'}, + {encoding.ASCIISub, false, '\u0400'}, + {encoding.ASCIISub, false, '\u2603'}, + {encoding.ASCIISub, false, '\U0001f4a9'}, +} + +func TestDecodeByte(t *testing.T) { + for _, tc := range windows1255TestCases { + if !tc.ok { + continue + } + + got := Windows1255.DecodeByte(tc.b) + want := tc.r + if got != want { + t.Errorf("DecodeByte(%#02x): got %#08x, want %#08x", tc.b, got, want) + } + } +} + +func TestEncodeRune(t *testing.T) { + for _, tc := range windows1255TestCases { + // There can be multiple tc.b values that map to tc.r = '\ufffd'. + if tc.r == '\ufffd' { + continue + } + + gotB, gotOK := Windows1255.EncodeRune(tc.r) + wantB, wantOK := tc.b, tc.ok + if gotB != wantB || gotOK != wantOK { + t.Errorf("EncodeRune(%#08x): got (%#02x, %t), want (%#02x, %t)", tc.r, gotB, gotOK, wantB, wantOK) + } + } +} + func TestFiles(t *testing.T) { enctest.TestFile(t, Windows1252) } func BenchmarkEncoding(b *testing.B) { enctest.Benchmark(b, Windows1252) } diff --git a/vendor/golang.org/x/text/encoding/charmap/maketables.go b/vendor/golang.org/x/text/encoding/charmap/maketables.go index a691acb14..f7941701e 100644 --- a/vendor/golang.org/x/text/encoding/charmap/maketables.go +++ b/vendor/golang.org/x/text/encoding/charmap/maketables.go @@ -494,7 +494,7 @@ func main() { if e.comment != "" { printf("//\n// %s\n", e.comment) } - printf("var %s encoding.Encoding = &%s\n\nvar %s = charmap{\nname: %q,\n", + printf("var %s *Charmap = &%s\n\nvar %s = Charmap{\nname: %q,\n", varName, lowerVarName, lowerVarName, e.name) if mibs[e.mib] { log.Fatalf("MIB type %q declared multiple times.", e.mib) @@ -540,7 +540,7 @@ func main() { } printf("},\n}\n") - // Add an estimate of the size of a single charmap{} struct value, which + // Add an estimate of the size of a single Charmap{} struct value, which // includes two 256 elem arrays of 4 bytes and some extra fields, which // align to 3 uint64s on 64-bit architectures. w.Size += 2*4*256 + 3*8 diff --git a/vendor/golang.org/x/text/encoding/charmap/tables.go b/vendor/golang.org/x/text/encoding/charmap/tables.go index e36cd7adc..cf7281e9e 100644 --- a/vendor/golang.org/x/text/encoding/charmap/tables.go +++ b/vendor/golang.org/x/text/encoding/charmap/tables.go @@ -1,4 +1,4 @@ -// This file was generated by go generate; DO NOT EDIT +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. package charmap @@ -8,9 +8,9 @@ import ( ) // CodePage037 is the IBM Code Page 037 encoding. -var CodePage037 encoding.Encoding = &codePage037 +var CodePage037 *Charmap = &codePage037 -var codePage037 = charmap{ +var codePage037 = Charmap{ name: "IBM Code Page 037", mib: identifier.IBM037, asciiSuperset: false, @@ -183,9 +183,9 @@ var codePage037 = charmap{ } // CodePage437 is the IBM Code Page 437 encoding. -var CodePage437 encoding.Encoding = &codePage437 +var CodePage437 *Charmap = &codePage437 -var codePage437 = charmap{ +var codePage437 = Charmap{ name: "IBM Code Page 437", mib: identifier.PC8CodePage437, asciiSuperset: true, @@ -358,9 +358,9 @@ var codePage437 = charmap{ } // CodePage850 is the IBM Code Page 850 encoding. -var CodePage850 encoding.Encoding = &codePage850 +var CodePage850 *Charmap = &codePage850 -var codePage850 = charmap{ +var codePage850 = Charmap{ name: "IBM Code Page 850", mib: identifier.PC850Multilingual, asciiSuperset: true, @@ -533,9 +533,9 @@ var codePage850 = charmap{ } // CodePage852 is the IBM Code Page 852 encoding. -var CodePage852 encoding.Encoding = &codePage852 +var CodePage852 *Charmap = &codePage852 -var codePage852 = charmap{ +var codePage852 = Charmap{ name: "IBM Code Page 852", mib: identifier.PCp852, asciiSuperset: true, @@ -708,9 +708,9 @@ var codePage852 = charmap{ } // CodePage855 is the IBM Code Page 855 encoding. -var CodePage855 encoding.Encoding = &codePage855 +var CodePage855 *Charmap = &codePage855 -var codePage855 = charmap{ +var codePage855 = Charmap{ name: "IBM Code Page 855", mib: identifier.IBM855, asciiSuperset: true, @@ -883,9 +883,9 @@ var codePage855 = charmap{ } // CodePage858 is the Windows Code Page 858 encoding. -var CodePage858 encoding.Encoding = &codePage858 +var CodePage858 *Charmap = &codePage858 -var codePage858 = charmap{ +var codePage858 = Charmap{ name: "Windows Code Page 858", mib: identifier.IBM00858, asciiSuperset: true, @@ -1058,9 +1058,9 @@ var codePage858 = charmap{ } // CodePage860 is the IBM Code Page 860 encoding. -var CodePage860 encoding.Encoding = &codePage860 +var CodePage860 *Charmap = &codePage860 -var codePage860 = charmap{ +var codePage860 = Charmap{ name: "IBM Code Page 860", mib: identifier.IBM860, asciiSuperset: true, @@ -1233,9 +1233,9 @@ var codePage860 = charmap{ } // CodePage862 is the IBM Code Page 862 encoding. -var CodePage862 encoding.Encoding = &codePage862 +var CodePage862 *Charmap = &codePage862 -var codePage862 = charmap{ +var codePage862 = Charmap{ name: "IBM Code Page 862", mib: identifier.PC862LatinHebrew, asciiSuperset: true, @@ -1408,9 +1408,9 @@ var codePage862 = charmap{ } // CodePage863 is the IBM Code Page 863 encoding. -var CodePage863 encoding.Encoding = &codePage863 +var CodePage863 *Charmap = &codePage863 -var codePage863 = charmap{ +var codePage863 = Charmap{ name: "IBM Code Page 863", mib: identifier.IBM863, asciiSuperset: true, @@ -1583,9 +1583,9 @@ var codePage863 = charmap{ } // CodePage865 is the IBM Code Page 865 encoding. -var CodePage865 encoding.Encoding = &codePage865 +var CodePage865 *Charmap = &codePage865 -var codePage865 = charmap{ +var codePage865 = Charmap{ name: "IBM Code Page 865", mib: identifier.IBM865, asciiSuperset: true, @@ -1758,9 +1758,9 @@ var codePage865 = charmap{ } // CodePage866 is the IBM Code Page 866 encoding. -var CodePage866 encoding.Encoding = &codePage866 +var CodePage866 *Charmap = &codePage866 -var codePage866 = charmap{ +var codePage866 = Charmap{ name: "IBM Code Page 866", mib: identifier.IBM866, asciiSuperset: true, @@ -1933,9 +1933,9 @@ var codePage866 = charmap{ } // CodePage1047 is the IBM Code Page 1047 encoding. -var CodePage1047 encoding.Encoding = &codePage1047 +var CodePage1047 *Charmap = &codePage1047 -var codePage1047 = charmap{ +var codePage1047 = Charmap{ name: "IBM Code Page 1047", mib: identifier.IBM1047, asciiSuperset: false, @@ -2108,9 +2108,9 @@ var codePage1047 = charmap{ } // CodePage1140 is the IBM Code Page 1140 encoding. -var CodePage1140 encoding.Encoding = &codePage1140 +var CodePage1140 *Charmap = &codePage1140 -var codePage1140 = charmap{ +var codePage1140 = Charmap{ name: "IBM Code Page 1140", mib: identifier.IBM01140, asciiSuperset: false, @@ -2283,9 +2283,9 @@ var codePage1140 = charmap{ } // ISO8859_1 is the ISO 8859-1 encoding. -var ISO8859_1 encoding.Encoding = &iso8859_1 +var ISO8859_1 *Charmap = &iso8859_1 -var iso8859_1 = charmap{ +var iso8859_1 = Charmap{ name: "ISO 8859-1", mib: identifier.ISOLatin1, asciiSuperset: true, @@ -2458,9 +2458,9 @@ var iso8859_1 = charmap{ } // ISO8859_2 is the ISO 8859-2 encoding. -var ISO8859_2 encoding.Encoding = &iso8859_2 +var ISO8859_2 *Charmap = &iso8859_2 -var iso8859_2 = charmap{ +var iso8859_2 = Charmap{ name: "ISO 8859-2", mib: identifier.ISOLatin2, asciiSuperset: true, @@ -2633,9 +2633,9 @@ var iso8859_2 = charmap{ } // ISO8859_3 is the ISO 8859-3 encoding. -var ISO8859_3 encoding.Encoding = &iso8859_3 +var ISO8859_3 *Charmap = &iso8859_3 -var iso8859_3 = charmap{ +var iso8859_3 = Charmap{ name: "ISO 8859-3", mib: identifier.ISOLatin3, asciiSuperset: true, @@ -2808,9 +2808,9 @@ var iso8859_3 = charmap{ } // ISO8859_4 is the ISO 8859-4 encoding. -var ISO8859_4 encoding.Encoding = &iso8859_4 +var ISO8859_4 *Charmap = &iso8859_4 -var iso8859_4 = charmap{ +var iso8859_4 = Charmap{ name: "ISO 8859-4", mib: identifier.ISOLatin4, asciiSuperset: true, @@ -2983,9 +2983,9 @@ var iso8859_4 = charmap{ } // ISO8859_5 is the ISO 8859-5 encoding. -var ISO8859_5 encoding.Encoding = &iso8859_5 +var ISO8859_5 *Charmap = &iso8859_5 -var iso8859_5 = charmap{ +var iso8859_5 = Charmap{ name: "ISO 8859-5", mib: identifier.ISOLatinCyrillic, asciiSuperset: true, @@ -3158,9 +3158,9 @@ var iso8859_5 = charmap{ } // ISO8859_6 is the ISO 8859-6 encoding. -var ISO8859_6 encoding.Encoding = &iso8859_6 +var ISO8859_6 *Charmap = &iso8859_6 -var iso8859_6 = charmap{ +var iso8859_6 = Charmap{ name: "ISO 8859-6", mib: identifier.ISOLatinArabic, asciiSuperset: true, @@ -3333,9 +3333,9 @@ var iso8859_6 = charmap{ } // ISO8859_7 is the ISO 8859-7 encoding. -var ISO8859_7 encoding.Encoding = &iso8859_7 +var ISO8859_7 *Charmap = &iso8859_7 -var iso8859_7 = charmap{ +var iso8859_7 = Charmap{ name: "ISO 8859-7", mib: identifier.ISOLatinGreek, asciiSuperset: true, @@ -3508,9 +3508,9 @@ var iso8859_7 = charmap{ } // ISO8859_8 is the ISO 8859-8 encoding. -var ISO8859_8 encoding.Encoding = &iso8859_8 +var ISO8859_8 *Charmap = &iso8859_8 -var iso8859_8 = charmap{ +var iso8859_8 = Charmap{ name: "ISO 8859-8", mib: identifier.ISOLatinHebrew, asciiSuperset: true, @@ -3683,9 +3683,9 @@ var iso8859_8 = charmap{ } // ISO8859_9 is the ISO 8859-9 encoding. -var ISO8859_9 encoding.Encoding = &iso8859_9 +var ISO8859_9 *Charmap = &iso8859_9 -var iso8859_9 = charmap{ +var iso8859_9 = Charmap{ name: "ISO 8859-9", mib: identifier.ISOLatin5, asciiSuperset: true, @@ -3858,9 +3858,9 @@ var iso8859_9 = charmap{ } // ISO8859_10 is the ISO 8859-10 encoding. -var ISO8859_10 encoding.Encoding = &iso8859_10 +var ISO8859_10 *Charmap = &iso8859_10 -var iso8859_10 = charmap{ +var iso8859_10 = Charmap{ name: "ISO 8859-10", mib: identifier.ISOLatin6, asciiSuperset: true, @@ -4033,9 +4033,9 @@ var iso8859_10 = charmap{ } // ISO8859_13 is the ISO 8859-13 encoding. -var ISO8859_13 encoding.Encoding = &iso8859_13 +var ISO8859_13 *Charmap = &iso8859_13 -var iso8859_13 = charmap{ +var iso8859_13 = Charmap{ name: "ISO 8859-13", mib: identifier.ISO885913, asciiSuperset: true, @@ -4208,9 +4208,9 @@ var iso8859_13 = charmap{ } // ISO8859_14 is the ISO 8859-14 encoding. -var ISO8859_14 encoding.Encoding = &iso8859_14 +var ISO8859_14 *Charmap = &iso8859_14 -var iso8859_14 = charmap{ +var iso8859_14 = Charmap{ name: "ISO 8859-14", mib: identifier.ISO885914, asciiSuperset: true, @@ -4383,9 +4383,9 @@ var iso8859_14 = charmap{ } // ISO8859_15 is the ISO 8859-15 encoding. -var ISO8859_15 encoding.Encoding = &iso8859_15 +var ISO8859_15 *Charmap = &iso8859_15 -var iso8859_15 = charmap{ +var iso8859_15 = Charmap{ name: "ISO 8859-15", mib: identifier.ISO885915, asciiSuperset: true, @@ -4558,9 +4558,9 @@ var iso8859_15 = charmap{ } // ISO8859_16 is the ISO 8859-16 encoding. -var ISO8859_16 encoding.Encoding = &iso8859_16 +var ISO8859_16 *Charmap = &iso8859_16 -var iso8859_16 = charmap{ +var iso8859_16 = Charmap{ name: "ISO 8859-16", mib: identifier.ISO885916, asciiSuperset: true, @@ -4733,9 +4733,9 @@ var iso8859_16 = charmap{ } // KOI8R is the KOI8-R encoding. -var KOI8R encoding.Encoding = &koi8R +var KOI8R *Charmap = &koi8R -var koi8R = charmap{ +var koi8R = Charmap{ name: "KOI8-R", mib: identifier.KOI8R, asciiSuperset: true, @@ -4908,9 +4908,9 @@ var koi8R = charmap{ } // KOI8U is the KOI8-U encoding. -var KOI8U encoding.Encoding = &koi8U +var KOI8U *Charmap = &koi8U -var koi8U = charmap{ +var koi8U = Charmap{ name: "KOI8-U", mib: identifier.KOI8U, asciiSuperset: true, @@ -5083,9 +5083,9 @@ var koi8U = charmap{ } // Macintosh is the Macintosh encoding. -var Macintosh encoding.Encoding = &macintosh +var Macintosh *Charmap = &macintosh -var macintosh = charmap{ +var macintosh = Charmap{ name: "Macintosh", mib: identifier.Macintosh, asciiSuperset: true, @@ -5258,9 +5258,9 @@ var macintosh = charmap{ } // MacintoshCyrillic is the Macintosh Cyrillic encoding. -var MacintoshCyrillic encoding.Encoding = &macintoshCyrillic +var MacintoshCyrillic *Charmap = &macintoshCyrillic -var macintoshCyrillic = charmap{ +var macintoshCyrillic = Charmap{ name: "Macintosh Cyrillic", mib: identifier.MacintoshCyrillic, asciiSuperset: true, @@ -5433,9 +5433,9 @@ var macintoshCyrillic = charmap{ } // Windows874 is the Windows 874 encoding. -var Windows874 encoding.Encoding = &windows874 +var Windows874 *Charmap = &windows874 -var windows874 = charmap{ +var windows874 = Charmap{ name: "Windows 874", mib: identifier.Windows874, asciiSuperset: true, @@ -5608,9 +5608,9 @@ var windows874 = charmap{ } // Windows1250 is the Windows 1250 encoding. -var Windows1250 encoding.Encoding = &windows1250 +var Windows1250 *Charmap = &windows1250 -var windows1250 = charmap{ +var windows1250 = Charmap{ name: "Windows 1250", mib: identifier.Windows1250, asciiSuperset: true, @@ -5783,9 +5783,9 @@ var windows1250 = charmap{ } // Windows1251 is the Windows 1251 encoding. -var Windows1251 encoding.Encoding = &windows1251 +var Windows1251 *Charmap = &windows1251 -var windows1251 = charmap{ +var windows1251 = Charmap{ name: "Windows 1251", mib: identifier.Windows1251, asciiSuperset: true, @@ -5958,9 +5958,9 @@ var windows1251 = charmap{ } // Windows1252 is the Windows 1252 encoding. -var Windows1252 encoding.Encoding = &windows1252 +var Windows1252 *Charmap = &windows1252 -var windows1252 = charmap{ +var windows1252 = Charmap{ name: "Windows 1252", mib: identifier.Windows1252, asciiSuperset: true, @@ -6133,9 +6133,9 @@ var windows1252 = charmap{ } // Windows1253 is the Windows 1253 encoding. -var Windows1253 encoding.Encoding = &windows1253 +var Windows1253 *Charmap = &windows1253 -var windows1253 = charmap{ +var windows1253 = Charmap{ name: "Windows 1253", mib: identifier.Windows1253, asciiSuperset: true, @@ -6308,9 +6308,9 @@ var windows1253 = charmap{ } // Windows1254 is the Windows 1254 encoding. -var Windows1254 encoding.Encoding = &windows1254 +var Windows1254 *Charmap = &windows1254 -var windows1254 = charmap{ +var windows1254 = Charmap{ name: "Windows 1254", mib: identifier.Windows1254, asciiSuperset: true, @@ -6483,9 +6483,9 @@ var windows1254 = charmap{ } // Windows1255 is the Windows 1255 encoding. -var Windows1255 encoding.Encoding = &windows1255 +var Windows1255 *Charmap = &windows1255 -var windows1255 = charmap{ +var windows1255 = Charmap{ name: "Windows 1255", mib: identifier.Windows1255, asciiSuperset: true, @@ -6593,7 +6593,7 @@ var windows1255 = charmap{ {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}}, {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}}, {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, + {2, [3]byte{0xd6, 0xba, 0x00}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}}, {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}}, {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}}, @@ -6643,24 +6643,24 @@ var windows1255 = charmap{ 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192, 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5, - 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, 0xce0005be, - 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, 0xe20005d2, - 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, 0xea0005da, - 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, 0xf20005e2, - 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, 0xfa0005ea, - 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, 0x800020ac, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xca0005ba, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, + 0xce0005be, 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, + 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, + 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, + 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, + 0xfa0005ea, 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, + 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, + 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, + 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, }, } // Windows1256 is the Windows 1256 encoding. -var Windows1256 encoding.Encoding = &windows1256 +var Windows1256 *Charmap = &windows1256 -var windows1256 = charmap{ +var windows1256 = Charmap{ name: "Windows 1256", mib: identifier.Windows1256, asciiSuperset: true, @@ -6833,9 +6833,9 @@ var windows1256 = charmap{ } // Windows1257 is the Windows 1257 encoding. -var Windows1257 encoding.Encoding = &windows1257 +var Windows1257 *Charmap = &windows1257 -var windows1257 = charmap{ +var windows1257 = Charmap{ name: "Windows 1257", mib: identifier.Windows1257, asciiSuperset: true, @@ -7008,9 +7008,9 @@ var windows1257 = charmap{ } // Windows1258 is the Windows 1258 encoding. -var Windows1258 encoding.Encoding = &windows1258 +var Windows1258 *Charmap = &windows1258 -var windows1258 = charmap{ +var windows1258 = Charmap{ name: "Windows 1258", mib: identifier.Windows1258, asciiSuperset: true, @@ -7185,9 +7185,9 @@ var windows1258 = charmap{ // XUserDefined is the X-User-Defined encoding. // // It is defined at http://encoding.spec.whatwg.org/#x-user-defined -var XUserDefined encoding.Encoding = &xUserDefined +var XUserDefined *Charmap = &xUserDefined -var xUserDefined = charmap{ +var xUserDefined = Charmap{ name: "X-User-Defined", mib: identifier.XUserDefined, asciiSuperset: true, diff --git a/vendor/golang.org/x/text/internal/number/gen.go b/vendor/golang.org/x/text/internal/number/gen.go index 59a982bb0..0d5f592df 100644 --- a/vendor/golang.org/x/text/internal/number/gen.go +++ b/vendor/golang.org/x/text/internal/number/gen.go @@ -364,7 +364,7 @@ func genFormats(w *gen.CodeWriter, data *cldr.CLDR) { } // Fill the first slot with a dummy so we can identify unspecified tags. - formats := []number.Format{{}} + formats := []number.Pattern{{}} patterns := map[string]int{} // TODO: It would be possible to eliminate two of these slices by having diff --git a/vendor/golang.org/x/text/internal/number/number.go b/vendor/golang.org/x/text/internal/number/number.go index db8ad67d6..d412194f4 100644 --- a/vendor/golang.org/x/text/internal/number/number.go +++ b/vendor/golang.org/x/text/internal/number/number.go @@ -136,7 +136,7 @@ func (n Info) Symbol(t SymbolType) string { return symData.Elem(int(symIndex[n.symIndex][t])) } -func formatForLang(t language.Tag, index []byte) *Format { +func formatForLang(t language.Tag, index []byte) *Pattern { for ; ; t = t.Parent() { if x, ok := language.CompactIndex(t); ok { return &formats[index[x]] diff --git a/vendor/golang.org/x/text/internal/number/pattern.go b/vendor/golang.org/x/text/internal/number/pattern.go index 2714b7318..018cf02d5 100644 --- a/vendor/golang.org/x/text/internal/number/pattern.go +++ b/vendor/golang.org/x/text/internal/number/pattern.go @@ -31,14 +31,14 @@ import ( // TODO: replace special characters in affixes (-, +, ¤) with control codes. -// Format holds information for formatting numbers. It is designed to hold +// Pattern holds information for formatting numbers. It is designed to hold // information from CLDR number patterns. // // This pattern is precompiled for all patterns for all languages. Even though // the number of patterns is not very large, we want to keep this small. // // This type is only intended for internal use. -type Format struct { +type Pattern struct { // TODO: this struct can be packed a lot better than it is now. Should be // possible to make it 32 bytes. @@ -53,7 +53,7 @@ type Format struct { FormatWidth uint16 GroupingSize [2]uint8 - Flags FormatFlag + Flags PatternFlag // Number of digits. MinIntegerDigits uint8 @@ -65,11 +65,11 @@ type Format struct { MinExponentDigits uint8 } -// A FormatFlag is a bit mask for the flag field of a Format. -type FormatFlag uint8 +// A PatternFlag is a bit mask for the flag field of a Format. +type PatternFlag uint8 const ( - AlwaysSign FormatFlag = 1 << iota + AlwaysSign PatternFlag = 1 << iota AlwaysExpSign AlwaysDecimalSeparator ParenthesisForNegative // Common pattern. Saves space. @@ -85,7 +85,7 @@ const ( ) type parser struct { - *Format + *Pattern leadingSharps int @@ -126,8 +126,8 @@ var ( // ParsePattern extracts formatting information from a CLDR number pattern. // // See http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns. -func ParsePattern(s string) (f *Format, err error) { - p := parser{Format: &Format{}} +func ParsePattern(s string) (f *Pattern, err error) { + p := parser{Pattern: &Pattern{}} s = p.parseSubPattern(s) @@ -137,7 +137,7 @@ func ParsePattern(s string) (f *Format, err error) { p.setError(errors.New("format: error parsing first sub pattern")) return nil, p.err } - neg := parser{Format: &Format{}} // just for extracting the affixes. + neg := parser{Pattern: &Pattern{}} // just for extracting the affixes. s = neg.parseSubPattern(s[len(";"):]) p.NegOffset = uint16(len(p.buf)) p.buf = append(p.buf, neg.buf...) @@ -154,7 +154,7 @@ func ParsePattern(s string) (f *Format, err error) { } else { p.Affix = affix } - return p.Format, nil + return p.Pattern, nil } func (p *parser) parseSubPattern(s string) string { @@ -170,7 +170,7 @@ func (p *parser) parseSubPattern(s string) string { return s } -func (p *parser) parsePad(s string, f FormatFlag) (tail string) { +func (p *parser) parsePad(s string, f PatternFlag) (tail string) { if len(s) >= 2 && s[0] == '*' { r, sz := utf8.DecodeRuneInString(s[1:]) if p.PadRune != 0 { diff --git a/vendor/golang.org/x/text/internal/number/pattern_test.go b/vendor/golang.org/x/text/internal/number/pattern_test.go index f2ad55db1..810b5a855 100644 --- a/vendor/golang.org/x/text/internal/number/pattern_test.go +++ b/vendor/golang.org/x/text/internal/number/pattern_test.go @@ -12,48 +12,48 @@ import ( var testCases = []struct { pat string - want *Format + want *Pattern }{{ "#", - &Format{ + &Pattern{ FormatWidth: 1, // TODO: Should MinIntegerDigits be 1? }, }, { "0", - &Format{ + &Pattern{ FormatWidth: 1, MinIntegerDigits: 1, }, }, { "0000", - &Format{ + &Pattern{ FormatWidth: 4, MinIntegerDigits: 4, }, }, { ".#", - &Format{ + &Pattern{ FormatWidth: 2, MaxFractionDigits: 1, }, }, { "#0.###", - &Format{ + &Pattern{ FormatWidth: 6, MinIntegerDigits: 1, MaxFractionDigits: 3, }, }, { "#0.######", - &Format{ + &Pattern{ FormatWidth: 9, MinIntegerDigits: 1, MaxFractionDigits: 6, }, }, { "#,##0.###", - &Format{ + &Pattern{ FormatWidth: 9, GroupingSize: [2]uint8{3, 0}, MinIntegerDigits: 1, @@ -61,7 +61,7 @@ var testCases = []struct { }, }, { "#,##,##0.###", - &Format{ + &Pattern{ FormatWidth: 12, GroupingSize: [2]uint8{3, 2}, MinIntegerDigits: 1, @@ -70,7 +70,7 @@ var testCases = []struct { }, { // Ignore additional separators. "#,####,##,##0.###", - &Format{ + &Pattern{ FormatWidth: 17, GroupingSize: [2]uint8{3, 2}, MinIntegerDigits: 1, @@ -78,21 +78,21 @@ var testCases = []struct { }, }, { "#E0", - &Format{ + &Pattern{ FormatWidth: 3, MaxIntegerDigits: 1, MinExponentDigits: 1, }, }, { "0E0", - &Format{ + &Pattern{ FormatWidth: 3, MinIntegerDigits: 1, MinExponentDigits: 1, }, }, { "##00.0#E0", - &Format{ + &Pattern{ FormatWidth: 9, MinIntegerDigits: 2, MaxIntegerDigits: 4, @@ -102,7 +102,7 @@ var testCases = []struct { }, }, { "#00.0E+0", - &Format{ + &Pattern{ FormatWidth: 8, Flags: AlwaysExpSign, MinIntegerDigits: 2, @@ -120,7 +120,7 @@ var testCases = []struct { }, { // significant digits "@", - &Format{ + &Pattern{ FormatWidth: 1, MinSignificantDigits: 1, MaxSignificantDigits: 1, @@ -128,14 +128,14 @@ var testCases = []struct { }, { // significant digits "@@@@", - &Format{ + &Pattern{ FormatWidth: 4, MinSignificantDigits: 4, MaxSignificantDigits: 4, }, }, { "@###", - &Format{ + &Pattern{ FormatWidth: 4, MinSignificantDigits: 1, MaxSignificantDigits: 4, @@ -143,7 +143,7 @@ var testCases = []struct { }, { // Exponents in significant digits mode gets normalized. "@@E0", - &Format{ + &Pattern{ FormatWidth: 4, MinIntegerDigits: 1, MaxIntegerDigits: 1, @@ -153,7 +153,7 @@ var testCases = []struct { }, }, { "@###E00", - &Format{ + &Pattern{ FormatWidth: 7, MinIntegerDigits: 1, MaxIntegerDigits: 1, @@ -168,7 +168,7 @@ var testCases = []struct { }, { //alternative negative pattern "#0.###;(#0.###)", - &Format{ + &Pattern{ Affix: "\x00\x00\x01(\x01)", NegOffset: 2, FormatWidth: 6, @@ -178,7 +178,7 @@ var testCases = []struct { }, { // Rounding increments "1.05", - &Format{ + &Pattern{ RoundIncrement: 105, FormatWidth: 4, MinIntegerDigits: 1, @@ -187,7 +187,7 @@ var testCases = []struct { }, }, { "0.0%", - &Format{ + &Pattern{ Affix: "\x00\x01%", Multiplier: 100, FormatWidth: 4, @@ -197,7 +197,7 @@ var testCases = []struct { }, }, { "0.0‰", - &Format{ + &Pattern{ Affix: "\x00\x03‰", Multiplier: 1000, FormatWidth: 4, @@ -207,7 +207,7 @@ var testCases = []struct { }, }, { "#,##0.00¤", - &Format{ + &Pattern{ Affix: "\x00\x02¤", FormatWidth: 9, GroupingSize: [2]uint8{3, 0}, @@ -217,7 +217,7 @@ var testCases = []struct { }, }, { "#,##0.00 ¤;(#,##0.00 ¤)", - &Format{Affix: "\x00\x04\u00a0¤\x01(\x05\u00a0¤)", + &Pattern{Affix: "\x00\x04\u00a0¤\x01(\x05\u00a0¤)", NegOffset: 6, Multiplier: 0, FormatWidth: 10, @@ -229,28 +229,28 @@ var testCases = []struct { }, { // padding "*x#", - &Format{ + &Pattern{ PadRune: 'x', FormatWidth: 1, }, }, { // padding "#*x", - &Format{ + &Pattern{ PadRune: 'x', FormatWidth: 1, Flags: PadBeforeSuffix, }, }, { "*xpre#suf", - &Format{ + &Pattern{ Affix: "\x03pre\x03suf", PadRune: 'x', FormatWidth: 7, }, }, { "pre*x#suf", - &Format{ + &Pattern{ Affix: "\x03pre\x03suf", PadRune: 'x', FormatWidth: 7, @@ -258,7 +258,7 @@ var testCases = []struct { }, }, { "pre#*xsuf", - &Format{ + &Pattern{ Affix: "\x03pre\x03suf", PadRune: 'x', FormatWidth: 7, @@ -266,7 +266,7 @@ var testCases = []struct { }, }, { "pre#suf*x", - &Format{ + &Pattern{ Affix: "\x03pre\x03suf", PadRune: 'x', FormatWidth: 7, @@ -293,7 +293,7 @@ func TestParsePattern(t *testing.T) { } func TestPatternSize(t *testing.T) { - if sz := unsafe.Sizeof(Format{}); sz > 48 { + if sz := unsafe.Sizeof(Pattern{}); sz > 48 { t.Errorf("got %d; want 48", sz) } diff --git a/vendor/golang.org/x/text/internal/number/tables.go b/vendor/golang.org/x/text/internal/number/tables.go index 245535a15..845e0b14d 100644 --- a/vendor/golang.org/x/text/internal/number/tables.go +++ b/vendor/golang.org/x/text/internal/number/tables.go @@ -1376,7 +1376,7 @@ var tagToPercent = []uint8{ // 752 elements 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, } // Size: 776 bytes -var formats = []Format{Format{Affix: "", +var formats = []Pattern{Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1393,7 +1393,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "", + Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1410,7 +1410,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "", + Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1427,7 +1427,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x1}, - Format{Affix: "\x00\x03\u00a0%", + Pattern{Affix: "\x00\x03\u00a0%", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, @@ -1444,7 +1444,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x00\x01%", + Pattern{Affix: "\x00\x01%", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, @@ -1461,7 +1461,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "", + Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1478,7 +1478,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x00\x01%", + Pattern{Affix: "\x00\x01%", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, @@ -1495,7 +1495,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x00\x03\u00a0%", + Pattern{Affix: "\x00\x03\u00a0%", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, @@ -1512,7 +1512,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "", + Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1529,7 +1529,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "", + Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1546,7 +1546,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x3}, - Format{Affix: "\x00\x01%", + Pattern{Affix: "\x00\x01%", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, @@ -1563,7 +1563,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x03%\u00a0\x00", + Pattern{Affix: "\x03%\u00a0\x00", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, @@ -1580,7 +1580,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x03%\u00a0\x00\x04%\u00a0-\x00", + Pattern{Affix: "\x03%\u00a0\x00\x04%\u00a0-\x00", Offset: 0x0, NegOffset: 0x5, Multiplier: 0x64, @@ -1597,7 +1597,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x01[\x01]", + Pattern{Affix: "\x01[\x01]", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1614,7 +1614,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x1}, - Format{Affix: "", + Pattern{Affix: "", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x0, @@ -1631,7 +1631,7 @@ var formats = []Format{Format{Affix: "", MinSignificantDigits: 0x0, MaxSignificantDigits: 0x0, MinExponentDigits: 0x0}, - Format{Affix: "\x01%\x00", + Pattern{Affix: "\x01%\x00", Offset: 0x0, NegOffset: 0x0, Multiplier: 0x64, -- cgit v1.2.3-1-g7c22