FreeCalypso > hg > ueda-linux
annotate pads2gpcb/decals.c @ 53:0e18818206e5
pads2gpcb/decals.c: silk line extraction appears to work
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 31 Jan 2016 01:39:31 +0000 |
parents | 727d4e56d5c8 |
children | a930e05cf908 |
rev | line source |
---|---|
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 #include <stdio.h> |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
2 #include <stdlib.h> |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 #include <ctype.h> |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 #include <string.h> |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 #include <strings.h> |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 #include "globals.h" |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
7 #include "struct.h" |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
8 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
9 extern long convert_input_dim(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
10 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
11 static struct part_decal *current_decal; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
12 static struct footprint_body fpbody; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
13 static struct footprint_pad *pins_array; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
14 |
52
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
15 #define MAX_SILK_LINES 16 |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
16 static struct element_line silk_lines[MAX_SILK_LINES]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
17 static struct element_arc silk_arcs[MAX_SILK_LINES]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
18 static int num_silk_lines; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
19 static int num_silk_arcs; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
20 |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
21 #define SOLDERMASK_DELTA (600 * 254) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
22 #define CLEARANCE_SETTING (2000 * 254) |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
23 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
24 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
25 enter_decal() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
26 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
27 struct part_decal *p, **pp; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
28 char *name = input_line_fields[0]; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
29 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
30 for (pp = &part_decal_list; p = *pp; pp = &p->next) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
31 if (!strcmp(p->name, name)) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
32 fprintf(stderr, |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
33 "%s line %d: decal name \"%s\" already defined\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
34 input_filename, input_lineno, name); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
35 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
36 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
37 p = malloc(sizeof(struct part_decal) + strlen(name) + 1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
38 if (!p) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
39 perror("malloc of struct part_decal"); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
40 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
41 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
42 p->name = (char *)(p + 1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
43 strcpy(p->name, name); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
44 p->body = 0; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
45 p->next = 0; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
46 *pp = p; |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
47 current_decal = p; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
48 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
49 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
50 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
51 get_line_internal() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
52 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
53 if (!get_input_line()) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
54 fprintf(stderr, |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
55 "error: EOF in the middle of a part decal definition\n"); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
56 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
57 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
58 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
59 |
52
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
60 static |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
61 try_silk_open_closed() |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
62 { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
63 int ncoord, i, bad; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
64 long x[MAX_SILK_LINES+1], y[MAX_SILK_LINES+1]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
65 long thickness; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
66 |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
67 if (strcmp(input_line_fields[0], "OPEN") && |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
68 strcmp(input_line_fields[0], "CLOSED")) |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
69 return(0); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
70 if (input_line_nfields != 5) |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
71 return(0); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
72 if (strcmp(input_line_fields[4], "0")) |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
73 return(0); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
74 ncoord = atoi(input_line_fields[1]); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
75 if (ncoord < 2) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
76 printf("line %d: silk %s piece ncoord < 2\n", input_lineno, |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
77 input_line_fields[0]); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
78 return(0); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
79 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
80 if (ncoord > MAX_SILK_LINES + 1) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
81 printf("line %d: silk %s piece ncoord too big\n", input_lineno, |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
82 input_line_fields[0]); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
83 return(0); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
84 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
85 thickness = convert_input_dim(input_line_fields[2]); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
86 |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
87 bad = 0; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
88 for (i = 0; i < ncoord; i++) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
89 get_line_internal(); |
53
0e18818206e5
pads2gpcb/decals.c: silk line extraction appears to work
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
52
diff
changeset
|
90 parse_input_line_fields(); |
52
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
91 if (input_line_nfields != 2) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
92 printf("line %d: silk line coord not 2 numbers\n", |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
93 input_lineno); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
94 bad = 1; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
95 continue; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
96 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
97 x[i] = convert_input_dim(input_line_fields[0]); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
98 y[i] = -convert_input_dim(input_line_fields[1]); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
99 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
100 if (bad) |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
101 return(1); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
102 |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
103 for (i = 0; i < ncoord - 1; i++) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
104 if (num_silk_lines >= MAX_SILK_LINES) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
105 printf("Too many silk lines!\n"); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
106 return(1); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
107 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
108 silk_lines[num_silk_lines].x1 = x[i]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
109 silk_lines[num_silk_lines].y1 = y[i]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
110 silk_lines[num_silk_lines].x2 = x[i+1]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
111 silk_lines[num_silk_lines].y2 = y[i+1]; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
112 silk_lines[num_silk_lines].thickness = thickness; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
113 num_silk_lines++; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
114 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
115 return(1); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
116 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
117 |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
118 static |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
119 try_silk_circle() |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
120 { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
121 return(0); |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
122 } |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
123 |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
124 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
125 one_drawing_piece() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
126 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
127 int ncoord, i; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
128 |
52
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
129 /* extract silk lines and arcs if enabled, otherwise skip */ |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
130 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
131 parse_input_line_fields(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
132 if (input_line_nfields < 2) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
133 fprintf(stderr, |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
134 "%s line %d: expected piece header line giving # of coords\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
135 input_filename, input_lineno); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
136 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
137 } |
52
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
138 if (do_footprint_silk) { |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
139 if (try_silk_open_closed()) |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
140 return; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
141 if (try_silk_circle()) |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
142 return; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
143 } |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
144 ncoord = atoi(input_line_fields[1]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
145 for (i = 0; i < ncoord; i++) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
146 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
147 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
148 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
149 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
150 one_text_item() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
151 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
152 /* just skip it for now */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
153 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
154 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
155 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
156 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
157 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
158 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
159 one_attr_label() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
160 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
161 /* just skip it for now */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
162 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
163 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
164 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
165 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
166 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
167 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
168 read_pindef_line(idx) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
169 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
170 get_line_internal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
171 if (input_line_buf[0] != 'T') { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
172 fprintf(stderr, "%s line %d: 'T' line expected\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
173 input_filename, input_lineno); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
174 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
175 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
176 parse_input_line_fields(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
177 if (input_line_nfields != 5) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
178 fprintf(stderr, "%s line %d: expected 5 fields in 'T' line\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
179 input_filename, input_lineno); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
180 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
181 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
182 input_line_fields[0]++; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
183 |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
184 if (atoi(input_line_fields[4]) != idx + 1) { |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
185 fprintf(stderr, |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
186 "%s line %d: expected %d in the pin number field\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
187 input_filename, input_lineno); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
188 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
189 } |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
190 pins_array[idx].x1 = convert_input_dim(input_line_fields[0]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
191 pins_array[idx].y1 = -convert_input_dim(input_line_fields[1]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
192 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
193 |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
194 static void |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
195 process_pad_shape(padptr) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
196 struct pad_shape_info *padptr; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
197 { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
198 padptr->short_dim = convert_input_dim(input_line_fields[1]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
199 if (padptr->short_dim <= 0) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
200 printf("line %d: pad short dim <= 0\n", input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
201 return; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
202 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
203 if (!strcmp(input_line_fields[2], "R")) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
204 padptr->rounded = 1; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
205 padptr->elongated = 0; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
206 } else if (!strcmp(input_line_fields[2], "S")) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
207 padptr->rounded = 0; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
208 padptr->elongated = 0; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
209 } else if (!strcmp(input_line_fields[2], "OF")) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
210 padptr->rounded = 1; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
211 padptr->elongated = 1; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
212 } else if (!strcmp(input_line_fields[2], "RF")) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
213 padptr->rounded = 0; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
214 padptr->elongated = 1; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
215 } else { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
216 printf("line %d: unsupported pad shape %s\n", input_lineno, |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
217 input_line_fields[2]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
218 return; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
219 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
220 if (padptr->elongated) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
221 if (input_line_nfields < 6) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
222 fprintf(stderr, |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
223 "%s line %d: too few fields in OF/RF pad stack line\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
224 input_filename, input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
225 exit(1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
226 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
227 padptr->angle = parse_input_angle_90s(input_line_fields[3]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
228 if (padptr->angle != 0 && padptr->angle != 90) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
229 printf("line %d: unsupported OF/RF angle\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
230 input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
231 return; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
232 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
233 padptr->long_dim = convert_input_dim(input_line_fields[4]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
234 if (strcmp(input_line_fields[5], "0")) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
235 printf("line %d: unsupported nonzero finoffset\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
236 input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
237 return; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
238 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
239 if (padptr->long_dim <= padptr->short_dim) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
240 printf("line %d: OF/RF long dim <= short dim\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
241 input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
242 return; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
243 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
244 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
245 padptr->valid = 1; |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
246 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
247 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
248 static void |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
249 one_padstack_def() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
250 { |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
251 int pinno, stacklines, i; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
252 struct pad_shape_info *padptr; |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
253 |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
254 get_line_internal(); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
255 parse_input_line_fields(); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
256 if (input_line_nfields != 3 || strcmp(input_line_fields[0], "PAD")) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
257 fprintf(stderr, "%s line %d: expected PAD header line\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
258 input_filename, input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
259 exit(1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
260 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
261 pinno = atoi(input_line_fields[1]); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
262 stacklines = atoi(input_line_fields[2]); |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
263 |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
264 if (pinno < 0 || pinno > fpbody.npins) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
265 fprintf(stderr, "%s line %d: PAD pinno field invalid\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
266 input_filename, input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
267 exit(1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
268 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
269 if (pinno) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
270 padptr = &pins_array[pinno-1].shape; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
271 else |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
272 padptr = &fpbody.default_pad; |
43
4a50888d09ce
pads2gpcb: handle error cases when the default pad is defined, but failed
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
41
diff
changeset
|
273 padptr->defined = 1; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
274 |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
275 for (i = 0; i < stacklines; i++) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
276 get_line_internal(); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
277 parse_input_line_fields(); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
278 if (input_line_nfields < 3) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
279 fprintf(stderr, |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
280 "%s line %d: too few fields in pad stack line\n", |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
281 input_filename, input_lineno); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
282 exit(1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
283 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
284 if (!strcmp(input_line_fields[0], "-2")) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
285 process_pad_shape(padptr); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
286 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
287 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
288 |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
289 static void |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
290 apply_default_padstack() |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
291 { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
292 int i; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
293 |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
294 if (!fpbody.default_pad.valid) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
295 return; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
296 for (i = 0; i < fpbody.npins; i++) |
43
4a50888d09ce
pads2gpcb: handle error cases when the default pad is defined, but failed
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
41
diff
changeset
|
297 if (!pins_array[i].shape.defined) |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
298 pins_array[i].shape = fpbody.default_pad; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
299 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
300 |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
301 static |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
302 convert_pad_to_gpcb(pinidx) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
303 { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
304 struct footprint_pad *pin = pins_array + pinidx; |
44
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
305 long long_minus_short, delta; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
306 |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
307 if (!pin->shape.valid) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
308 printf("error: no pad shape for pin #%d\n", pinidx + 1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
309 return(-1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
310 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
311 pin->thickness = pin->shape.short_dim; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
312 pin->clearance = CLEARANCE_SETTING; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
313 pin->mask = pin->thickness + SOLDERMASK_DELTA; |
44
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
314 pin->x2 = pin->x1; |
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
315 pin->y2 = pin->y1; |
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
316 if (!pin->shape.elongated) |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
317 return(0); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
318 long_minus_short = pin->shape.long_dim - pin->shape.short_dim; |
44
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
319 delta = long_minus_short / 2; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
320 switch (pin->shape.angle) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
321 case 0: |
44
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
322 pin->x1 -= delta; |
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
323 pin->x2 += delta; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
324 return(0); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
325 case 90: |
44
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
326 pin->y1 -= delta; |
bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
43
diff
changeset
|
327 pin->y2 += delta; |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
328 return(0); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
329 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
330 return(-1); |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
331 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
332 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
333 static void |
48
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
334 write_decal_as_element() |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
335 { |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
336 char *filename, *cp, *dp; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
337 int c; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
338 FILE *outf; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
339 |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
340 filename = malloc(strlen(current_decal->name) * 3 + 8); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
341 if (!filename) { |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
342 perror("malloc for output file name"); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
343 exit(1); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
344 } |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
345 strcpy(filename, "decals/"); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
346 dp = filename + 7; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
347 for (cp = current_decal->name; *cp; ) { |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
348 c = *cp++; |
49
b3b7013d9228
pads2gpcb.c/decals.c: allow underscores in written decal file names
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
48
diff
changeset
|
349 if (isalnum(c) || c == '-' || c == '.' || c == '_') |
48
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
350 *dp++ = c; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
351 else { |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
352 sprintf(dp, "%%%02X", c); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
353 dp += 3; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
354 } |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
355 } |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
356 *dp = '\0'; |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
357 outf = fopen(filename, "w"); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
358 if (!outf) { |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
359 perror(filename); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
360 exit(1); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
361 } |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
362 write_gpcb_element(outf, current_decal->body, 0, "", "", "", 0); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
363 fclose(outf); |
49
b3b7013d9228
pads2gpcb.c/decals.c: allow underscores in written decal file names
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
48
diff
changeset
|
364 printf("Written to %s\n", filename); |
48
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
365 free(filename); |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
366 } |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
367 |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
368 static void |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
369 process_one_decal() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
370 { |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
371 int num_drawing_pieces, num_padstack_defs; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
372 int num_text_items, num_attr_labels; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
373 int i, valid; |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
374 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
375 if (input_line_nfields < 7 || input_line_nfields > 9) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
376 fprintf(stderr, |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
377 "%s line %d: expected beginning of part decal definition, wrong # of fields\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
378 input_filename, input_lineno); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
379 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
380 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
381 enter_decal(); |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
382 printf("Processing decal %s\n", current_decal->name); |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
383 bzero(&fpbody, sizeof fpbody); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
384 if (input_line_fields[1][0] != 'I' && input_line_fields[1][0] != 'M' |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
385 || input_line_fields[1][1]) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
386 fprintf(stderr, "%s line %d: expected 'I' or 'M' in field 1\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
387 input_filename, input_lineno); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
388 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
389 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
390 fpbody.src_units = input_line_fields[1][0]; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
391 if (input_units_global == 'B') |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
392 input_units_current = 'B'; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
393 else |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
394 input_units_current = fpbody.src_units; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
395 fpbody.mark_x = convert_input_dim(input_line_fields[2]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
396 fpbody.mark_y = -convert_input_dim(input_line_fields[3]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
397 num_drawing_pieces = atoi(input_line_fields[4]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
398 fpbody.npins = atoi(input_line_fields[5]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
399 num_padstack_defs = atoi(input_line_fields[6]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
400 if (input_line_nfields > 7) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
401 num_text_items = atoi(input_line_fields[7]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
402 else |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
403 num_text_items = 0; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
404 if (input_line_nfields > 8) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
405 num_attr_labels = atoi(input_line_fields[8]); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
406 else |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
407 num_attr_labels = 0; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
408 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
409 /* sanity checks */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
410 if (fpbody.npins < 1) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
411 fprintf(stderr, "%s line %d: # of terminals %d < 1\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
412 input_filename, input_lineno, fpbody.npins); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
413 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
414 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
415 if (num_padstack_defs < 1) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
416 fprintf(stderr, "%s line %d: # of pad stack defs %d < 1\n", |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
417 input_filename, input_lineno, num_padstack_defs); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
418 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
419 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
420 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
421 /* done parsing the header line, initialize some misc */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
422 fpbody.refdes_scale = 100; |
52
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
423 num_silk_lines = 0; |
727d4e56d5c8
pads2gpcb/decals.c: silk line extraction implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
49
diff
changeset
|
424 num_silk_arcs = 0; |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
425 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
426 /* read and process the miscellany */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
427 for (i = 0; i < num_drawing_pieces; i++) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
428 one_drawing_piece(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
429 for (i = 0; i < num_text_items; i++) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
430 one_text_item(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
431 for (i = 0; i < num_attr_labels; i++) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
432 one_attr_label(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
433 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
434 /* the meat: allocate and fill the pins array */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
435 pins_array = malloc(sizeof(struct footprint_pad) * fpbody.npins); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
436 if (!pins_array) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
437 perror("malloc of the pins array"); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
438 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
439 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
440 fpbody.pins = pins_array; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
441 bzero(pins_array, sizeof(struct footprint_pad) * fpbody.npins); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
442 for (i = 0; i < fpbody.npins; i++) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
443 read_pindef_line(i); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
444 /* read and process the pad stack definitions */ |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
445 for (i = 0; i < num_padstack_defs; i++) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
446 one_padstack_def(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
447 |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
448 /* post-processing */ |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
449 apply_default_padstack(); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
450 valid = 1; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
451 for (i = 0; i < fpbody.npins; i++) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
452 if (convert_pad_to_gpcb(i) < 0) |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
453 valid = 0; |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
454 if (valid) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
455 /* good, save it */ |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
456 current_decal->body = malloc(sizeof(struct footprint_body)); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
457 if (!current_decal->body) { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
458 perror("malloc to save footprint body"); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
459 exit(1); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
460 } |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
461 *current_decal->body = fpbody; |
48
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
462 if (write_decal_files) |
c977d637f038
pads2gpcb: decals/* writing implemented
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
44
diff
changeset
|
463 write_decal_as_element(); |
41
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
464 } else { |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
465 printf("decal to gpcb fp conversion FAILED\n"); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
466 free(pins_array); |
a2d304ec3817
pads2gpcb: decal processing code compiles
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
40
diff
changeset
|
467 } |
40
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
468 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
469 |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
470 process_partdecal_section() |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
471 { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
472 for (;;) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
473 if (!get_input_line()) { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
474 fprintf(stderr, "error: EOF in PARTDECAL section\n"); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
475 exit(1); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
476 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
477 if (input_line_buf[0] == '*') { |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
478 parse_starline(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
479 if (strcmp(input_line_starkw, "REMARK")) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
480 break; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
481 else |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
482 continue; |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
483 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
484 parse_input_line_fields(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
485 if (input_line_nfields) |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
486 process_one_decal(); |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
487 } |
1c37bec20596
pads2gpcb: slowly working on the decal processing logic
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
488 } |