Backed out changeset 4b2c67fe7e6b (relanding bug 449168)
[wine-gecko.git] / dbm / src / snprintf.c
blob4987785723659be9b43d6a077e550d89ad9d21d6
1 #ifndef HAVE_SNPRINTF
3 #include "watcomfx.h"
4 #include <sys/types.h>
5 #include <stddef.h>
6 #include <stdio.h>
8 #ifdef HAVE_SYS_CDEFS_H
9 #include <sys/cdefs.h>
10 #else
11 #include "cdefs.h"
12 #endif
14 #include "prtypes.h"
16 #include <ncompat.h>
18 /* The OS/2 VAC compiler doesn't appear to define __STDC__ and won't let us define it either */
19 #if defined(__STDC__) || defined(XP_OS2_VACPP)
20 #include <stdarg.h>
21 #else
22 #include <varargs.h>
23 #endif
25 int
26 #if defined(__STDC__) || defined(XP_OS2_VACPP)
27 snprintf(char *str, size_t n, const char *fmt, ...)
28 #else
29 snprintf(str, n, fmt, va_alist)
30 char *str;
31 size_t n;
32 const char *fmt;
33 va_dcl
34 #endif
36 va_list ap;
37 #ifdef VSPRINTF_CHARSTAR
38 char *rp;
39 #else
40 int rval;
41 #endif
42 #if defined(__STDC__) || defined(XP_OS2_VACPP)
43 va_start(ap, fmt);
44 #else
45 va_start(ap);
46 #endif
47 #ifdef VSPRINTF_CHARSTAR
48 rp = vsprintf(str, fmt, ap);
49 va_end(ap);
50 return (strlen(rp));
51 #else
52 rval = vsprintf(str, fmt, ap);
53 va_end(ap);
54 return (rval);
55 #endif
58 int
59 vsnprintf(str, n, fmt, ap)
60 char *str;
61 size_t n;
62 const char *fmt;
63 va_list ap;
65 #ifdef VSPRINTF_CHARSTAR
66 return (strlen(vsprintf(str, fmt, ap)));
67 #else
68 return (vsprintf(str, fmt, ap));
69 #endif
72 #endif /* HAVE_SNPRINTF */
74 /* Some compilers don't like an empty source file. */
75 static int dummy = 0;