4
#include "local_proto.h"
6
static int cmp(const void *, const void *);
8
int prepare_group_list(void)
15
/* open file to store group file names */
16
fd = fopen(group_list, "w");
18
G_fatal_error("Can't open any tempfiles");
21
* build sorted index into group files
22
* so that all raster maps for a mapset to appear together
24
idx = (int *)G_calloc(group.group_ref.nfiles, sizeof(int));
25
for (n = 0; n < group.group_ref.nfiles; n++)
27
qsort(idx, group.group_ref.nfiles, sizeof(int), cmp);
29
/* determine length of longest mapset name, and longest raster map name */
31
for (n = 0; n < group.group_ref.nfiles; n++) {
32
len = strlen(group.group_ref.file[n].name);
35
len = strlen(group.group_ref.file[n].mapset);
40
/* write lengths, names to file */
41
fwrite(&len1, sizeof(len1), 1, fd);
42
fwrite(&len2, sizeof(len2), 1, fd);
43
for (n = 0; n < group.group_ref.nfiles; n++)
44
fprintf(fd, "%s %s\n", group.group_ref.file[idx[n]].name,
45
group.group_ref.file[idx[n]].mapset);
53
static int cmp(const void *aa, const void *bb)
55
const int *a = aa, *b = bb;
59
strcmp(group.group_ref.file[*a].mapset,
60
group.group_ref.file[*b].mapset)) != 0)
62
return strcmp(group.group_ref.file[*a].name,
63
group.group_ref.file[*b].name);
66
/* ask the user to pick a file */
67
int choose_groupfile(char *name, char *mapset)
69
return ask_gis_files("cell", group_list, name, mapset, -1);