# HG changeset patch # User Matti Hamalainen # Date 1559652289 -10800 # Node ID 7652b3fe8f309ba641195bcb30e0d87fa6854ecc # Parent 44d7e8e2483c3ea6aabad19775501cd1caaa0517 Fix IFF and PCX checks for non-indexed images. diff -r 44d7e8e2483c -r 7652b3fe8f30 tools/libgfx.c --- a/tools/libgfx.c Tue Jun 04 15:21:35 2019 +0300 +++ b/tools/libgfx.c Tue Jun 04 15:44:49 2019 +0300 @@ -1411,8 +1411,8 @@ spec.planar = TRUE; // XXX: 24bit PCX does not work yet .. - if (spec.format != DM_COLFMT_PALETTE && - spec.format != DM_COLFMT_GRAYSCALE) + if ((img->format != DM_COLFMT_PALETTE && img->format != DM_COLFMT_GRAYSCALE) || + (spec.format != DM_COLFMT_PALETTE && spec.format != DM_COLFMT_GRAYSCALE)) { return dmError(DMERR_NOT_SUPPORTED, "24bit PCX not supported yet.\n"); @@ -2622,7 +2622,8 @@ int res = DMERR_OK; // XXX: Non-paletted IFF not supported! - if (spec->format != DM_COLFMT_PALETTE) + if ((img->format != DM_COLFMT_PALETTE && img->format != DM_COLFMT_GRAYSCALE) || + (spec->format != DM_COLFMT_PALETTE && spec->format != DM_COLFMT_GRAYSCALE)) { return dmError(DMERR_NOT_SUPPORTED, "Non-paletted IFF is not supported.\n"); @@ -2702,7 +2703,9 @@ // // CMAP // - if (img->pal->ncolors > 0 && spec->format == DM_COLFMT_PALETTE) + if (spec->format == DM_COLFMT_PALETTE && + img->pal != NULL && + img->pal->ncolors > 0) { if ((res = dmWriteIFFChunkHdr(fp, &iff.chCMAP, IFF_ID_CMAP)) != DMERR_OK) goto out;