Mercurial > projects > ldc
diff runtime/internal/util/string.d @ 443:44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Reworked the LLVMDC specific pragmas.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Fri, 01 Aug 2008 00:32:06 +0200 |
parents | |
children | ecb429ee0648 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtime/internal/util/string.d Fri Aug 01 00:32:06 2008 +0200 @@ -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; +}