From 805f95eac61ef17d7ec3f87dda1dfbc932951dee Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Wed, 4 Sep 2013 10:06:07 +0000 Subject: remove the dependency on the HAVE_STATEMENT_EXPRESSIONS flag. This reduces the dependency on the ./configure script --- src/runtime/c/gu/write.c | 121 ----------------------------------------------- 1 file changed, 121 deletions(-) (limited to 'src/runtime/c/gu/write.c') 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 -#include -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); -- cgit v1.2.3