7
static int cmp(const void *, const void *);
10
int prepare_group_list(void)
17
/* open file to store group file names */
18
fd = fopen(group_list, "w");
20
G_fatal_error("Can't open any tempfiles");
23
* build sorted index into group files
24
* so that all raster maps for a mapset to appear together
26
idx = (int *)G_calloc(group.group_ref.nfiles, sizeof(int));
27
for (n = 0; n < group.group_ref.nfiles; n++)
29
qsort(idx, group.group_ref.nfiles, sizeof(int), cmp);
31
/* determine length of longest mapset name, and longest raster map name */
33
for (n = 0; n < group.group_ref.nfiles; n++) {
34
len = strlen(group.group_ref.file[n].name);
37
len = strlen(group.group_ref.file[n].mapset);
42
/* write lengths, names to file */
43
fwrite(&len1, sizeof(len1), 1, fd);
44
fwrite(&len2, sizeof(len2), 1, fd);
45
for (n = 0; n < group.group_ref.nfiles; n++)
46
fprintf(fd, "%s %s\n", group.group_ref.file[idx[n]].name,
47
group.group_ref.file[idx[n]].mapset);
55
static int cmp(const void *aa, const void *bb)
57
const int *a = aa, *b = bb;
61
strcmp(group.group_ref.file[*a].mapset,
62
group.group_ref.file[*b].mapset)) != 0)
64
return strcmp(group.group_ref.file[*a].name,
65
group.group_ref.file[*b].name);
68
/* ask the user to pick a file */
69
int choose_groupfile(char *name, char *mapset)
71
return ask_gis_files("cell", group_list, name, mapset, -1);