diff options
Diffstat (limited to 'usr/gri/pretty/utils.go')
-rw-r--r-- | usr/gri/pretty/utils.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/usr/gri/pretty/utils.go b/usr/gri/pretty/utils.go new file mode 100644 index 000000000..0764a2f8c --- /dev/null +++ b/usr/gri/pretty/utils.go @@ -0,0 +1,63 @@ +// 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 Utils + + +export func BaseName(s string) string { + // TODO this is not correct for non-ASCII strings! + i := len(s) - 1; + for i >= 0 && s[i] != '/' { + if s[i] > 128 { + panic("non-ASCII string"); + } + i--; + } + return s[i + 1 : len(s)]; +} + + +export func Contains(s, sub string, pos int) bool { + end := pos + len(sub); + return pos >= 0 && end <= len(s) && s[pos : end] == sub; +} + + +export func TrimExt(s, ext string) string { + i := len(s) - len(ext); + if i >= 0 && s[i : len(s)] == ext { + s = s[0 : i]; + } + return s; +} + + +export func IntToString(x, base int) string { + x0 := x; + if x < 0 { + x = -x; + if x < 0 { + panic("smallest int not handled"); + } + } else if x == 0 { + return "0"; + } + + // x > 0 + hex := "0123456789ABCDEF"; + var buf [32] byte; + i := len(buf); + for x > 0 { + i--; + buf[i] = hex[x % base]; + x /= base; + } + + if x0 < 0 { + i--; + buf[i] = '-'; + } + + return string(buf)[i : len(buf)]; +} |