summaryrefslogtreecommitdiff
path: root/src/os/sprintf.c
blob: aadc37a97168836ba7f834dc6fde1b2237dbf5bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdarg.h>
#include "libultra_internal.h"
#include "printf.h"
#include <string.h>

char* proutSprintf(char* dst, const char* src, size_t count);

int sprintf(char* dst, const char* fmt, ...) {
    s32 written;
    va_list args;
    va_start(args, fmt);
    written = _Printf(proutSprintf, dst, fmt, args);
    if (written >= 0) {
        dst[written] = 0;
    }
    return written;
}

char* proutSprintf(char* dst, const char* src, size_t count) {
    return (char*) memcpy((u8*) dst, (u8*) src, count) + count;
}