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}