Coverage Report

Created: 2026-09-26 08:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/ogr/ogrsf_frmts/idrisi/ogridrisidriver.cpp
Line
Count
Source
1
/******************************************************************************
2
 * $I$
3
 *
4
 * Project:  Idrisi Translator
5
 * Purpose:  Implements OGRIdrisiDriver.
6
 * Author:   Even Rouault, even dot rouault at spatialys.com
7
 *
8
 ******************************************************************************
9
 * Copyright (c) 2011, Even Rouault <even dot rouault at spatialys.com>
10
 *
11
 * SPDX-License-Identifier: MIT
12
 ****************************************************************************/
13
14
#include "cpl_conv.h"
15
#include "ogr_idrisi.h"
16
#include "ogrsf_frmts.h"
17
18
/************************************************************************/
19
/*                                Open()                                */
20
/************************************************************************/
21
22
static GDALDataset *OGRIdrisiOpen(GDALOpenInfo *poOpenInfo)
23
24
102k
{
25
102k
    if (poOpenInfo->eAccess == GA_Update)
26
52
    {
27
52
        return nullptr;
28
52
    }
29
30
    // --------------------------------------------------------------------
31
    //      Does this appear to be a .vct file?
32
    // --------------------------------------------------------------------
33
102k
    if (!poOpenInfo->IsExtensionEqualToCI("vct"))
34
102k
        return nullptr;
35
36
11
    auto poDS = std::make_unique<OGRIdrisiDataSource>();
37
38
11
    if (!poDS->Open(poOpenInfo->pszFilename))
39
11
    {
40
11
        return nullptr;
41
11
    }
42
43
0
    return poDS.release();
44
11
}
45
46
/************************************************************************/
47
/*                         RegisterOGRIdrisi()                          */
48
/************************************************************************/
49
50
void RegisterOGRIdrisi()
51
52
24
{
53
24
    if (GDALGetDriverByName("Idrisi") != nullptr)
54
0
        return;
55
56
24
    GDALDriver *poDriver = new GDALDriver();
57
24
    poDriver->SetDescription("Idrisi");
58
24
    poDriver->SetMetadataItem(GDAL_DMD_LONGNAME, "Idrisi Vector (.vct)");
59
24
    poDriver->SetMetadataItem(GDAL_DMD_EXTENSION, "vct");
60
24
    poDriver->SetMetadataItem(GDAL_DCAP_VECTOR, "YES");
61
24
    poDriver->SetMetadataItem(GDAL_DCAP_VIRTUALIO, "YES");
62
24
    poDriver->pfnOpen = OGRIdrisiOpen;
63
24
    GetGDALDriverManager()->RegisterDriver(poDriver);
64
24
}