Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / libc / extra.c
1 /*
2  *   Creation Date: <2003/10/18 13:52:32 samuel>
3  *   Time-stamp: <2003/10/18 13:54:24 samuel>
4  *
5  *      <extra.c>
6  *
7  *      Libc extras
8  *
9  *   Copyright (C) 2003 Samuel Rydh (samuel@ibrium.se)
10  *
11  *   This program is free software; you can redistribute it and/or
12  *   modify it under the terms of the GNU General Public License
13  *   version 2
14  *
15  */
16
17 #include "config.h"
18 #include "libc/string.h"
19 #include "libc/vsprintf.h"
20 #include "libopenbios/bindings.h"
21
22 /* strncpy without 0-pad */
23 char *
24 strncpy_nopad( char *dest, const char *src, size_t n )
25 {
26         int len = MIN( n, strlen(src)+1 );
27         return memcpy( dest, src, len );
28 }
29
30 /* printf */
31
32 int forth_printf( const char *fmt, ... )
33 {
34         char buf[512];
35         va_list args;
36         int i;
37
38         va_start(args, fmt);
39         i = vsnprintf(buf, sizeof(buf), fmt, args);
40         va_end(args);
41
42         PUSH(pointer2cell(buf));
43         PUSH(i);
44         fword("type");
45
46         return i;
47 }
48
49