]> Cypherpunks repositories - gostls13.git/commitdiff
strings: unindent Fields
authorTobias Klauser <tklauser@distanz.ch>
Mon, 8 Apr 2019 07:54:33 +0000 (09:54 +0200)
committerTobias Klauser <tobias.klauser@gmail.com>
Mon, 8 Apr 2019 08:18:38 +0000 (08:18 +0000)
CL 56470 unindented bytes.Fields, but not strings.Fields. Do so now to
make it easier to diff the two functions for potential differences.

Change-Id: Ifef81f50cee64e8277e91efa5ec5521d8d21d3bd
Reviewed-on: https://go-review.googlesource.com/c/go/+/170951
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/strings/strings.go

index e14fffb2b86bcd6d9052f6153c685b59f7aaee5b..5a126a7a19d88fe712cfb3c041207ad6ae7a2528 100644 (file)
@@ -341,38 +341,38 @@ func Fields(s string) []string {
                wasSpace = isSpace
        }
 
-       if setBits < utf8.RuneSelf { // ASCII fast path
-               a := make([]string, n)
-               na := 0
-               fieldStart := 0
-               i := 0
-               // Skip spaces in the front of the input.
-               for i < len(s) && asciiSpace[s[i]] != 0 {
+       if setBits >= utf8.RuneSelf {
+               // Some runes in the input string are not ASCII.
+               return FieldsFunc(s, unicode.IsSpace)
+       }
+       // ASCII fast path
+       a := make([]string, n)
+       na := 0
+       fieldStart := 0
+       i := 0
+       // Skip spaces in the front of the input.
+       for i < len(s) && asciiSpace[s[i]] != 0 {
+               i++
+       }
+       fieldStart = i
+       for i < len(s) {
+               if asciiSpace[s[i]] == 0 {
                        i++
+                       continue
                }
-               fieldStart = i
-               for i < len(s) {
-                       if asciiSpace[s[i]] == 0 {
-                               i++
-                               continue
-                       }
-                       a[na] = s[fieldStart:i]
-                       na++
+               a[na] = s[fieldStart:i]
+               na++
+               i++
+               // Skip spaces in between fields.
+               for i < len(s) && asciiSpace[s[i]] != 0 {
                        i++
-                       // Skip spaces in between fields.
-                       for i < len(s) && asciiSpace[s[i]] != 0 {
-                               i++
-                       }
-                       fieldStart = i
-               }
-               if fieldStart < len(s) { // Last field might end at EOF.
-                       a[na] = s[fieldStart:]
                }
-               return a
+               fieldStart = i
        }
-
-       // Some runes in the input string are not ASCII.
-       return FieldsFunc(s, unicode.IsSpace)
+       if fieldStart < len(s) { // Last field might end at EOF.
+               a[na] = s[fieldStart:]
+       }
+       return a
 }
 
 // FieldsFunc splits the string s at each run of Unicode code points c satisfying f(c)