add fmt_strm
parent
3c5ca2a2ad
commit
aa435fbee3
@ -0,0 +1,17 @@
|
||||
#include <stdarg.h>
|
||||
#include "fmt.h"
|
||||
|
||||
size_t fmt_strm_internal(char* dest, ...) {
|
||||
size_t n;
|
||||
va_list a;
|
||||
const char* s;
|
||||
va_start(a,dest);
|
||||
for (n=0; s=va_arg(a,const char*); ) {
|
||||
size_t inc=fmt_str(dest,s);
|
||||
if (n+inc<n) return (size_t)-1;
|
||||
if (dest) dest+=inc;
|
||||
n+=inc;
|
||||
}
|
||||
va_end(a);
|
||||
return n;
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
#include <fmt.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
int main() {
|
||||
char buf[100];
|
||||
buf[5]='x';
|
||||
assert(fmt_str(buf,"fnord")==5);
|
||||
assert(buf[5]=='x');
|
||||
buf[5]=0;
|
||||
assert(!strcmp(buf,"fnord"));
|
||||
assert(fmt_strm(buf,"Fn","0rd")==5);
|
||||
assert(!strcmp(buf,"Fn0rd"));
|
||||
}
|
Loading…
Reference in New Issue