comparison ueda/mclutils/csvattr.c @ 131:125fc4ef7eb0

ueda-csvattr program written, compiles
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 31 Aug 2020 00:01:59 +0000
parents
children
comparison
equal deleted inserted replaced
130:c165882efdf1 131:125fc4ef7eb0
1 /*
2 * This program generates a CSV output listing all components in their
3 * MCL order and carrying a selected set of attributes as columns.
4 */
5
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <string.h>
9 #include <strings.h>
10 #include <unistd.h>
11 #include "../libueda/mcl.h"
12
13 extern char *MCLfile;
14 extern struct component components[];
15 extern int ncomponents;
16 extern char *get_comp_attr();
17
18 main(argc, argv)
19 char **argv;
20 {
21 extern int optind;
22 register int c, ai;
23 register struct component *comp;
24 register char *attr;
25
26 while ((c = getopt(argc, argv, "M:")) != EOF)
27 switch (c) {
28 case 'M':
29 MCLfile = optarg;
30 break;
31 default:
32 /* getopt prints the error message */
33 exit(1);
34 }
35
36 read_MCL();
37 /* emit CSV header */
38 fputs("Refdes", stdout);
39 for (ai = optind; ai < argc; ai++)
40 printf(",%s", argv[ai]);
41 putchar('\n');
42
43 for (comp = components, c = 0; c < ncomponents; comp++, c++) {
44 fputs(comp->name, stdout);
45 for (ai = optind; ai < argc; ai++) {
46 attr = get_comp_attr(comp, argv[ai]);
47 if (!attr)
48 attr = "";
49 printf(",%s", attr);
50 }
51 putchar('\n');
52 }
53 exit(0);
54 }