Contiki 2.5
small_wcrtomb.c
1 #include <reent.h>
2 #include <wchar.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <errno.h>
6 
7 #if defined( _SMALL_PRINTF ) || defined(SMALL_SCANF)
8 #define _ASCII_CAR
9 #endif
10 
11 size_t
12 _DEFUN (_wcrtomb_r, (ptr, s, wc, ps),
13  struct _reent *ptr _AND
14  char *s _AND
15  wchar_t wc _AND
16  mbstate_t *ps)
17 {
18 
19 #ifndef _ASCII_CAR
20  int retval = 0;
21  char buf[10];
22 
23 
24 #ifdef MB_CAPABLE
25  if (ps == NULL)
26  {
27  _REENT_CHECK_MISC(ptr);
28  ps = &(_REENT_WCRTOMB_STATE(ptr));
29  }
30 #endif
31 
32  if (s == NULL)
33  retval = _wctomb_r (ptr, buf, L'\0', ps);
34  else
35  retval = _wctomb_r (ptr, s, wc, ps);
36 
37  if (retval == -1)
38  {
39  ps->__count = 0;
40  ptr->_errno = EILSEQ;
41  return (size_t)(-1);
42  }
43  else
44  return (size_t)retval;
45 #endif
46  int retval = 1 ;
47  return (size_t)retval;
48 }
49 
50 #ifndef _REENT_ONLY
51 size_t
52 _DEFUN (wcrtomb, (s, wc, ps),
53  char *s _AND
54  wchar_t wc _AND
55  mbstate_t *ps)
56 {
57  return _wcrtomb_r (_REENT, s, wc, ps);
58 }
59 #endif /* !_REENT_ONLY */