/* * freadln.h * * Author: Intel A80486DX2-66 * License: Creative Commons Zero 1.0 Universal */ #ifndef _FREADLN_H #define _FREADLN_H #include #include #include #define EOT 4 /* end of transmission */ typedef size_t freadln_length_type; enum freadln_status { freadln_OK, freadln_EOF, freadln_ERROR }; #define freadln_epilogue do { \ (*output)[length] = '\0'; \ if (length_out != NULL) \ *length_out = length; \ } while (0) int freadln(FILE* f, char** output, size_t* length_out); #define finreadln(output, length_out) freadln(stdin, output, length_out) #endif /* _FREADLN_H */