Dear Mike, Please add this to a relevant ticket, or create one and add it there.
http://trac.osgeo.org/gdal/report thanks, Etienne On Fri, Nov 4, 2011 at 4:27 PM, <mrx...@hotmail.com> wrote: > Dear all, > > Included is a patch for s57reader.cpp that properly applies updates for > certain types of charts. > > The essence of this patch is that SG2D field may not be present in > original record, and must be added if update is trying to insert SG2D > fields. > > The patch was made against our modified version of OGR, so line numbers > likely do not match and certain function signatures may need to be > updated. If you'd like to apply it - make sure it goes in the > S57Reader::ApplyRecordUpdate. > > Best, > -- > Mike > > > > Index: s57reader.cpp > =================================================================== > --- s57reader.cpp (revision 0000) > +++ s57reader.cpp (working copy) > @@ -2635,16 +2635,30 @@ > /* If we don't have SG2D, check for SG3D */ > if( poDstSG2D == NULL ) > { > - poSrcSG2D = poUpdate->FindField("SG3D"); > poDstSG2D = poTarget->FindField("SG3D"); > + if (poDstSG2D != NULL) { > + poSrcSG2D = poUpdate->FindField("SG3D"); > + } > } > > - if( (poSrcSG2D == NULL && nCCUI != 2) || poDstSG2D == NULL ) > + if( (poSrcSG2D == NULL && nCCUI != 2) || (poDstSG2D == NULL && nCCUI > != 1) ) > { > CPLAssert( FALSE ); > return FALSE; > } > > + if (poDstSG2D == NULL) { > + poTarget->AddField(poTarget->GetModule()->FindFieldDefn("SG2D")); > + poDstSG2D = poTarget->FindField("SG2D"); > + if (poDstSG2D == NULL) { > + CPLAssert( FALSE ); > + return FALSE; > + } > + > + // Delete null default data that was created > + poTarget->SetFieldRaw( poDstSG2D, 0, NULL, 0 ); > + } > + > nCoordSize = poDstSG2D->GetFieldDefn()->GetFixedWidth(); > > if( nCCUI == 1 ) /* INSERT */ > > _______________________________________________ > gdal-dev mailing list > gdal-dev@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/gdal-dev > _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev