summaryrefslogtreecommitdiff
path: root/src/runtime/c/gu/write.c
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-09-04 10:06:07 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-09-04 10:06:07 +0000
commit805f95eac61ef17d7ec3f87dda1dfbc932951dee (patch)
tree62ab374454b87aa4d7d04bbee18ead8a4cbace37 /src/runtime/c/gu/write.c
parentae87c3d272104a933d148a544c9eab15865c1758 (diff)
remove the dependency on the HAVE_STATEMENT_EXPRESSIONS flag. This reduces the dependency on the ./configure script
Diffstat (limited to 'src/runtime/c/gu/write.c')
-rw-r--r--src/runtime/c/gu/write.c121
1 files changed, 0 insertions, 121 deletions
diff --git a/src/runtime/c/gu/write.c b/src/runtime/c/gu/write.c
index 69573fb0d..bd3e136fb 100644
--- a/src/runtime/c/gu/write.c
+++ b/src/runtime/c/gu/write.c
@@ -36,127 +36,6 @@ gu_new_utf8_writer(GuOut* utf8_out, GuPool* pool)
return wtr;
}
-
-#if 0
-#ifdef GU_UCS_WCHAR
-#include <stdlib.h>
-#include <wchar.h>
-static const mbstate_t gu_init_mbstate; // implicitly initialized to zero
-#endif
-
-typedef struct GuLocaleWriter GuLocaleWriter;
-
-struct GuLocaleWriter {
- GuOutWriter owtr;
-#ifdef GU_UCS_WCHAR
- mbstate_t ps;
- size_t mb_cur_max;
-#endif
-};
-
-size_t
-gu_locale_writer_write(GuWriter* wtr, const uint8_t* utf8_src, size_t sz,
- GuExn* err)
-{
- GuLocaleWriter* lwtr = (GuLocaleWriter*) wtr;
- size_t done = 0;
- static const size_t bufsize = 256;
-#ifdef GU_UCS_WCHAR
- size_t margin = lwtr->mb_cur_max;
-#else
- size_t margin = 1;
-#endif
- GuOut* out = lwtr->owtr.out;
- if (gu_out_is_buffered(out)) {
- while (done < sz) {
- size_t dst_sz;
- uint8_t* dst = gu_out_begin_span(out, &dst_sz);
- if (!dst) {
- break;
- }
- if (dst_sz <= margin) {
- gu_out_end_span(out, 0);
- break;
- }
- size_t end = dst_sz - margin;
- const uint8_t*
- size_t n = done;
- while (n < sz && dst_i <= end) {
-#ifdef GU_UCS_WCHAR
- GuUCS ucs = gu_
- wchar_t wc = src[n];
- size_t nb = wcrtomb((char*) p, wc, &lwtr->ps);
-#else
- *p = (uint8_t) gu_ucs_char(buf[n], err);
- size_t nb = 1;
- if (!gu_ok(err)) {
- gu_exn_clear(err);
- nb = (size_t) -1;
- }
-#endif
- if (nb == (size_t) -1) {
- *p++ = (uint8_t) '?';
- } else {
- p += nb;
- }
-
- }
- for (
-
- }
-
-
-
- }
-
- uint8_t cbuf[256];
- while (done < size && gu_ok(err)) {
- uint8_t* p = cbuf;
- uint8_t* edge = &cbuf[bufsize - margin];
- size_t n;
- for (n = done; p <= edge && n < size; n++) {
-#ifdef GU_UCS_WCHAR
- wchar_t wc = buf[n];
- size_t nb = wcrtomb((char*) p, wc, &lwtr->ps);
-#else
- *p = (uint8_t) gu_ucs_char(buf[n], err);
- size_t nb = 1;
- if (!gu_ok(err)) {
- gu_exn_clear(err);
- nb = (size_t) -1;
- }
-#endif
- if (nb == (size_t) -1) {
- *p++ = (uint8_t) '?';
- } else {
- p += nb;
- }
- }
- gu_out_bytes(lwtr->owtr.out, cbuf, p - cbuf, err);
- if (gu_ok(err)) {
- done = n;
- }
- }
- return done;
-}
-
-GuWriter*
-gu_locale_writer(GuOut* out, GuPool* pool)
-{
- GuLocaleWriter* lwtr = gu_new_s(
- pool, GuLocaleWriter,
- .wtr.out.output = gu_locale_writer_output,
- .wtr.out.flush = gu_locale_writer_flush,
- .out = out);
-#ifdef GU_UCS_WCHAR
- lwtr->ps = gu_init_mbstate;
- lwtr->mb_cur_max = MB_CUR_MAX;
-#endif
- return (GuWriter*) lwtr;
-}
-
-#endif
-
extern inline void
gu_ucs_write(GuUCS ucs, GuWriter* wtr, GuExn* err);