Contiki 2.6

small_wcrtomb.c

00001 #include <reent.h>
00002 #include <wchar.h>
00003 #include <stdlib.h>
00004 #include <stdio.h>
00005 #include <errno.h>
00006 
00007 #if defined( _SMALL_PRINTF ) || defined(SMALL_SCANF) 
00008 #define _ASCII_CAR
00009 #endif
00010 
00011 size_t
00012 _DEFUN (_wcrtomb_r, (ptr, s, wc, ps),
00013         struct _reent *ptr _AND
00014         char *s _AND
00015         wchar_t wc _AND
00016         mbstate_t *ps)
00017 {
00018 
00019 #ifndef _ASCII_CAR
00020   int retval = 0; 
00021   char buf[10];
00022 
00023 
00024 #ifdef MB_CAPABLE
00025   if (ps == NULL)
00026     {
00027       _REENT_CHECK_MISC(ptr);
00028       ps = &(_REENT_WCRTOMB_STATE(ptr));
00029     }
00030 #endif
00031 
00032   if (s == NULL)
00033     retval = _wctomb_r (ptr, buf, L'\0', ps);
00034   else
00035     retval = _wctomb_r (ptr, s, wc, ps);
00036 
00037   if (retval == -1)
00038     {
00039       ps->__count = 0;
00040       ptr->_errno = EILSEQ;
00041       return (size_t)(-1);
00042     }
00043   else
00044     return (size_t)retval;
00045 #endif    
00046    int retval = 1 ;
00047    return (size_t)retval;
00048 }
00049 
00050 #ifndef _REENT_ONLY
00051 size_t
00052 _DEFUN (wcrtomb, (s, wc, ps),
00053         char *s _AND
00054         wchar_t wc _AND
00055         mbstate_t *ps)
00056 {
00057   return _wcrtomb_r (_REENT, s, wc, ps);
00058 }
00059 #endif /* !_REENT_ONLY */