1
0
mirror of https://github.com/cc65/cc65.git synced 2024-09-30 08:57:49 +00:00

New option --list-conversions.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5591 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2012-03-10 18:51:00 +00:00
parent c44c7d9f97
commit 44c70d01cb
3 changed files with 45 additions and 10 deletions

View File

@ -107,3 +107,12 @@ StrBuf* ConvertTo (const Bitmap* B, const Collection* A)
void ListConversionTargets (FILE* F)
/* Output a list of conversion targets */
{
unsigned I;
for (I = 0; I < sizeof (ConverterMap) / sizeof (ConverterMap[0]); ++I) {
fprintf (F, " %s\n", ConverterMap[I].Format);
}
}

View File

@ -38,6 +38,8 @@
#include <stdio.h>
/* common */ /* common */
#include "coll.h" #include "coll.h"
#include "strbuf.h" #include "strbuf.h"
@ -60,6 +62,9 @@ StrBuf* ConvertTo (const Bitmap* B, const Collection* A);
* in the attribute collection A. * in the attribute collection A.
*/ */
void ListConversionTargets (FILE* F);
/* Output a list of conversion targets */
/* End of convert.h */ /* End of convert.h */

View File

@ -85,6 +85,7 @@ static void Usage (void)
" -V\t\t\t\tPrint the version number and exit\n" " -V\t\t\t\tPrint the version number and exit\n"
" -c fmt[,attrlist]\t\tConvert into target format\n" " -c fmt[,attrlist]\t\tConvert into target format\n"
" -h\t\t\t\tHelp (this text)\n" " -h\t\t\t\tHelp (this text)\n"
" -lc\t\t\t\tList all possible conversions\n"
" -r file[,attrlist]\t\tRead an input file\n" " -r file[,attrlist]\t\tRead an input file\n"
" -v\t\t\t\tIncrease verbosity\n" " -v\t\t\t\tIncrease verbosity\n"
" -w file[,attrlist]\t\tWrite the output to a file\n" " -w file[,attrlist]\t\tWrite the output to a file\n"
@ -92,6 +93,7 @@ static void Usage (void)
"Long options:\n" "Long options:\n"
" --convert-to fmt[,attrlist]\tConvert into target format\n" " --convert-to fmt[,attrlist]\tConvert into target format\n"
" --help\t\t\tHelp (this text)\n" " --help\t\t\tHelp (this text)\n"
" --list-conversions\t\tList all possible conversions\n"
" --pop\t\t\t\tRestore the original loaded image\n" " --pop\t\t\t\tRestore the original loaded image\n"
" --read file[,attrlist]\tRead an input file\n" " --read file[,attrlist]\tRead an input file\n"
" --slice x,y,w,h\t\tGenerate a slice from the loaded bitmap\n" " --slice x,y,w,h\t\tGenerate a slice from the loaded bitmap\n"
@ -169,6 +171,16 @@ static void OptHelp (const char* Opt attribute ((unused)),
static void OptListConversions (const char* Opt attribute ((unused)),
const char* Arg attribute ((unused)))
/* Print a list of all conversions */
{
ListConversionTargets (stdout);
exit (EXIT_SUCCESS);
}
static void OptPop (const char* Opt attribute ((unused)), static void OptPop (const char* Opt attribute ((unused)),
const char* Arg attribute ((unused))) const char* Arg attribute ((unused)))
/* Restore the original image */ /* Restore the original image */
@ -299,6 +311,7 @@ int main (int argc, char* argv [])
static const LongOpt OptTab[] = { static const LongOpt OptTab[] = {
{ "--convert-to", 1, OptConvertTo }, { "--convert-to", 1, OptConvertTo },
{ "--help", 0, OptHelp }, { "--help", 0, OptHelp },
{ "--list-conversions", 0, OptListConversions },
{ "--pop", 0, OptPop }, { "--pop", 0, OptPop },
{ "--read", 1, OptRead }, { "--read", 1, OptRead },
{ "--slice", 1, OptSlice }, { "--slice", 1, OptSlice },
@ -320,24 +333,32 @@ int main (int argc, char* argv [])
const char* Arg = ArgVec[I]; const char* Arg = ArgVec[I];
/* Check for an option */ /* Check for an option */
if (Arg [0] == '-') { if (Arg[0] == '-') {
switch (Arg [1]) { switch (Arg[1]) {
case '-': case '-':
LongOption (&I, OptTab, sizeof(OptTab)/sizeof(OptTab[0])); LongOption (&I, OptTab, sizeof(OptTab)/sizeof(OptTab[0]));
break; break;
case 'V': case 'V':
OptVersion (Arg, 0); OptVersion (Arg, 0);
break; break;
case 'c': case 'c':
OptConvertTo (Arg, GetArg (&I, 2)); OptConvertTo (Arg, GetArg (&I, 2));
break; break;
case 'h': case 'h':
OptHelp (Arg, 0); OptHelp (Arg, 0);
break; break;
case 'l':
if (Arg[2] == 'c') {
OptListConversions (Arg, 0);
} else {
UnknownOption (Arg);
}
break;
case 'r': case 'r':
OptRead (Arg, GetArg (&I, 2)); OptRead (Arg, GetArg (&I, 2));