GRASS 8 Programmer's Manual
8.5.0(2026)-8d6ceba290
Toggle main menu visibility
Loading...
Searching...
No Matches
nme_in_mps.c
Go to the documentation of this file.
1
/*!
2
\file lib/gis/nme_in_mps.c
3
4
\brief GIS Library - check map name
5
6
(C) 2001-2009, 2013 by the GRASS Development Team
7
8
This program is free software under the GNU General Public License
9
(>=v2). Read the file COPYING that comes with GRASS for details.
10
11
\author Original author CERL
12
*/
13
14
#include <string.h>
15
#include <grass/gis.h>
16
17
/*!
18
\brief Check if map name is fully qualified (map @ mapset)
19
20
Returns a fully qualified name for the file <i>name</i> in
21
<i>mapset</i>. Currently this string is in the form
22
<i>name\@mapset</i>, but the programmer should pretend not to know this
23
and always call this routine to get the fully qualified name.
24
25
Note:
26
- <i>name</i> is char array of size GNAME_MAX
27
- <i>mapset</i> is char array of size GMAPSET_MAX
28
29
\param fullname full map name
30
\param[out] name map name
31
\param[out] mapset mapset name
32
33
\return 1 if input map name is fully qualified
34
\return 0 if input map name is not fully qualified
35
*/
36
int
G_name_is_fully_qualified
(
const
char
*fullname,
char
*
name
,
char
*mapset)
37
{
38
const
char
*p;
39
char
*q;
40
41
/* search for name@mapset */
42
43
*
name
= *mapset = 0;
44
45
for
(p = fullname; *p; p++)
46
if
(*p ==
'@'
)
47
break
;
48
49
if
(*p == 0)
50
return
0;
51
52
/* copy the name part */
53
q =
name
;
54
while
(fullname != p)
55
*q++ = *fullname++;
56
*q = 0;
57
58
/* copy the mapset part */
59
p++;
/* skip the @ */
60
q = mapset;
61
while
((*q++ = *p++))
62
;
63
64
return
(*
name
&& *mapset);
65
}
66
67
/*!
68
\brief Get fully qualified element name
69
70
Returns a fully qualified name for GIS element <i>name</i> in
71
<i>mapset</i>. Currently this string is in the form
72
<b>name\@mapset</b>, but the programmer should pretend not to know
73
this and always call this routine to get the fully qualified name.
74
75
String is allocated by G_store().
76
77
\code
78
#include <grass/gis.h>
79
int main(char *argc, char **argv)
80
{
81
char name[GNAME_MAX], *mapset, *fqn;
82
char command[1024];
83
84
G_gisinit(argv[0]);
85
mapset = G_find_rast(name, "");
86
if (mapset == NULL)
87
exit(EXIT_SUCCESS);
88
89
fqn = G_fully_qualified_name (name, mapset);
90
printf (stdout, "map='%s'", fqn);
91
92
exit(EXIT_SUCCESS);
93
}
94
\endcode
95
96
\param name element name
97
\param mapset mapset name
98
99
\return pointer to full element name (map\@mapset)
100
*/
101
char
*
G_fully_qualified_name
(
const
char
*
name
,
const
char
*mapset)
102
{
103
char
fullname[GNAME_MAX + GMAPSET_MAX];
104
105
if
(strchr(
name
,
'@'
) || strlen(mapset) < 1) {
106
snprintf(fullname,
sizeof
(fullname),
"%s"
,
name
);
107
}
108
else
{
109
snprintf(fullname,
sizeof
(fullname),
"%s@%s"
,
name
, mapset);
110
}
111
112
return
G_store
(fullname);
113
}
114
115
/*!
116
\brief Returns unqualified map name (without @ mapset)
117
118
Returns an unqualified name for the file <i>name</i> in
119
<i>mapset</i>.
120
121
Note:
122
- <i>name, xname</i> are char array of size GNAME_MAX
123
- <i>mapset, xmapset</i> are char array of size GMAPSET_MAX
124
125
\param name map name
126
\param mapset mapset to check or NULL
127
\param[out] xname map name
128
\param[out] xmapset mapset name
129
130
\return 1 if input map name is fully qualified
131
\return 0 if name is not fully qualified
132
\return -1 if input mapset invalid (mapset != xmapset)
133
*/
134
int
G_unqualified_name
(
const
char
*
name
,
const
char
*mapset,
char
*xname,
135
char
*xmapset)
136
{
137
if
(
G_name_is_fully_qualified
(
name
, xname, xmapset)) {
138
/* name is fully qualified */
139
if
(mapset && *mapset && strcmp(mapset, xmapset) != 0)
140
return
-1;
141
return
1;
142
}
143
144
/* name is not fully qualified */
145
strcpy
(xname,
name
);
146
if
(mapset)
147
strcpy
(xmapset, mapset);
148
else
149
xmapset[0] =
'\0'
;
150
151
return
0;
152
}
name
const char * name
Definition
named_colr.c:6
G_fully_qualified_name
char * G_fully_qualified_name(const char *name, const char *mapset)
Get fully qualified element name.
Definition
nme_in_mps.c:101
G_name_is_fully_qualified
int G_name_is_fully_qualified(const char *fullname, char *name, char *mapset)
Check if map name is fully qualified (map @ mapset).
Definition
nme_in_mps.c:36
G_unqualified_name
int G_unqualified_name(const char *name, const char *mapset, char *xname, char *xmapset)
Returns unqualified map name (without @ mapset).
Definition
nme_in_mps.c:134
strcpy
#define strcpy
Definition
parson.c:66
G_store
char * G_store(const char *s)
Copy string to allocated memory.
Definition
strings.c:87
gis
nme_in_mps.c
Generated on
for GRASS 8 Programmer's Manual by
1.17.0