diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2013-09-04 10:06:07 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2013-09-04 10:06:07 +0000 |
| commit | 805f95eac61ef17d7ec3f87dda1dfbc932951dee (patch) | |
| tree | 62ab374454b87aa4d7d04bbee18ead8a4cbace37 /src/runtime/c/gu/write.c | |
| parent | ae87c3d272104a933d148a544c9eab15865c1758 (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.c | 121 |
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); |
