aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2018-02-28 12:55:46 -0800
committerElliott Hughes <enh@google.com>2018-02-28 12:55:46 -0800
commit5a98234c046ad7f7474d0d7cec61f16e00a0050d (patch)
tree32ae099417b12783a3e9f324550bda58f40e2310
parentbf6c0c8eaf755f5d1686b5022ee4c6d9eaf68686 (diff)
downloadbionic-5a98234c046ad7f7474d0d7cec61f16e00a0050d.tar.gz
Merge stdio/local.h and stdio/wcio.h.
Bug: N/A Test: ran tests Change-Id: I683a1c45db0b880c73f8d190a46deeeab4cfef6e
-rw-r--r--libc/stdio/local.h34
-rw-r--r--libc/stdio/wcio.h81
2 files changed, 32 insertions, 83 deletions
diff --git a/libc/stdio/local.h b/libc/stdio/local.h
index 11b136d71..d04abc14c 100644
--- a/libc/stdio/local.h
+++ b/libc/stdio/local.h
@@ -42,8 +42,6 @@
#include "private/bionic_fortify.h"
#endif
-#include "wcio.h"
-
/*
* Information local to this implementation of stdio,
* in particular, macros and private variables.
@@ -110,6 +108,19 @@ struct __sFILE {
// below, and accessed via `_EXT`.
};
+/* minimal requirement of SUSv2 */
+#define WCIO_UNGETWC_BUFSIZE 1
+
+struct wchar_io_data {
+ mbstate_t wcio_mbstate_in;
+ mbstate_t wcio_mbstate_out;
+
+ wchar_t wcio_ungetwc_buf[WCIO_UNGETWC_BUFSIZE];
+ size_t wcio_ungetwc_inbuf;
+
+ int wcio_mode; /* orientation */
+};
+
struct __sfileext {
// ungetc buffer.
struct __sbuf _ub;
@@ -276,4 +287,23 @@ char* __hdtoa(double, const char*, int, int*, int*, char**);
char* __hldtoa(long double, const char*, int, int*, int*, char**);
char* __ldtoa(long double*, int, int, int*, int*, char**);
+#define WCIO_GET(fp) \
+ (_EXT(fp) ? &(_EXT(fp)->_wcio) : (struct wchar_io_data *)0)
+
+#define _SET_ORIENTATION(fp, mode) \
+do {\
+ struct wchar_io_data *_wcio = WCIO_GET(fp); \
+ if (_wcio && _wcio->wcio_mode == 0) \
+ _wcio->wcio_mode = (mode);\
+} while (0)
+
+#define WCIO_FREE(fp) \
+do {\
+ struct wchar_io_data *_wcio = WCIO_GET(fp); \
+ if (_wcio) { \
+ _wcio->wcio_mode = 0;\
+ _wcio->wcio_ungetwc_inbuf = 0;\
+ } \
+} while (0)
+
__END_DECLS
diff --git a/libc/stdio/wcio.h b/libc/stdio/wcio.h
deleted file mode 100644
index 047eb775f..000000000
--- a/libc/stdio/wcio.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* $OpenBSD: wcio.h,v 1.2 2013/04/17 17:40:35 tedu Exp $ */
-/* $NetBSD: wcio.h,v 1.3 2003/01/18 11:30:00 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$
- */
-
-#pragma once
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-/* minimal requirement of SUSv2 */
-#define WCIO_UNGETWC_BUFSIZE 1
-
-struct wchar_io_data {
- mbstate_t wcio_mbstate_in;
- mbstate_t wcio_mbstate_out;
-
- wchar_t wcio_ungetwc_buf[WCIO_UNGETWC_BUFSIZE];
- size_t wcio_ungetwc_inbuf;
-
- int wcio_mode; /* orientation */
-};
-
-#define WCIO_GET(fp) \
- (_EXT(fp) ? &(_EXT(fp)->_wcio) : (struct wchar_io_data *)0)
-
-#define _SET_ORIENTATION(fp, mode) \
-do {\
- struct wchar_io_data *_wcio = WCIO_GET(fp); \
- if (_wcio && _wcio->wcio_mode == 0) \
- _wcio->wcio_mode = (mode);\
-} while (0)
-
-/*
- * WCIO_FREE should be called by fclose
- */
-#define WCIO_FREE(fp) \
-do {\
- struct wchar_io_data *_wcio = WCIO_GET(fp); \
- if (_wcio) { \
- _wcio->wcio_mode = 0;\
- _wcio->wcio_ungetwc_inbuf = 0;\
- } \
-} while (0)
-
-#define WCIO_FREEUB(fp) \
-do {\
- struct wchar_io_data *_wcio = WCIO_GET(fp); \
- if (_wcio) { \
- _wcio->wcio_ungetwc_inbuf = 0;\
- } \
-} while (0)
-
-__END_DECLS