Deleted Added
full compact
fgetws.c (136092) fgetws.c (178287)
1/*-
2 * Copyright (c) 2002-2004 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

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2002-2004 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

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/lib/libc/stdio/fgetws.c 136092 2004-10-03 15:48:32Z stefanf $");
28__FBSDID("$FreeBSD: head/lib/libc/stdio/fgetws.c 178287 2008-04-17 22:17:54Z jhb $");
29
30#include "namespace.h"
31#include <errno.h>
32#include <stdio.h>
33#include <string.h>
34#include <wchar.h>
35#include "un-namespace.h"
36#include "libc_private.h"

--- 20 unchanged lines hidden (view full) ---

57 /* EOF */
58 goto error;
59 wsp = ws;
60 do {
61 src = fp->_p;
62 nl = memchr(fp->_p, '\n', fp->_r);
63 nconv = __mbsnrtowcs(wsp, &src,
64 nl != NULL ? (nl - fp->_p + 1) : fp->_r,
29
30#include "namespace.h"
31#include <errno.h>
32#include <stdio.h>
33#include <string.h>
34#include <wchar.h>
35#include "un-namespace.h"
36#include "libc_private.h"

--- 20 unchanged lines hidden (view full) ---

57 /* EOF */
58 goto error;
59 wsp = ws;
60 do {
61 src = fp->_p;
62 nl = memchr(fp->_p, '\n', fp->_r);
63 nconv = __mbsnrtowcs(wsp, &src,
64 nl != NULL ? (nl - fp->_p + 1) : fp->_r,
65 n - 1, &fp->_extra->mbstate);
65 n - 1, &fp->_mbstate);
66 if (nconv == (size_t)-1)
67 /* Conversion error */
68 goto error;
69 if (src == NULL) {
70 /*
71 * We hit a null byte. Increment the character count,
72 * since mbsnrtowcs()'s return value doesn't include
73 * the terminating null, then resume conversion

--- 7 unchanged lines hidden (view full) ---

81 fp->_p = (unsigned char *)src;
82 n -= nconv;
83 wsp += nconv;
84 } while (wsp[-1] != L'\n' && n > 1 && (fp->_r > 0 ||
85 __srefill(fp) == 0));
86 if (wsp == ws)
87 /* EOF */
88 goto error;
66 if (nconv == (size_t)-1)
67 /* Conversion error */
68 goto error;
69 if (src == NULL) {
70 /*
71 * We hit a null byte. Increment the character count,
72 * since mbsnrtowcs()'s return value doesn't include
73 * the terminating null, then resume conversion

--- 7 unchanged lines hidden (view full) ---

81 fp->_p = (unsigned char *)src;
82 n -= nconv;
83 wsp += nconv;
84 } while (wsp[-1] != L'\n' && n > 1 && (fp->_r > 0 ||
85 __srefill(fp) == 0));
86 if (wsp == ws)
87 /* EOF */
88 goto error;
89 if (!__mbsinit(&fp->_extra->mbstate))
89 if (!__mbsinit(&fp->_mbstate))
90 /* Incomplete character */
91 goto error;
92 *wsp++ = L'\0';
93 FUNLOCKFILE(fp);
94
95 return (ws);
96
97error:
98 FUNLOCKFILE(fp);
99 return (NULL);
100}
90 /* Incomplete character */
91 goto error;
92 *wsp++ = L'\0';
93 FUNLOCKFILE(fp);
94
95 return (ws);
96
97error:
98 FUNLOCKFILE(fp);
99 return (NULL);
100}