can add new exporters without changing the API.tags/v0.99.beta14
| @@ -317,35 +317,28 @@ void cucul_free(cucul_t *qq) | |||
| free(qq); | |||
| } | |||
| struct cucul_export * cucul_create_export(cucul_t *qq, enum cucul_format format) | |||
| struct cucul_export * cucul_create_export(cucul_t *qq, char const *format) | |||
| { | |||
| struct cucul_export *ex; | |||
| ex = malloc(sizeof(struct cucul_export)); | |||
| switch(format) | |||
| if(!strcasecmp("ansi", format)) | |||
| _cucul_get_ansi(qq, ex); | |||
| else if(!strcasecmp("html", format)) | |||
| _cucul_get_html(qq, ex); | |||
| else if(!strcasecmp("html3", format)) | |||
| _cucul_get_html3(qq, ex); | |||
| else if(!strcasecmp("irc", format)) | |||
| _cucul_get_irc(qq, ex); | |||
| else if(!strcasecmp("ps", format)) | |||
| _cucul_get_ps(qq, ex); | |||
| else if(!strcasecmp("svg", format)) | |||
| _cucul_get_svg(qq, ex); | |||
| else | |||
| { | |||
| case CUCUL_FORMAT_ANSI: | |||
| _cucul_get_ansi(qq, ex); | |||
| break; | |||
| case CUCUL_FORMAT_HTML: | |||
| _cucul_get_html(qq, ex); | |||
| break; | |||
| case CUCUL_FORMAT_HTML3: | |||
| _cucul_get_html3(qq, ex); | |||
| break; | |||
| case CUCUL_FORMAT_IRC: | |||
| _cucul_get_irc(qq, ex); | |||
| break; | |||
| case CUCUL_FORMAT_PS: | |||
| _cucul_get_ps(qq, ex); | |||
| break; | |||
| case CUCUL_FORMAT_SVG: | |||
| _cucul_get_svg(qq, ex); | |||
| break; | |||
| default: | |||
| free(ex); | |||
| return NULL; | |||
| free(ex); | |||
| return NULL; | |||
| } | |||
| return ex; | |||
| @@ -52,20 +52,6 @@ enum cucul_color | |||
| CUCUL_COLOR_WHITE = 15 /**< The colour index for white. */ | |||
| }; | |||
| /** \brief Export formats | |||
| * | |||
| * Export formats understood by libcucul. | |||
| */ | |||
| enum cucul_format | |||
| { | |||
| CUCUL_FORMAT_ANSI = 0, /**< Export to ANSI format. */ | |||
| CUCUL_FORMAT_HTML = 1, /**< Export to HTML format. */ | |||
| CUCUL_FORMAT_HTML3 = 2, /**< Export to old HTMLv3 format. */ | |||
| CUCUL_FORMAT_IRC = 3, /**< Export to text with mIRC colours. */ | |||
| CUCUL_FORMAT_PS = 4, /**< Export to PostScript. */ | |||
| CUCUL_FORMAT_SVG = 5, /**< Export to Scalable Vector Graphics format. */ | |||
| }; | |||
| /** \brief Internal features. | |||
| * | |||
| * Internal libcaca features such as the rendering method or the dithering | |||
| @@ -241,7 +227,7 @@ struct cucul_export | |||
| char *buffer; | |||
| }; | |||
| struct cucul_export * cucul_create_export(cucul_t *, enum cucul_format); | |||
| struct cucul_export * cucul_create_export(cucul_t *, char const *); | |||
| void cucul_free_export(struct cucul_export *); | |||
| /* @} */ | |||
| @@ -195,7 +195,7 @@ int main(void) | |||
| /* Get ANSI representation of the image and skip the end-of buffer | |||
| * linefeed ("\r\n\0", 3 bytes) */ | |||
| server->ex = cucul_create_export(qq, CUCUL_FORMAT_ANSI); | |||
| server->ex = cucul_create_export(qq, "ansi"); | |||
| server->ex->size -= 3; | |||
| for(i = 0; i < server->client_count; i++) | |||
| @@ -35,7 +35,6 @@ uint32_t pixels[256*256]; | |||
| int main(int argc, char *argv[]) | |||
| { | |||
| cucul_t *qq; | |||
| enum cucul_format format; | |||
| struct cucul_bitmap *bitmap; | |||
| struct cucul_export *buffer; | |||
| int x, y; | |||
| @@ -48,19 +47,12 @@ int main(int argc, char *argv[]) | |||
| exit(-1); | |||
| } | |||
| if(!strcasecmp(argv[1], "ansi")) | |||
| format = CUCUL_FORMAT_ANSI; | |||
| else if(!strcasecmp(argv[1], "html")) | |||
| format = CUCUL_FORMAT_HTML; | |||
| else if(!strcasecmp(argv[1], "html3")) | |||
| format = CUCUL_FORMAT_HTML3; | |||
| else if(!strcasecmp(argv[1], "irc")) | |||
| format = CUCUL_FORMAT_IRC; | |||
| else if(!strcasecmp(argv[1], "ps")) | |||
| format = CUCUL_FORMAT_PS; | |||
| else if(!strcasecmp(argv[1], "svg")) | |||
| format = CUCUL_FORMAT_SVG; | |||
| else | |||
| if(strcasecmp(argv[1], "ansi") | |||
| && strcasecmp(argv[1], "html") | |||
| && strcasecmp(argv[1], "html3") | |||
| && strcasecmp(argv[1], "irc") | |||
| && strcasecmp(argv[1], "ps") | |||
| && strcasecmp(argv[1], "svg")) | |||
| { | |||
| fprintf(stderr, "%s: unknown format `%s'\n", argv[0], argv[1]); | |||
| exit(-1); | |||
| @@ -98,7 +90,7 @@ int main(int argc, char *argv[]) | |||
| cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_LIGHTBLUE); | |||
| cucul_putstr(qq, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); | |||
| buffer = cucul_create_export(qq, format); | |||
| buffer = cucul_create_export(qq, argv[1]); | |||
| fwrite(buffer->buffer, buffer->size - 1, 1, stdout); | |||
| cucul_free_export(buffer); | |||