Skip to content

Commit 4275973

Browse files
author
rouault
committed
Global conversion to using floating point <--> string functions insensitive to LC_NUMERIC (#5731)
git-svn-id: https://svn.osgeo.org/gdal/trunk/gdal@27942 f0d54148-0727-0410-94bb-9a71ac55c965
1 parent 9eeb573 commit 4275973

File tree

215 files changed

+1869
-1466
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

215 files changed

+1869
-1466
lines changed

alg/gdal_crs.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ void *GDALDeserializeGCPTransformer( CPLXMLNode *psTree )
502502
bReversed = atoi(CPLGetXMLValue(psTree,"Reversed","0"));
503503
bRefine = atoi(CPLGetXMLValue(psTree,"Refine","0"));
504504
nMinimumGcps = atoi(CPLGetXMLValue(psTree,"MinimumGcps","6"));
505-
dfTolerance = atof(CPLGetXMLValue(psTree,"Tolerance","1.0"));
505+
dfTolerance = CPLAtof(CPLGetXMLValue(psTree,"Tolerance","1.0"));
506506

507507
/* -------------------------------------------------------------------- */
508508
/* Generate transformation. */

alg/gdalgeoloc.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -791,13 +791,13 @@ void *GDALCreateGeoLocTransformer( GDALDatasetH hBaseDS,
791791
/* -------------------------------------------------------------------- */
792792
/* Pull geolocation info from the options/metadata. */
793793
/* -------------------------------------------------------------------- */
794-
psTransform->dfPIXEL_OFFSET = atof(CSLFetchNameValue( papszGeolocationInfo,
794+
psTransform->dfPIXEL_OFFSET = CPLAtof(CSLFetchNameValue( papszGeolocationInfo,
795795
"PIXEL_OFFSET" ));
796-
psTransform->dfLINE_OFFSET = atof(CSLFetchNameValue( papszGeolocationInfo,
796+
psTransform->dfLINE_OFFSET = CPLAtof(CSLFetchNameValue( papszGeolocationInfo,
797797
"LINE_OFFSET" ));
798-
psTransform->dfPIXEL_STEP = atof(CSLFetchNameValue( papszGeolocationInfo,
798+
psTransform->dfPIXEL_STEP = CPLAtof(CSLFetchNameValue( papszGeolocationInfo,
799799
"PIXEL_STEP" ));
800-
psTransform->dfLINE_STEP = atof(CSLFetchNameValue( papszGeolocationInfo,
800+
psTransform->dfLINE_STEP = CPLAtof(CSLFetchNameValue( papszGeolocationInfo,
801801
"LINE_STEP" ));
802802

803803
/* -------------------------------------------------------------------- */

alg/gdalproximity.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ GDALComputeProximity( GDALRasterBandH hSrcBand,
146146
/* -------------------------------------------------------------------- */
147147
pszOpt = CSLFetchNameValue( papszOptions, "MAXDIST" );
148148
if( pszOpt )
149-
dfMaxDist = atof(pszOpt) / dfDistMult;
149+
dfMaxDist = CPLAtof(pszOpt) / dfDistMult;
150150
else
151151
dfMaxDist = GDALGetRasterBandXSize(hSrcBand) + GDALGetRasterBandYSize(hSrcBand);
152152

@@ -171,7 +171,7 @@ GDALComputeProximity( GDALRasterBandH hSrcBand,
171171
float fNoDataValue;
172172
pszOpt = CSLFetchNameValue( papszOptions, "NODATA" );
173173
if( pszOpt != NULL )
174-
fNoDataValue = (float) atof(pszOpt);
174+
fNoDataValue = (float) CPLAtof(pszOpt);
175175
else
176176
{
177177
int bSuccess;
@@ -187,7 +187,7 @@ GDALComputeProximity( GDALRasterBandH hSrcBand,
187187
pszOpt = CSLFetchNameValue( papszOptions, "FIXED_BUF_VAL" );
188188
if( pszOpt )
189189
{
190-
dfFixedBufVal = atof(pszOpt);
190+
dfFixedBufVal = CPLAtof(pszOpt);
191191
bFixedBufVal = TRUE;
192192
}
193193

alg/gdaltransformer.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,7 @@ GDALCreateGenImgProjTransformer2( GDALDatasetH hSrcDS, GDALDatasetH hDstDS,
12001200
pszValue = CSLFetchNameValue( papszOptions, "REFINE_TOLERANCE" );
12011201
if( pszValue )
12021202
{
1203-
dfTolerance = atof(pszValue);
1203+
dfTolerance = CPLAtof(pszValue);
12041204
bRefine = TRUE;
12051205
}
12061206

@@ -1984,7 +1984,7 @@ GDALSerializeGenImgProjTransformer( void *pTransformArg )
19841984
/* -------------------------------------------------------------------- */
19851985
else
19861986
{
1987-
sprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
1987+
CPLsprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
19881988
psInfo->adfSrcGeoTransform[0],
19891989
psInfo->adfSrcGeoTransform[1],
19901990
psInfo->adfSrcGeoTransform[2],
@@ -1993,7 +1993,7 @@ GDALSerializeGenImgProjTransformer( void *pTransformArg )
19931993
psInfo->adfSrcGeoTransform[5] );
19941994
CPLCreateXMLElementAndValue( psTree, "SrcGeoTransform", szWork );
19951995

1996-
sprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
1996+
CPLsprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
19971997
psInfo->adfSrcInvGeoTransform[0],
19981998
psInfo->adfSrcInvGeoTransform[1],
19991999
psInfo->adfSrcInvGeoTransform[2],
@@ -2059,7 +2059,7 @@ GDALSerializeGenImgProjTransformer( void *pTransformArg )
20592059
/* -------------------------------------------------------------------- */
20602060
else
20612061
{
2062-
sprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
2062+
CPLsprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
20632063
psInfo->adfDstGeoTransform[0],
20642064
psInfo->adfDstGeoTransform[1],
20652065
psInfo->adfDstGeoTransform[2],
@@ -2068,7 +2068,7 @@ GDALSerializeGenImgProjTransformer( void *pTransformArg )
20682068
psInfo->adfDstGeoTransform[5] );
20692069
CPLCreateXMLElementAndValue( psTree, "DstGeoTransform", szWork );
20702070

2071-
sprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
2071+
CPLsprintf( szWork, "%.18g,%.18g,%.18g,%.18g,%.18g,%.18g",
20722072
psInfo->adfDstInvGeoTransform[0],
20732073
psInfo->adfDstInvGeoTransform[1],
20742074
psInfo->adfDstInvGeoTransform[2],
@@ -2801,7 +2801,7 @@ static void *
28012801
GDALDeserializeApproxTransformer( CPLXMLNode *psTree )
28022802

28032803
{
2804-
double dfMaxError = atof(CPLGetXMLValue( psTree, "MaxError", "0.25" ));
2804+
double dfMaxError = CPLAtof(CPLGetXMLValue( psTree, "MaxError", "0.25" ));
28052805
CPLXMLNode *psContainer;
28062806
GDALTransformerFunc pfnBaseTransform = NULL;
28072807
void *pBaseCBData = NULL;

alg/gdalwarper.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1213,7 +1213,7 @@ GDALWarpOptions * CPL_STDCALL GDALDeserializeWarpOptions( CPLXMLNode *psTree )
12131213
/* Warp memory limit. */
12141214
/* -------------------------------------------------------------------- */
12151215
psWO->dfWarpMemoryLimit =
1216-
atof(CPLGetXMLValue(psTree,"WarpMemoryLimit","0.0"));
1216+
CPLAtof(CPLGetXMLValue(psTree,"WarpMemoryLimit","0.0"));
12171217

12181218
/* -------------------------------------------------------------------- */
12191219
/* resample algorithm */
@@ -1426,7 +1426,7 @@ GDALWarpOptions * CPL_STDCALL GDALDeserializeWarpOptions( CPLXMLNode *psTree )
14261426
}
14271427

14281428
psWO->dfCutlineBlendDist =
1429-
atof( CPLGetXMLValue( psTree, "CutlineBlendDist", "0" ) );
1429+
CPLAtof( CPLGetXMLValue( psTree, "CutlineBlendDist", "0" ) );
14301430

14311431
/* -------------------------------------------------------------------- */
14321432
/* Transformation. */

alg/gdalwarpoperation.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ CPLErr GDALWarpOperation::Initialize( const GDALWarpOptions *psNewOptions )
561561
const char *pszBD = CSLFetchNameValue( psOptions->papszWarpOptions,
562562
"CUTLINE_BLEND_DIST" );
563563
if( pszBD )
564-
psOptions->dfCutlineBlendDist = atof(pszBD);
564+
psOptions->dfCutlineBlendDist = CPLAtof(pszBD);
565565
}
566566
}
567567

apps/gdal_contour.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,12 @@ int main( int argc, char ** argv )
129129
else if( EQUAL(argv[i],"-off") )
130130
{
131131
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(1);
132-
dfOffset = atof(argv[++i]);
132+
dfOffset = CPLAtof(argv[++i]);
133133
}
134134
else if( EQUAL(argv[i],"-i") )
135135
{
136136
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(1);
137-
dfInterval = atof(argv[++i]);
137+
dfInterval = CPLAtof(argv[++i]);
138138
}
139139
else if( EQUAL(argv[i],"-fl") )
140140
{
@@ -144,7 +144,7 @@ int main( int argc, char ** argv )
144144
&& nFixedLevelCount
145145
< (int)(sizeof(adfFixedLevels)/sizeof(double))
146146
&& ArgIsNumeric(argv[i+1]) )
147-
adfFixedLevels[nFixedLevelCount++] = atof(argv[++i]);
147+
adfFixedLevels[nFixedLevelCount++] = CPLAtof(argv[++i]);
148148
}
149149
else if( EQUAL(argv[i],"-b") )
150150
{
@@ -174,7 +174,7 @@ int main( int argc, char ** argv )
174174
{
175175
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(1);
176176
bNoDataSet = TRUE;
177-
dfNoData = atof(argv[++i]);
177+
dfNoData = CPLAtof(argv[++i]);
178178
}
179179
else if( EQUAL(argv[i],"-nln") )
180180
{

apps/gdal_grid.cpp

+27-27
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
103103
{
104104
case GGA_InverseDistanceToAPower:
105105
printf( "Algorithm name: \"%s\".\n", szAlgNameInvDist );
106-
printf( "Options are "
106+
CPLprintf( "Options are "
107107
"\"power=%f:smoothing=%f:radius1=%f:radius2=%f:angle=%f"
108108
":max_points=%lu:min_points=%lu:nodata=%f\"\n",
109109
((GDALGridInverseDistanceToAPowerOptions *)pOptions)->dfPower,
@@ -117,7 +117,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
117117
break;
118118
case GGA_MovingAverage:
119119
printf( "Algorithm name: \"%s\".\n", szAlgNameAverage );
120-
printf( "Options are "
120+
CPLprintf( "Options are "
121121
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
122122
":nodata=%f\"\n",
123123
((GDALGridMovingAverageOptions *)pOptions)->dfRadius1,
@@ -128,7 +128,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
128128
break;
129129
case GGA_NearestNeighbor:
130130
printf( "Algorithm name: \"%s\".\n", szAlgNameNearest );
131-
printf( "Options are "
131+
CPLprintf( "Options are "
132132
"\"radius1=%f:radius2=%f:angle=%f:nodata=%f\"\n",
133133
((GDALGridNearestNeighborOptions *)pOptions)->dfRadius1,
134134
((GDALGridNearestNeighborOptions *)pOptions)->dfRadius2,
@@ -137,7 +137,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
137137
break;
138138
case GGA_MetricMinimum:
139139
printf( "Algorithm name: \"%s\".\n", szAlgNameMinimum );
140-
printf( "Options are "
140+
CPLprintf( "Options are "
141141
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
142142
":nodata=%f\"\n",
143143
((GDALGridDataMetricsOptions *)pOptions)->dfRadius1,
@@ -148,7 +148,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
148148
break;
149149
case GGA_MetricMaximum:
150150
printf( "Algorithm name: \"%s\".\n", szAlgNameMaximum );
151-
printf( "Options are "
151+
CPLprintf( "Options are "
152152
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
153153
":nodata=%f\"\n",
154154
((GDALGridDataMetricsOptions *)pOptions)->dfRadius1,
@@ -159,7 +159,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
159159
break;
160160
case GGA_MetricRange:
161161
printf( "Algorithm name: \"%s\".\n", szAlgNameRange );
162-
printf( "Options are "
162+
CPLprintf( "Options are "
163163
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
164164
":nodata=%f\"\n",
165165
((GDALGridDataMetricsOptions *)pOptions)->dfRadius1,
@@ -170,7 +170,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
170170
break;
171171
case GGA_MetricCount:
172172
printf( "Algorithm name: \"%s\".\n", szAlgNameCount );
173-
printf( "Options are "
173+
CPLprintf( "Options are "
174174
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
175175
":nodata=%f\"\n",
176176
((GDALGridDataMetricsOptions *)pOptions)->dfRadius1,
@@ -181,7 +181,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
181181
break;
182182
case GGA_MetricAverageDistance:
183183
printf( "Algorithm name: \"%s\".\n", szAlgNameAverageDistance );
184-
printf( "Options are "
184+
CPLprintf( "Options are "
185185
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
186186
":nodata=%f\"\n",
187187
((GDALGridDataMetricsOptions *)pOptions)->dfRadius1,
@@ -192,7 +192,7 @@ static void PrintAlgorithmAndOptions( GDALGridAlgorithm eAlgorithm,
192192
break;
193193
case GGA_MetricAverageDistancePts:
194194
printf( "Algorithm name: \"%s\".\n", szAlgNameAverageDistancePts );
195-
printf( "Options are "
195+
CPLprintf( "Options are "
196196
"\"radius1=%f:radius2=%f:angle=%f:min_points=%lu"
197197
":nodata=%f\"\n",
198198
((GDALGridDataMetricsOptions *)pOptions)->dfRadius1,
@@ -415,10 +415,10 @@ static CPLErr ProcessLayer( OGRLayerH hSrcLayer, GDALDatasetH hDstDS,
415415
printf( "Grid data type is \"%s\"\n", GDALGetDataTypeName(eType) );
416416
printf( "Grid size = (%lu %lu).\n",
417417
(unsigned long)nXSize, (unsigned long)nYSize );
418-
printf( "Corner coordinates = (%f %f)-(%f %f).\n",
418+
CPLprintf( "Corner coordinates = (%f %f)-(%f %f).\n",
419419
dfXMin - dfDeltaX / 2, dfYMax + dfDeltaY / 2,
420420
dfXMax + dfDeltaX / 2, dfYMin - dfDeltaY / 2 );
421-
printf( "Grid cell size = (%f %f).\n", dfDeltaX, dfDeltaY );
421+
CPLprintf( "Grid cell size = (%f %f).\n", dfDeltaX, dfDeltaY );
422422
printf( "Source point count = %lu.\n", (unsigned long)adfX.size() );
423423
PrintAlgorithmAndOptions( eAlgorithm, pOptions );
424424
printf("\n");
@@ -700,16 +700,16 @@ int main( int argc, char ** argv )
700700
else if( EQUAL(argv[i],"-txe") )
701701
{
702702
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(2);
703-
dfXMin = atof(argv[++i]);
704-
dfXMax = atof(argv[++i]);
703+
dfXMin = CPLAtof(argv[++i]);
704+
dfXMax = CPLAtof(argv[++i]);
705705
bIsXExtentSet = TRUE;
706706
}
707707

708708
else if( EQUAL(argv[i],"-tye") )
709709
{
710710
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(2);
711-
dfYMin = atof(argv[++i]);
712-
dfYMax = atof(argv[++i]);
711+
dfYMin = CPLAtof(argv[++i]);
712+
dfYMax = CPLAtof(argv[++i]);
713713
bIsYExtentSet = TRUE;
714714
}
715715

@@ -735,13 +735,13 @@ int main( int argc, char ** argv )
735735
else if( EQUAL(argv[i],"-z_increase") )
736736
{
737737
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(1);
738-
dfIncreaseBurnValue = atof(argv[++i]);
738+
dfIncreaseBurnValue = CPLAtof(argv[++i]);
739739
}
740740

741741
else if( EQUAL(argv[i],"-z_multiply") )
742742
{
743743
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(1);
744-
dfMultiplyBurnValue = atof(argv[++i]);
744+
dfMultiplyBurnValue = CPLAtof(argv[++i]);
745745
}
746746

747747
else if( EQUAL(argv[i],"-where") )
@@ -767,11 +767,11 @@ int main( int argc, char ** argv )
767767
CHECK_HAS_ENOUGH_ADDITIONAL_ARGS(4);
768768
OGRLinearRing oRing;
769769

770-
oRing.addPoint( atof(argv[i+1]), atof(argv[i+2]) );
771-
oRing.addPoint( atof(argv[i+1]), atof(argv[i+4]) );
772-
oRing.addPoint( atof(argv[i+3]), atof(argv[i+4]) );
773-
oRing.addPoint( atof(argv[i+3]), atof(argv[i+2]) );
774-
oRing.addPoint( atof(argv[i+1]), atof(argv[i+2]) );
770+
oRing.addPoint( CPLAtof(argv[i+1]), CPLAtof(argv[i+2]) );
771+
oRing.addPoint( CPLAtof(argv[i+1]), CPLAtof(argv[i+4]) );
772+
oRing.addPoint( CPLAtof(argv[i+3]), CPLAtof(argv[i+4]) );
773+
oRing.addPoint( CPLAtof(argv[i+3]), CPLAtof(argv[i+2]) );
774+
oRing.addPoint( CPLAtof(argv[i+1]), CPLAtof(argv[i+2]) );
775775

776776
poSpatialFilter = new OGRPolygon();
777777
((OGRPolygon *) poSpatialFilter)->addRing( &oRing );
@@ -793,11 +793,11 @@ int main( int argc, char ** argv )
793793
{
794794
OGRLinearRing oRing;
795795

796-
oRing.addPoint( atof(argv[i + 1]), atof(argv[i + 2]) );
797-
oRing.addPoint( atof(argv[i + 1]), atof(argv[i + 4]) );
798-
oRing.addPoint( atof(argv[i + 3]), atof(argv[i + 4]) );
799-
oRing.addPoint( atof(argv[i + 3]), atof(argv[i + 2]) );
800-
oRing.addPoint( atof(argv[i + 1]), atof(argv[i + 2]) );
796+
oRing.addPoint( CPLAtof(argv[i + 1]), CPLAtof(argv[i + 2]) );
797+
oRing.addPoint( CPLAtof(argv[i + 1]), CPLAtof(argv[i + 4]) );
798+
oRing.addPoint( CPLAtof(argv[i + 3]), CPLAtof(argv[i + 4]) );
799+
oRing.addPoint( CPLAtof(argv[i + 3]), CPLAtof(argv[i + 2]) );
800+
oRing.addPoint( CPLAtof(argv[i + 1]), CPLAtof(argv[i + 2]) );
801801

802802
poClipSrc = new OGRPolygon();
803803
((OGRPolygon *) poClipSrc)->addRing( &oRing );

0 commit comments

Comments
 (0)