diff --git a/cucul/cucul.c b/cucul/cucul.c index 5285e8d..a444ac9 100644 --- a/cucul/cucul.c +++ b/cucul/cucul.c @@ -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; diff --git a/cucul/cucul.h b/cucul/cucul.h index 943b371..cfa2edb 100644 --- a/cucul/cucul.h +++ b/cucul/cucul.h @@ -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 *); /* @} */ diff --git a/src/cacaserver.c b/src/cacaserver.c index 42842a4..40efb3e 100644 --- a/src/cacaserver.c +++ b/src/cacaserver.c @@ -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++) diff --git a/test/export.c b/test/export.c index 73e6135..21d6c46 100644 --- a/test/export.c +++ b/test/export.c @@ -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);