diff --git a/utils/pack/main.c b/utils/pack/main.c index f92a76f..66d395c 100644 --- a/utils/pack/main.c +++ b/utils/pack/main.c @@ -1,5 +1,6 @@ #include <stdlib.h> #include <stdio.h> +#include <stdint.h> #include "pack.h" @@ -9,17 +10,29 @@ int main(int argc, char** argv) { switch(argc) { case 1: fprintf(stderr, "Missing output file\n"); - case 2: - fprintf(stderr, "Missing input file/s\n"); goto usage; break; } char* outfile = argv[1]; + + char** list; + uint32_t nlist; + int i; uint32_t nfiles = (uint32_t)argc - 2; argv += 2; - pack_files(outfile, (const char**)argv, nfiles); + if(nfiles == 0) { + // No files, list what it has. + fprintf(stdout, "Packfile '%s' contains:\n", outfile); + for(i = 0; i < nlist; i++) { + fprintf(stdout, " %03d) %s\n", i, list[i]); + free(list[i]); + } + free(list); + } else { + pack_files(outfile, (const char**)argv, nfiles); + } exit(EXIT_SUCCESS);