view tango/lib/compiler/llvmdc/util/string.d @ 212:4c2689d57ba4 trunk

[svn r228] Fixed: when new'ing basic types, the storage was not default initialized. Fixed: the tango/lib/compiler/llvmdc/llvmdc.mak makefile was a bit incorrect. Changed: the basic gc is now the default. Changed: renamed a few temporary names in the LLVM IR output.
author lindquist
date Tue, 27 May 2008 22:14:24 +0200
parents 1700239cab2e
children
line wrap: on
line source

/*******************************************************************************

        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;
}