scripts/pnmtologo: fix for plain PBM
PATCH 1/1 scripts/pnmtologo: fix for plain PBM
PBM generated with current tools do not have a whitespace between the digits. Therefore the pnmtologo tool fails to gernerate the required C-Array for these images. This patch fixes that behaviour and can handle both 'old style' and 'new style' PBM files.
Signed-off-by Andreas Bießmann <[email protected]>
--- scripts/pnmtologo.c | 7 +++++++ 1 file changed, 7 insertions(+)
scripts/pnmtologo.c +7 -0
@@ -74,6 +74,7 @@ static unsigned int logo_height;static struct color **logo_data;static struct color logo_clut[MAX_LINUX_LOGO_COLORS ];static unsigned int logo_clutsize; +static int is_plain_pbm =0 ;static void die (const char *fmt, ...) __attribute__ ((noreturn)) __attribute ((format (printf,1 ,2 )));
@@ -103,6 +104,11 @@ static unsigned int get_number(FILE *fp) val =0 ;while (isdigit (c)) { val =10 *val+c-'0' ; +/* some PBM are 'broken'; GiMP for example exports a PBM without space +* between the digits. This is Ok cause we know a PBM can only have a '1' +* or a '0' for the digit. */ +if (is_plain_pbm) +break ; c =fgetc (fp);if (c ==EOF )die ("%s: end of file\n" , filename);
@@ -167,6 +173,7 @@ static void read_image(void)switch (magic) {case '1' :/* Plain PBM */ + is_plain_pbm =1 ;for (i =0 ; i < logo_height; i++)for (j =0 ; j < logo_width; j++) logo_data[i][j].red = logo_data[i][j].green =
Signature · 1 line
1.7.10.4
Quoted 6 lines · Andreas Bießmann
PBM generated with current tools do not have a whitespace between the digits. Therefore the pnmtologo tool fails to gernerate the required C-Array for these images. This patch fixes that behaviour and can handle both 'old style' and 'new style' PBM files.
Signed-off-by Andreas Bießmann <[email protected]>
Applied to kbuild.git#kbuild, thanks.
Michal