Subversion Repositories Kolibri OS

Rev

Rev 4921 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4921 Rev 6099
1
/* Copyright 2005, 2007 Shaun Jackman
1
/* Copyright 2005, 2007 Shaun Jackman
2
 * Permission to use, copy, modify, and distribute this software
2
 * Permission to use, copy, modify, and distribute this software
3
 * is freely granted, provided that this notice is preserved.
3
 * is freely granted, provided that this notice is preserved.
4
 */
4
 */
5
/* doc in dprintf.c */
5
/* doc in dprintf.c */
6
 
6
 
7
#include <_ansi.h>
7
#include <_ansi.h>
8
#include 
8
#include 
9
#include 
9
#include 
10
#include 
10
#include 
11
#include 
11
#include 
12
#include 
12
#include 
13
#include "local.h"
13
#include "local.h"
14
 
14
 
15
int
15
int
16
_DEFUN(_vdprintf_r, (ptr, fd, format, ap),
16
_DEFUN(_vdprintf_r, (ptr, fd, format, ap),
17
       struct _reent *ptr _AND
17
       struct _reent *ptr _AND
18
       int fd _AND
18
       int fd _AND
19
       const char *__restrict format _AND
19
       const char *__restrict format _AND
20
       va_list ap)
20
       va_list ap)
21
{
21
{
22
  char *p;
22
  char *p;
23
  char buf[512];
23
  char buf[512];
24
  size_t n = sizeof buf;
24
  size_t n = sizeof buf;
25
 
25
 
26
  _REENT_SMALL_CHECK_INIT (ptr);
26
  _REENT_SMALL_CHECK_INIT (ptr);
27
  p = _vasnprintf_r (ptr, buf, &n, format, ap);
27
  p = _vasnprintf_r (ptr, buf, &n, format, ap);
28
  if (!p)
28
  if (!p)
29
    return -1;
29
    return -1;
30
  n = _write_r (ptr, fd, p, n);
30
  n = _write_r (ptr, fd, p, n);
31
  if (p != buf)
31
  if (p != buf)
32
    _free_r (ptr, p);
32
    _free_r (ptr, p);
33
  return n;
33
  return n;
34
}
34
}
-
 
35
 
-
 
36
#ifdef _NANO_FORMATTED_IO
-
 
37
int
-
 
38
_EXFUN(_vdiprintf_r, (struct _reent *, int, const char *, __VALIST)
-
 
39
       _ATTRIBUTE ((__alias__("_vdprintf_r"))));
-
 
40
#endif
35
 
41
 
36
#ifndef _REENT_ONLY
42
#ifndef _REENT_ONLY
37
 
43
 
38
int
44
int
39
_DEFUN(vdprintf, (fd, format, ap),
45
_DEFUN(vdprintf, (fd, format, ap),
40
       int fd _AND
46
       int fd _AND
41
       const char *__restrict format _AND
47
       const char *__restrict format _AND
42
       va_list ap)
48
       va_list ap)
43
{
49
{
44
  return _vdprintf_r (_REENT, fd, format, ap);
50
  return _vdprintf_r (_REENT, fd, format, ap);
45
}
51
}
-
 
52
 
-
 
53
#ifdef _NANO_FORMATTED_IO
-
 
54
int
-
 
55
_EXFUN(vdiprintf, (int, const char *, __VALIST)
-
 
56
       _ATTRIBUTE ((__alias__("vdprintf"))));
46
 
57
#endif
47
#endif /* ! _REENT_ONLY */
58
#endif /* ! _REENT_ONLY */