File: other.c

package info (click to toggle)
grass 6.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 40,044 kB
  • ctags: 31,303
  • sloc: ansic: 321,125; tcl: 25,676; sh: 11,176; cpp: 10,098; makefile: 5,025; fortran: 1,846; yacc: 493; lex: 462; perl: 133; sed: 1
file content (56 lines) | stat: -rw-r--r-- 989 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include "gis.h"
#include "local_proto.h"

static char *filename (char *name, char *mapset)
{
    static char path[1024];
    G__file_name (path, "", name, mapset);
    return path;
}

int mapset_permissions (char *mapset)
{
    int stat;

    stat = G__mapset_permissions (mapset);
    if (stat == 1)
    {
	if(access(filename (".lock", mapset), 0) == 0)
	    stat = 0;
    }
    return stat;
}

int mapset_message (char *mapset)
{
    if(printfile(filename (".message", mapset)))
	hit_return();

    return 0;
}

int mapset_question (char *mapset)
{
    if(printfile(filename(".question", mapset)))
	return G_yes("Select this mapset? ", -1);
    return 1;
}

int printfile (char *name)
{
    int fd;
    int n;
    char buf[1024];

    fd = open (name, 0);
    if (fd < 0) return 0;
    while ((n = read (fd, buf, sizeof buf)) > 0)
	write (1, buf, n);
    close (fd);
    return 1;
}