annotate pads2gpcb/parttype.c @ 133:603d8da32fd0

protel2donl: brown paper bag bugfix
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 06 Sep 2020 23:14:14 +0000
parents ac13abc7dc0d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
63
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
1 #include <stdio.h>
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
2 #include <stdlib.h>
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
3 #include <ctype.h>
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
4 #include <string.h>
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
5 #include <strings.h>
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
6 #include "globals.h"
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
7 #include "struct.h"
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
8
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
9 extern struct part_decal *find_decal_by_name();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
10 extern char *savestr();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
11
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
12 static struct part_type *our_parttype;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
13 static int ngates, nsignals;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
14
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
15 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
16 enter_parttype()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
17 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
18 struct part_type *p, **pp;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
19 char *name = input_line_fields[0];
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
20
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
21 for (pp = &part_type_list; p = *pp; pp = &p->next)
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
22 if (!strcmp(p->name, name)) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
23 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
24 "%s line %d: part type name \"%s\" already defined\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
25 input_filename, input_lineno, name);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
26 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
27 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
28 p = malloc(sizeof(struct part_type) + strlen(name) + 1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
29 if (!p) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
30 perror("malloc of struct part_type");
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
31 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
32 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
33 bzero(p, sizeof(struct part_type));
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
34 p->name = (char *)(p + 1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
35 strcpy(p->name, name);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
36 *pp = p;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
37 our_parttype = p;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
38 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
39
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
40 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
41 find_decals()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
42 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
43 char *cp, *np;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
44 struct part_decal *decal;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
45
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
46 for (cp = input_line_fields[1]; cp; cp = np) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
47 np = index(cp, ':');
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
48 if (np)
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
49 *np++ = '\0';
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
50 if (!*cp)
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
51 continue;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
52 decal = find_decal_by_name(cp);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
53 if (!decal) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
54 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
55 "%s line %d: part type definition refers to unknown decal name \"%s\"\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
56 input_filename, input_lineno, cp);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
57 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
58 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
59 if (our_parttype->ndecals >= MAX_DECALS_PER_PART_TYPE) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
60 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
61 "%s line %d: MAX_DECALS_PER_PART_TYPE exceeded\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
62 input_filename, input_lineno);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
63 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
64 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
65 our_parttype->decals[our_parttype->ndecals++] = decal;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
66 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
67 if (!our_parttype->ndecals) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
68 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
69 "%s line %d: empty list of decals in part type def\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
70 input_filename, input_lineno);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
71 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
72 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
73 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
74
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
75 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
76 process_header_line()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
77 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
78 if (input_line_nfields < 6) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
79 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
80 "%s line %d: expected beginning of part type definition, wrong # of fields\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
81 input_filename, input_lineno);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
82 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
83 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
84 enter_parttype();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
85 printf("Processing part type %s\n", our_parttype->name);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
86 find_decals();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
87 ngates = atoi(input_line_fields[3]);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
88 nsignals = atoi(input_line_fields[4]);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
89 our_parttype->num_alpha_pins = atoi(input_line_fields[5]);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
90 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
91
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
92 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
93 get_line_internal()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
94 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
95 if (!get_input_line()) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
96 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
97 "error: EOF in the middle of a part type definition\n");
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
98 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
99 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
100 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
101
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
102 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
103 process_one_gate_def()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
104 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
105 int gatepins;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
106
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
107 get_line_internal();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
108 parse_input_line_fields();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
109 if (input_line_nfields != 3 || strcmp(input_line_fields[0], "G")) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
110 fprintf(stderr, "%s line %d: expected gate def header line\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
111 input_filename, input_lineno);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
112 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
113 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
114 gatepins = atoi(input_line_fields[2]);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
115 while (gatepins > 0) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
116 get_line_internal();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
117 parse_input_line_fields();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
118 gatepins -= input_line_nfields;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
119 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
120 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
121
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
122 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
123 alloc_alpha_pins_array()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
124 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
125 our_parttype->alpha_pins =
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
126 malloc(sizeof(char *) * our_parttype->num_alpha_pins);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
127 if (!our_parttype->alpha_pins) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
128 perror("malloc of alpha_pins array");
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
129 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
130 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
131 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
132
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
133 static void
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
134 read_alpha_pins()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
135 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
136 int idx, i;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
137
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
138 for (idx = 0; idx < our_parttype->num_alpha_pins; ) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
139 get_line_internal();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
140 parse_input_line_fields();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
141 for (i = 0; i < input_line_nfields; i++) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
142 if (idx >= our_parttype->num_alpha_pins) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
143 fprintf(stderr,
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
144 "%s line %d: alpha_pins array overflow\n",
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
145 input_filename, input_lineno);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
146 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
147 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
148 our_parttype->alpha_pins[idx++] =
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
149 savestr(input_line_fields[i]);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
150 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
151 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
152 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
153
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
154 static void
79
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
155 write_alpha_pins_footprint()
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
156 {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
157 struct footprint_body *fpbody;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
158 char *filename, *cp, *dp;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
159 int c;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
160 FILE *outf;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
161
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
162 if (our_parttype->ndecals != 1) {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
163 printf(
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
164 "Warning: part type with alpha pins and multiple decals: save not supported\n");
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
165 return;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
166 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
167 fpbody = our_parttype->decals[0]->body;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
168 if (!fpbody)
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
169 return;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
170 if (our_parttype->num_alpha_pins != fpbody->npins) {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
171 printf("Error: # of alpha pin names != # of actual pins\n");
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
172 return;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
173 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
174
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
175 filename = malloc(strlen(our_parttype->name) * 3 + 11);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
176 if (!filename) {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
177 perror("malloc for output file name");
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
178 exit(1);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
179 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
180 strcpy(filename, "alphapins/");
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
181 dp = filename + 10;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
182 for (cp = our_parttype->name; *cp; ) {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
183 c = *cp++;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
184 if (isalnum(c) || c == '-' || c == '.' || c == '_')
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
185 *dp++ = c;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
186 else {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
187 sprintf(dp, "%%%02X", c);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
188 dp += 3;
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
189 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
190 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
191 *dp = '\0';
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
192 outf = fopen(filename, "w");
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
193 if (!outf) {
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
194 perror(filename);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
195 exit(1);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
196 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
197 write_gpcb_element(outf, fpbody, our_parttype->alpha_pins,
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
198 "", "", "", 0);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
199 fclose(outf);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
200 printf("Written to %s\n", filename);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
201 free(filename);
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
202 }
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
203
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
204 static void
63
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
205 process_one_parttype()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
206 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
207 int i;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
208
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
209 process_header_line();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
210 for (i = 0; i < ngates; i++)
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
211 process_one_gate_def();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
212 for (i = 0; i < nsignals; i++)
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
213 get_line_internal();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
214 if (our_parttype->num_alpha_pins) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
215 alloc_alpha_pins_array();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
216 read_alpha_pins();
79
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
217 if (write_footprint_files)
ac13abc7dc0d pads2gpcb -f: saving of alphapins footprints implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 65
diff changeset
218 write_alpha_pins_footprint();
63
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
219 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
220 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
221
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
222 process_parttype_section()
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
223 {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
224 for (;;) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
225 if (!get_input_line()) {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
226 fprintf(stderr, "error: EOF in PARTTYPE section\n");
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
227 exit(1);
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
228 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
229 if (input_line_buf[0] == '*') {
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
230 parse_starline();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
231 if (strcmp(input_line_starkw, "REMARK"))
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
232 break;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
233 else
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
234 continue;
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
235 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
236 parse_input_line_fields();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
237 if (input_line_nfields)
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
238 process_one_parttype();
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
239 }
455a0051f9d2 pads2gpcb: PARTTYPE parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff changeset
240 }
65
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
241
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
242 struct part_type *
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
243 find_parttype_by_name(name)
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
244 char *name;
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
245 {
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
246 struct part_type *p;
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
247
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
248 for (p = part_type_list; p; p = p->next)
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
249 if (!strcmp(p->name, name))
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
250 break;
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
251 return(p);
2b71943a311b pads2gpcb: PART section parsing implemented, compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 63
diff changeset
252 }