コード例 #1
0
ファイル: filename.c プロジェクト: D-Programming-microD/GDC
const char *FileName::forceExt(const char *name, const char *ext)
{
    const char *e = FileName::ext(name);
    if (e)                              // if already has an extension
    {
        size_t len = e - name;
        size_t extlen = strlen(ext);

        char *s = (char *)mem.malloc(len + extlen + 1);
        memcpy(s,name,len);
        memcpy(s + len, ext, extlen + 1);
        return s;
    }
    else
        return defaultExt(name, ext);   // doesn't have one
}
コード例 #2
0
ファイル: root.c プロジェクト: NilsBossung/dmd
FileName *FileName::forceExt(const char *name, const char *ext)
{
    char *e;
    char *s;
    size_t len;
    size_t extlen;

    e = FileName::ext(name);
    if (e)                              // if already has an extension
    {
        len = e - name;
        extlen = strlen(ext);

        s = (char *)alloca(len + extlen + 1);
        memcpy(s,name,len);
        memcpy(s + len, ext, extlen + 1);
        return new FileName(s, 0);
    }
    else
        return defaultExt(name, ext);   // doesn't have one
}