From 9dd3cb9f3b4e88bf492c34bc6bff7947d1c5f14b Mon Sep 17 00:00:00 2001 From: Hans-Joerg Schurr Date: Sun, 29 Mar 2020 19:41:18 +0200 Subject: [PATCH] Support files as argumetns, make error reporting more informative --- src/main.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index cccc66e..17cd65d 100644 --- a/src/main.c +++ b/src/main.c @@ -5,19 +5,34 @@ #include int -main(void) +main(int argc, char* argv[argc + 1]) { - puts("This is " PACKAGE_STRING "."); + puts(PACKAGE_STRING); - FILE* imagefile = fopen("test.hvif", "rb"); + if (argc < 2) { + if (argc > 0) printf("Usage: %s FILE\n", argv[0]); + return EXIT_FAILURE; + } + + FILE* imagefile = fopen(argv[1], "rb"); if (!imagefile) { fputs("fopen failed.\n", stderr); return EXIT_FAILURE; } hvif_result result = hvif_from_file(imagefile); + fclose(imagefile); + if (result.status != SUCCESS) { fputs("Reading image failed.\n", stderr); + switch (result.status) { + case ERROR_NOMEM: fputs("Out of memory.\n", stderr); break; + case ERROR_EOF: fputs("File ended prematurely.\n", stderr); break; + case ERROR_STYLE: fputs("Incorrect style definition.\n", stderr); break; + case ERROR_PATH: fputs("Incorrect path definition.\n", stderr); break; + case ERROR_SHAPE: fputs("Incorrect shape definition.\n", stderr); break; + default: break; + } return EXIT_FAILURE; } puts("Reading image succeeded.");