summaryrefslogtreecommitdiff
path: root/mm/src/boot/O2/sprintf.c
blob: bcb2a438424bbbadfbf90d97140994bcd1ba682d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "ultra64.h"
#include "libc/stdlib.h"
#include "libc/string.h"
#include <stdio.h>

#if 0
void* proutSprintf(void* dst, const char* fmt, size_t size) {
    return (void*)((uintptr_t)memcpy(dst, fmt, size) + size);
}

int vsprintf(char* dst, char* fmt, va_list args) {
    int ans = _Printf(proutSprintf, dst, fmt, args);
    if (ans > -1) {
        dst[ans] = 0;
    }
    return ans;
}

int sprintf(char* dst, const char* fmt, ...) {
    int ans;
    va_list args;
    va_start(args, fmt);

    ans = _Printf(&proutSprintf, dst, fmt, args);
    if (ans > -1) {
        dst[ans] = 0;
    }

    va_end(args);

    return ans;
}
#endif