barometer: update DMA's vendoring packages
[barometer.git] / src / dma / vendor / golang.org / x / text / language / go1_1.go
diff --git a/src/dma/vendor/golang.org/x/text/language/go1_1.go b/src/dma/vendor/golang.org/x/text/language/go1_1.go
new file mode 100644 (file)
index 0000000..380f4c0
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright 2013 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.
+
+// +build !go1.2
+
+package language
+
+import "sort"
+
+func sortStable(s sort.Interface) {
+       ss := stableSort{
+               s:   s,
+               pos: make([]int, s.Len()),
+       }
+       for i := range ss.pos {
+               ss.pos[i] = i
+       }
+       sort.Sort(&ss)
+}
+
+type stableSort struct {
+       s   sort.Interface
+       pos []int
+}
+
+func (s *stableSort) Len() int {
+       return len(s.pos)
+}
+
+func (s *stableSort) Less(i, j int) bool {
+       return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j]
+}
+
+func (s *stableSort) Swap(i, j int) {
+       s.s.Swap(i, j)
+       s.pos[i], s.pos[j] = s.pos[j], s.pos[i]
+}