History

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.

Andreas Bießmann committed 14 years ago

Commit fc96b211 parent 16f89091 file · +7 −0Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/pnmtologo.c+7−0
@@ -74,6 +74,7 @@ static unsigned int logo_height; · 73 unmodified lines
74static struct color **logo_data;74static struct color **logo_data;
75static struct color logo_clut[MAX_LINUX_LOGO_COLORS];75static struct color logo_clut[MAX_LINUX_LOGO_COLORS];
76static unsigned int logo_clutsize;76static unsigned int logo_clutsize;
77static int is_plain_pbm = 0;
77 78
78static void die(const char *fmt, ...)79static void die(const char *fmt, ...)
79 __attribute__ ((noreturn)) __attribute ((format (printf, 1, 2)));80 __attribute__ ((noreturn)) __attribute ((format (printf, 1, 2)));
@@ -103,6 +104,11 @@ static unsigned int get_number(FILE *fp) · 23 unmodified lines
103 val = 0;104 val = 0;
104 while (isdigit(c)) {105 while (isdigit(c)) {
105 val = 10*val+c-'0';106 val = 10*val+c-'0';
107 /* some PBM are 'broken'; GiMP for example exports a PBM without space
108 * between the digits. This is Ok cause we know a PBM can only have a '1'
109 * or a '0' for the digit. */
110 if (is_plain_pbm)
111 break;
106 c = fgetc(fp);112 c = fgetc(fp);
107 if (c == EOF)113 if (c == EOF)
108 die("%s: end of file\n", filename);114 die("%s: end of file\n", filename);
@@ -167,6 +173,7 @@ static void read_image(void) · 58 unmodified lines
167 switch (magic) {173 switch (magic) {
168 case '1':174 case '1':
169 /* Plain PBM */175 /* Plain PBM */
176 is_plain_pbm = 1;
170 for (i = 0; i < logo_height; i++)177 for (i = 0; i < logo_height; i++)
171 for (j = 0; j < logo_width; j++)178 for (j = 0; j < logo_width; j++)
172 logo_data[i][j].red = logo_data[i][j].green =179 logo_data[i][j].red = logo_data[i][j].green =

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t