46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
#ifndef _STDIO_UTIL_H
|
|
#define _STDIO_UTIL_H
|
|
|
|
#include <ft/test.h>
|
|
#include <stdio.h>
|
|
|
|
/* Print a FILE to an ft_test. */
|
|
static inline void ft_log_FILE(ft_test *t, char const *prefix, FILE *fp)
|
|
{
|
|
ft_log(t, "%s%s", prefix, (*prefix ? " " : ""));
|
|
if(!fp) {
|
|
ft_log(t, "(null)\n");
|
|
return;
|
|
}
|
|
|
|
ft_log(t, "{fd %d @%d, mode %s%s%s%s%s%s, %s",
|
|
fp->fd, fp->fdpos,
|
|
fp->readable ? "r" : "",
|
|
fp->writable ? "w" : "",
|
|
fp->append ? "A" : "",
|
|
fp->text ? "" : "b",
|
|
fp->error ? " ERROR" : "",
|
|
fp->eof ? " EOF" : "",
|
|
fp->bufmode == _IONBF ? "_IONBF" :
|
|
fp->bufmode == _IOLBF ? "_IOLBF" :
|
|
fp->bufmode == _IOFBF ? "_IOFBF" : "_???");
|
|
|
|
if(fp->buf) {
|
|
ft_log(t, " %s%d", fp->buf ? "" : "NULL/", fp->bufsize);
|
|
|
|
if(fp->bufpos == 0)
|
|
ft_log(t, " EMPTY");
|
|
else if(fp->bufdir == __FILE_BUF_READ)
|
|
ft_log(t, " READ %d/%d", fp->bufpos, fp->bufread);
|
|
else if(fp->bufdir == __FILE_BUF_WRITE)
|
|
ft_log(t, " WRITE %d", fp->bufpos);
|
|
|
|
if(fp->bufungetc > 0)
|
|
ft_log(t, " UNGETC %d", fp->bufungetc);
|
|
}
|
|
|
|
ft_log(t, "}\n");
|
|
}
|
|
|
|
#endif /* _STDIO_UTIL_H */
|