mirror of https://github.com/0intro/conterm
25 lines
462 B
C
25 lines
462 B
C
#include <u.h>
|
|
#include <libc.h>
|
|
#include "fmtdef.h"
|
|
|
|
int
|
|
sprint(char *buf, char *fmt, ...)
|
|
{
|
|
int n;
|
|
uint len;
|
|
va_list args;
|
|
|
|
len = 1<<30; /* big number, but sprint is deprecated anyway */
|
|
/*
|
|
* on PowerPC, the stack is near the top of memory, so
|
|
* we must be sure not to overflow a 32-bit pointer.
|
|
*/
|
|
if((uintptr)buf+len < (uintptr)buf)
|
|
len = -(uintptr)buf-1;
|
|
|
|
va_start(args, fmt);
|
|
n = vsnprint(buf, len, fmt, args);
|
|
va_end(args);
|
|
return n;
|
|
}
|