diff -r 9f25df78925e -r 1b12cf799fee src/c2html.h --- a/src/c2html.h Thu Nov 10 18:44:48 2016 +0100 +++ b/src/c2html.h Mon Apr 24 20:54:38 2023 +0200 @@ -31,90 +31,23 @@ #define C2HTML_H #include +#include #include "highlighter.h" #ifdef __cplusplus extern "C" { #endif -#define VERSION_MAJOR 2 +#define VERSION_MAJOR 3 #define VERSION_MINOR 0 #define VERSION_DEVELOP 0 /* set this to zero for release version */ /** - * Reads a source file from the input buffer and writes at most - * maxlen bytes of the formatted output to the output buffer. - * - * The output buffer must either be large enough to hold maxlen - * bytes or the write function must trigger an automatic extension of the - * buffer. - * - * The input is copied via an intermediate buffer to an internal buffer. - * - * @param inputbuffer the input buffer - * @param rfnc a read function operating for the input buffer - * @param ibuf intermediate processing buffer - * @param ibuflen length of intermediate processing buffer - * @param outputbuffer the output buffer - * @param wfnc a write function for the output buffer - * @param maxlen the maximum amount bytes which will be written to the - * output buffer - * @param hltr the highlighter function - * @param showln zero, if line numbers shall be omitted, nonzero otherwise - * - * @return total amount of bytes written to the output buffer - * - * @see c2html_plain_highlighter() - * @see c2html_c_highlighter() - * @see c2html_java_highlighter() - */ -size_t c2html_formatn(void* inputbuffer, read_func rfnc, - char* ibuf, size_t ibuflen, void* outputbuffer, write_func wfnc, - size_t maxlen, c2html_highlighter_func hltr, int showln); - -/** - * Reads a source file from the input buffer and writes the formatted output - * to an output buffer. - * - * The output buffer must either be large enough to hold the formatted data - * or the write function must trigger an automatic extension of the buffer. + * Writes the formatted source data to the output buffer. * - * The input is copied via an intermediate buffer to an internal buffer. - * - * @param inputbuffer the input buffer - * @param rfnc a read function operating for the input buffer - * @param ibuf intermediate processing buffer - * @param ibuflen length of intermediate processing buffer - * @param outputbuffer the output buffer - * @param wfnc a write function for the output buffer - * @param hltr the highlighter function - * @param showln zero, if line numbers shall be omitted, nonzero otherwise - * - * @return total amount of bytes written to the output buffer - * - * @see c2html_plain_highlighter() - * @see c2html_c_highlighter() - * @see c2html_java_highlighter() - */ -size_t c2html_format(void* inputbuffer, read_func rfnc, - char* ibuf, size_t ibuflen, void* outputbuffer, write_func wfnc, - c2html_highlighter_func hltr, int showln); - -/** - * Reads a source file from the specified input file stream and writes the - * formatted output to an output buffer. - * - * The output buffer must either be large enough to hold the formatted data - * or the write function must trigger an automatic extension of the buffer. - * - * The input is copied via an intermediate buffer to an internal buffer. - * For files, the recommended intermediate buffer length is the file system - * block size. - * - * @param inputfile the input file stream - * @param ibuf intermediate processing buffer - * @param ibuflen length of intermediate processing buffer - * @param outputbuffer the output buffer + * @param inputbuffer the source file data as string + * @param inputbuflen the length of the source file + * @param outbuf the output buffer * @param wfnc a write function for the output buffer * @param hltr the highlighter function * @param showln zero, if line numbers shall be omitted, nonzero otherwise @@ -125,92 +58,32 @@ * @see c2html_c_highlighter() * @see c2html_java_highlighter() */ -size_t c2html_fformat(FILE* inputfile, char *ibuf, size_t ibuflen, - void* outputbuffer, write_func wfnc, - c2html_highlighter_func hltr, int showln); +size_t c2html_bformat(char const* inputbuffer, size_t inputbuflen, + void* outbuf, cx_write_func wfnc, + c2html_highlighter_func hltr, int showln); /** - * Reads a source file from the specified input file stream and directly writes - * the formatted output to the output file stream. - * - * For files, the recommended intermediate buffer length is the file system - * block size. - * - * @param inputfile the input file stream - * @param ibuf intermediate processing buffer - * @param ibuflen length of intermediate processing buffer (recommended: 4 KB) - * @param outputfile the output file stream + * Writes the formatted source data to the output buffer. + * + * This function takes a list of \c char* that point to the beginning of each + * line. These pointers may point directly into the source text and the strings + * do not need to be zero-terminated, but the line-breaks must be included. + * + * @param lines a list of pointers to the beginning of each line + * @param outbuf the output buffer + * @param wfnc a write function for the output buffer * @param hltr the highlighter function * @param showln zero, if line numbers shall be omitted, nonzero otherwise - * + * + * @return total amount of bytes written to the output buffer + * * @see c2html_plain_highlighter() * @see c2html_c_highlighter() * @see c2html_java_highlighter() */ -void c2html_fformatf(FILE *inputfile, char *ibuf, size_t ibuflen, - FILE* outputfile, c2html_highlighter_func hltr, int showln); - - -/** - * Writes at most maxlen bytes of formatted source data to the - * output buffer. - * - * @param inputbuffer the source file data as string - * @param inputbuflen the length of the source file - * @param outputbuffer the output buffer - * @param wfnc a write function for the output buffer - * @param maxlen the maximum amount bytes which will be written to the - * output buffer - * @param hltr the highlighter function - * @param showln zero, if line numbers shall be omitted, nonzero otherwise - * - * @return total amount of bytes written to the output buffer - * - * @see c2html_plain_highlighter() - * @see c2html_c_highlighter() - * @see c2html_java_highlighter() - */ -size_t c2html_bformatn(const char* inputbuffer, size_t inputbuflen, - void* outputbuffer, write_func wfnc, - size_t maxlen, c2html_highlighter_func hltr, int showln); - - -/** - * Writes the formatted source data to the output buffer. - * - * @param inputbuffer the source file data as string - * @param inputbuflen the length of the source file - * @param outputbuffer the output buffer - * @param wfnc a write function for the output buffer - * @param hltr the highlighter function - * @param showln zero, if line numbers shall be omitted, nonzero otherwise - * - * @return total amount of bytes written to the output buffer - * - * @see c2html_plain_highlighter() - * @see c2html_c_highlighter() - * @see c2html_java_highlighter() - */ -size_t c2html_bformat(const char* inputbuffer, size_t inputbuflen, - void* outputbuffer, write_func wfnc, - c2html_highlighter_func hltr, int showln); - - -/** - * Writes the formatted source data directly to the specified file stream. - * - * @param inputbuffer the source file data as string - * @param inputbuflen the length of the source file - * @param outputfile the output file stream - * @param hltr the highlighter function - * @param showln zero, if line numbers shall be omitted, nonzero otherwise - * - * @see c2html_plain_highlighter() - * @see c2html_c_highlighter() - * @see c2html_java_highlighter() - */ -void c2html_bformatf(const char* inputbuffer, size_t inputbuflen, - FILE* outputfile, c2html_highlighter_func hltr, int showln); +size_t c2html_format(CxList const* lines, + void* outbuf, cx_write_func wfnc, + c2html_highlighter_func hltr, int showln); #ifdef __cplusplus }