]> Cypherpunks repositories - gostls13.git/commitdiff
change IsDecimalDigit to IsDigit because Decimal is redundant
authorRob Pike <r@golang.org>
Wed, 26 Aug 2009 23:53:07 +0000 (16:53 -0700)
committerRob Pike <r@golang.org>
Wed, 26 Aug 2009 23:53:07 +0000 (16:53 -0700)
R=rsc
DELTA=792  (398 added, 383 deleted, 11 changed)
OCL=33919
CL=33921

src/pkg/go/scanner/scanner.go
src/pkg/unicode/Makefile
src/pkg/unicode/decimaldigit.go [deleted file]
src/pkg/unicode/digit.go [new file with mode: 0644]
src/pkg/unicode/digit_test.go [moved from src/pkg/unicode/decimaldigit_test.go with 98% similarity]
src/pkg/unicode/digittables.go
src/pkg/unicode/letter.go
src/pkg/unicode/maketables.go

index 9a040aa6c6d00900789e53d0d5b683787c633203..c4a5ad838779d97fb0afd5503b78d63ca1e289da 100644 (file)
@@ -188,7 +188,7 @@ func isLetter(ch int) bool {
 func isDigit(ch int) bool {
        return
                '0' <= ch && ch <= '9' ||
-               ch >= 0x80 && unicode.IsDecimalDigit(ch);
+               ch >= 0x80 && unicode.IsDigit(ch);
 }
 
 
index da31830399418c69153a650d2e518dd351c53141..717af36af9c85cc3337b4875264cac107aaccd09 100644 (file)
@@ -6,7 +6,7 @@ include $(GOROOT)/src/Make.$(GOARCH)
 
 TARG=unicode
 GOFILES=\
-       decimaldigit.go\
+       digit.go\
        digittables.go\
        letter.go\
        lettertables.go\
diff --git a/src/pkg/unicode/decimaldigit.go b/src/pkg/unicode/decimaldigit.go
deleted file mode 100644 (file)
index b6b4388..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2009 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.
-
-package unicode
-
-// IsDecimalDigit reports whether the rune is a decimal digit.
-func IsDecimalDigit(rune int) bool {
-       return Is(DecimalDigit, rune);
-}
diff --git a/src/pkg/unicode/digit.go b/src/pkg/unicode/digit.go
new file mode 100644 (file)
index 0000000..b12ada2
--- /dev/null
@@ -0,0 +1,13 @@
+// Copyright 2009 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.
+
+package unicode
+
+// IsDigit reports whether the rune is a decimal digit.
+func IsDigit(rune int) bool {
+       if rune < 0x100 {       // quick ASCII (Latin-1, really) check
+               return '0' <= rune && rune <= '9'
+       }
+       return Is(Digit, rune);
+}
similarity index 98%
rename from src/pkg/unicode/decimaldigit_test.go
rename to src/pkg/unicode/digit_test.go
index 05d75b4b2a170d0d55295870d960f87290da913c..02d0637462ce45f19326dd5055fcd16a4069558d 100644 (file)
@@ -10,7 +10,7 @@ import "testing"
 //     grep '^....;[^;]*;Nd;' UnicodeData.txt
 // To generate this table:
 //  ,s/([^;]+).+/      0x\1,   \/\/ &/g
-var testDecimal = []int{
+var testDigit = []int{
        0x0030, // 0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
        0x0031, // 0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
        0x0032, // 0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
@@ -358,15 +358,15 @@ var testLetter = []int{
        0x2fa1d,
 }
 
-func TestIsDecimalDigit(t *testing.T) {
-       for i, r := range testDecimal {
-               if !IsDecimalDigit(r) {
-                       t.Errorf("IsDecimalDigit(%#x) = false, want true\n", r);
+func TestDigit(t *testing.T) {
+       for i, r := range testDigit {
+               if !IsDigit(r) {
+                       t.Errorf("IsDigit(%#x) = false, want true\n", r);
                }
        }
        for i, r := range testLetter {
-               if IsDecimalDigit(r) {
-                       t.Errorf("IsDecimalDigit(%#x) = true, want false\n", r);
+               if IsDigit(r) {
+                       t.Errorf("IsDigit(%#x) = true, want false\n", r);
                }
        }
 }
index f0b11a5b6c2acb398b7afd1f87a265d36ccd4f11..eaea4253aa7146de02c1f6a1ee0129930bac8eca 100644 (file)
@@ -1,12 +1,12 @@
 // Generated by running
-//     tables --digits=true --url=http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
+//     maketables --digits=true --url=http://www.unicode.org/Public/5.1.0/ucd/UnicodeData.txt
 // DO NOT EDIT
 
 package unicode
 
-// DecimalDigit is the set of Unicode characters with the "decimal digit" property.
-var DecimalDigit = decimalDigit
-var decimalDigit = []Range {
+// Digit is the set of Unicode characters with the "decimal digit" (Nd) property.
+var Digit = digit
+var digit = []Range {
        Range{0x0030, 0x0039, 1},
        Range{0x0660, 0x0669, 1},
        Range{0x06f0, 0x06f9, 1},
index f0e9db2ae54b2bba89a98f84a83739ff67763aaa..c625e90687126e447a1ed571e3cf1d460b9bcf25 100644 (file)
@@ -18,8 +18,7 @@ type Range struct {
 func Is(ranges []Range, rune int) bool {
        // common case: rune is ASCII or Latin-1
        if rune < 0x100 {
-               for i := 0; i < len(ranges); i++ {
-                       r := ranges[i];
+               for i, r := range ranges {
                        if rune > r.Hi {
                                continue;
                        }
@@ -51,20 +50,33 @@ func Is(ranges []Range, rune int) bool {
 
 // IsUpper reports whether the rune is an upper case letter.
 func IsUpper(rune int) bool {
+       if rune < 0x80 {        // quick ASCII check
+               return 'A' <= rune && rune <= 'Z';
+       }
        return Is(Upper, rune);
 }
 
 // IsLower reports whether the rune is a lower case letter.
 func IsLower(rune int) bool {
+       if rune < 0x80 {        // quick ASCII check
+               return 'a' <= rune && rune <= 'z';
+       }
        return Is(Lower, rune);
 }
 
 // IsTitle reports whether the rune is a title case letter.
 func IsTitle(rune int) bool {
+       if rune < 0x80 {        // quick ASCII check
+               return false;
+       }
        return Is(Title, rune);
 }
 
 // IsLetter reports whether the rune is a letter.
 func IsLetter(rune int) bool {
+       if rune < 0x80 {        // quick ASCII check
+               rune &^= ' ';
+               return 'A' <= rune && rune <= 'Z';
+       }
        return Is(Letter, rune);
 }
index 466813611a9d563d8737be8eed2a94b53c273553..6a7ac3d32bd2b1a98522218c765ad41289e2cfbc 100644 (file)
@@ -172,7 +172,7 @@ func main() {
        resp.Body.Close();
        fmt.Printf(
                "// Generated by running\n"
-               "//     tables --digits=%t --url=%s\n"
+               "//     maketables --digits=%t --url=%s\n"
                "// DO NOT EDIT\n\n"
                "package unicode\n",
                *digits,
@@ -183,9 +183,9 @@ func main() {
        // available to clients.
        if *digits {
                dumpRange(
-                       "\n// DecimalDigit is the set of Unicode characters with the \"decimal digit\" property.\n"
-                       "var DecimalDigit = decimalDigit\n"
-                       "var decimalDigit = []Range {\n",
+                       "\n// Digit is the set of Unicode characters with the \"decimal digit\" (Nd) property.\n"
+                       "var Digit = digit\n"
+                       "var digit = []Range {\n",
                        func(code int) bool { return chars[code].category == "Nd" },
                        "}\n"
                );