summaryrefslogtreecommitdiff
path: root/vendor/gopkg.in/yaml.v3/sorter.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vendor/gopkg.in/yaml.v3/sorter.go (renamed from vendor/gopkg.in/yaml.v2/sorter.go)25
1 files changed, 23 insertions, 2 deletions
diff --git a/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v3/sorter.go
index 4c45e66..9210ece 100644
--- a/vendor/gopkg.in/yaml.v2/sorter.go
+++ b/vendor/gopkg.in/yaml.v3/sorter.go
@@ -1,3 +1,18 @@
+//
+// Copyright (c) 2011-2019 Canonical Ltd
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
package yaml
import (
@@ -37,8 +52,10 @@ func (l keyList) Less(i, j int) bool {
return ak < bk
}
ar, br := []rune(a.String()), []rune(b.String())
+ digits := false
for i := 0; i < len(ar) && i < len(br); i++ {
if ar[i] == br[i] {
+ digits = unicode.IsDigit(ar[i])
continue
}
al := unicode.IsLetter(ar[i])
@@ -47,12 +64,16 @@ func (l keyList) Less(i, j int) bool {
return ar[i] < br[i]
}
if al || bl {
- return bl
+ if digits {
+ return al
+ } else {
+ return bl
+ }
}
var ai, bi int
var an, bn int64
if ar[i] == '0' || br[i] == '0' {
- for j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {
+ for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- {
if ar[j] != '0' {
an = 1
bn = 1