wcrtomb.c (583efa1268dfc7b55ec568903d4fd8027ec7db0f) | wcrtomb.c (e3e8878435ea88f45bce56e6d49e962bbdcf6547) |
---|---|
1/*- 2 * Copyright (c) 2002 Tim J. Robbins. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 25 unchanged lines hidden (view full) --- 34#include <wchar.h> 35 36size_t 37wcrtomb(char * __restrict s, wchar_t wc, mbstate_t * __restrict ps __unused) 38{ 39 char *e; 40 char buf[MB_LEN_MAX]; 41 | 1/*- 2 * Copyright (c) 2002 Tim J. Robbins. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 25 unchanged lines hidden (view full) --- 34#include <wchar.h> 35 36size_t 37wcrtomb(char * __restrict s, wchar_t wc, mbstate_t * __restrict ps __unused) 38{ 39 char *e; 40 char buf[MB_LEN_MAX]; 41 |
42 if (s == NULL) | 42 if (s == NULL) { |
43 s = buf; | 43 s = buf; |
44 wc = L'\0'; 45 } |
|
44 sputrune(wc, s, MB_CUR_MAX, &e); 45 if (e == NULL) { 46 errno = EILSEQ; 47 return ((size_t)-1); 48 } 49 return ((size_t)(e - s)); 50} | 46 sputrune(wc, s, MB_CUR_MAX, &e); 47 if (e == NULL) { 48 errno = EILSEQ; 49 return ((size_t)-1); 50 } 51 return ((size_t)(e - s)); 52} |