// 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)]; }