aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c
diff options
context:
space:
mode:
authorsomov <somov@yandex-team.ru>2022-02-10 16:45:49 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:49 +0300
commit7489e4682331202b9c7d863c0898eb83d7b12c2b (patch)
tree9142afc54d335ea52910662635b898e79e192e49 /contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c
parenta5950576e397b1909261050b8c7da16db58f10b1 (diff)
downloadydb-7489e4682331202b9c7d863c0898eb83d7b12c2b.tar.gz
Restoring authorship annotation for <somov@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c')
-rw-r--r--contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c60
1 files changed, 30 insertions, 30 deletions
diff --git a/contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c b/contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c
index 160b8686c9..765ff9037c 100644
--- a/contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c
+++ b/contrib/libs/libc_compat/ubuntu_14/mbrtoc16.c
@@ -1,30 +1,30 @@
-#include <uchar.h>
-#include <wchar.h>
-
-size_t mbrtoc16(char16_t *restrict pc16, const char *restrict s, size_t n, mbstate_t *restrict ps)
-{
- static unsigned internal_state;
- if (!ps) ps = (void *)&internal_state;
- unsigned *pending = (unsigned *)ps;
-
- if (!s) return mbrtoc16(0, "", 1, ps);
-
- /* mbrtowc states for partial UTF-8 characters have the high bit set;
- * we use nonzero states without high bit for pending surrogates. */
- if ((int)*pending > 0) {
- if (pc16) *pc16 = *pending;
- *pending = 0;
- return -3;
- }
-
- wchar_t wc;
- size_t ret = mbrtowc(&wc, s, n, ps);
- if (ret <= 4) {
- if (wc >= 0x10000) {
- *pending = (wc & 0x3ff) + 0xdc00;
- wc = 0xd7c0 + (wc >> 10);
- }
- if (pc16) *pc16 = wc;
- }
- return ret;
-}
+#include <uchar.h>
+#include <wchar.h>
+
+size_t mbrtoc16(char16_t *restrict pc16, const char *restrict s, size_t n, mbstate_t *restrict ps)
+{
+ static unsigned internal_state;
+ if (!ps) ps = (void *)&internal_state;
+ unsigned *pending = (unsigned *)ps;
+
+ if (!s) return mbrtoc16(0, "", 1, ps);
+
+ /* mbrtowc states for partial UTF-8 characters have the high bit set;
+ * we use nonzero states without high bit for pending surrogates. */
+ if ((int)*pending > 0) {
+ if (pc16) *pc16 = *pending;
+ *pending = 0;
+ return -3;
+ }
+
+ wchar_t wc;
+ size_t ret = mbrtowc(&wc, s, n, ps);
+ if (ret <= 4) {
+ if (wc >= 0x10000) {
+ *pending = (wc & 0x3ff) + 0xdc00;
+ wc = 0xd7c0 + (wc >> 10);
+ }
+ if (pc16) *pc16 = wc;
+ }
+ return ret;
+}