Fix Windows build; Add grayscale tests to Windows build; Add proper implementation of snprintf on Windows and use snprintf() in TurboJPEG library and tests instead of sprintf()
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@486 632fc199-4ca6-4c93-a231-07263d6284db
diff --git a/jpgtest.c b/jpgtest.c
index 06efa49..f70ecd9 100644
--- a/jpgtest.c
+++ b/jpgtest.c
@@ -54,13 +54,13 @@
if(_l<0.)
{
l=(int)fabs(_l);
- sprintf(format, "%%%d.%df", figs+l+2, figs+l);
+ snprintf(format, 80, "%%%d.%df", figs+l+2, figs+l);
}
else
{
l=(int)_l+1;
- if(figs<=l) sprintf(format, "%%.0f");
- else sprintf(format, "%%%d.%df", figs+1, figs-l);
+ if(figs<=l) snprintf(format, 80, "%%.0f");
+ else snprintf(format, 80, "%%%d.%df", figs+1, figs-l);
}
printf(format, val);
}
@@ -70,7 +70,7 @@
unsigned long *comptilesize, unsigned char *rgbbuf, int w, int h,
int jpegsub, int qual, char *filename, int tilesizex, int tilesizey)
{
- char tempstr[1024], qualstr[5]="\0";
+ char tempstr[1024], qualstr[5]="\0", *ptr;
FILE *outfile=NULL; tjhandle hnd=NULL;
int flags=(forcemmx?TJ_FORCEMMX:0)|(forcesse?TJ_FORCESSE:0)
|(forcesse2?TJ_FORCESSE2:0)|(forcesse3?TJ_FORCESSE3:0)
@@ -152,7 +152,8 @@
}
if(yuv==YUVDECODE)
{
- sprintf(tempstr, "%s_%s%s.yuv", filename, _subnames[jpegsub], qualstr);
+ snprintf(tempstr, 1024, "%s_%s%s.yuv", filename, _subnames[jpegsub],
+ qualstr);
if((outfile=fopen(tempstr, "wb"))==NULL)
_throwunix("opening YUV image for output");
if(fwrite(rgbbuf, yuvsize, 1, outfile)!=1)
@@ -164,16 +165,17 @@
if(tilesizex==w && tilesizey==h)
{
if(decomponly)
- sprintf(tempstr, "%s_full.%s", filename, useppm?"ppm":"bmp");
+ snprintf(tempstr, 1024, "%s_full.%s", filename, useppm?"ppm":"bmp");
else
- sprintf(tempstr, "%s_%s%s_full.%s", filename, _subnames[jpegsub],
- qualstr, useppm?"ppm":"bmp");
+ snprintf(tempstr, 1024, "%s_%s%s_full.%s", filename,
+ _subnames[jpegsub], qualstr, useppm?"ppm":"bmp");
}
- else sprintf(tempstr, "%s_%s%s_%dx%d.%s", filename, _subnames[jpegsub],
- qualstr, tilesizex, tilesizey, useppm?"ppm":"bmp");
+ else snprintf(tempstr, 1024, "%s_%s%s_%dx%d.%s", filename,
+ _subnames[jpegsub], qualstr, tilesizex, tilesizey, useppm?"ppm":"bmp");
if(savebmp(tempstr, rgbbuf, scaledw, scaledh, pf, pitch, bu)==-1)
_throwbmp("saving bitmap");
- sprintf(strrchr(tempstr, '.'), "-err.%s", useppm?"ppm":"bmp");
+ ptr=strrchr(tempstr, '.');
+ snprintf(ptr, 1024-(ptr-tempstr), "-err.%s", useppm?"ppm":"bmp");
if(srcbuf && scale_num==1 && scale_denom==1)
{
if(!quiet)
@@ -337,9 +339,10 @@
if(tilesizex==w && tilesizey==h)
{
if(yuv==YUVENCODE)
- sprintf(tempstr, "%s_%s.yuv", filename, _subnames[jpegsub]);
+ snprintf(tempstr, 1024, "%s_%s.yuv", filename, _subnames[jpegsub]);
else
- sprintf(tempstr, "%s_%sQ%d.jpg", filename, _subnames[jpegsub], qual);
+ snprintf(tempstr, 1024, "%s_%sQ%d.jpg", filename, _subnames[jpegsub],
+ qual);
if((outfile=fopen(tempstr, "wb"))==NULL)
_throwunix("opening reference image");
if(fwrite(jpegbuf[0], jpgbufsize, 1, outfile)!=1)