static GDALDataset *OGRShapeDriverOpen( GDALOpenInfo* poOpenInfo )
{
if( OGRShapeDriverIdentify(poOpenInfo) == FALSE )
return nullptr;
#ifdef DEBUG
// For AFL, so that .cur_input is detected as the archive filename.
if( poOpenInfo->fpL != nullptr &&
!STARTS_WITH(poOpenInfo->pszFilename, "/vsitar/") &&
EQUAL(CPLGetFilename(poOpenInfo->pszFilename), ".cur_input") )
{
GDALOpenInfo oOpenInfo(
(CPLString("/vsitar/") + poOpenInfo->pszFilename).c_str(),
poOpenInfo->nOpenFlags );
oOpenInfo.papszOpenOptions = poOpenInfo->papszOpenOptions;
return OGRShapeDriverOpen(&oOpenInfo);
}
#endif
OGRShapeDataSource *poDS = new OGRShapeDataSource();
if( !poDS->Open( poOpenInfo, true ) )
{
delete poDS;
return nullptr;
}
return poDS;
}