X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Flibc-extension.cc;h=7b9b5d7821c265389a6a07e6ac793c65c376321a;hb=b1e87575d7dbce73e74c7e6eb1b64dbfc82e65a4;hp=dea40b6a108a36c3cd3b3e8e1dad269ff822344d;hpb=d1ddb3de33c8811b914cccbafdf82549c4e76034;p=lilypond.git diff --git a/flower/libc-extension.cc b/flower/libc-extension.cc index dea40b6a10..7b9b5d7821 100644 --- a/flower/libc-extension.cc +++ b/flower/libc-extension.cc @@ -157,90 +157,3 @@ vsnprintf (char *str, size_t n, char const *format, va_list args) } #endif -#include - -extern "C" { - -#if ! HAVE_FOPENCOOKIE -#if HAVE_FUNOPEN - - FILE * - fopencookie (void *cookie, char const *mode, cookie_io_functions_t fun) - { - (void) mode; -#if 0 - return funopen (cookie, fun.read, fun.write, fun.seek, fun.close); -#else - return funopen (cookie, - (int (*) (void *, char *, int)) fun.read, - (int (*) (void *, char const *, int)) fun.write, - (fpos_t (*) (void *, fpos_t, int)) fun.seek, - (int (*) (void *)) fun.close); -#endif - } - -#else /* ! HAVE_FUNOPEN */ - -#include -#include "memory-stream.hh" - - static bool - is_memory_stream (void *foo) - { - Memory_out_stream *cookie = (Memory_out_stream *) foo; - return dynamic_cast (cookie); - } - - FILE * - fopencookie (void *cookie, char const *modes, cookie_io_functions_t io_funcs) - { - (void) cookie; - (void) modes; - (void) io_funcs; - if (is_memory_stream (cookie)) - return (FILE *) cookie; - assert (false); - return 0; - } - - int - handle_cookie_io_fclose (FILE *file) - { - if (is_memory_stream (file)) - return Memory_out_stream::cleaner (file); - return fclose (file); - } - - int - handle_cookie_io_fprintf (FILE *file, char const *format, ...) - { - va_list ap; - va_start (ap, format); - if (is_memory_stream (file)) - { - static char buf[65536]; - int i = vsnprintf (buf, sizeof (buf), format, ap); - if (i == -1 || (unsigned) i > sizeof (buf)) - assert (false); - return Memory_out_stream::writer (file, buf, i); - } - int i = vfprintf (file, format, ap); - va_end (ap); - return i; - } - - int - handle_cookie_io_putc (int c, FILE *file) - { - if (is_memory_stream (file)) - { - char buf[1]; - buf[0] = (char) c; - return Memory_out_stream::writer (file, buf, 1); - } - return putc (c, file); - } - -#endif /* ! HAVE_FUNOPEN */ -#endif /* ! HAVE_FOPENCOOKIE */ -} /* extern C */