/* Hack to rewind pipes (a small amount). * Works by resetting the FILE buffer pointer */ static void UNUSED rewind_pipe(FILE * fp) { /* _FSTDIO is for Torek stdio (i.e. most BSD-derived libc's) * In theory, we no longer need to check _NEWLIB_VERSION or __APPLE__ */ #if defined _FSTDIO || defined _NEWLIB_VERSION || defined __APPLE__ fp->_p -= AUTO_DETECT_SIZE; fp->_r += AUTO_DETECT_SIZE; #elif defined __GLIBC__ fp->_IO_read_ptr = fp->_IO_read_base; #elif defined _MSC_VER || defined __MINGW_H || defined _ISO_STDIO_ISO_H fp->_ptr = fp->_base; #else /* To fix this #error, either simply remove the #error line and live without * file-type detection with pipes, or add support for your compiler in the * lines above. Test with cat monkey.au | ./sox --info - */ #error FIX NEEDED HERE #define NO_REWIND_PIPE (void)fp; #endif }