diff options
| author | Rob Pike <r@golang.org> | 2013-02-21 10:47:31 -0800 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2013-02-21 10:47:31 -0800 |
| commit | 6f96a76cd115cf8e3f48d5a4a10ef1fc41dbf689 (patch) | |
| tree | a5533eb476f6367450199d601b4e8c6771425e3f /src/pkg/unicode | |
| parent | bca3f5fca030599c41523570a3be9527448e73a9 (diff) | |
| download | go-6f96a76cd115cf8e3f48d5a4a10ef1fc41dbf689.tar.xz | |
unicode: use new Scanner interface in table creation
Update norm and local/collate as well.
R=mpvl
CC=golang-dev
https://golang.org/cl/7395045
Diffstat (limited to 'src/pkg/unicode')
| -rw-r--r-- | src/pkg/unicode/maketables.go | 51 |
1 files changed, 21 insertions, 30 deletions
diff --git a/src/pkg/unicode/maketables.go b/src/pkg/unicode/maketables.go index 915101d004..53d8b967e9 100644 --- a/src/pkg/unicode/maketables.go +++ b/src/pkg/unicode/maketables.go @@ -13,7 +13,6 @@ import ( "bufio" "flag" "fmt" - "io" "log" "net/http" "os" @@ -321,16 +320,11 @@ func loadChars() { flag.Set("data", *url+"UnicodeData.txt") } input := open(*dataURL) + defer input.close() + scanner := bufio.NewScanner(input) var first rune = 0 - for { - line, err := input.ReadString('\n') - if err != nil { - if err == io.EOF { - break - } - logger.Fatal(err) - } - switch parseCategory(line[0 : len(line)-1]) { + for scanner.Scan() { + switch parseCategory(scanner.Text()) { case SNormal: if first != 0 { logger.Fatalf("bad state normal at %U", lastChar) @@ -351,7 +345,9 @@ func loadChars() { first = 0 } } - input.close() + if scanner.Err() != nil { + logger.Fatal(scanner.Err()) + } } func loadCasefold() { @@ -359,15 +355,11 @@ func loadCasefold() { flag.Set("casefolding", *url+"CaseFolding.txt") } input := open(*casefoldingURL) - for { - line, err := input.ReadString('\n') - if err != nil { - if err == io.EOF { - break - } - logger.Fatal(err) - } - if line[0] == '#' || len(strings.TrimSpace(line)) == 0 { + defer input.close() + scanner := bufio.NewScanner(input) + for scanner.Scan() { + line := scanner.Text() + if len(line) == 0 || line[0] == '#' || len(strings.TrimSpace(line)) == 0 { continue } field := strings.Split(line, "; ") @@ -389,7 +381,9 @@ func loadCasefold() { } chars[p1].foldCase = rune(p2) } - input.close() + if scanner.Err() != nil { + logger.Fatal(scanner.Err()) + } } const progHeader = `// Generated by running @@ -710,15 +704,12 @@ func printScriptOrProperty(doProps bool) { return } input := open(*url + file) - for { - line, err := input.ReadString('\n') - if err != nil { - if err == io.EOF { - break - } - logger.Fatal(err) - } - parseScript(line[0:len(line)-1], table) + scanner := bufio.NewScanner(input) + for scanner.Scan() { + parseScript(scanner.Text(), table) + } + if scanner.Err() != nil { + logger.Fatal(scanner.Err()) } input.close() |
