From: Mikko Rasa Date: Fri, 23 Nov 2012 18:12:41 +0000 (+0200) Subject: Use stricter warnings and make the code compile with them X-Git-Tag: 1.0~6 X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=9d1111afe554231e89dcaa574234ecd1813526a4;p=ttf2png.git Use stricter warnings and make the code compile with them --- diff --git a/Makefile b/Makefile index 6219108..0bc7aad 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ttf2png: ttf2png.c - gcc -Wall $^ -o $@ $(shell freetype-config --cflags --libs) $(shell pkg-config --cflags --libs libpng12) + gcc -Wall -Wextra -Werror -std=c89 -pedantic $^ -o $@ $(shell freetype-config --cflags --libs) $(shell pkg-config --cflags --libs libpng12) VER=0.3 diff --git a/ttf2png.c b/ttf2png.c index e702c9f..ebc0ccc 100644 --- a/ttf2png.c +++ b/ttf2png.c @@ -240,14 +240,14 @@ int main(int argc, char **argv) render_grid(&font, cellw, cellh, cpl, seq); if(invert) { - for(i=0; i\n\n" - "Accepted options (default values in [brackets])\n" + "Distributed under the GNU General Public License\n\n"); + + printf("Usage: ttf2png [options] \n\n"); + + printf("Accepted options (default values in [brackets])\n" " -r Range of characters to convert [0,255]\n" " -s Font size to use, in pixels [10]\n" " -l Number of characters to put in one line [auto]\n" " -c Character cell size, in pixels [auto]\n" - " -o Output file name (or - for stdout) [font.png]\n" - " -a Force autohinter\n" + " -o Output file name (or - for stdout) [font.png]\n"); + printf(" -a Force autohinter\n" " -t Render glyphs to alpha channel\n" " -i Invert colors of the glyphs\n" " -v Increase the level of verbosity\n" @@ -443,7 +445,7 @@ void render_grid(Font *font, unsigned cellw, unsigned cellh, unsigned cpl, int s printf("Max size: %u x %u\n", maxw, maxh); printf("Y range: [%d %d]\n", bot, top); printf("Cell size: %u x %u\n", cellw, cellh); - if(maxw>cellw || top-bot>cellh) + if(maxw>cellw || (unsigned)(top-bot)>cellh) fprintf(stderr, "Warning: character size exceeds cell size\n"); } @@ -473,7 +475,7 @@ void render_grid(Font *font, unsigned cellw, unsigned cellh, unsigned cpl, int s for(i=0; in_glyphs; ++i) { Glyph *glyph; - int ci, cx, cy; + unsigned ci, cx, cy; unsigned x, y; glyph = &font->glyphs[i]; @@ -495,7 +497,7 @@ void render_grid(Font *font, unsigned cellw, unsigned cellh, unsigned cpl, int s for(y=0; yimage.h; ++y) for(x=0; ximage.w; ++x) { - if(cx+x<0 || cx+x>=font->image.w || cy+y<0 || cy+y>=font->image.h) + if(cx+x>=font->image.w || cy+y>=font->image.h) continue; font->image.data[cx+x+(cy+y)*font->image.w] = 255-glyph->image.data[x+y*glyph->image.w]; } @@ -599,7 +601,7 @@ void render_packed(Font *font) for(y=0; yimage.h; ++y) for(x=0; ximage.w; ++x) { - if(cx+x<0 || cx+x>=font->image.w || cy+y<0 || cy+y>=font->image.h) + if(cx+x>=font->image.w || cy+y>=font->image.h) continue; font->image.data[cx+x+(cy+y)*font->image.w] = 255-glyph->image.data[x+y*glyph->image.w]; } @@ -660,8 +662,8 @@ int save_png(const char *fn, const Image *image, char alpha) FILE *out; png_struct *pngs; png_info *pngi; - png_byte *rows[image->h]; - int i; + png_byte **rows; + unsigned i; png_byte *data2; int color; @@ -692,6 +694,7 @@ int save_png(const char *fn, const Image *image, char alpha) } png_init_io(pngs, out); + rows = (png_byte **)malloc(image->h*sizeof(png_byte *)); if(alpha) { data2 = (png_byte *)malloc(image->w*image->h*2); @@ -714,6 +717,7 @@ int save_png(const char *fn, const Image *image, char alpha) png_set_rows(pngs, pngi, rows); png_write_png(pngs, pngi, PNG_TRANSFORM_IDENTITY, NULL); png_destroy_write_struct(&pngs, &pngi); + free(rows); if(alpha) free(data2);