blob: e7361e56a4e73ece8fad8294d1c3750c68fa808f (
plain) (
blame)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
/**
* VOTCONCAT
*
* Example program to concatenate N input tables to a new output table.
*
* Usage:
* votconcat [-o <out>] <vot1> <vot2> .....
*
* Where
* <vot1> First input table
* <vot2> Second input table
* -o <out> Optional output table, otherwise stdout
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include "votParse.h"
#define MAX_FILES 1024
char *infile[MAX_FILES];
int in_vot[MAX_FILES];
int in_res[MAX_FILES];
int nfiles = 0; /* Number of input files */
int out = 0; /* Output VOTable handle */
int vot = 0; /* First VOTable handle */
int res = 0; /* <RESOURCE> handle */
/**
* Program entry point.
*/
int
main (int argc, char **argv)
{
char *out_fname = (char *) "stdout";
int i, verbose = 0, indent = 1;;
if (argc < 3) {
fprintf (stderr, "Usage: votconcat [-o <out>] <vot1> <vot2> ....\n");
return (1);
} else if (argc >= 2) {
for (i=1; i < argc; i++) {
if (argv[i][0] == '-' && strlen (argv[i]) > 1) {
switch (argv[i][1]) {
case 'i': indent = atoi (argv[++i]); break;
case 'o': out_fname = argv[++i]; break;
case 'v': verbose++; break;
default:
fprintf (stderr, "Unrecognized option '%c'\n", argv[i][1]);
return (1);
}
} else
infile[nfiles++] = argv[i];
}
}
/* Open output table.
*/
out = vot_openVOTABLE (NULL);
/* Loop over the input tables on the cmdline.
*/
for (i=0; i < nfiles; i++) {
vot = vot_openVOTABLE (infile[i]); /* Parse the table */
/* Concat tables.
*/
if ((res = vot_getRESOURCE (vot)))
vot_attachNode (out, res);
vot_closeVOTABLE (vot); /* Close the tables */
}
/* Write it out.
*/
vot_writeVOTable (out, out_fname, indent);
/* Close (and free) the output table.
*/
if (out)
vot_closeVOTABLE (out);
return (0);
}
|