File: get_maps.c

package info (click to toggle)
grass 8.4.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 277,040 kB
  • sloc: ansic: 460,798; python: 227,732; cpp: 42,026; sh: 11,262; makefile: 7,007; xml: 3,637; sql: 968; lex: 520; javascript: 484; yacc: 450; asm: 387; perl: 157; sed: 25; objc: 6; ruby: 4
file content (41 lines) | stat: -rw-r--r-- 790 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <grass/gis.h>
#include "local_proto.h"

static int cmp(const void *, const void *);

char **get_available_mapsets(int *nmapsets)
{
    char **ms, **mapset_name;
    int i, n;

    ms = G_get_available_mapsets();
    for (n = 0; ms[n]; n++)
        ;

    mapset_name = (char **)G_malloc(n * sizeof(char *));
    for (i = 0; i < n; i++)
        mapset_name[i] = G_store(ms[i]);

    /* sort mapsets */
    qsort(mapset_name, n, sizeof(char *), cmp);

    *nmapsets = n;

    return mapset_name;
}

int cmp(const void *a, const void *b)
{
    return (strcmp(*(char **)a, *(char **)b));
}

const char *substitute_mapset(const char *mapset)
{
    if (strcmp(mapset, ".") == 0)
        return G_mapset();

    return mapset;
}