commit 59d70b78d415ed1777d727ecd1255bb75670f2ad
parent 0208cefdc9ca2f09088c50bbebfb2f9c0e1218bd
Author: Frederic Cambus <fcambus@users.sourceforge.net>
Date: Tue, 8 Sep 2015 23:38:21 +0200
Allow enabling iCE colors using the '-i' option, and use a boolean for storing the value
Diffstat:
3 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/src/ansilove.c b/src/ansilove.c
@@ -182,7 +182,7 @@ void alSelectFont(struct fontStruct* fontData, char *font) {
}
// ANSi
-void alAnsiLoader(char *input, char *output, char *retinaout, char *font, int32_t int_bits, char *mode, char *icecolors, char *fext, bool createRetinaRep)
+void alAnsiLoader(char *input, char *output, char *retinaout, char *font, int32_t int_bits, char *mode, bool icecolors, char *fext, bool createRetinaRep)
{
// ladies and gentlemen, it's type declaration time
struct fontStruct fontData;
@@ -274,9 +274,6 @@ void alAnsiLoader(char *input, char *output, char *retinaout, char *font, int32_
// set transparent color index for the font
gdImageColorTransparent(im_Font, 20);
-
- // convert numeric command line flags to integer values
- int32_t int_icecolors = atoi(icecolors);
// ANSi processing loops
int32_t loop = 0, ansi_sequence_loop, seq_graphics_loop;
@@ -588,7 +585,7 @@ void alAnsiLoader(char *input, char *output, char *retinaout, char *font, int32_
{
color_background = seqValue - 40;
- if (blink && int_icecolors == 1)
+ if (blink && icecolors)
{
color_background+=8;
}
@@ -1269,7 +1266,7 @@ void alPcBoardLoader(char *input, char *output, char *retinaout, char *font, int
}
// BINARY
-void alBinaryLoader(char *input, char *output, char *retinaout, char *columns, char *font, int32_t int_bits, char *icecolors, bool createRetinaRep)
+void alBinaryLoader(char *input, char *output, char *retinaout, char *columns, char *font, int32_t int_bits, bool icecolors, bool createRetinaRep)
{
// some type declarations
struct fontStruct fontData;
@@ -1312,7 +1309,6 @@ void alBinaryLoader(char *input, char *output, char *retinaout, char *columns, c
// convert numeric command line flags to integer values
int32_t int_columns = atoi(columns);
- int32_t int_icecolors = atoi(icecolors);
// allocate buffer image memory
im_Binary = gdImageCreate(int_columns * int_bits,
@@ -1364,7 +1360,7 @@ void alBinaryLoader(char *input, char *output, char *retinaout, char *columns, c
color_foreground = (attribute & 15);
- if (color_background > 8 && int_icecolors == 0)
+ if (color_background > 8 && !icecolors)
{
color_background -= 8;
}
diff --git a/src/ansilove.h b/src/ansilove.h
@@ -30,9 +30,9 @@ void alDrawChar(gdImagePtr im, const unsigned char *font_data, int32_t int_bits,
int32_t font_size_x, int32_t font_size_y, int32_t position_x, int32_t position_y,
int32_t color_background, int32_t color_foreground, unsigned char character);
-void alAnsiLoader(char *input, char *output, char *retinaout, char *font, int32_t int_bits, char *mode, char *icecolors, char *fext, bool createRetinaRep);
+void alAnsiLoader(char *input, char *output, char *retinaout, char *font, int32_t int_bits, char *mode, bool icecolors, char *fext, bool createRetinaRep);
void alPcBoardLoader(char *input, char *output, char *retinaout, char *font, int32_t int_bits, bool createRetinaRep);
-void alBinaryLoader(char *input, char *output, char *retinaout, char *columns, char *font, int32_t int_bits, char *icecolors, bool createRetinaRep);
+void alBinaryLoader(char *input, char *output, char *retinaout, char *columns, char *font, int32_t int_bits, bool icecolors, bool createRetinaRep);
void alArtworxLoader(char *input, char *output, char *retinaout, bool createRetinaRep);
void alIcedrawLoader(char *input, char *output, char *retinaout, bool fileHasSAUCE, bool createRetinaRep);
void alTundraLoader(char *input, char *output, char *retinaout, char *font, int32_t int_bits, bool fileHasSAUCE, bool createRetinaRep);
diff --git a/src/main.c b/src/main.c
@@ -54,6 +54,7 @@ void listExamples(void)
{
printf("\nEXAMPLES:\n");
printf(" ansilove file.ans (output path/name identical to input, no options)\n"
+ " ansilove -i file.ans (enable iCE colors)\n"
" ansilove -r file.ans (adds Retina @2x output file)\n"
" ansilove -o dir/file file.ans (custom path/name for output)\n"
" ansilove -s file.bin (just display SAUCE record, don't generate output)\n"
@@ -83,6 +84,7 @@ void synopsis(void)
" -e print a list of examples\n"
" -f font select font (default: 80x25)\n"
" -h show help\n"
+ " -i enable iCE colors\n"
" -m mode set rendering mode for ANS files:\n"
" ced black on gray, with 78 columns\n"
" transparent render with transparent background\n"
@@ -106,6 +108,9 @@ int main(int argc, char *argv[])
// retina output bool type
bool createRetinaRep = false;
+ // iCE colors bool type
+ bool icecolors = false;
+
// analyze options and do what has to be done
bool fileIsBinary = false;
bool fileIsANSi = false;
@@ -122,7 +127,6 @@ int main(int argc, char *argv[])
char *mode = NULL;
char *columns = NULL;
char *font = NULL;
- char *icecolors = NULL;
char *input = NULL, *output = NULL;
char *retinaout = NULL;
@@ -145,7 +149,7 @@ int main(int argc, char *argv[])
showHelp();
return EXIT_SUCCESS;
case 'i':
- // TODO : Implement iCE Colors on/off toggle
+ icecolors = true;
break;
case 'm':
mode = optarg;
@@ -228,9 +232,6 @@ int main(int argc, char *argv[])
font = "80x25";
}
- // enabling iCE colors by default (For now)
- icecolors = "1";
-
// get file extension
char *fext = strrchr(input, '.');
fext = fext ? strtolower(fext) : "none";
@@ -282,8 +283,8 @@ int main(int argc, char *argv[])
fileIsPCBoard || fileIsTundra) {
printf("Bits: %d\n", int_bits);
}
- if (fileIsANSi || fileIsBinary || fileIsPCBoard) {
- printf("iCE Colors: %s\n", icecolors);
+ if (icecolors && (fileIsANSi || fileIsBinary)) {
+ printf("iCE Colors: enabled");
}
if (fileIsBinary) {
printf("Columns: %s\n", columns);