/* This file is hereby released to the public domain. ~aaaaaa123456789, 2015-01-21 last updated 2015-01-23 */ #ifndef COMMON_H_ #define COMMON_H_ typedef enum { LCERR_OK = 0, LCERR_LINE_TOO_LONG = 1, LCERR_LINE_TOO_SHORT = 2, LCERR_SPURIOUS_CHARS = 4, LCERR_INVALID_REPLACEMENT = -1 } line_check_error_t; char * get_line(unsigned char * reachedEOF); char ** get_lines(unsigned lines, const char * stopper, int single_pointer, unsigned char * reachedEOF); char * read_all(FILE * stream); unsigned read_all_binary(FILE * stream, char ** result); void free_lines_array(char ** lines, unsigned count); int check_line(char ** line, unsigned expected_size, const char * valid_chars, char replacement, FILE * error_stream, unsigned line_number); unsigned get_number(void); int array_each(void * array, unsigned item_size, unsigned count, void * stopper, int (* callback) (void *, void *), void * data); int array_all(void * array, unsigned item_size, unsigned count, void * stopper, int (* callback) (void *, void *), void * data); unsigned count_lines(char ** lines); char ** tokenize_string(const char * string, const char * delimiters, int single_pointer); void * xmalloc(size_t size); void * xrealloc(void * buffer, size_t size); #endif