Mercurial > projects > ldc
diff tango/lib/compiler/llvmdc/util/string.d @ 132:1700239cab2e trunk
[svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.
Lots of bugfixes...
This build is not suitable for most things.
author | lindquist |
---|---|
date | Fri, 11 Jan 2008 17:57:40 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tango/lib/compiler/llvmdc/util/string.d Fri Jan 11 17:57:40 2008 +0100 @@ -0,0 +1,50 @@ +/******************************************************************************* + + copyright: Copyright (c) 2004 Tango group. All rights reserved + + license: BSD style: $(LICENSE) + + version: Initial release: July 2006 + + + Various char[] utilities + +*******************************************************************************/ + +module util.string; + +private import tango.stdc.string; + +// convert uint to char[], within the given buffer +// Returns a valid slice of the populated buffer +char[] intToUtf8 (char[] tmp, size_t val) +in { + assert (tmp.length > 20, "atoi buffer should be 20 or more chars wide"); + } +body +{ + char* p = tmp.ptr + tmp.length; + + do { + *--p = (val % 10) + '0'; + } while (val /= 10); + + return tmp [cast(size_t)(p - tmp.ptr) .. $]; +} + + +// function to compare two strings +int stringCompare (char[] s1, char[] s2) +{ + auto len = s1.length; + + if (s2.length < len) + len = s2.length; + + int result = memcmp(s1.ptr, s2.ptr, len); + + if (result == 0) + result = cast(int)s1.length - cast(int)s2.length; + + return result; +}