From 621e49bb465f500cc46d47e39e828cf76d6381d7 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 24 Jul 2018 14:35:44 +0200 Subject: update vendor --- .../x/text/unicode/runenames/runenames.go | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 vendor/golang.org/x/text/unicode/runenames/runenames.go (limited to 'vendor/golang.org/x/text/unicode/runenames/runenames.go') diff --git a/vendor/golang.org/x/text/unicode/runenames/runenames.go b/vendor/golang.org/x/text/unicode/runenames/runenames.go new file mode 100644 index 0000000..3154a22 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/runenames/runenames.go @@ -0,0 +1,48 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go gen_bits.go + +// Package runenames provides rune names from the Unicode Character Database. +// For example, the name for '\u0100' is "LATIN CAPITAL LETTER A WITH MACRON". +// +// See http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt +package runenames + +import ( + "sort" +) + +// Name returns the name for r. +func Name(r rune) string { + i := sort.Search(len(table0), func(j int) bool { + e := table0[j] + rOffset := rune(e >> shiftRuneOffset) + return r < rOffset + }) + if i == 0 { + return "" + } + + e := table0[i-1] + rOffset := rune(e >> shiftRuneOffset) + rLength := rune(e>>shiftRuneLength) & maskRuneLength + if r >= rOffset+rLength { + return "" + } + + if (e>>shiftDirect)&maskDirect != 0 { + o := int(e>>shiftDataOffset) & maskDataOffset + n := int(e>>shiftDataLength) & maskDataLength + return data[o : o+n] + } + + base := uint32(e>>shiftDataBase) & maskDataBase + base <<= dataBaseUnit + j := rune(e>>shiftTable1Offset) & maskTable1Offset + j += r - rOffset + d0 := base + uint32(table1[j-1]) // dataOffset + d1 := base + uint32(table1[j-0]) // dataOffset + dataLength + return data[d0:d1] +} -- cgit v1.2.3