Switch to OpenBSD stdio wide get/put functions.
Change-Id: I71f8769cdea874e55d397ca7682d9d4e659d3dcb
This commit is contained in:
parent
c19c8e6f71
commit
c932225e10
10 changed files with 477 additions and 32 deletions
|
@ -364,11 +364,14 @@ libc_upstream_openbsd_src_files := \
|
|||
upstream-openbsd/lib/libc/stdio/fgetpos.c \
|
||||
upstream-openbsd/lib/libc/stdio/fgets.c \
|
||||
upstream-openbsd/lib/libc/stdio/fgetwc.c \
|
||||
upstream-openbsd/lib/libc/stdio/fgetws.c \
|
||||
upstream-openbsd/lib/libc/stdio/fileno.c \
|
||||
upstream-openbsd/lib/libc/stdio/fprintf.c \
|
||||
upstream-openbsd/lib/libc/stdio/fpurge.c \
|
||||
upstream-openbsd/lib/libc/stdio/fputc.c \
|
||||
upstream-openbsd/lib/libc/stdio/fputs.c \
|
||||
upstream-openbsd/lib/libc/stdio/fputwc.c \
|
||||
upstream-openbsd/lib/libc/stdio/fputws.c \
|
||||
upstream-openbsd/lib/libc/stdio/fread.c \
|
||||
upstream-openbsd/lib/libc/stdio/freopen.c \
|
||||
upstream-openbsd/lib/libc/stdio/fscanf.c \
|
||||
|
@ -378,18 +381,23 @@ libc_upstream_openbsd_src_files := \
|
|||
upstream-openbsd/lib/libc/stdio/funopen.c \
|
||||
upstream-openbsd/lib/libc/stdio/fvwrite.c \
|
||||
upstream-openbsd/lib/libc/stdio/fwalk.c \
|
||||
upstream-openbsd/lib/libc/stdio/fwide.c \
|
||||
upstream-openbsd/lib/libc/stdio/fwscanf.c \
|
||||
upstream-openbsd/lib/libc/stdio/getc.c \
|
||||
upstream-openbsd/lib/libc/stdio/getchar.c \
|
||||
upstream-openbsd/lib/libc/stdio/getdelim.c \
|
||||
upstream-openbsd/lib/libc/stdio/getline.c \
|
||||
upstream-openbsd/lib/libc/stdio/gets.c \
|
||||
upstream-openbsd/lib/libc/stdio/getwc.c \
|
||||
upstream-openbsd/lib/libc/stdio/getwchar.c \
|
||||
upstream-openbsd/lib/libc/stdio/perror.c \
|
||||
upstream-openbsd/lib/libc/stdio/printf.c \
|
||||
upstream-openbsd/lib/libc/stdio/putc.c \
|
||||
upstream-openbsd/lib/libc/stdio/putchar.c \
|
||||
upstream-openbsd/lib/libc/stdio/puts.c \
|
||||
upstream-openbsd/lib/libc/stdio/putw.c \
|
||||
upstream-openbsd/lib/libc/stdio/putwc.c \
|
||||
upstream-openbsd/lib/libc/stdio/putwchar.c \
|
||||
upstream-openbsd/lib/libc/stdio/refill.c \
|
||||
upstream-openbsd/lib/libc/stdio/remove.c \
|
||||
upstream-openbsd/lib/libc/stdio/rewind.c \
|
||||
|
|
|
@ -105,30 +105,6 @@ int iswctype(wint_t wc, wctype_t char_class) {
|
|||
}
|
||||
}
|
||||
|
||||
wchar_t* fgetws(wchar_t* ws, int n, FILE* stream) {
|
||||
return reinterpret_cast<wchar_t*>(fgets(reinterpret_cast<char*>(ws), n, stream));
|
||||
}
|
||||
|
||||
wint_t fputwc(wchar_t wc, FILE* stream) {
|
||||
return static_cast<wint_t>(fputc(static_cast<char>(wc), stream));
|
||||
}
|
||||
|
||||
int fputws(const wchar_t* str, FILE* stream) {
|
||||
return fputs(reinterpret_cast<const char*>(str), stream );
|
||||
}
|
||||
|
||||
int fwide(FILE* /*stream*/, int mode) {
|
||||
return mode;
|
||||
}
|
||||
|
||||
wint_t getwc(FILE* stream) {
|
||||
return getc(stream);
|
||||
}
|
||||
|
||||
wint_t getwchar() {
|
||||
return getchar();
|
||||
}
|
||||
|
||||
int mbsinit(const mbstate_t* /*ps*/) {
|
||||
return 1;
|
||||
}
|
||||
|
@ -186,14 +162,6 @@ size_t mbsrtowcs(wchar_t* dst, const char** src, size_t dst_size, mbstate_t* ps)
|
|||
return mbsnrtowcs(dst, src, SIZE_MAX, dst_size, ps);
|
||||
}
|
||||
|
||||
wint_t putwc(wchar_t wc, FILE* stream) {
|
||||
return fputc(static_cast<char>(wc), stream);
|
||||
}
|
||||
|
||||
wint_t putwchar(wchar_t wc) {
|
||||
return putchar(static_cast<char>(wc));
|
||||
}
|
||||
|
||||
wint_t towlower(wint_t wc) {
|
||||
return tolower(wc);
|
||||
}
|
||||
|
|
79
libc/upstream-openbsd/lib/libc/stdio/fgetws.c
Normal file
79
libc/upstream-openbsd/lib/libc/stdio/fgetws.c
Normal file
|
@ -0,0 +1,79 @@
|
|||
/* $OpenBSD: fgetws.c,v 1.6 2009/11/09 00:18:27 kurt Exp $ */
|
||||
/* $NetBSD: fgetws.c,v 1.1 2003/03/07 07:11:37 tshiozak Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002 Tim J. Robbins.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* Original version ID:
|
||||
* FreeBSD: src/lib/libc/stdio/fgetws.c,v 1.4 2002/09/20 13:25:40 tjr Exp
|
||||
*
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
#include "local.h"
|
||||
|
||||
wchar_t *
|
||||
fgetws(wchar_t * __restrict ws, int n, FILE * __restrict fp)
|
||||
{
|
||||
wchar_t *wsp;
|
||||
wint_t wc;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
_SET_ORIENTATION(fp, 1);
|
||||
|
||||
if (n <= 0) {
|
||||
errno = EINVAL;
|
||||
goto error;
|
||||
}
|
||||
|
||||
wsp = ws;
|
||||
while (n-- > 1) {
|
||||
if ((wc = __fgetwc_unlock(fp)) == WEOF && errno == EILSEQ) {
|
||||
goto error;
|
||||
}
|
||||
if (wc == WEOF) {
|
||||
if (wsp == ws) {
|
||||
/* EOF/error, no characters read yet. */
|
||||
goto error;
|
||||
}
|
||||
break;
|
||||
}
|
||||
*wsp++ = (wchar_t)wc;
|
||||
if (wc == L'\n') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*wsp++ = L'\0';
|
||||
FUNLOCKFILE(fp);
|
||||
|
||||
return (ws);
|
||||
|
||||
error:
|
||||
FUNLOCKFILE(fp);
|
||||
return (NULL);
|
||||
}
|
88
libc/upstream-openbsd/lib/libc/stdio/fputwc.c
Normal file
88
libc/upstream-openbsd/lib/libc/stdio/fputwc.c
Normal file
|
@ -0,0 +1,88 @@
|
|||
/* $OpenBSD: fputwc.c,v 1.4 2009/11/09 00:18:27 kurt Exp $ */
|
||||
/* $NetBSD: fputwc.c,v 1.3 2003/03/07 07:11:37 tshiozak Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c)2001 Citrus Project,
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Citrus$
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
#include "local.h"
|
||||
#include "fvwrite.h"
|
||||
|
||||
wint_t
|
||||
__fputwc_unlock(wchar_t wc, FILE *fp)
|
||||
{
|
||||
struct wchar_io_data *wcio;
|
||||
mbstate_t *st;
|
||||
size_t size;
|
||||
char buf[MB_LEN_MAX];
|
||||
struct __suio uio;
|
||||
struct __siov iov;
|
||||
|
||||
/* LINTED we don't play with buf */
|
||||
iov.iov_base = (void *)buf;
|
||||
uio.uio_iov = &iov;
|
||||
uio.uio_iovcnt = 1;
|
||||
|
||||
_SET_ORIENTATION(fp, 1);
|
||||
wcio = WCIO_GET(fp);
|
||||
if (wcio == 0) {
|
||||
errno = ENOMEM;
|
||||
return WEOF;
|
||||
}
|
||||
|
||||
wcio->wcio_ungetwc_inbuf = 0;
|
||||
st = &wcio->wcio_mbstate_out;
|
||||
|
||||
size = wcrtomb(buf, wc, st);
|
||||
if (size == (size_t)-1) {
|
||||
errno = EILSEQ;
|
||||
return WEOF;
|
||||
}
|
||||
|
||||
uio.uio_resid = iov.iov_len = size;
|
||||
if (__sfvwrite(fp, &uio)) {
|
||||
return WEOF;
|
||||
}
|
||||
|
||||
return (wint_t)wc;
|
||||
}
|
||||
|
||||
wint_t
|
||||
fputwc(wchar_t wc, FILE *fp)
|
||||
{
|
||||
wint_t r;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
r = __fputwc_unlock(wc, fp);
|
||||
FUNLOCKFILE(fp);
|
||||
|
||||
return (r);
|
||||
}
|
58
libc/upstream-openbsd/lib/libc/stdio/fputws.c
Normal file
58
libc/upstream-openbsd/lib/libc/stdio/fputws.c
Normal file
|
@ -0,0 +1,58 @@
|
|||
/* $OpenBSD: fputws.c,v 1.6 2013/04/17 17:40:35 tedu Exp $ */
|
||||
/* $NetBSD: fputws.c,v 1.1 2003/03/07 07:11:37 tshiozak Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002 Tim J. Robbins.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* Original version ID:
|
||||
* FreeBSD: src/lib/libc/stdio/fputws.c,v 1.4 2002/09/20 13:25:40 tjr Exp
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
#include "local.h"
|
||||
|
||||
wint_t __fputwc_unlock(wchar_t wc, FILE *fp);
|
||||
|
||||
int
|
||||
fputws(ws, fp)
|
||||
const wchar_t * __restrict ws;
|
||||
FILE * __restrict fp;
|
||||
{
|
||||
FLOCKFILE(fp);
|
||||
_SET_ORIENTATION(fp, 1);
|
||||
|
||||
while (*ws != '\0') {
|
||||
if (__fputwc_unlock(*ws++, fp) == WEOF) {
|
||||
FUNLOCKFILE(fp);
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
|
||||
FUNLOCKFILE(fp);
|
||||
|
||||
return (0);
|
||||
}
|
64
libc/upstream-openbsd/lib/libc/stdio/fwide.c
Normal file
64
libc/upstream-openbsd/lib/libc/stdio/fwide.c
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* $OpenBSD: fwide.c,v 1.4 2009/11/09 00:18:27 kurt Exp $ */
|
||||
/* $NetBSD: fwide.c,v 1.2 2003/01/18 11:29:54 thorpej Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c)2001 Citrus Project,
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Citrus$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
#include "local.h"
|
||||
|
||||
int
|
||||
fwide(FILE *fp, int mode)
|
||||
{
|
||||
struct wchar_io_data *wcio;
|
||||
|
||||
/*
|
||||
* this implementation use only -1, 0, 1
|
||||
* for mode value.
|
||||
* (we don't need to do this, but
|
||||
* this can make things simpler.)
|
||||
*/
|
||||
if (mode > 0)
|
||||
mode = 1;
|
||||
else if (mode < 0)
|
||||
mode = -1;
|
||||
|
||||
FLOCKFILE(fp);
|
||||
wcio = WCIO_GET(fp);
|
||||
if (!wcio)
|
||||
return 0; /* XXX */
|
||||
|
||||
if (wcio->wcio_mode == 0 && mode != 0)
|
||||
wcio->wcio_mode = mode;
|
||||
else
|
||||
mode = wcio->wcio_mode;
|
||||
FUNLOCKFILE(fp);
|
||||
|
||||
return mode;
|
||||
}
|
45
libc/upstream-openbsd/lib/libc/stdio/getwc.c
Normal file
45
libc/upstream-openbsd/lib/libc/stdio/getwc.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* $OpenBSD: getwc.c,v 1.1 2005/06/17 20:40:32 espie Exp $ */
|
||||
/* $NetBSD: getwc.c,v 1.2 2003/01/18 11:29:55 thorpej Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c)2001 Citrus Project,
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Citrus$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro getwc.
|
||||
*/
|
||||
#undef getwc
|
||||
|
||||
wint_t
|
||||
getwc(FILE *fp)
|
||||
{
|
||||
|
||||
return fgetwc(fp);
|
||||
}
|
45
libc/upstream-openbsd/lib/libc/stdio/getwchar.c
Normal file
45
libc/upstream-openbsd/lib/libc/stdio/getwchar.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* $OpenBSD: getwchar.c,v 1.1 2005/06/17 20:40:32 espie Exp $ */
|
||||
/* $NetBSD: getwchar.c,v 1.2 2003/01/18 11:29:55 thorpej Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c)2001 Citrus Project,
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Citrus$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro getwchar.
|
||||
*/
|
||||
#undef getwchar
|
||||
|
||||
wint_t
|
||||
getwchar()
|
||||
{
|
||||
|
||||
return fgetwc(stdin);
|
||||
}
|
45
libc/upstream-openbsd/lib/libc/stdio/putwc.c
Normal file
45
libc/upstream-openbsd/lib/libc/stdio/putwc.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* $OpenBSD: putwc.c,v 1.1 2005/06/17 20:40:32 espie Exp $ */
|
||||
/* $NetBSD: putwc.c,v 1.3 2003/01/18 11:29:56 thorpej Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c)2001 Citrus Project,
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Citrus$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro putwc.
|
||||
*/
|
||||
#undef putwc
|
||||
|
||||
wint_t
|
||||
putwc(wchar_t wc, FILE *fp)
|
||||
{
|
||||
|
||||
return fputwc(wc, fp);
|
||||
}
|
45
libc/upstream-openbsd/lib/libc/stdio/putwchar.c
Normal file
45
libc/upstream-openbsd/lib/libc/stdio/putwchar.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* $OpenBSD: putwchar.c,v 1.1 2005/06/17 20:40:32 espie Exp $ */
|
||||
/* $NetBSD: putwchar.c,v 1.3 2003/01/18 11:29:56 thorpej Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c)2001 Citrus Project,
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Citrus$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
|
||||
/*
|
||||
* A subroutine version of the macro putwchar.
|
||||
*/
|
||||
#undef putwchar
|
||||
|
||||
wint_t
|
||||
putwchar(wchar_t wc)
|
||||
{
|
||||
|
||||
return fputwc(wc, stdout);
|
||||
}
|
Loading…
Reference in a new issue