/src/libredwg/src/dec_macros.h
Line | Count | Source |
1 | | /*****************************************************************************/ |
2 | | /* LibreDWG - free implementation of the DWG file format */ |
3 | | /* */ |
4 | | /* Copyright (C) 2009-2026 Free Software Foundation, Inc. */ |
5 | | /* */ |
6 | | /* This library is free software, licensed under the terms of the GNU */ |
7 | | /* General Public License as published by the Free Software Foundation, */ |
8 | | /* either version 3 of the License, or (at your option) any later version. */ |
9 | | /* You should have received a copy of the GNU General Public License */ |
10 | | /* along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
11 | | /*****************************************************************************/ |
12 | | |
13 | | /* |
14 | | * dec_macros.h: decoding macros (for encode, print, free in the C files) |
15 | | * written by Felipe Castro |
16 | | * modified by Felipe Corrêa da Silva Sances |
17 | | * modified by Rodrigo Rodrigues da Silva |
18 | | * modified by Reini Urban |
19 | | * modified by Denis Pruchkovsky |
20 | | */ |
21 | | |
22 | | #ifndef DEC_MACROS_H |
23 | | #define DEC_MACROS_H |
24 | | |
25 | | /* DWG2_SPEC: decode2.c defines this to make dwg_decode_##token non-static */ |
26 | | #ifdef DWG2_SPEC |
27 | | # define DWG_DECODE_FUNC /* non-static */ |
28 | | #else |
29 | | # define DWG_DECODE_FUNC static |
30 | | #endif |
31 | | |
32 | | #include "config.h" |
33 | | #if defined HAVE_CTYPE_H || defined _MSC_VER |
34 | | # include <ctype.h> |
35 | | #endif |
36 | | |
37 | | #ifdef IN_DXF_H |
38 | | # error in_dxf.h must be included after dec_macros.h because of FORMAT_BD |
39 | | #endif |
40 | | |
41 | | // needed by decode, decode_r2007 and decode_r11 |
42 | | #define ACTION decode |
43 | | #define IS_DECODER |
44 | | |
45 | | // redeclare versions to be from, not target |
46 | | #include "importer.h" |
47 | | |
48 | | #ifndef FREE_IF |
49 | | # define FREE_IF(ptr) \ |
50 | 0 | if (ptr) \ |
51 | 0 | { \ |
52 | 0 | free (ptr); \ |
53 | 0 | ptr = NULL; \ |
54 | 0 | } |
55 | | #endif |
56 | | |
57 | | // different to out_json |
58 | | #define ARGS_HREF11(ref) ref->handleref.size, ref->r11_idx, ref->absolute_ref |
59 | | #define FORMAT_HREF11 "[%u, %hd, " FORMAT_HV "]" |
60 | | |
61 | | #undef LOG_POS |
62 | | #define LOG_POS \ |
63 | 652k | LOG_INSANE (" @%" PRIuSIZE ".%u", \ |
64 | 652k | obj ? dat->byte - obj->address : dat->byte, (unsigned)dat->bit);\ |
65 | 652k | LOG_TRACE ("\n"); |
66 | | #define LOG_POS_(level) \ |
67 | 43.4k | LOG_INSANE (" @%" PRIuSIZE ".%u", \ |
68 | 43.4k | obj ? dat->byte - obj->address : dat->byte, (unsigned)dat->bit);\ |
69 | 43.4k | LOG (level, "\n") |
70 | | |
71 | | #define LOG_RPOS \ |
72 | 26.4M | LOG_INSANE (" @%" PRIuSIZE ".%u", dat->byte, (unsigned)dat->bit); \ |
73 | 26.7M | LOG_TRACE ("\n"); |
74 | | #define LOG_RPOS_(level) \ |
75 | | LOG_INSANE (" @%" PRIuSIZE ".%u", dat->byte, (unsigned)dat->bit); \ |
76 | | LOG (level, "\n") |
77 | | #define LOG_HPOS \ |
78 | | LOG_INSANE (" @%" PRIuSIZE ".%u", \ |
79 | | obj && hdl_dat->byte > obj->address \ |
80 | | ? hdl_dat->byte - obj->address \ |
81 | | : hdl_dat->byte, \ |
82 | | (unsigned)hdl_dat->bit); \ |
83 | | LOG_TRACE ("\n"); |
84 | | #define LOG_HPOS_(level) \ |
85 | | LOG_INSANE (" @%" PRIuSIZE ".%u", \ |
86 | | obj && hdl_dat->byte > obj->address \ |
87 | | ? hdl_dat->byte - obj->address \ |
88 | | : hdl_dat->byte, \ |
89 | | (unsigned)hdl_dat->bit); \ |
90 | | LOG (level, "\n"); |
91 | | |
92 | | #define VALUE(value, type, dxf) \ |
93 | 0 | (void)bit_read_##type (dat); \ |
94 | 0 | LOG_TRACE (FORMAT_##type " [" #type " %d]\n", (BITCODE_##type)value, dxf); |
95 | 0 | #define VALUE_RC(value, dxf) VALUE (value, RC, dxf) |
96 | 0 | #define VALUE_BS(value, dxf) VALUE (value, BS, dxf) |
97 | 0 | #define VALUE_BL(value, dxf) VALUE (value, BL, dxf) |
98 | 0 | #define VALUE_RS(value, dxf) VALUE (value, RS, dxf) |
99 | 0 | #define VALUE_RL(value, dxf) VALUE (value, RL, dxf) |
100 | 0 | #define VALUE_RLx(value, dxf) VALUE (value, RL, dxf) |
101 | 0 | #define VALUE_RD(value, dxf) VALUE (value, RD, dxf) |
102 | | #define VALUE_BD(value, dxf) VALUE (value, BD, dxf) |
103 | | |
104 | | #define FIELDG(nam, type, dxf) \ |
105 | 36.7M | { \ |
106 | 36.7M | _obj->nam = bit_read_##type (dat); \ |
107 | 36.7M | FIELD_G_TRACE (nam, type, dxf); \ |
108 | 36.7M | } |
109 | | |
110 | | #define FIELD(nam, type) \ |
111 | | { \ |
112 | | _obj->nam = bit_read_##type (dat); \ |
113 | | FIELD_TRACE (nam, type); \ |
114 | | } |
115 | | #define SUB_FIELD(o, nam, type, dxf) \ |
116 | 1.51M | { \ |
117 | 1.51M | _obj->o.nam = bit_read_##type (dat); \ |
118 | 1.51M | FIELD_G_TRACE (o.nam, type, dxf); \ |
119 | 1.51M | } |
120 | | |
121 | | #define FIELD_CAST(nam, type, cast, dxf) \ |
122 | 12.6M | { \ |
123 | 12.6M | _obj->nam = (BITCODE_##cast)bit_read_##type (dat); \ |
124 | 12.6M | FIELD_G_TRACE (nam, cast, dxf); \ |
125 | 12.6M | } |
126 | | #define SUB_FIELD_CAST(o, nam, type, cast, dxf) \ |
127 | 2.27M | { \ |
128 | 2.27M | _obj->o.nam = (BITCODE_##cast)bit_read_##type (dat); \ |
129 | 2.27M | FIELD_G_TRACE (o.nam, cast, dxf); \ |
130 | 2.27M | } |
131 | | |
132 | | #define LOG_TRACE_TV_NAME(nam, value, dxfgroup) \ |
133 | 20.3M | { \ |
134 | 20.3M | char *_name = format_field_name (#nam, rcount1, rcount2, 0); \ |
135 | 20.3M | LOG_TRACE_TV_N (_name ? _name : #nam, value, dxfgroup); \ |
136 | 20.3M | if (_name) \ |
137 | 20.3M | free (_name); \ |
138 | 20.3M | } |
139 | | |
140 | | #define LOG_TRACE_TV_NAME_I(nam, idx, value, dxfgroup) \ |
141 | 4.40k | { \ |
142 | 4.40k | char *_name = format_field_name (#nam, rcount1, rcount2, idx); \ |
143 | 4.40k | LOG_TRACE_TV_N (_name ? _name : #nam, value, dxfgroup); \ |
144 | 4.40k | if (_name) \ |
145 | 4.40k | free (_name); \ |
146 | 4.40k | } |
147 | | |
148 | | #define LOG_TRACE_TU_NAME(nam, value, dxfgroup) \ |
149 | 0 | { \ |
150 | 0 | char *_name = format_field_name (#nam, rcount1, rcount2, 0); \ |
151 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
152 | 0 | LOG_TRACE_TU (_name ? _name : #nam, value, dxfgroup); \ |
153 | 0 | GCC46_DIAG_RESTORE \ |
154 | 0 | if (_name) \ |
155 | 0 | free (_name); \ |
156 | 0 | } |
157 | | |
158 | | #define LOG_TRACE_TU_NAME_I(nam, idx, value, type, dxfgroup) \ |
159 | 0 | { \ |
160 | 0 | char *_name = format_field_name (#nam, rcount1, rcount2, vcount); \ |
161 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
162 | 0 | LOG_TRACE_TU_I (_name ? _name : #nam, idx, value, type, dxfgroup); \ |
163 | 0 | GCC46_DIAG_RESTORE \ |
164 | 0 | if (_name) \ |
165 | 0 | free (_name); \ |
166 | 0 | } |
167 | | |
168 | | #define FIELD_G_TRACE(nam, type, dxfgroup) \ |
169 | 97.9M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
170 | 97.9M | { \ |
171 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
172 | 0 | if (s1) \ |
173 | 0 | { \ |
174 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
175 | 0 | if (s2) \ |
176 | 0 | { \ |
177 | 0 | s2 = (char *)realloc (s2, strlen (s2) \ |
178 | 0 | + sizeof (": " FORMAT_##type " [" #type " %d]")); \ |
179 | 0 | if (s2) \ |
180 | 0 | { \ |
181 | 0 | strcat (s2, ": " FORMAT_##type " [" #type " %d]"); \ |
182 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
183 | 0 | LOG_TRACE (s2, rcount1, rcount2, \ |
184 | 0 | (BITCODE_##type)_obj->nam, dxfgroup); \ |
185 | 0 | GCC46_DIAG_RESTORE \ |
186 | 0 | } \ |
187 | 0 | free (s2); \ |
188 | 0 | free (s1); \ |
189 | 0 | } \ |
190 | 0 | else \ |
191 | 0 | { \ |
192 | 0 | s1 = (char *)realloc (s1, strlen (s1) \ |
193 | 0 | + sizeof (": " FORMAT_##type " [" #type " %d]")); \ |
194 | 0 | if (s1) \ |
195 | 0 | { \ |
196 | 0 | strcat (s1, ": " FORMAT_##type " [" #type " %d]"); \ |
197 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
198 | 0 | LOG_TRACE (s1, rcount1, (BITCODE_##type)_obj->nam, dxfgroup); \ |
199 | 0 | GCC46_DIAG_RESTORE \ |
200 | 0 | } \ |
201 | 0 | free (s1); \ |
202 | 0 | } \ |
203 | 0 | } \ |
204 | 0 | else \ |
205 | 0 | LOG_TRACE (#nam ": " FORMAT_##type " [" #type " %d]", \ |
206 | 0 | (BITCODE_##type)_obj->nam, dxfgroup); \ |
207 | 0 | LOG_RPOS \ |
208 | 0 | } |
209 | | |
210 | | #define FIELD_G_TRACE_ANGLE(nam, type, dxfgroup) \ |
211 | 2.69M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
212 | 2.69M | { \ |
213 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
214 | 0 | if (s1) \ |
215 | 0 | { \ |
216 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
217 | 0 | if (s2) \ |
218 | 0 | { \ |
219 | 0 | s2 = (char *)realloc (s2, strlen (s2) \ |
220 | 0 | + sizeof (": " FORMAT_##type " [" #type " %d] %gº")); \ |
221 | 0 | if (s2) \ |
222 | 0 | { \ |
223 | 0 | strcat (s2, ": " FORMAT_##type " [" #type " %d] %gº"); \ |
224 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
225 | 0 | LOG_TRACE (s2, rcount1, rcount2, _obj->nam, dxfgroup, \ |
226 | 0 | rad2deg (_obj->nam)); \ |
227 | 0 | GCC46_DIAG_RESTORE \ |
228 | 0 | } \ |
229 | 0 | free (s2); \ |
230 | 0 | free (s1); \ |
231 | 0 | } \ |
232 | 0 | else \ |
233 | 0 | { \ |
234 | 0 | s1 = (char *)realloc (s1, strlen (s1) \ |
235 | 0 | + sizeof (": " FORMAT_##type " [" #type " %d] %gº")); \ |
236 | 0 | if (s1) \ |
237 | 0 | { \ |
238 | 0 | strcat (s1, ": " FORMAT_##type " [" #type " %d] %gº"); \ |
239 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
240 | 0 | LOG_TRACE (s1, rcount1, _obj->nam, dxfgroup, \ |
241 | 0 | rad2deg (_obj->nam)); \ |
242 | 0 | GCC46_DIAG_RESTORE \ |
243 | 0 | } \ |
244 | 0 | free (s1); \ |
245 | 0 | } \ |
246 | 0 | } \ |
247 | 0 | else \ |
248 | 0 | LOG_TRACE (#nam ": " FORMAT_##type " [" #type " %d] %gº", \ |
249 | 0 | (BITCODE_##type)_obj->nam, dxfgroup, rad2deg (_obj->nam)); \ |
250 | 0 | LOG_RPOS \ |
251 | 0 | } |
252 | | |
253 | | #define FIELD_TRACE(nam, type) \ |
254 | 5.10k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
255 | 5.10k | { \ |
256 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
257 | 0 | if (s1) \ |
258 | 0 | { \ |
259 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
260 | 0 | if (s2) \ |
261 | 0 | { \ |
262 | 0 | s2 = (char *)realloc (s2, strlen (s2) \ |
263 | 0 | + sizeof (": " FORMAT_##type " " #type "\n")); \ |
264 | 0 | if (s2) \ |
265 | 0 | { \ |
266 | 0 | strcat (s2, ": " FORMAT_##type " " #type "\n"); \ |
267 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
268 | 0 | LOG_TRACE (s2, rcount1, rcount2, _obj->nam); \ |
269 | 0 | GCC46_DIAG_RESTORE \ |
270 | 0 | } \ |
271 | 0 | free (s2); \ |
272 | 0 | free (s1); \ |
273 | 0 | } \ |
274 | 0 | else \ |
275 | 0 | { \ |
276 | 0 | s1 = (char *)realloc (s1, strlen (s1) \ |
277 | 0 | + sizeof (": " FORMAT_##type " " #type "\n")); \ |
278 | 0 | if (s1) \ |
279 | 0 | { \ |
280 | 0 | strcat (s1, ": " FORMAT_##type " " #type "\n"); \ |
281 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
282 | 0 | LOG_TRACE (s1, rcount1, _obj->nam); \ |
283 | 0 | GCC46_DIAG_RESTORE \ |
284 | 0 | } \ |
285 | 0 | free (s1); \ |
286 | 0 | } \ |
287 | 0 | } \ |
288 | 0 | else \ |
289 | 0 | { \ |
290 | 0 | LOG_TRACE (#nam ": " FORMAT_##type " [" #type "]\n", _obj->nam); \ |
291 | 0 | } \ |
292 | 0 | } |
293 | | #define LOG_TF(level, var, len) \ |
294 | 256k | { \ |
295 | 256k | LOG_TF_HEX (level, var, len) \ |
296 | 256k | if (var && (DWG_LOGLEVEL >= DWG_LOGLEVEL_INSANE)) \ |
297 | 256k | { \ |
298 | 0 | for (unsigned _i = 0; _i < (unsigned)(len); _i++) \ |
299 | 0 | { \ |
300 | 0 | unsigned char c = ((unsigned char *)var)[_i]; \ |
301 | 0 | LOG_INSANE ("%-2c", isprint (c) ? c : ' '); \ |
302 | 0 | } \ |
303 | 0 | LOG_INSANE ("\n"); \ |
304 | 0 | } \ |
305 | 256k | } |
306 | | #define LOG_TF_HEX(level, var, len) \ |
307 | 256k | { \ |
308 | 256k | if (var && (DWG_LOGLEVEL >= DWG_LOGLEVEL_##level || len <= 256)) \ |
309 | 256k | { \ |
310 | 18.2M | for (unsigned _i = 0; _i < (unsigned)(len); _i++) \ |
311 | 18.0M | { \ |
312 | 18.0M | LOG (level, "%02X", (unsigned char)((char *)var)[_i]); \ |
313 | 18.0M | } \ |
314 | 182k | LOG (level, "\n"); \ |
315 | 182k | } \ |
316 | 256k | } |
317 | 108k | #define LOG_TRACE_TF(var, len) LOG_TF (TRACE, var, len); |
318 | 147k | #define LOG_INSANE_TF(var, len) LOG_TF (INSANE, var, len); |
319 | | |
320 | | #define FIELD_VEC_TRACE_N(nam, type, vcount, value, dxf) \ |
321 | 4.32M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
322 | 4.32M | { \ |
323 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
324 | 0 | if (s1) \ |
325 | 0 | { \ |
326 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
327 | 0 | if (s2) \ |
328 | 0 | { \ |
329 | 0 | s2 = (char *)realloc (s2, strlen (s2) \ |
330 | 0 | + sizeof ("[%ld]: " FORMAT_##type " [" #type " %d]")); \ |
331 | 0 | if (s2) \ |
332 | 0 | { \ |
333 | 0 | strcat (s2, "[%ld]: " FORMAT_##type " [" #type " %d]"); \ |
334 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
335 | 0 | LOG_TRACE (s2, rcount1, rcount2, vcount, value, dxf); \ |
336 | 0 | GCC46_DIAG_RESTORE \ |
337 | 0 | } \ |
338 | 0 | free (s2); \ |
339 | 0 | free (s1); \ |
340 | 0 | } \ |
341 | 0 | else \ |
342 | 0 | { \ |
343 | 0 | s1 = (char *)realloc (s1, strlen (s1) \ |
344 | 0 | + sizeof ("[%ld]: " FORMAT_##type " [" #type " %d]")); \ |
345 | 0 | if (s1) \ |
346 | 0 | { \ |
347 | 0 | strcat (s1, "[%ld]: " FORMAT_##type " [" #type " %d]"); \ |
348 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
349 | 0 | LOG_TRACE (s1, rcount1, vcount, value, dxf); \ |
350 | 0 | GCC46_DIAG_RESTORE \ |
351 | 0 | } \ |
352 | 0 | free (s1); \ |
353 | 0 | } \ |
354 | 0 | } \ |
355 | 0 | else \ |
356 | 0 | { \ |
357 | 0 | LOG_TRACE (#nam "[%ld]: " FORMAT_##type " [" #type " %d]", vcount, \ |
358 | 0 | value, dxf); \ |
359 | 0 | } \ |
360 | 0 | LOG_POS; \ |
361 | 0 | } |
362 | | #define FIELD_2PT_TRACE(nam, type, dxf) \ |
363 | 21.9M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
364 | 21.9M | { \ |
365 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
366 | 0 | if (s1) \ |
367 | 0 | { \ |
368 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
369 | 0 | if (s2) \ |
370 | 0 | { \ |
371 | 0 | s2 = (char *)realloc (s2, strlen (s2) \ |
372 | 0 | + sizeof (": (" FORMAT_BD ", " FORMAT_BD \ |
373 | 0 | ") [" #type " %d]")); \ |
374 | 0 | if (s2) \ |
375 | 0 | { \ |
376 | 0 | strcat (s2, ": (" FORMAT_BD ", " FORMAT_BD \ |
377 | 0 | ") [" #type " %d]"); \ |
378 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
379 | 0 | LOG_TRACE (s2, rcount1, rcount2, _obj->nam.x, \ |
380 | 0 | _obj->nam.y, dxf); \ |
381 | 0 | GCC46_DIAG_RESTORE \ |
382 | 0 | } \ |
383 | 0 | free (s2); \ |
384 | 0 | free (s1); \ |
385 | 0 | } \ |
386 | 0 | else \ |
387 | 0 | { \ |
388 | 0 | s1 = (char *)realloc (s1, strlen (s1) \ |
389 | 0 | + sizeof (": (" FORMAT_BD ", " FORMAT_BD \ |
390 | 0 | ") [" #type " %d]")); \ |
391 | 0 | if (s1) \ |
392 | 0 | { \ |
393 | 0 | strcat (s1, ": (" FORMAT_BD ", " FORMAT_BD \ |
394 | 0 | ") [" #type " %d]"); \ |
395 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
396 | 0 | LOG_TRACE (s1, rcount1, _obj->nam.x, _obj->nam.y, dxf); \ |
397 | 0 | GCC46_DIAG_RESTORE \ |
398 | 0 | } \ |
399 | 0 | free (s1); \ |
400 | 0 | } \ |
401 | 0 | } \ |
402 | 0 | else \ |
403 | 0 | LOG_TRACE (#nam ": (" FORMAT_BD ", " FORMAT_BD ") [" #type " %d]", \ |
404 | 0 | _obj->nam.x, _obj->nam.y, dxf); \ |
405 | 0 | LOG_POS; \ |
406 | 0 | } |
407 | | #define FIELD_3PT_TRACE(nam, type, dxf) \ |
408 | 50.8M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
409 | 50.8M | { \ |
410 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
411 | 0 | if (s1) \ |
412 | 0 | { \ |
413 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
414 | 0 | if (s2) \ |
415 | 0 | { \ |
416 | 0 | s2 = (char *)realloc (s2, strlen (s2) \ |
417 | 0 | + sizeof (": (" FORMAT_BD ", " FORMAT_BD \ |
418 | 0 | ", " FORMAT_BD ") [" #type " %d]")); \ |
419 | 0 | if (s2) \ |
420 | 0 | { \ |
421 | 0 | strcat (s2, ": (" FORMAT_BD ", " FORMAT_BD \ |
422 | 0 | ", " FORMAT_BD ") [" #type " %d]"); \ |
423 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
424 | 0 | LOG_TRACE (s2, rcount1, rcount2, _obj->nam.x, \ |
425 | 0 | _obj->nam.y, _obj->nam.z, dxf); \ |
426 | 0 | GCC46_DIAG_RESTORE \ |
427 | 0 | } \ |
428 | 0 | free (s2); \ |
429 | 0 | free (s1); \ |
430 | 0 | } \ |
431 | 0 | else \ |
432 | 0 | { \ |
433 | 0 | s1 = (char *)realloc (s1, strlen (s1) \ |
434 | 0 | + sizeof (": (" FORMAT_BD ", " FORMAT_BD \ |
435 | 0 | ", " FORMAT_BD ") [" #type " %d]")); \ |
436 | 0 | if (s1) \ |
437 | 0 | { \ |
438 | 0 | strcat (s1, ": (" FORMAT_BD ", " FORMAT_BD \ |
439 | 0 | ", " FORMAT_BD ") [" #type " %d]"); \ |
440 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
441 | 0 | LOG_TRACE (s1, rcount1, _obj->nam.x, _obj->nam.y, \ |
442 | 0 | _obj->nam.z, dxf); \ |
443 | 0 | GCC46_DIAG_RESTORE \ |
444 | 0 | } \ |
445 | 0 | free (s1); \ |
446 | 0 | } \ |
447 | 0 | } \ |
448 | 0 | else \ |
449 | 0 | { \ |
450 | 0 | LOG_TRACE (#nam ": (" FORMAT_BD ", " FORMAT_BD ", " FORMAT_BD \ |
451 | 0 | ") [" #type " %d]", \ |
452 | 0 | _obj->nam.x, _obj->nam.y, _obj->nam.z, dxf); \ |
453 | 0 | } \ |
454 | 0 | LOG_POS; \ |
455 | 0 | } |
456 | | |
457 | | #define ANYCODE -1 |
458 | | #define VALUE_HANDLE(ref, nam, code, dxf) \ |
459 | 18.2M | { \ |
460 | 18.2M | PRE (R_13b1) \ |
461 | 18.2M | { \ |
462 | 1.52M | size_t _pos = bit_position (dat); \ |
463 | 1.52M | if (ref && !ref->handleref.is_global) \ |
464 | 1.52M | free (ref); \ |
465 | 1.52M | ref = dwg_decode_preR13_handleref (dat, code /*as size */, dwg); \ |
466 | 1.52M | LOG_TRACE (#nam ": %hd [H(%s) %d]", (short)ref->r11_idx, \ |
467 | 1.52M | code == 1 ? "RC" : "RSd", dxf); \ |
468 | 1.52M | LOG_INSANE (" @%" PRIuSIZE ".%u", _pos / 8, (unsigned)(_pos % 8)); \ |
469 | 1.52M | LOG_TRACE ("\n"); \ |
470 | 1.52M | } \ |
471 | 18.2M | LATER_VERSIONS \ |
472 | 18.2M | { \ |
473 | 16.7M | size_t _pos = bit_position (hdl_dat); \ |
474 | 16.7M | if (code >= 0) \ |
475 | 16.7M | ref = dwg_decode_handleref_with_code (hdl_dat, obj, dwg, code); \ |
476 | 16.7M | else \ |
477 | 16.7M | ref = dwg_decode_handleref (hdl_dat, obj, dwg); \ |
478 | 16.7M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
479 | 16.7M | { \ |
480 | 0 | if (ref) \ |
481 | 0 | { \ |
482 | 0 | char *_name = format_field_name (#nam, rcount1, rcount2, 0); \ |
483 | 0 | LOG_TRACE ("%s: " FORMAT_REF " [H %d]", \ |
484 | 0 | _name ? _name : #nam, ARGS_REF (ref), dxf); \ |
485 | 0 | if (_name) \ |
486 | 0 | free (_name); \ |
487 | 0 | if (dwg_ref_object_silent (dwg, ref) \ |
488 | 0 | && DWG_LOGLEVEL > DWG_LOGLEVEL_TRACE) \ |
489 | 0 | { \ |
490 | 0 | int alloced; \ |
491 | 0 | const char *u8 = dwg_ref_tblname (dwg, ref, &alloced); \ |
492 | 0 | if (u8 && *u8) \ |
493 | 0 | HANDLER (OUTPUT, " => %s %s", dwg_ref_objname (dwg, ref), \ |
494 | 0 | u8); \ |
495 | 0 | if (u8 && alloced) \ |
496 | 0 | free ((void *)u8); \ |
497 | 0 | } \ |
498 | 0 | } \ |
499 | 0 | else \ |
500 | 0 | { \ |
501 | 0 | HANDLER (OUTPUT, #nam ": NULL %d [H %d]", code, dxf); \ |
502 | 0 | } \ |
503 | 0 | LOG_INSANE (" @%" PRIuSIZE ".%u", _pos / 8, (unsigned)(_pos % 8)); \ |
504 | 0 | HANDLER (OUTPUT, "\n"); \ |
505 | 0 | } \ |
506 | 16.7M | } \ |
507 | 18.2M | } |
508 | 16.3M | #define FIELD_HANDLE(nam, code, dxf) VALUE_HANDLE (_obj->nam, nam, code, dxf) |
509 | | #define SUB_FIELD_HANDLE(o, nam, code, dxf) \ |
510 | 1.64M | VALUE_HANDLE (_obj->o.nam, o.nam, code, dxf) |
511 | | #define VALUE_H(hdl, dxf) \ |
512 | 264k | { \ |
513 | 264k | size_t pos; \ |
514 | 264k | PRE (R_13b1) \ |
515 | 264k | { \ |
516 | 264k | pos = bit_position (dat); \ |
517 | 264k | error |= bit_read_H (dat, &hdl); \ |
518 | 264k | } \ |
519 | 264k | else \ |
520 | 264k | { \ |
521 | 0 | pos = bit_position (hdl_dat); \ |
522 | 0 | error |= bit_read_H (hdl_dat, &hdl); \ |
523 | 0 | } \ |
524 | 264k | LOG_TRACE ("handle: " FORMAT_H " [H %d]", ARGS_H (hdl), dxf); \ |
525 | 264k | LOG_INSANE (" @%" PRIuSIZE ".%u", pos / 8, (unsigned)(pos % 8)); \ |
526 | 264k | LOG_TRACE ("\n"); \ |
527 | 264k | } |
528 | | |
529 | | #define VALUE_HANDLE_N(ref, nam, vcount, code, dxf) \ |
530 | 59.4M | { \ |
531 | 59.4M | PRE (R_13b1) \ |
532 | 59.4M | { \ |
533 | 0 | size_t pos = bit_position (dat); \ |
534 | 0 | ref = dwg_decode_preR13_handleref (dat, code, dwg); \ |
535 | 0 | LOG_TRACE (#nam "[%d]: " FORMAT_RS " [RS %d]", (int)vcount, \ |
536 | 0 | ref->r11_idx, dxf); \ |
537 | 0 | LOG_INSANE (" @%" PRIuSIZE ".%u", pos / 8, (unsigned)(pos % 8)); \ |
538 | 0 | LOG_TRACE ("\n"); \ |
539 | 0 | } \ |
540 | 59.4M | LATER_VERSIONS \ |
541 | 59.4M | { \ |
542 | 59.4M | size_t pos = bit_position (hdl_dat); \ |
543 | 59.4M | if (code >= 0) \ |
544 | 59.4M | ref = dwg_decode_handleref_with_code (hdl_dat, obj, dwg, code); \ |
545 | 59.4M | else \ |
546 | 59.4M | ref = dwg_decode_handleref (hdl_dat, obj, dwg); \ |
547 | 59.4M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
548 | 59.4M | { \ |
549 | 0 | if (ref) \ |
550 | 0 | { \ |
551 | 0 | char *_name = format_field_name (#nam, rcount1, rcount2, \ |
552 | 0 | vcount); \ |
553 | 0 | LOG_TRACE ("%s: " FORMAT_REF " [H* %d]", \ |
554 | 0 | _name ? _name : #nam, ARGS_REF (ref), dxf); \ |
555 | 0 | if (_name) \ |
556 | 0 | free (_name); \ |
557 | 0 | if (dwg_ref_object_silent (dwg, ref) \ |
558 | 0 | && DWG_LOGLEVEL > DWG_LOGLEVEL_TRACE) \ |
559 | 0 | { \ |
560 | 0 | int alloced; \ |
561 | 0 | const char *u8 = dwg_ref_tblname (dwg, ref, &alloced); \ |
562 | 0 | HANDLER (OUTPUT, " => %s %s", dwg_ref_objname (dwg, ref), \ |
563 | 0 | u8); \ |
564 | 0 | if (alloced) \ |
565 | 0 | free ((void *)u8); \ |
566 | 0 | } \ |
567 | 0 | } \ |
568 | 0 | else \ |
569 | 0 | { \ |
570 | 0 | LOG_TRACE (#nam "[%d]: NULL %d [H* %d]", (int)vcount, code, \ |
571 | 0 | dxf); \ |
572 | 0 | } \ |
573 | 0 | LOG_INSANE (" @%" PRIuSIZE ".%u", pos / 8, (unsigned)(pos % 8)); \ |
574 | 0 | LOG_TRACE ("\n"); \ |
575 | 0 | } \ |
576 | 59.4M | } \ |
577 | 59.4M | } |
578 | | #define FIELD_HANDLE_N(nam, vcount, code, dxf) \ |
579 | 52.0M | VALUE_HANDLE_N (_obj->nam, nam, vcount, code, dxf) |
580 | | |
581 | | #define FIELD_DATAHANDLE(nam, code, dxf) \ |
582 | 23.2k | { \ |
583 | 23.2k | _obj->nam = dwg_decode_handleref (dat, obj, dwg); \ |
584 | 23.2k | if (_obj->nam) \ |
585 | 23.2k | { \ |
586 | 13.0k | LOG_TRACE (#nam ": " FORMAT_H " [H %d]", \ |
587 | 13.0k | ARGS_H (_obj->nam->handleref), dxf); \ |
588 | 13.0k | LOG_RPOS \ |
589 | 13.0k | } \ |
590 | 23.2k | } |
591 | | |
592 | 4.00M | #define FIELD_B(nam, dxf) FIELDG (nam, B, dxf) |
593 | 314k | #define FIELD_BB(nam, dxf) FIELDG (nam, BB, dxf) |
594 | | #define FIELD_3B(nam, dxf) FIELDG (nam, 3B, dxf) |
595 | 21.6M | #define FIELD_BS(nam, dxf) FIELDG (nam, BS, dxf) |
596 | 496k | #define FIELD_BL(nam, dxf) FIELDG (nam, BL, dxf) |
597 | 0 | #define FIELD_BLL(nam, dxf) FIELDG (nam, BLL, dxf) |
598 | | #define FIELD_BD(nam, dxf) \ |
599 | 43.1M | { \ |
600 | 43.1M | _obj->nam = bit_read_BD (dat); \ |
601 | 43.1M | if (bit_isnan (_obj->nam)) \ |
602 | 43.1M | { \ |
603 | 15.1k | FIELD_G_TRACE (nam, BD, dxf); \ |
604 | 15.1k | LOG_ERROR ("Invalid BD " #nam); \ |
605 | 15.1k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
606 | 15.1k | } \ |
607 | 43.1M | if (dxf >= 50 && dxf < 54) \ |
608 | 43.0M | { \ |
609 | 2.69M | FIELD_G_TRACE_ANGLE (nam, BD, dxf); \ |
610 | 2.69M | } \ |
611 | 43.0M | else \ |
612 | 43.0M | { \ |
613 | 40.4M | FIELD_G_TRACE (nam, BD, dxf); \ |
614 | 40.4M | } \ |
615 | 43.0M | } |
616 | 33.6k | #define FIELD_BLx(nam, dxf) FIELD_CAST (nam, BL, BLx, dxf) |
617 | 0 | #define SUB_FIELD_BLx(o, nam, dxf) SUB_FIELD_CAST (o, nam, BL, BLx, dxf) |
618 | 1.51M | #define SUB_FIELD_RC(o, nam, dxf) SUB_FIELD (o, nam, RC, dxf) |
619 | | #define FIELD_RCx(nam, dxf) FIELD_CAST (nam, RC, RCx, dxf) |
620 | 336k | #define FIELD_RCd(nam, dxf) FIELD_CAST (nam, RC, RCd, dxf) |
621 | 48.2k | #define FIELD_RLx(nam, dxf) FIELD_CAST (nam, RL, RLx, dxf) |
622 | 13 | #define FIELD_RLLx(nam, dxf) FIELD_CAST (nam, RLL, RLLx, dxf) |
623 | 6.26M | #define FIELD_BSx(nam, dxf) FIELD_CAST (nam, BS, BSx, dxf) |
624 | 14.9k | #define FIELD_RSd(nam, dxf) FIELD_CAST (nam, RS, RSd, dxf) |
625 | 190k | #define FIELD_BSd(nam, dxf) FIELD_CAST (nam, BS, BSd, dxf) |
626 | 2.27M | #define SUB_FIELD_BSd(o, nam, dxf) SUB_FIELD_CAST (o, nam, BS, BSd, dxf) |
627 | 3.01M | #define FIELD_BLd(nam, dxf) FIELD_CAST (nam, BL, BLd, dxf) |
628 | 19 | #define FIELD_RLd(nam, dxf) FIELD_CAST (nam, RL, RLd, dxf) |
629 | 1.89M | #define FIELD_RC(nam, dxf) FIELDG (nam, RC, dxf) |
630 | | #define FIELD_RCu(nam, dxf) \ |
631 | 69.3k | { \ |
632 | 69.3k | _obj->nam = bit_read_RC (dat); \ |
633 | 69.3k | LOG_TRACE (#nam ": %u [RC %d]", (unsigned)((unsigned char)_obj->nam), \ |
634 | 69.3k | dxf); \ |
635 | 69.3k | LOG_RPOS \ |
636 | 69.3k | } |
637 | 0 | #define SUB_FIELD_RCd(o, nam, dxf) SUB_FIELD_CAST (o, nam, RC, RCd, dxf) |
638 | 310k | #define FIELD_RS(nam, dxf) FIELDG (nam, RS, dxf) |
639 | 645k | #define FIELD_RSx(nam, dxf) FIELD_CAST (nam, RS, RSx, dxf) |
640 | | #define FIELD_HV(nam, dxf) FIELD_CAST (nam, RLL, RLLx, dxf) |
641 | | #define FIELD_RD(nam, dxf) \ |
642 | 4.77M | { \ |
643 | 4.77M | _obj->nam = bit_read_RD (dat); \ |
644 | 4.77M | if (bit_isnan (_obj->nam)) \ |
645 | 4.77M | { \ |
646 | 79.9k | LOG_ERROR ("Invalid RD " #nam); \ |
647 | 79.9k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
648 | 79.9k | } \ |
649 | 4.77M | if (dxf >= 50 && dxf < 54) \ |
650 | 4.69M | { \ |
651 | 384k | LOG_TRACE (#nam ": " FORMAT_RD " [RD %d] %gº", _obj->nam, dxf, \ |
652 | 384k | rad2deg (_obj->nam)); \ |
653 | 384k | LOG_RPOS \ |
654 | 384k | } \ |
655 | 4.69M | else \ |
656 | 4.69M | { \ |
657 | 4.31M | FIELD_G_TRACE (nam, RD, dxf); \ |
658 | 4.31M | } \ |
659 | 4.69M | } |
660 | 58.6k | #define FIELD_RL(nam, dxf) FIELDG (nam, RL, dxf) |
661 | 207 | #define FIELD_RLL(nam, dxf) FIELDG (nam, RLL, dxf) |
662 | | #define FIELD_RLLd(nam, dxf) FIELDG (nam, RLLd, dxf) |
663 | | #define FIELD_MC(nam, dxf) FIELDG (nam, MC, dxf) |
664 | | #define FIELD_MS(nam, dxf) FIELDG (nam, MS, dxf) |
665 | | /* preR13 we have no obj->address and obj->size yet, skip VECTOR_CHKCOUNT */ |
666 | | // clang-format off |
667 | | #define FIELD_TF(nam, len, dxf) \ |
668 | 70.1k | { \ |
669 | 70.1k | SINCE (R_13b1) { _obj->nam = NULL; VECTOR_CHKCOUNT (nam, TF, len, dat) } \ |
670 | 70.1k | _obj->nam = bit_read_TF (dat, (size_t)len); \ |
671 | 66.5k | LOG_TRACE (#nam ": \"%s\" [TF %" PRIuSIZE " " #dxf "]", _obj->nam, (size_t)len); \ |
672 | 66.5k | if (!_obj->nam) \ |
673 | 66.5k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
674 | 66.5k | LOG_INSANE (" @%" PRIuSIZE ".%u", dat->byte, (unsigned)dat->bit); \ |
675 | 65.0k | LOG_TRACE ("\n"); \ |
676 | 65.0k | LOG_TRACE_TF (FIELD_VALUE (nam), (int)len); \ |
677 | 65.0k | } |
678 | | #define FIELD_TFv(nam, len, dxf) \ |
679 | 116k | { \ |
680 | 116k | /* if (_obj->nam) free (_obj->nam); // preR13 add_Document defaults */ \ |
681 | 116k | SINCE (R_13b1) { _obj->nam = NULL; VECTOR_CHKCOUNT (nam, TF, len, dat) } \ |
682 | 116k | _obj->nam = (BITCODE_TV)bit_read_TF (dat, (size_t)len); \ |
683 | 116k | LOG_TRACE (#nam ": \"%s\" [TFv %" PRIuSIZE " " #dxf "]", _obj->nam, \ |
684 | 116k | (size_t)len); \ |
685 | 116k | if (!_obj->nam) \ |
686 | 116k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
687 | 116k | LOG_RPOS \ |
688 | 70.0k | /* LOG_TRACE_TF (FIELD_VALUE (nam), (int)len); */ \ |
689 | 70.0k | } |
690 | | #define FIELD_TFF(nam, len, dxf) \ |
691 | 1.65k | { \ |
692 | 1.65k | SINCE (R_13b1) { _VECTOR_CHKCOUNT_STATIC (nam, len, 8, dat) } \ |
693 | 1.65k | bit_read_fixed (dat, _obj->nam, (size_t)len); \ |
694 | 1.65k | LOG_TRACE (#nam ": \"%.*s\" [TFF %" PRIuSIZE " " #dxf "]", (int)len, \ |
695 | 1.65k | _obj->nam, (size_t)len); \ |
696 | 1.65k | LOG_RPOS \ |
697 | 1.65k | LOG_TRACE_TF (FIELD_VALUE (nam), (size_t)len); \ |
698 | 1.65k | } |
699 | | #define FIELD_TFFx(nam, len, dxf) \ |
700 | 1 | { \ |
701 | 1 | SINCE (R_13b1) { _VECTOR_CHKCOUNT_STATIC (nam, len, 8, dat) } \ |
702 | 1 | bit_read_fixed (dat, (BITCODE_RC*)_obj->nam, (int)len); \ |
703 | 1 | LOG_TRACE (#nam ": [TFFx %d " #dxf "]", (int)len); \ |
704 | 1 | LOG_RPOS \ |
705 | 1 | LOG_TRACE_TF ((BITCODE_RC*)_obj->nam, (int)len); \ |
706 | 1 | } |
707 | | #define FIELD_T16(nam, dxf) \ |
708 | 133 | if (dat->from_version < R_2007) \ |
709 | 133 | { \ |
710 | 133 | _obj->nam = (BITCODE_T16)bit_read_T16 (dat); \ |
711 | 133 | LOG_TRACE (#nam ": %s [T16 " #dxf "]", _obj->nam); \ |
712 | 133 | LOG_RPOS \ |
713 | 133 | } \ |
714 | 133 | else \ |
715 | 133 | { \ |
716 | 0 | _obj->nam = (BITCODE_T16)bit_read_TU16 (dat); \ |
717 | 0 | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf); \ |
718 | 0 | } |
719 | | #define FIELD_T32(nam, dxf) \ |
720 | 0 | { \ |
721 | 0 | if (dat->from_version < R_2007) \ |
722 | 0 | { \ |
723 | 0 | FIELDG (nam, T32, dxf); \ |
724 | 0 | } \ |
725 | 0 | else \ |
726 | 0 | { \ |
727 | 0 | _obj->nam = bit_read_TU32 (dat); \ |
728 | 0 | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf); \ |
729 | 0 | } \ |
730 | 0 | } |
731 | | #define FIELD_TU16(nam, dxf) \ |
732 | | { \ |
733 | | _obj->nam = bit_read_TU16 (dat); \ |
734 | | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf); \ |
735 | | } |
736 | | #define FIELD_TU32(nam, dxf) \ |
737 | | { \ |
738 | | _obj->nam = bit_read_TU32 (dat); \ |
739 | | if (dat->from_version < R_2007) \ |
740 | | { \ |
741 | | LOG_TRACE (#nam ": \"%s\" [TU32 %d]", _obj->nam, dxf) \ |
742 | | LOG_RPOS \ |
743 | | } \ |
744 | | else \ |
745 | | { \ |
746 | | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf) \ |
747 | | } \ |
748 | | } |
749 | | #define FIELD_TV(nam, dxf) \ |
750 | 631k | { \ |
751 | 631k | _obj->nam = bit_read_TV (dat); \ |
752 | 631k | LOG_TRACE_TV_NAME (nam, _obj->nam, dxf); \ |
753 | 631k | } |
754 | | #define FIELD_TU(nam, dxf) \ |
755 | 0 | { \ |
756 | 0 | _obj->nam = (BITCODE_TU)bit_read_TU (str_dat); \ |
757 | 0 | LOG_TRACE_TU_NAME (nam, (BITCODE_TU)FIELD_VALUE (nam), dxf); \ |
758 | 0 | } |
759 | | // clang-format on |
760 | | #define FIELD_T(nam, dxf) \ |
761 | 19.6M | { \ |
762 | 19.6M | if (dat->from_version < R_2007) \ |
763 | 19.6M | { \ |
764 | 19.6M | _obj->nam = bit_read_TV (dat); \ |
765 | 19.6M | LOG_TRACE_TV_NAME (nam, _obj->nam, dxf); \ |
766 | 19.6M | } \ |
767 | 19.6M | else \ |
768 | 19.6M | { \ |
769 | 0 | if (!obj || obj->has_strings) /* header_vars */ \ |
770 | 0 | { \ |
771 | 0 | _obj->nam = (BITCODE_T)bit_read_TU (str_dat); \ |
772 | 0 | LOG_TRACE_TU_NAME (nam, (BITCODE_TU)FIELD_VALUE (nam), dxf); \ |
773 | 0 | } \ |
774 | 0 | else \ |
775 | 0 | { \ |
776 | 0 | LOG_TRACE_TU_NAME (nam, L"", dxf); \ |
777 | 0 | LOG_INSANE (" !has_strings\n"); \ |
778 | 0 | } \ |
779 | 0 | } \ |
780 | 19.6M | } |
781 | 100k | #define FIELD_BT(nam, dxf) FIELDG (nam, BT, dxf) |
782 | | #define FIELD_4BITS(nam, dxf) \ |
783 | 184k | { \ |
784 | 184k | int _b = _obj->nam = bit_read_4BITS (dat); \ |
785 | 184k | LOG_TRACE (#nam ": b%d%d%d%d [4BITS %d]", _b & 8, _b & 4, _b & 2, _b & 1, \ |
786 | 184k | dxf); \ |
787 | 184k | LOG_RPOS \ |
788 | 184k | } |
789 | | |
790 | | #define FIELD_BE(nam, dxf) \ |
791 | 97.3k | { \ |
792 | 97.3k | bit_read_BE (dat, &_obj->nam.x, &_obj->nam.y, &_obj->nam.z); \ |
793 | 97.3k | if (dat->version >= R_2000 && FIELD_VALUE (nam.x) == 0.0 \ |
794 | 97.3k | && FIELD_VALUE (nam.y) == 0.0 && FIELD_VALUE (nam.z) == 1.0) \ |
795 | 97.3k | LOG_TRACE (#nam ": default 0,0,1 [B %d]", dxf); \ |
796 | 97.3k | else \ |
797 | 97.3k | LOG_TRACE (#nam ": (%f, %f, %f) [BE %d]", _obj->nam.x, _obj->nam.y, \ |
798 | 97.3k | _obj->nam.z, dxf); \ |
799 | 97.3k | LOG_POS; \ |
800 | 97.3k | } |
801 | | #define TRACE_DD \ |
802 | 1.65M | { \ |
803 | 1.65M | BITCODE_BB result = 0; \ |
804 | 1.65M | BITCODE_RC byte; \ |
805 | 1.65M | if ((dat->byte * 8) + 8 + dat->bit > dat->size * 8) \ |
806 | 1.65M | { \ |
807 | 158k | loglevel = dat->opts & DWG_OPTS_LOGLEVEL; \ |
808 | 158k | LOG_ERROR ("%s FIELD_DD buffer overflow at pos %" PRIuSIZE \ |
809 | 158k | ".%u, size %" PRIuSIZE "," \ |
810 | 158k | " advance by 8", \ |
811 | 158k | __FUNCTION__, dat->byte, dat->bit, dat->size); \ |
812 | 158k | } \ |
813 | 1.65M | else \ |
814 | 1.65M | { \ |
815 | 1.49M | byte = dat->chain[dat->byte]; \ |
816 | 1.49M | if (dat->bit < 7) \ |
817 | 1.49M | result = (byte & (0xc0 >> dat->bit)) >> (6 - dat->bit); \ |
818 | 1.49M | else \ |
819 | 1.49M | { \ |
820 | 2.18k | result = (byte & 0x01) << 1; \ |
821 | 2.18k | if (dat->byte < dat->size - 1) \ |
822 | 2.18k | { \ |
823 | 2.18k | byte = dat->chain[dat->byte + 1]; \ |
824 | 2.18k | result |= (byte & 0x80) >> 7; \ |
825 | 2.18k | } \ |
826 | 2.18k | } \ |
827 | 1.49M | } \ |
828 | 1.65M | LOG_HANDLE ("DD code %u\n", result); \ |
829 | 1.65M | } |
830 | | #define FIELD_DD(nam, _default, dxf) \ |
831 | 1.65M | { \ |
832 | 1.65M | TRACE_DD \ |
833 | 1.65M | FIELD_VALUE (nam) = bit_read_DD (dat, _default); \ |
834 | 1.65M | if (bit_isnan (_obj->nam)) \ |
835 | 1.65M | { \ |
836 | 5.27k | LOG_ERROR ("Invalid DD " #nam); \ |
837 | 5.27k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
838 | 5.27k | } \ |
839 | 1.65M | } |
840 | | #define FIELD_2DD(nam, def, dxf) \ |
841 | 32.6k | { \ |
842 | 32.6k | FIELD_DD (nam.x, FIELD_VALUE (def.x), dxf); \ |
843 | 31.6k | FIELD_DD (nam.y, FIELD_VALUE (def.y), dxf + 10); \ |
844 | 31.3k | FIELD_2PT_TRACE (nam, 2DD, dxf); \ |
845 | 31.3k | } |
846 | | #define FIELD_3DD(nam, def, dxf) \ |
847 | 20.5k | { \ |
848 | 20.5k | FIELD_DD (nam.x, FIELD_VALUE (def.x), dxf); \ |
849 | 20.3k | FIELD_DD (nam.y, FIELD_VALUE (def.y), dxf + 10); \ |
850 | 20.2k | FIELD_DD (nam.z, FIELD_VALUE (def.z), dxf + 20); \ |
851 | 20.1k | FIELD_3PT_TRACE (nam, 3DD, dxf); \ |
852 | 20.1k | } |
853 | | #define FIELD_3RD(nam, dxf) \ |
854 | 514k | { \ |
855 | 514k | _obj->nam.x = bit_read_RD (dat); \ |
856 | 514k | _obj->nam.y = bit_read_RD (dat); \ |
857 | 514k | _obj->nam.z = bit_read_RD (dat); \ |
858 | 514k | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y) \ |
859 | 514k | || bit_isnan (_obj->nam.z)) \ |
860 | 514k | { \ |
861 | 77.9k | LOG_ERROR ("Invalid 3RD " #nam); \ |
862 | 77.9k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
863 | 77.9k | } \ |
864 | 514k | FIELD_3PT_TRACE (nam, 3RD, dxf); \ |
865 | 436k | } |
866 | | #define FIELD_3BD(nam, dxf) \ |
867 | 50.1M | { \ |
868 | 50.1M | _obj->nam.x = bit_read_BD (dat); \ |
869 | 50.1M | _obj->nam.y = bit_read_BD (dat); \ |
870 | 50.1M | _obj->nam.z = bit_read_BD (dat); \ |
871 | 50.1M | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y) \ |
872 | 50.1M | || bit_isnan (_obj->nam.z)) \ |
873 | 50.1M | { \ |
874 | 32.7k | LOG_ERROR ("Invalid 3BD " #nam); \ |
875 | 32.7k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
876 | 32.7k | } \ |
877 | 50.1M | FIELD_3PT_TRACE (nam, 3BD, dxf); \ |
878 | 50.1M | } |
879 | | #define FIELD_2RD(nam, dxf) \ |
880 | 9.39M | { \ |
881 | 9.39M | _obj->nam.x = bit_read_RD (dat); \ |
882 | 9.39M | _obj->nam.y = bit_read_RD (dat); \ |
883 | 9.39M | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y)) \ |
884 | 9.39M | { \ |
885 | 180k | LOG_ERROR ("Invalid 2RD " #nam); \ |
886 | 180k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
887 | 180k | } \ |
888 | 9.39M | FIELD_2PT_TRACE (nam, 2RD, dxf); \ |
889 | 9.21M | } |
890 | | // FIXME: does this even exist? normal 2DPOINT is 2RD |
891 | | // HATCH.deflines.pt0,offset LAYOUT.plot_origin,plot_window_{ll,ur}, |
892 | | // LAYOUT.paper_image_origin GEODATA.northdir, GEODATA.refpt0,1 .zero1, zero2 |
893 | | // BACKGROUND.offset,scale |
894 | | #define FIELD_2BD(nam, dxf) \ |
895 | | { \ |
896 | | _obj->nam.x = bit_read_BD (dat); \ |
897 | | _obj->nam.y = bit_read_BD (dat); \ |
898 | | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y)) \ |
899 | | { \ |
900 | | LOG_ERROR ("Invalid 2BD " #nam); \ |
901 | | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
902 | | } \ |
903 | | FIELD_2PT_TRACE (nam, 2BD, dxf); \ |
904 | | } |
905 | | #define FIELD_2BD_1(nam, dxf) \ |
906 | 12.6M | { \ |
907 | 12.6M | _obj->nam.x = bit_read_BD (dat); \ |
908 | 12.6M | _obj->nam.y = bit_read_BD (dat); \ |
909 | 12.6M | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y)) \ |
910 | 12.6M | { \ |
911 | 2.85k | LOG_ERROR ("Invalid 2BD_1 " #nam); \ |
912 | 2.85k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
913 | 2.85k | } \ |
914 | 12.6M | FIELD_2PT_TRACE (nam, 2BD_1, dxf); \ |
915 | 12.6M | } |
916 | | // FIELDG(nam.x, BD, dxf); FIELDG(nam.y, BD, dxf+1); |
917 | | #define FIELD_3BD_1(nam, dxf) \ |
918 | 179k | { \ |
919 | 179k | _obj->nam.x = bit_read_BD (dat); \ |
920 | 179k | _obj->nam.y = bit_read_BD (dat); \ |
921 | 179k | _obj->nam.z = bit_read_BD (dat); \ |
922 | 179k | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y) \ |
923 | 179k | || bit_isnan (_obj->nam.z)) \ |
924 | 179k | { \ |
925 | 1.22k | LOG_ERROR ("Invalid 3BD_1 " #nam); \ |
926 | 1.22k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
927 | 1.22k | } \ |
928 | 179k | FIELD_3PT_TRACE (nam, 3BD_1, dxf); \ |
929 | 178k | } |
930 | | // FIELDG(nam.x, BD, dxf); FIELDG(nam.y, BD, dxf+1); |
931 | | // FIELDG(nam.z, BD, dxf+2); } |
932 | | #define FIELD_2DPOINT(nam, dxf) FIELD_2RD (nam, dxf) |
933 | 44.6M | #define FIELD_3DPOINT(nam, dxf) FIELD_3BD (nam, dxf) |
934 | | #define FIELD_3DVECTOR(nam, dxf) FIELD_3BD_1 (nam, dxf) |
935 | | #define FIELD_TIMEBLL(nam, dxf) \ |
936 | 93.0k | { \ |
937 | 93.0k | _obj->nam = bit_read_TIMEBLL (dat); \ |
938 | 93.0k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
939 | 93.0k | { \ |
940 | 0 | struct tm tm; \ |
941 | 0 | char _buf[60] = ""; \ |
942 | 0 | cvt_TIMEBLL (&tm, _obj->nam); \ |
943 | 0 | if (strEQc (#nam, "TDINDWG") || strEQc (#nam, "TDUSRTIMER")) \ |
944 | 0 | strftime (_buf, 60, STRFTIME_DURATION, &tm); \ |
945 | 0 | else if (_obj->nam.days) \ |
946 | 0 | strftime (_buf, 60, STRFTIME_DATE, &tm); \ |
947 | 0 | else \ |
948 | 0 | strftime (_buf, 60, STRFTIME_TIME, &tm); \ |
949 | 0 | LOG_TRACE (#nam ": [" FORMAT_BL ", " FORMAT_BL "] %s [TIMEBLL %d]", \ |
950 | 0 | _obj->nam.days, _obj->nam.ms, _buf, dxf); \ |
951 | 0 | LOG_RPOS \ |
952 | 0 | } \ |
953 | 93.0k | } |
954 | | #define FIELD_TIMERLL(nam, dxf) \ |
955 | 2.91k | { \ |
956 | 2.91k | _obj->nam = bit_read_TIMERLL (dat); \ |
957 | 2.91k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
958 | 2.91k | { \ |
959 | 0 | struct tm tm; \ |
960 | 0 | char _buf[60] = ""; \ |
961 | 0 | if (_obj->nam.days >= 1000) \ |
962 | 0 | strftime (_buf, 60, STRFTIME_DATE, cvt_TIMEBLL (&tm, _obj->nam)); \ |
963 | 0 | else \ |
964 | 0 | strftime (_buf, 60, STRFTIME_TIME, cvt_TIMEBLL (&tm, _obj->nam)); \ |
965 | 0 | LOG_TRACE (#nam ": [" FORMAT_RL ", " FORMAT_RL "] %s [TIMERLL %d]", \ |
966 | 0 | _obj->nam.days, _obj->nam.ms, _buf, dxf); \ |
967 | 0 | LOG_RPOS \ |
968 | 0 | } \ |
969 | 2.91k | } |
970 | | #define FIELD_CMC(color, dxf) \ |
971 | 237k | { \ |
972 | 237k | error |= bit_read_CMC (dat, str_dat, &_obj->color); \ |
973 | 237k | LOG_TRACE (#color ".index: %d [CMC.%s %d]", _obj->color.index, \ |
974 | 237k | dat->from_version < R_13b1 ? "RS" : "BS", dxf); \ |
975 | 237k | LOG_RPOS \ |
976 | 237k | if (dat->from_version >= R_2004) \ |
977 | 237k | { \ |
978 | 0 | LOG_TRACE (#color ".rgb: 0x%06x [CMC.BL %d]\n", \ |
979 | 0 | (unsigned)_obj->color.rgb, dxf + 420 - 62); \ |
980 | 0 | LOG_TRACE (#color ".method: 0x%x %s\n", _obj->color.method, \ |
981 | 0 | dwg_color_method_name (_obj->color.method)); \ |
982 | 0 | LOG_TRACE (#color ".flag: 0x%x [CMC.RC]\n", \ |
983 | 0 | (unsigned)_obj->color.flag); \ |
984 | 0 | if (_obj->color.flag & 1) \ |
985 | 0 | { \ |
986 | 0 | LOG_TRACE (#color ".name: %s [CMC.%s]\n", _obj->color.name, \ |
987 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
988 | 0 | } \ |
989 | 0 | if (_obj->color.flag & 2) \ |
990 | 0 | { \ |
991 | 0 | LOG_TRACE (#color ".book_name: %s [CMC.%s]\n", \ |
992 | 0 | _obj->color.book_name, \ |
993 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
994 | 0 | } \ |
995 | 0 | } \ |
996 | 237k | } |
997 | | #define SUB_FIELD_CMC(o, color, dxf) \ |
998 | 2.27M | { \ |
999 | 2.27M | error |= bit_read_CMC (dat, str_dat, &_obj->o.color); \ |
1000 | 2.27M | LOG_TRACE (#o "." #color ".index: %d [CMC.BS %d]", _obj->o.color.index, \ |
1001 | 2.27M | dxf); \ |
1002 | 2.27M | LOG_RPOS \ |
1003 | 2.27M | if (dat->from_version >= R_2004) \ |
1004 | 2.27M | { \ |
1005 | 0 | LOG_TRACE (#o "." #color ".rgb: 0x%06x [CMC.BL %d]\n", \ |
1006 | 0 | (unsigned)_obj->o.color.rgb, dxf + 420 - 62); \ |
1007 | 0 | LOG_TRACE (#color ".method: 0x%x %s\n", _obj->o.color.method, \ |
1008 | 0 | dwg_color_method_name (_obj->o.color.method)); \ |
1009 | 0 | LOG_TRACE (#o "." #color ".flag: 0x%x [CMC.RC]\n", \ |
1010 | 0 | (unsigned)_obj->o.color.flag); \ |
1011 | 0 | if (_obj->o.color.flag & 1) \ |
1012 | 0 | { \ |
1013 | 0 | LOG_TRACE (#o "." #color ".name: %s [CMC.%s]\n", \ |
1014 | 0 | _obj->o.color.name, \ |
1015 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
1016 | 0 | } \ |
1017 | 0 | if (_obj->o.color.flag & 2) \ |
1018 | 0 | { \ |
1019 | 0 | LOG_TRACE (#o "." #color ".book_name: %s [CMC.%s]\n", \ |
1020 | 0 | _obj->o.color.book_name, \ |
1021 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
1022 | 0 | } \ |
1023 | 0 | } \ |
1024 | 2.27M | } |
1025 | | // force truecolor |
1026 | | #define FIELD_CMTC(name, dxf) \ |
1027 | 0 | { \ |
1028 | 0 | Dwg_Version_Type _ver = dat->from_version; \ |
1029 | 0 | if (dat->from_version < R_2004) \ |
1030 | 0 | dat->from_version = R_2004; \ |
1031 | 0 | FIELD_CMC (name, dxf); \ |
1032 | 0 | dat->from_version = _ver; \ |
1033 | 0 | } |
1034 | | #define SUB_FIELD_CMTC(o, name, dxf) \ |
1035 | 0 | { \ |
1036 | 0 | Dwg_Version_Type _ver = dat->from_version; \ |
1037 | 0 | if (dat->from_version < R_2004) \ |
1038 | 0 | dat->from_version = R_2004; \ |
1039 | 0 | SUB_FIELD_CMC (o, name, dxf); \ |
1040 | 0 | dat->from_version = _ver; \ |
1041 | 0 | } |
1042 | | #define FIELD_ENC(color, dxf) \ |
1043 | | { \ |
1044 | | bit_read_ENC (dat, hdl_dat, str_dat, &_obj->color); \ |
1045 | | LOG_TRACE (#color ".index: %d [ENC.BS %d]", _obj->color.index, dxf); \ |
1046 | | LOG_POS \ |
1047 | | if (dat->from_version >= R_2004) \ |
1048 | | { \ |
1049 | | if (_obj->color.flag) \ |
1050 | | LOG_TRACE (#color ".flag: 0x%x\n", (unsigned)_obj->color.flag); \ |
1051 | | if (_obj->color.flag & 0x20) \ |
1052 | | LOG_TRACE (#color ".alpha: %d [ENC.BL %d]\n", \ |
1053 | | (int)_obj->color.alpha, dxf + 440 - 62); \ |
1054 | | if (_obj->color.flag & 0x80) \ |
1055 | | LOG_TRACE (#color ".rgb: 0x%06x [ENC.BL %d]\n", \ |
1056 | | (unsigned)_obj->color.rgb, dxf + 420 - 62); \ |
1057 | | if (_obj->color.flag & 0x40 && _obj->color.handle) \ |
1058 | | LOG_TRACE (#color ".handle: %X [ENC.H %d]\n", \ |
1059 | | _obj->color.handle->handleref.value, dxf + 430 - 62); \ |
1060 | | } \ |
1061 | | } |
1062 | | #define SUB_FIELD_ENC(o, color, dxf) \ |
1063 | | { \ |
1064 | | bit_read_ENC (dat, hdl_dat, str_dat, &_obj->o.color); \ |
1065 | | LOG_TRACE (#o "." #color ".index: %d [ENC.BS %d]", _obj->o.color.index, \ |
1066 | | dxf); \ |
1067 | | LOG_POS \ |
1068 | | if (dat->from_version >= R_2004) \ |
1069 | | { \ |
1070 | | if (_obj->o.color.flag) \ |
1071 | | LOG_TRACE (#o "." #color ".flag: 0x%x\n", \ |
1072 | | (unsigned)_obj->o.color.flag); \ |
1073 | | if (_obj->o.color.flag & 0x20) \ |
1074 | | LOG_TRACE (#o "." #color ".alpha: %d [ENC.BL %d]\n", \ |
1075 | | (unsigned)_obj->o.color.alpha, dxf + 440 - 62); \ |
1076 | | if (_obj->o.color.flag & 0x80) \ |
1077 | | LOG_TRACE (#o "." #color ".rgb: 0x%06x [ENC.BL %d]\n", \ |
1078 | | (unsigned)_obj->o.color.rgb, dxf + 420 - 62); \ |
1079 | | if (_obj->o.color.flag & 0x40 && _obj->o.color.handle) \ |
1080 | | LOG_TRACE (#o "." #color ".handle: " FORMAT_HV " [ENC.H %d]\n", \ |
1081 | | _obj->o.color.handle->handleref.value, dxf + 430 - 62); \ |
1082 | | } \ |
1083 | | } |
1084 | | |
1085 | | #undef DEBUG_POS |
1086 | | #undef DEBUG_HERE |
1087 | | #undef DEBUG_POS_OBJ |
1088 | | #undef DEBUG_HERE_OBJ |
1089 | | #define DEBUG_POS_OBJ \ |
1090 | 1.68k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
1091 | 1.68k | { \ |
1092 | 0 | LOG_TRACE ("DEBUG_POS @%" PRIuSIZE ".%u (%" PRIuSIZE ") %" PRIuSIZE \ |
1093 | 0 | "\n", \ |
1094 | 0 | dat->byte, (unsigned)dat->bit, bit_position (dat), \ |
1095 | 0 | obj ? bit_position (dat) - obj->address * 8 : 0); \ |
1096 | 0 | } |
1097 | | #define DEBUG_POS \ |
1098 | 14.6M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
1099 | 14.6M | { \ |
1100 | 0 | LOG_TRACE ("DEBUG_POS @%" PRIuSIZE ".%u (%" PRIuSIZE ")\n", dat->byte, \ |
1101 | 0 | (unsigned)dat->bit, bit_position (dat)); \ |
1102 | 0 | } |
1103 | | #define _DEBUG_HERE(objsize) \ |
1104 | 14.6M | if (dat->size < dat->byte) \ |
1105 | 14.6M | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1106 | 14.6M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
1107 | 14.6M | { \ |
1108 | 0 | Bit_Chain here = *dat; \ |
1109 | 0 | int oldloglevel = loglevel; \ |
1110 | 0 | BITCODE_TF tmp; \ |
1111 | 0 | BITCODE_BB bb = 0; \ |
1112 | 0 | BITCODE_RS rs; \ |
1113 | 0 | BITCODE_RL rl; \ |
1114 | 0 | double bd; \ |
1115 | 0 | Dwg_Handle hdl; \ |
1116 | 0 | rs = 24; \ |
1117 | 0 | if ((objsize) > 0 && dat->byte + rs > (objsize)) \ |
1118 | 0 | rs = ((objsize) - dat->byte) & 0xFFFF; \ |
1119 | 0 | if (dat->byte + rs > dat->size) \ |
1120 | 0 | rs = (dat->size - dat->byte - 1) & 0xFFFF; \ |
1121 | 0 | tmp = bit_read_TF (dat, (size_t)rs); \ |
1122 | 0 | if (tmp) \ |
1123 | 0 | { \ |
1124 | 0 | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_INSANE) \ |
1125 | 0 | { \ |
1126 | 0 | bit_fprint_bits (OUTPUT, tmp, rs * 8); \ |
1127 | 0 | HANDLER (OUTPUT, "\n"); \ |
1128 | 0 | } \ |
1129 | 0 | LOG_TRACE_TF (tmp, rs); \ |
1130 | 0 | free (tmp); \ |
1131 | 0 | } \ |
1132 | 0 | SINCE (R_13b1) \ |
1133 | 0 | { \ |
1134 | 0 | *dat = here; \ |
1135 | 0 | LOG_TRACE (" B :" FORMAT_B "\t", bit_read_B (dat)); \ |
1136 | 0 | *dat = here; \ |
1137 | 0 | bb = bit_read_BB (dat) & 0x3; \ |
1138 | 0 | LOG_TRACE (" BB :" FORMAT_BB "\n", bb); \ |
1139 | 0 | } \ |
1140 | 0 | *dat = here; \ |
1141 | 0 | rs = bit_read_RS (dat); \ |
1142 | 0 | LOG_TRACE (" RS :" FORMAT_RS " / 0x%04x (16)\n", rs, rs); \ |
1143 | 0 | SINCE (R_13b1) \ |
1144 | 0 | { \ |
1145 | 0 | *dat = here; \ |
1146 | 0 | rs = bit_read_BS (dat); \ |
1147 | 0 | LOG_TRACE (" BS :" FORMAT_BS " / 0x%04x (%" PRIuSIZE ")\t", rs, rs, \ |
1148 | 0 | bit_position (dat) - bit_position (&here)); \ |
1149 | 0 | } \ |
1150 | 0 | SINCE (R_2007a) \ |
1151 | 0 | { \ |
1152 | 0 | *dat = here; \ |
1153 | 0 | rs = bit_read_MS (dat); \ |
1154 | 0 | LOG_TRACE (" MS :" FORMAT_RS " / 0x%04x (%" PRIuSIZE ")\n", rs, rs, \ |
1155 | 0 | bit_position (dat) - bit_position (&here)); \ |
1156 | 0 | } \ |
1157 | 0 | else LOG_TRACE ("\n"); \ |
1158 | 0 | *dat = here; \ |
1159 | 0 | rl = bit_read_RL (dat); \ |
1160 | 0 | LOG_TRACE (" RL :" FORMAT_RL " / 0x%08x (32)\n", rl, rl); \ |
1161 | 0 | *dat = here; \ |
1162 | 0 | LOG_TRACE (" RD :" FORMAT_RD " (64)\n", bit_read_RD (dat)); \ |
1163 | 0 | *dat = here; \ |
1164 | 0 | SINCE (R_13b1) \ |
1165 | 0 | { \ |
1166 | 0 | if (bb != 3) \ |
1167 | 0 | { \ |
1168 | 0 | rl = bit_read_BL (dat); \ |
1169 | 0 | LOG_TRACE (" BL :" FORMAT_BL " / 0x%08x (%" PRIuSIZE ")\n", rl, \ |
1170 | 0 | rl, bit_position (dat) - bit_position (&here)); \ |
1171 | 0 | *dat = here; \ |
1172 | 0 | bd = bit_read_BD (dat); \ |
1173 | 0 | LOG_TRACE (" BD :" FORMAT_BD " (%" PRIuSIZE ")\n", bd, \ |
1174 | 0 | bit_position (dat) - bit_position (&here)); \ |
1175 | 0 | *dat = here; \ |
1176 | 0 | } \ |
1177 | 0 | } \ |
1178 | 0 | if ((dat->chain[dat->byte] & 0xf) <= 4) \ |
1179 | 0 | { \ |
1180 | 0 | loglevel = 0; \ |
1181 | 0 | if (!bit_read_H (dat, &hdl)) \ |
1182 | 0 | { \ |
1183 | 0 | LOG_TRACE (" H : " FORMAT_H " (%" PRIuSIZE ")\n", \ |
1184 | 0 | ARGS_H (hdl), \ |
1185 | 0 | bit_position (dat) - bit_position (&here)); \ |
1186 | 0 | } \ |
1187 | 0 | loglevel = oldloglevel; \ |
1188 | 0 | } \ |
1189 | 0 | *dat = here; \ |
1190 | 0 | } |
1191 | | #define DEBUG_HERE_OBJ \ |
1192 | 1.68k | DEBUG_POS_OBJ \ |
1193 | 1.68k | _DEBUG_HERE (obj->size) |
1194 | | #define DEBUG_HERE \ |
1195 | 14.6M | DEBUG_POS \ |
1196 | 14.6M | _DEBUG_HERE (0UL) |
1197 | | |
1198 | | // check for overflow into next object (invalid num_elems) |
1199 | 6.30M | #define AVAIL_BITS(dat) (int64_t) ((dat->size * 8) - bit_position (dat)) |
1200 | 904k | #define TYPE_MAXELEMSIZE(type) dwg_bits_size[BITS_##type] |
1201 | | #define VECTOR_CHKCOUNT(nam, type, size, dat) \ |
1202 | 86.4k | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1203 | 86.4k | || (int64_t)(size) * TYPE_MAXELEMSIZE (type) > AVAIL_BITS (dat)) \ |
1204 | 86.4k | { \ |
1205 | 5.10k | LOG_ERROR ("Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1206 | 5.10k | " bits for " #type ", have %" PRId64 " for %s.", \ |
1207 | 5.10k | (int64_t)(size), (int64_t)(size) * TYPE_MAXELEMSIZE (type), \ |
1208 | 5.10k | AVAIL_BITS (dat), SAFEDXFNAME); \ |
1209 | 5.10k | if (_obj->nam) \ |
1210 | 5.10k | free (_obj->nam), _obj->nam = NULL; \ |
1211 | 5.10k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1212 | 5.10k | } |
1213 | | #define SUB_VECTOR_CHKCOUNT(o, nam, type, size, dat) \ |
1214 | 5.21k | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1215 | 5.21k | || (int64_t)(size) * TYPE_MAXELEMSIZE (type) > AVAIL_BITS (dat)) \ |
1216 | 5.21k | { \ |
1217 | 459 | LOG_ERROR ( \ |
1218 | 459 | "Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1219 | 459 | " bits for " #type ", have %" PRId64 " at @%" PRIuSIZE ".%u " \ |
1220 | 459 | " for %s.", \ |
1221 | 459 | (int64_t)(size), (int64_t)(size) * TYPE_MAXELEMSIZE (type), \ |
1222 | 459 | AVAIL_BITS (dat), dat->byte, (unsigned)dat->bit, SAFEDXFNAME); \ |
1223 | 459 | if (_obj->o.nam) \ |
1224 | 459 | free (_obj->o.nam), _obj->o.nam = NULL; \ |
1225 | 459 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1226 | 459 | } |
1227 | | #define VECTOR_CHKCOUNT_LV(nam, type, size, dat) \ |
1228 | 1.71M | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1229 | 1.71M | || (int64_t)(size) * TYPE_MAXELEMSIZE (type) > AVAIL_BITS (dat)) \ |
1230 | 1.71M | { \ |
1231 | 958k | LOG_ERROR ( \ |
1232 | 958k | "Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1233 | 958k | " bits for " #type ", have %" PRId64 " at @%" PRIuSIZE ".%u " \ |
1234 | 958k | "for %s.", \ |
1235 | 958k | (int64_t)(size), (int64_t)(size) * TYPE_MAXELEMSIZE (type), \ |
1236 | 958k | AVAIL_BITS (dat), dat->byte, (unsigned)dat->bit, SAFEDXFNAME); \ |
1237 | 958k | if (_obj->nam) \ |
1238 | 958k | free (_obj->nam), _obj->nam = NULL; \ |
1239 | 958k | size = 0; /* return DWG_ERR_VALUEOUTOFBOUNDS; */ \ |
1240 | 958k | } |
1241 | | // for static TFF types with a size field |
1242 | | #define _VECTOR_CHKCOUNT(nam, size, maxelemsize, dat) \ |
1243 | 31.3k | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1244 | 31.3k | || (int64_t)(size) * (maxelemsize) > AVAIL_BITS (dat)) \ |
1245 | 31.3k | { \ |
1246 | 7.70k | LOG_ERROR ("Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1247 | 7.70k | " bits, have %" PRId64 " for %s. " \ |
1248 | 7.70k | "Set " #size " to 0", \ |
1249 | 7.70k | (int64_t)(size), (int64_t)(size) * (maxelemsize), \ |
1250 | 7.70k | AVAIL_BITS (dat), SAFEDXFNAME); \ |
1251 | 7.70k | size = 0; \ |
1252 | 7.70k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1253 | 7.70k | } |
1254 | | // for static TFF types with fixed size |
1255 | | #define _VECTOR_CHKCOUNT_STATIC(nam, siz, maxelemsize, dat) \ |
1256 | 203 | if (8 * (int64_t)(siz) > AVAIL_BITS (dat) \ |
1257 | 203 | || (int64_t)(siz) * (maxelemsize) > AVAIL_BITS (dat) \ |
1258 | 203 | || dat->byte + (siz) > dat->size) \ |
1259 | 203 | { \ |
1260 | 4 | LOG_ERROR ("Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1261 | 4 | " bits, have %" PRId64 " for %s.", \ |
1262 | 4 | (int64_t)(siz), (int64_t)(siz) * (maxelemsize), \ |
1263 | 4 | AVAIL_BITS (dat), SAFEDXFNAME); \ |
1264 | 4 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1265 | 4 | } |
1266 | | #define HANDLE_VECTOR_CHKCOUNT(nam, size) \ |
1267 | 29.4k | _VECTOR_CHKCOUNT (nam, size, TYPE_MAXELEMSIZE (HANDLE), hdl_dat) |
1268 | | |
1269 | | // FIELD_VECTOR_N(name, type, size): |
1270 | | // reads data of the type indicated by 'type' 'size' times and stores |
1271 | | // it all in the vector called 'name'. |
1272 | | #define FIELD_VECTOR_N(name, type, size, dxf) \ |
1273 | 102k | if (size > 0) \ |
1274 | 102k | { \ |
1275 | 15.7k | VECTOR_CHKCOUNT (name, type, size, dat); \ |
1276 | 14.1k | _obj->name = (BITCODE_##type *)calloc (size, sizeof (BITCODE_##type)); \ |
1277 | 14.1k | if (!_obj->name) \ |
1278 | 14.1k | return DWG_ERR_OUTOFMEM; \ |
1279 | 4.34M | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1280 | 4.32M | { \ |
1281 | 4.32M | _obj->name[vcount] = bit_read_##type (dat); \ |
1282 | 4.32M | FIELD_VEC_TRACE_N (name, type, (long)vcount, _obj->name[vcount], \ |
1283 | 4.32M | dxf); \ |
1284 | 4.32M | } \ |
1285 | 14.1k | } |
1286 | | #define SUB_FIELD_VECTOR_N(o, nam, type, csize, dxf) \ |
1287 | 0 | if (csize > 0) \ |
1288 | 0 | { \ |
1289 | 0 | SUB_VECTOR_CHKCOUNT (o, nam, type, csize, dat) \ |
1290 | 0 | _obj->o.nam \ |
1291 | 0 | = (BITCODE_##type *)calloc (csize, sizeof (BITCODE_##type)); \ |
1292 | 0 | if (!_obj->o.nam) \ |
1293 | 0 | return DWG_ERR_OUTOFMEM; \ |
1294 | 0 | for (vcount = 0; vcount < (BITCODE_BL)csize; vcount++) \ |
1295 | 0 | { \ |
1296 | 0 | _obj->o.nam[vcount] = bit_read_##type (dat); \ |
1297 | 0 | LOG_TRACE (#nam "[%ld]: " FORMAT_##type " [" #type " %d]", \ |
1298 | 0 | (long)vcount, _obj->o.nam[vcount], dxf); \ |
1299 | 0 | LOG_POS \ |
1300 | 0 | } \ |
1301 | 0 | } |
1302 | | #define SUB_FIELD_VECTOR(o, name, type, sizefield, dxf) \ |
1303 | 87.5k | if (_obj->o.sizefield > 0) \ |
1304 | 87.5k | { \ |
1305 | 5.21k | SUB_VECTOR_CHKCOUNT (o, name, type, _obj->o.sizefield, dat); \ |
1306 | 4.75k | _obj->o.name = (BITCODE_##type *)calloc (_obj->o.sizefield, \ |
1307 | 4.75k | sizeof (BITCODE_##type)); \ |
1308 | 4.75k | if (!_obj->o.name) \ |
1309 | 4.75k | return DWG_ERR_OUTOFMEM; \ |
1310 | 4.75k | LOG_TRACE (#name ": { "); \ |
1311 | 5.28M | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.sizefield; vcount++) \ |
1312 | 5.28M | { \ |
1313 | 5.28M | _obj->o.name[vcount] = bit_read_##type (dat); \ |
1314 | 5.28M | LOG_TRACE (FORMAT_##type " ", _obj->o.name[vcount]); \ |
1315 | 5.28M | } \ |
1316 | 4.75k | if (dxf) \ |
1317 | 4.75k | LOG_TRACE ("} [*" #type " %d]", dxf); \ |
1318 | 4.75k | else \ |
1319 | 4.75k | LOG_TRACE ("} [*" #type "]"); \ |
1320 | 4.75k | LOG_POS \ |
1321 | 4.75k | } |
1322 | | // inlined, with const size and without malloc |
1323 | | #define FIELD_VECTOR_INL(name, type, size, dxf) \ |
1324 | 2.75k | if (size > 0) \ |
1325 | 2.75k | { \ |
1326 | 2.75k | SINCE (R_13b1) \ |
1327 | 2.75k | { \ |
1328 | 46 | _VECTOR_CHKCOUNT_STATIC (name, size, TYPE_MAXELEMSIZE (type), dat); \ |
1329 | 42 | } \ |
1330 | 2.75k | LOG_TRACE (#name ": { "); \ |
1331 | 84.1k | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1332 | 81.4k | { \ |
1333 | 81.4k | _obj->name[vcount] = bit_read_##type (dat); \ |
1334 | 81.4k | LOG_TRACE (FORMAT_##type " ", _obj->name[vcount]); \ |
1335 | 81.4k | } \ |
1336 | 2.75k | if (dxf) \ |
1337 | 2.75k | LOG_TRACE ("} [*" #type " %d]", dxf); \ |
1338 | 2.75k | else \ |
1339 | 2.75k | LOG_TRACE ("} [*" #type "]"); \ |
1340 | 2.75k | LOG_POS \ |
1341 | 2.75k | } |
1342 | | // inlined, with const size and without malloc |
1343 | | #define SUB_FIELD_VECTOR_INL(o, nam, type, csize, dxf) \ |
1344 | 0 | if (csize > 0) \ |
1345 | 0 | { \ |
1346 | 0 | _VECTOR_CHKCOUNT_STATIC (nam, csize, TYPE_MAXELEMSIZE (type), dat); \ |
1347 | 0 | for (vcount = 0; vcount < (BITCODE_BL)csize; vcount++) \ |
1348 | 0 | { \ |
1349 | 0 | _obj->o.nam[vcount] = bit_read_##type (dat); \ |
1350 | 0 | LOG_TRACE (#nam "[%ld]: " FORMAT_##type " [" #type " %d]", \ |
1351 | 0 | (long)vcount, _obj->o.nam[vcount], dxf); \ |
1352 | 0 | LOG_POS \ |
1353 | 0 | } \ |
1354 | 0 | } |
1355 | | #define FIELD_VECTOR_T(name, type, size, dxf) \ |
1356 | 2.30k | if (_obj->size > 0) \ |
1357 | 2.30k | { \ |
1358 | 1.85k | _VECTOR_CHKCOUNT (name, _obj->size, \ |
1359 | 1.85k | dat->from_version >= R_2007 ? 18 : 2, dat); \ |
1360 | 1.22k | _obj->name = (char **)calloc (_obj->size, sizeof (char *)); \ |
1361 | 1.22k | if (!_obj->name) \ |
1362 | 1.22k | return DWG_ERR_OUTOFMEM; \ |
1363 | 4.85k | for (vcount = 0; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1364 | 4.40k | { \ |
1365 | 4.40k | PRE (R_2007a) \ |
1366 | 4.40k | { \ |
1367 | 4.40k | _obj->name[vcount] = bit_read_TV (dat); \ |
1368 | 4.40k | LOG_TRACE_TV_NAME_I (name[vcount], vcount, _obj->name[vcount], \ |
1369 | 4.40k | dxf); \ |
1370 | 4.40k | LOG_POS \ |
1371 | 4.40k | if (!_obj->name[vcount]) \ |
1372 | 4.40k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1373 | 4.40k | } \ |
1374 | 4.40k | LATER_VERSIONS \ |
1375 | 4.40k | { \ |
1376 | 0 | _obj->name[vcount] = (char *)bit_read_##type (dat); \ |
1377 | 0 | LOG_TRACE_TU_NAME_I (name, vcount, _obj->name[vcount], type, dxf);\ |
1378 | 0 | if (!_obj->name[vcount]) \ |
1379 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1380 | 0 | } \ |
1381 | 4.40k | } \ |
1382 | 1.22k | } |
1383 | | #define FIELD_VECTOR_N1(name, type, size, dxf) \ |
1384 | 0 | if (size > 0) \ |
1385 | 0 | { \ |
1386 | 0 | int _dxf = dxf; \ |
1387 | 0 | VECTOR_CHKCOUNT (name, type, size, dat) \ |
1388 | 0 | _obj->name = (BITCODE_##type *)calloc (size, sizeof (BITCODE_##type)); \ |
1389 | 0 | if (!_obj->name) \ |
1390 | 0 | return DWG_ERR_OUTOFMEM; \ |
1391 | 0 | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1392 | 0 | { \ |
1393 | 0 | _obj->name[vcount] = bit_read_##type (dat); \ |
1394 | 0 | LOG_TRACE (#name "[%d]: " FORMAT_##type " [" #type " %d]", \ |
1395 | 0 | (int)vcount, _obj->name[vcount], _dxf++); \ |
1396 | 0 | LOG_POS; \ |
1397 | 0 | } \ |
1398 | 0 | } |
1399 | | |
1400 | | #define FIELD_VECTOR(name, type, size, dxf) \ |
1401 | 102k | FIELD_VECTOR_N (name, type, _obj->size, dxf) |
1402 | | |
1403 | | #define SUB_FIELD_VECTOR_TYPESIZE(o, name, size, typesize, dxf) \ |
1404 | 0 | if (_obj->o.size > 0) \ |
1405 | 0 | { \ |
1406 | 0 | _obj->o.name = (BITCODE_RC *)calloc (_obj->o.size, typesize); \ |
1407 | 0 | if (!_obj->o.name) \ |
1408 | 0 | return DWG_ERR_OUTOFMEM; \ |
1409 | 0 | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \ |
1410 | 0 | { \ |
1411 | 0 | switch (typesize) \ |
1412 | 0 | { \ |
1413 | 0 | case 0: \ |
1414 | 0 | break; \ |
1415 | 0 | case 1: \ |
1416 | 0 | _obj->o.name[vcount] = bit_read_RC (dat); \ |
1417 | 0 | break; \ |
1418 | 0 | case 2: \ |
1419 | 0 | _obj->o.name[vcount] = bit_read_RS (dat); \ |
1420 | 0 | break; \ |
1421 | 0 | case 4: \ |
1422 | 0 | _obj->o.name[vcount] = bit_read_RL (dat); \ |
1423 | 0 | break; \ |
1424 | 0 | case 8: \ |
1425 | 0 | _obj->o.name[vcount] = bit_read_RLL (dat); \ |
1426 | 0 | break; \ |
1427 | 0 | default: \ |
1428 | 0 | LOG_ERROR ("Unknown FIELD_VECTOR_TYPE " #name " typesize %d", \ |
1429 | 0 | typesize); \ |
1430 | 0 | break; \ |
1431 | 0 | } \ |
1432 | 0 | LOG_TRACE (#name "[%u]: %d", vcount, (int)_obj->o.name[vcount]); \ |
1433 | 0 | LOG_POS \ |
1434 | 0 | } \ |
1435 | 0 | } |
1436 | | |
1437 | | #define FIELD_2RD_VECTOR(name, size, dxf) \ |
1438 | 8.71k | VECTOR_CHKCOUNT_LV (name, 2RD, _obj->size, dat) \ |
1439 | 8.71k | if (_obj->size > 0) \ |
1440 | 5.13k | { \ |
1441 | 5.13k | _obj->name = (BITCODE_2RD *)calloc (_obj->size, sizeof (BITCODE_2RD)); \ |
1442 | 5.13k | if (!_obj->name) \ |
1443 | 5.13k | return DWG_ERR_OUTOFMEM; \ |
1444 | 169k | for (vcount = 0; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1445 | 168k | { \ |
1446 | 168k | FIELD_2RD (name[vcount], dxf); \ |
1447 | 164k | } \ |
1448 | 5.13k | } \ |
1449 | 0 | else \ |
1450 | 3.57k | return DWG_ERR_VALUEOUTOFBOUNDS; |
1451 | | |
1452 | | #define SUB_FIELD_2RD_VECTOR(o, name, size, dxf) \ |
1453 | 0 | VECTOR_CHKCOUNT_LV (o.name, 2RD, _obj->o.size, dat) \ |
1454 | 0 | if (_obj->o.size > 0) \ |
1455 | 0 | { \ |
1456 | 0 | _obj->o.name \ |
1457 | 0 | = (BITCODE_2RD *)calloc (_obj->o.size, sizeof (BITCODE_2RD)); \ |
1458 | 0 | if (!_obj->o.name) \ |
1459 | 0 | return DWG_ERR_OUTOFMEM; \ |
1460 | 0 | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \ |
1461 | 0 | { \ |
1462 | 0 | SUB_FIELD_2RD (o, name[vcount], dxf); \ |
1463 | 0 | } \ |
1464 | 0 | } \ |
1465 | 0 | else \ |
1466 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; |
1467 | | |
1468 | | #define FIELD_2DD_VECTOR(name, size, dxf) \ |
1469 | 10.0k | VECTOR_CHKCOUNT_LV (name, 2DD, _obj->size, dat) \ |
1470 | 10.0k | if (_obj->size > 0) \ |
1471 | 10.0k | { \ |
1472 | 6.37k | _obj->name = (BITCODE_2RD *)calloc (_obj->size, sizeof (BITCODE_2RD)); \ |
1473 | 6.37k | if (!_obj->name) \ |
1474 | 6.37k | return DWG_ERR_OUTOFMEM; \ |
1475 | 12.1k | FIELD_2RD (name[0], dxf); \ |
1476 | 746k | for (vcount = 1; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1477 | 742k | { \ |
1478 | 742k | BITCODE_BB b2, b1 = bit_read_BB_noadv (dat); \ |
1479 | 742k | FIELD_DD (name[vcount].x, FIELD_VALUE (name[vcount - 1].x), dxf); \ |
1480 | 741k | b2 = bit_read_BB_noadv (dat); \ |
1481 | 741k | FIELD_DD (name[vcount].y, FIELD_VALUE (name[vcount - 1].y), \ |
1482 | 741k | dxf + 10); \ |
1483 | 740k | if (b1 == 3 && b2 == 3) \ |
1484 | 740k | LOG_TRACE (#name "[%ld]: (" FORMAT_BD ", " FORMAT_BD \ |
1485 | 740k | ") [2DD %d]", \ |
1486 | 740k | (long)vcount, _obj->name[vcount].x, \ |
1487 | 740k | _obj->name[vcount].y, dxf); \ |
1488 | 740k | else \ |
1489 | 740k | LOG_TRACE (#name "[%ld]: (" FORMAT_BD ", " FORMAT_BD \ |
1490 | 740k | ") [2DD/%d%d %d]", \ |
1491 | 740k | (long)vcount, _obj->name[vcount].x, \ |
1492 | 740k | _obj->name[vcount].y, b1, b2, dxf); \ |
1493 | 740k | LOG_POS \ |
1494 | 740k | } \ |
1495 | 12.1k | } \ |
1496 | 10.0k | else \ |
1497 | 10.0k | return DWG_ERR_VALUEOUTOFBOUNDS; |
1498 | | |
1499 | | #define FIELD_3DPOINT_VECTOR(name, size, dxf) \ |
1500 | 1.53M | VECTOR_CHKCOUNT_LV (name, 3BD, _obj->size, dat) \ |
1501 | 1.53M | if (_obj->size > 0) \ |
1502 | 1.53M | { \ |
1503 | 114k | _obj->name \ |
1504 | 114k | = (BITCODE_3DPOINT *)calloc (_obj->size, sizeof (BITCODE_3DPOINT)); \ |
1505 | 114k | if (!_obj->name) \ |
1506 | 114k | return DWG_ERR_OUTOFMEM; \ |
1507 | 25.9M | for (vcount = 0; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1508 | 25.8M | { \ |
1509 | 25.8M | FIELD_3DPOINT (name[vcount], dxf); \ |
1510 | 25.8M | } \ |
1511 | 114k | } |
1512 | | #define SUB_FIELD_3BD_VECTOR(o, name, size, dxf) \ |
1513 | 0 | VECTOR_CHKCOUNT_LV (o.name, 3BD, _obj->o.size, dat) \ |
1514 | 0 | if (_obj->o.size > 0) \ |
1515 | 0 | { \ |
1516 | 0 | _obj->o.name \ |
1517 | 0 | = (BITCODE_3BD *)calloc (_obj->o.size, sizeof (BITCODE_3BD)); \ |
1518 | 0 | if (!_obj->o.name) \ |
1519 | 0 | return DWG_ERR_OUTOFMEM; \ |
1520 | 0 | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \ |
1521 | 0 | { \ |
1522 | 0 | SUB_FIELD_3BD (o, name[vcount], dxf); \ |
1523 | 0 | } \ |
1524 | 0 | } \ |
1525 | 0 | else \ |
1526 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; |
1527 | | |
1528 | | // shortest handle: 8 bit |
1529 | | #define HANDLE_VECTOR_N(nam, size, code, dxf) \ |
1530 | 159k | if (size > 0) \ |
1531 | 159k | { \ |
1532 | 72.7k | FIELD_VALUE (nam) = (BITCODE_H *)calloc (size, sizeof (BITCODE_H)); \ |
1533 | 72.7k | if (!_obj->nam) \ |
1534 | 72.7k | return DWG_ERR_OUTOFMEM; \ |
1535 | 52.1M | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1536 | 52.0M | { \ |
1537 | 52.0M | FIELD_HANDLE_N (nam[vcount], vcount, code, dxf); \ |
1538 | 52.0M | } \ |
1539 | 72.7k | } |
1540 | | |
1541 | | #define HANDLE_VECTOR(nam, sizefield, code, dxf) \ |
1542 | 158k | VECTOR_CHKCOUNT_LV (nam, HANDLE, FIELD_VALUE (sizefield), hdl_dat) \ |
1543 | 158k | HANDLE_VECTOR_N (nam, FIELD_VALUE (sizefield), code, dxf) |
1544 | | |
1545 | | #define SUB_HANDLE_VECTOR(o, nam, sizefield, code, dxf) \ |
1546 | 9.66k | if (_obj->o.sizefield > 0) \ |
1547 | 9.66k | { \ |
1548 | 1.16k | BITCODE_BL _size = _obj->o.sizefield; \ |
1549 | 1.16k | HANDLE_VECTOR_CHKCOUNT (nam, _size) \ |
1550 | 1.16k | _obj->o.nam = (BITCODE_H *)calloc (_size, sizeof (BITCODE_H)); \ |
1551 | 761 | if (!_obj->o.nam) \ |
1552 | 761 | return DWG_ERR_OUTOFMEM; \ |
1553 | 111k | for (vcount = 0; vcount < _size; vcount++) \ |
1554 | 111k | { \ |
1555 | 111k | SUB_FIELD_HANDLE (o, nam[vcount], code, dxf); \ |
1556 | 111k | } \ |
1557 | 761 | } |
1558 | | |
1559 | | // count 1 bytes, until non-1 bytes or a terminating zero |
1560 | | #define FIELD_NUM_INSERTS(num_inserts, type, dxf) \ |
1561 | 52.2k | FIELD_VALUE (num_inserts) = 0; \ |
1562 | 52.2k | vcount = 0; \ |
1563 | 1.51M | while ((vcount = (BITCODE_RC)bit_read_RC (dat))) \ |
1564 | 1.46M | { \ |
1565 | 1.46M | FIELD_VALUE (num_inserts)++; \ |
1566 | 1.46M | LOG_INSANE ("num_inserts [RC " FORMAT_RL "]: %d\n", \ |
1567 | 1.46M | FIELD_VALUE (num_inserts), (unsigned char)vcount); \ |
1568 | 1.46M | if (vcount == 0) \ |
1569 | 1.46M | break; \ |
1570 | 1.46M | } \ |
1571 | 52.2k | LOG_TRACE ("num_inserts: %d [RC* 0]\n", FIELD_VALUE (num_inserts)); |
1572 | | |
1573 | | #define FIELD_XDATA(name, xdata_size) \ |
1574 | 5.10k | _obj->name = dwg_decode_xdata (dat, _obj, _obj->xdata_size) |
1575 | | |
1576 | | #define REACTORS(code) \ |
1577 | 115k | if (obj->tio.object->num_reactors > 0) \ |
1578 | 115k | { \ |
1579 | 10.2k | HANDLE_VECTOR_CHKCOUNT (reactors, obj->tio.object->num_reactors) \ |
1580 | 10.2k | obj->tio.object->reactors = (BITCODE_H *)calloc ( \ |
1581 | 8.68k | obj->tio.object->num_reactors, sizeof (BITCODE_H)); \ |
1582 | 8.68k | if (!obj->tio.object->reactors) \ |
1583 | 8.68k | return DWG_ERR_OUTOFMEM; \ |
1584 | 4.58M | for (vcount = 0; vcount < obj->tio.object->num_reactors; vcount++) \ |
1585 | 4.57M | { \ |
1586 | 4.57M | VALUE_HANDLE_N (obj->tio.object->reactors[vcount], reactors, \ |
1587 | 4.57M | vcount, code, 330); \ |
1588 | 4.57M | } \ |
1589 | 8.68k | } |
1590 | | |
1591 | | #define ENT_REACTORS(code) \ |
1592 | 44.7k | if (_ent->num_reactors > 0) \ |
1593 | 44.7k | { \ |
1594 | 18.1k | HANDLE_VECTOR_CHKCOUNT (reactors, _ent->num_reactors) \ |
1595 | 18.1k | _ent->reactors \ |
1596 | 12.9k | = (BITCODE_H *)calloc (_ent->num_reactors, sizeof (BITCODE_H)); \ |
1597 | 12.9k | if (!_ent->reactors) \ |
1598 | 12.9k | return DWG_ERR_OUTOFMEM; \ |
1599 | 2.85M | for (vcount = 0; vcount < _ent->num_reactors; vcount++) \ |
1600 | 2.84M | { \ |
1601 | 2.84M | VALUE_HANDLE_N (_ent->reactors[vcount], reactors, vcount, code, \ |
1602 | 2.84M | 330); \ |
1603 | 2.84M | } \ |
1604 | 12.9k | } |
1605 | | |
1606 | | #define XDICOBJHANDLE(code) \ |
1607 | 114k | SINCE (R_2004a) \ |
1608 | 114k | { \ |
1609 | 0 | if (!obj->tio.object->is_xdic_missing) \ |
1610 | 0 | { \ |
1611 | 0 | VALUE_HANDLE (obj->tio.object->xdicobjhandle, xdicobjhandle, code, \ |
1612 | 0 | 360); \ |
1613 | 0 | if (!obj->tio.object->xdicobjhandle) \ |
1614 | 0 | obj->tio.object->is_xdic_missing = 1; \ |
1615 | 0 | } \ |
1616 | 0 | } \ |
1617 | 114k | else \ |
1618 | 114k | { \ |
1619 | 114k | SINCE (R_13b1) \ |
1620 | 114k | { \ |
1621 | 114k | VALUE_HANDLE (obj->tio.object->xdicobjhandle, xdicobjhandle, code, \ |
1622 | 114k | 360); \ |
1623 | 114k | } \ |
1624 | 114k | } |
1625 | | |
1626 | | #define ENT_XDICOBJHANDLE(code) \ |
1627 | 39.6k | SINCE (R_2004a) \ |
1628 | 39.6k | { \ |
1629 | 0 | if (!_ent->is_xdic_missing) \ |
1630 | 0 | { \ |
1631 | 0 | VALUE_HANDLE (_ent->xdicobjhandle, xdicobjhandle, code, 360); \ |
1632 | 0 | } \ |
1633 | 0 | } \ |
1634 | 39.6k | else \ |
1635 | 39.6k | { \ |
1636 | 39.6k | SINCE (R_13b1) \ |
1637 | 39.6k | { \ |
1638 | 39.6k | VALUE_HANDLE (_ent->xdicobjhandle, xdicobjhandle, code, 360); \ |
1639 | 39.6k | } \ |
1640 | 39.6k | } |
1641 | | |
1642 | | #define UNKNOWN_UNTIL(pos) \ |
1643 | 14.6k | if (dat->byte < (size_t)(pos)) \ |
1644 | 14.6k | { \ |
1645 | 11.1k | long len = (long)((pos) - dat->byte); \ |
1646 | 11.1k | BITCODE_TF unknown = bit_read_TF (dat, (size_t)len); \ |
1647 | 11.1k | LOG_TRACE ("unknown (%ld): ", len); \ |
1648 | 11.1k | LOG_TRACE_TF (unknown, len); \ |
1649 | 11.1k | free (unknown); \ |
1650 | 11.1k | } \ |
1651 | 14.6k | dat->byte = (size_t)(pos) |
1652 | | |
1653 | | #define SECTION_STRING_STREAM \ |
1654 | 0 | { \ |
1655 | 0 | Bit_Chain sav_dat = *dat; \ |
1656 | 0 | dat = str_dat; |
1657 | | |
1658 | | // TODO: unused |
1659 | | #define START_STRING_STREAM \ |
1660 | | obj->has_strings = bit_read_B (dat); \ |
1661 | | if (obj->has_strings) \ |
1662 | | { \ |
1663 | | Bit_Chain sav_dat = *dat; \ |
1664 | | obj_string_stream (dat, obj, dat); |
1665 | | |
1666 | | #define END_STRING_STREAM \ |
1667 | 0 | *dat = sav_dat; \ |
1668 | 0 | } |
1669 | | /* just checking. skip the has_strings bit. hdl_dat is already set */ |
1670 | | #define START_HANDLE_STREAM \ |
1671 | 4.06M | { \ |
1672 | 4.06M | size_t _pos = bit_position (dat); \ |
1673 | 4.06M | if (dat->from_version >= R_2007) \ |
1674 | 4.06M | _pos++; /* has_strings bit */ \ |
1675 | 4.06M | if (obj->hdlpos != _pos) \ |
1676 | 4.06M | { \ |
1677 | 1.47M | LOG_HANDLE ( \ |
1678 | 1.47M | " handle stream: %+ld @%" PRIuSIZE ".%u %s (@%" PRIuSIZE ".%u " \ |
1679 | 1.47M | " @%" PRIuSIZE ".%u)\n", \ |
1680 | 1.47M | (long)(obj->hdlpos - _pos), dat->byte, (unsigned)dat->bit, \ |
1681 | 1.47M | (long)(obj->hdlpos - _pos) >= 8 ? "MISSING" \ |
1682 | 1.47M | : (long)(obj->hdlpos < _pos) ? "OVERSHOOT" \ |
1683 | 1.47M | : "", \ |
1684 | 1.47M | obj->hdlpos / 8, (unsigned)obj->hdlpos % 8, hdl_dat->byte, \ |
1685 | 1.47M | (unsigned)hdl_dat->bit); \ |
1686 | 1.47M | bit_set_position (dat, obj->hdlpos); \ |
1687 | 1.47M | } \ |
1688 | 4.06M | } |
1689 | | |
1690 | | #define REPEAT_CHKCOUNT(name, times, type) \ |
1691 | 0 | if (AVAIL_BITS (dat) < 0) \ |
1692 | 0 | { \ |
1693 | 0 | LOG_ERROR ("Invalid " #name " in %s. No bytes left.\n", SAFEDXFNAME); \ |
1694 | 0 | if (_obj->name) \ |
1695 | 0 | { \ |
1696 | 0 | free (_obj->name); \ |
1697 | 0 | _obj->name = NULL; \ |
1698 | 0 | } \ |
1699 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1700 | 0 | } \ |
1701 | 0 | LOG_INSANE ("REPEAT_CHKCOUNT %s." #name " x %lu: %lu > %" PRId64 "?\n", \ |
1702 | 0 | SAFEDXFNAME, (unsigned long)times, \ |
1703 | 0 | (unsigned long)((times) * sizeof (type)), AVAIL_BITS (dat)); \ |
1704 | 0 | if ((int64_t)((times) * (sizeof (type) > 32 ? 32 : sizeof (type))) \ |
1705 | 0 | > AVAIL_BITS (dat)) \ |
1706 | 0 | { \ |
1707 | 0 | LOG_ERROR ("Invalid %s." #name " x %lu\n", SAFEDXFNAME, \ |
1708 | 0 | (unsigned long)times); \ |
1709 | 0 | if (_obj->name) \ |
1710 | 0 | { \ |
1711 | 0 | free (_obj->name); \ |
1712 | 0 | _obj->name = NULL; \ |
1713 | 0 | } \ |
1714 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1715 | 0 | } |
1716 | | #define REPEAT_CHKCOUNT_LVAL(name, times, type) \ |
1717 | 551k | if (AVAIL_BITS (dat) < 0) \ |
1718 | 551k | { \ |
1719 | 6.37k | LOG_ERROR ("Invalid %s." #name ". No bytes left.\n", SAFEDXFNAME); \ |
1720 | 6.37k | times = 0; \ |
1721 | 6.37k | if (_obj->name) \ |
1722 | 6.37k | { \ |
1723 | 0 | free (_obj->name); \ |
1724 | 0 | _obj->name = NULL; \ |
1725 | 0 | } \ |
1726 | 6.37k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1727 | 6.37k | } \ |
1728 | 551k | LOG_INSANE ("REPEAT_CHKCOUNT_LVAL %s." #name " x %lu: %lu > %" PRId64 \ |
1729 | 544k | "?\n", \ |
1730 | 544k | SAFEDXFNAME, (unsigned long)times, \ |
1731 | 544k | (unsigned long)((times) * sizeof (type)), AVAIL_BITS (dat)); \ |
1732 | 544k | if ((int64_t)((times) * (sizeof (type) > 32 ? 32 : sizeof (type))) \ |
1733 | 544k | > AVAIL_BITS (dat) \ |
1734 | 544k | || (sizeof (times) > 4 && times > 0xc0000000 / sizeof (type))) \ |
1735 | 544k | { \ |
1736 | 11.0k | LOG_ERROR ("Invalid %s." #name " x %ld\n", SAFEDXFNAME, (long)times); \ |
1737 | 11.0k | times = 0; \ |
1738 | 11.0k | if (_obj->name) \ |
1739 | 11.0k | { \ |
1740 | 0 | free (_obj->name); \ |
1741 | 0 | _obj->name = NULL; \ |
1742 | 0 | } \ |
1743 | 11.0k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1744 | 11.0k | } |
1745 | | |
1746 | | /* REPEAT names: |
1747 | | _ adds idx |
1748 | | C does no checks |
1749 | | N does constant times (else _obj->times) |
1750 | | F does not calloc/free |
1751 | | */ |
1752 | | |
1753 | | // unchecked with constant times |
1754 | | #define REPEAT_CN(times, name, type) \ |
1755 | 0 | if (times > 0) \ |
1756 | 0 | { \ |
1757 | 0 | _obj->name = (type *)calloc (times, sizeof (type)); \ |
1758 | 0 | if (!_obj->name) \ |
1759 | 0 | return DWG_ERR_OUTOFMEM; \ |
1760 | 0 | } \ |
1761 | 0 | for (rcount1 = 0; rcount1 < (BITCODE_BL)times; rcount1++) |
1762 | | // checked with constant times |
1763 | | #define REPEAT_N(times, name, type) \ |
1764 | 0 | REPEAT_CHKCOUNT (name, times, type) \ |
1765 | 0 | if (times > 0) \ |
1766 | 0 | { \ |
1767 | 0 | _obj->name = (type *)calloc (times, sizeof (type)); \ |
1768 | 0 | if (!_obj->name) \ |
1769 | 0 | return DWG_ERR_OUTOFMEM; \ |
1770 | 0 | } \ |
1771 | 0 | for (rcount1 = 0; rcount1 < (BITCODE_BL)times; rcount1++) |
1772 | | |
1773 | | // checked with var. times |
1774 | | #define _REPEAT(times, nam, type, idx) \ |
1775 | 551k | REPEAT_CHKCOUNT_LVAL (nam, _obj->times, type) \ |
1776 | 544k | if (_obj->times > 0) \ |
1777 | 533k | { \ |
1778 | 80.8k | _obj->nam = (type *)calloc (_obj->times, sizeof (type)); \ |
1779 | 80.8k | if (!_obj->nam) \ |
1780 | 80.8k | return DWG_ERR_OUTOFMEM; \ |
1781 | 80.8k | } \ |
1782 | 4.77M | for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; rcount##idx++) |
1783 | | // unchecked with var. times |
1784 | | #define _REPEAT_C(times, name, type, idx) \ |
1785 | 22.2k | if (_obj->times > 0) \ |
1786 | 22.2k | _obj->name = (type *)calloc (_obj->times, sizeof (type)); \ |
1787 | 2.29M | for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; rcount##idx++) |
1788 | | // unchecked with constant times |
1789 | | #define _REPEAT_CN(times, name, type, idx) \ |
1790 | 0 | if (times > 0) \ |
1791 | 0 | { \ |
1792 | 0 | _obj->name = (type *)calloc (times, sizeof (type)); \ |
1793 | 0 | if (!_obj->name) \ |
1794 | 0 | return DWG_ERR_OUTOFMEM; \ |
1795 | 0 | } \ |
1796 | 0 | if (_obj->name) \ |
1797 | 0 | for (rcount##idx = 0; rcount##idx < (BITCODE_BL)times; rcount##idx++) |
1798 | | |
1799 | | // not allocating versions unchecked: _REPEAT_CNF |
1800 | | // not allocating versions checked: _REPEAT_NF |
1801 | | |
1802 | 113k | #define REPEAT(times, name, type) _REPEAT (times, name, type, 1) |
1803 | 440k | #define REPEAT2(times, name, type) _REPEAT (times, name, type, 2) |
1804 | 504 | #define REPEAT3(times, name, type) _REPEAT (times, name, type, 3) |
1805 | 0 | #define REPEAT4(times, name, type) _REPEAT (times, name, type, 4) |
1806 | | |
1807 | 22.2k | #define REPEAT_C(times, name, type) _REPEAT_C (times, name, type, 1) |
1808 | 0 | #define REPEAT2_C(times, name, type) _REPEAT_C (times, name, type, 2) |
1809 | | #define REPEAT3_C(times, name, type) _REPEAT_C (times, name, type, 3) |
1810 | | #define REPEAT4_C(times, name, type) _REPEAT_C (times, name, type, 4) |
1811 | | |
1812 | | #define COMMON_ENTITY_HANDLE_DATA \ |
1813 | 915k | SINCE (R_13b1) \ |
1814 | 599k | { \ |
1815 | 599k | START_HANDLE_STREAM; \ |
1816 | 599k | } |
1817 | | |
1818 | | /** Add the empty entity or object with its three structs to the DWG. |
1819 | | All fields are zero'd. TODO: some are initialized with default values, as |
1820 | | defined in dwg.spec. |
1821 | | Returns 0 or DWG_ERR_OUTOFMEM. |
1822 | | */ |
1823 | | |
1824 | | #define DWG_ENTITY(token) \ |
1825 | | EXPORT int dwg_setup_##token (Dwg_Object *obj) \ |
1826 | 1.52M | { \ |
1827 | 1.52M | Dwg_Object_Entity *_ent; \ |
1828 | 1.52M | Dwg_Entity_##token *_obj; \ |
1829 | 1.52M | if (strEQc (#token, "DIMENSION_ANG2LN") \ |
1830 | 1.52M | && obj->parent->header.version < R_13b1) \ |
1831 | 1.52M | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ |
1832 | 1.52M | else \ |
1833 | 1.52M | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ |
1834 | 1.52M | obj->parent->num_entities++; \ |
1835 | 1.52M | obj->supertype = DWG_SUPERTYPE_ENTITY; \ |
1836 | 1.52M | if (!(int)obj->fixedtype) \ |
1837 | 1.52M | { \ |
1838 | 1.52M | obj->fixedtype = DWG_TYPE_##token; \ |
1839 | 1.52M | } \ |
1840 | 1.52M | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ |
1841 | 1.52M | { \ |
1842 | 36.3k | obj->type = DWG_TYPE_##token; \ |
1843 | 36.3k | } \ |
1844 | 1.52M | if (!obj->dxfname) \ |
1845 | 1.52M | { \ |
1846 | 1.52M | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ |
1847 | 1.52M | obj->name = obj->dxfname = (char *)&#token[1]; \ |
1848 | 1.52M | else if (strEQc (#token, "PROXY_ENTITY")) \ |
1849 | 1.43M | { \ |
1850 | 1.38k | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ |
1851 | 1.38k | obj->name = (char *)#token; \ |
1852 | 1.38k | } \ |
1853 | 1.43M | else \ |
1854 | 1.43M | obj->name = obj->dxfname = (char *)#token; \ |
1855 | 1.52M | } \ |
1856 | 1.52M | else if (!obj->name) \ |
1857 | 0 | { \ |
1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ |
1859 | 0 | obj->name = (char *)&#token[1]; \ |
1860 | 0 | else \ |
1861 | 0 | obj->name = (char *)#token; \ |
1862 | 0 | } \ |
1863 | 1.52M | if (strEQc (#token, "UNKNOWN_ENT")) \ |
1864 | 1.52M | { \ |
1865 | 0 | obj->name = (char *)#token; \ |
1866 | 0 | obj->dxfname = (char *)#token; \ |
1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ |
1868 | 0 | } \ |
1869 | 1.52M | if (obj->parent->opts & DWG_OPTS_IN) \ |
1870 | 1.52M | { \ |
1871 | 1.34k | obj->dxfname = strdup (obj->dxfname); \ |
1872 | 1.34k | if (obj->parent->opts & DWG_OPTS_INJSON) \ |
1873 | 1.34k | obj->name = strdup (obj->name); \ |
1874 | 1.34k | } \ |
1875 | 1.52M | _ent = obj->tio.entity \ |
1876 | 1.52M | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ |
1877 | 1.52M | if (!_ent) \ |
1878 | 1.52M | return DWG_ERR_OUTOFMEM; \ |
1879 | 1.52M | _ent->tio.token \ |
1880 | 1.52M | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ |
1881 | 1.52M | if (!_ent->tio.token) \ |
1882 | 1.52M | return DWG_ERR_OUTOFMEM; \ |
1883 | 1.52M | _ent->dwg = obj->parent; \ |
1884 | 1.52M | _ent->objid = obj->index; /* obj ptr itself might move */ \ |
1885 | 1.52M | _ent->tio.token->parent = obj->tio.entity; \ |
1886 | 1.52M | return 0; \ |
1887 | 1.52M | } \ Line | Count | Source | 1826 | 68.7k | { \ | 1827 | 68.7k | Dwg_Object_Entity *_ent; \ | 1828 | 68.7k | Dwg_Entity_##token *_obj; \ | 1829 | 68.7k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 68.7k | && obj->parent->header.version < R_13b1) \ | 1831 | 68.7k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 68.7k | else \ | 1833 | 68.7k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 68.7k | obj->parent->num_entities++; \ | 1835 | 68.7k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 68.7k | if (!(int)obj->fixedtype) \ | 1837 | 68.7k | { \ | 1838 | 68.7k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 68.7k | } \ | 1840 | 68.7k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 68.7k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 68.7k | if (!obj->dxfname) \ | 1845 | 68.7k | { \ | 1846 | 68.7k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 68.7k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 68.7k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 68.7k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 68.7k | else \ | 1854 | 68.7k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 68.7k | } \ | 1856 | 68.7k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 68.7k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 68.7k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 68.7k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 68.7k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 68.7k | _ent = obj->tio.entity \ | 1876 | 68.7k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 68.7k | if (!_ent) \ | 1878 | 68.7k | return DWG_ERR_OUTOFMEM; \ | 1879 | 68.7k | _ent->tio.token \ | 1880 | 68.7k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 68.7k | if (!_ent->tio.token) \ | 1882 | 68.7k | return DWG_ERR_OUTOFMEM; \ | 1883 | 68.7k | _ent->dwg = obj->parent; \ | 1884 | 68.7k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 68.7k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 68.7k | return 0; \ | 1887 | 68.7k | } \ |
Line | Count | Source | 1826 | 40.1k | { \ | 1827 | 40.1k | Dwg_Object_Entity *_ent; \ | 1828 | 40.1k | Dwg_Entity_##token *_obj; \ | 1829 | 40.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 40.1k | && obj->parent->header.version < R_13b1) \ | 1831 | 40.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 40.1k | else \ | 1833 | 40.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 40.1k | obj->parent->num_entities++; \ | 1835 | 40.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 40.1k | if (!(int)obj->fixedtype) \ | 1837 | 40.1k | { \ | 1838 | 40.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 40.1k | } \ | 1840 | 40.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 40.1k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 40.1k | if (!obj->dxfname) \ | 1845 | 40.1k | { \ | 1846 | 40.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 40.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 40.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 40.1k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 40.1k | else \ | 1854 | 40.1k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 40.1k | } \ | 1856 | 40.1k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 40.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 40.1k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 40.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 40.1k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 40.1k | _ent = obj->tio.entity \ | 1876 | 40.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 40.1k | if (!_ent) \ | 1878 | 40.1k | return DWG_ERR_OUTOFMEM; \ | 1879 | 40.1k | _ent->tio.token \ | 1880 | 40.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 40.1k | if (!_ent->tio.token) \ | 1882 | 40.1k | return DWG_ERR_OUTOFMEM; \ | 1883 | 40.1k | _ent->dwg = obj->parent; \ | 1884 | 40.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 40.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 40.1k | return 0; \ | 1887 | 40.1k | } \ |
Line | Count | Source | 1826 | 68.1k | { \ | 1827 | 68.1k | Dwg_Object_Entity *_ent; \ | 1828 | 68.1k | Dwg_Entity_##token *_obj; \ | 1829 | 68.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 68.1k | && obj->parent->header.version < R_13b1) \ | 1831 | 68.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 68.1k | else \ | 1833 | 68.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 68.1k | obj->parent->num_entities++; \ | 1835 | 68.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 68.1k | if (!(int)obj->fixedtype) \ | 1837 | 68.1k | { \ | 1838 | 68.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 68.1k | } \ | 1840 | 68.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 68.1k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 68.1k | if (!obj->dxfname) \ | 1845 | 68.1k | { \ | 1846 | 68.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 68.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 68.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 68.1k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 68.1k | else \ | 1854 | 68.1k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 68.1k | } \ | 1856 | 68.1k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 68.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 68.1k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 68.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 68.1k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 68.1k | _ent = obj->tio.entity \ | 1876 | 68.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 68.1k | if (!_ent) \ | 1878 | 68.1k | return DWG_ERR_OUTOFMEM; \ | 1879 | 68.1k | _ent->tio.token \ | 1880 | 68.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 68.1k | if (!_ent->tio.token) \ | 1882 | 68.1k | return DWG_ERR_OUTOFMEM; \ | 1883 | 68.1k | _ent->dwg = obj->parent; \ | 1884 | 68.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 68.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 68.1k | return 0; \ | 1887 | 68.1k | } \ |
Line | Count | Source | 1826 | 33.0k | { \ | 1827 | 33.0k | Dwg_Object_Entity *_ent; \ | 1828 | 33.0k | Dwg_Entity_##token *_obj; \ | 1829 | 33.0k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 33.0k | && obj->parent->header.version < R_13b1) \ | 1831 | 33.0k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 33.0k | else \ | 1833 | 33.0k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 33.0k | obj->parent->num_entities++; \ | 1835 | 33.0k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 33.0k | if (!(int)obj->fixedtype) \ | 1837 | 33.0k | { \ | 1838 | 33.0k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 33.0k | } \ | 1840 | 33.0k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 33.0k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 33.0k | if (!obj->dxfname) \ | 1845 | 33.0k | { \ | 1846 | 33.0k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 33.0k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 33.0k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 33.0k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 33.0k | else \ | 1854 | 33.0k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 33.0k | } \ | 1856 | 33.0k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 33.0k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 33.0k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 33.0k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 33.0k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 33.0k | _ent = obj->tio.entity \ | 1876 | 33.0k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 33.0k | if (!_ent) \ | 1878 | 33.0k | return DWG_ERR_OUTOFMEM; \ | 1879 | 33.0k | _ent->tio.token \ | 1880 | 33.0k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 33.0k | if (!_ent->tio.token) \ | 1882 | 33.0k | return DWG_ERR_OUTOFMEM; \ | 1883 | 33.0k | _ent->dwg = obj->parent; \ | 1884 | 33.0k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 33.0k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 33.0k | return 0; \ | 1887 | 33.0k | } \ |
Line | Count | Source | 1826 | 67.2k | { \ | 1827 | 67.2k | Dwg_Object_Entity *_ent; \ | 1828 | 67.2k | Dwg_Entity_##token *_obj; \ | 1829 | 67.2k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 67.2k | && obj->parent->header.version < R_13b1) \ | 1831 | 67.2k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 67.2k | else \ | 1833 | 67.2k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 67.2k | obj->parent->num_entities++; \ | 1835 | 67.2k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 67.2k | if (!(int)obj->fixedtype) \ | 1837 | 67.2k | { \ | 1838 | 67.2k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 67.2k | } \ | 1840 | 67.2k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 67.2k | { \ | 1842 | 36.3k | obj->type = DWG_TYPE_##token; \ | 1843 | 36.3k | } \ | 1844 | 67.2k | if (!obj->dxfname) \ | 1845 | 67.2k | { \ | 1846 | 67.2k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 67.2k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 67.2k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 67.2k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 67.2k | else \ | 1854 | 67.2k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 67.2k | } \ | 1856 | 67.2k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 67.2k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 67.2k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 67.2k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 67.2k | { \ | 1871 | 1.34k | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 1.34k | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 1.34k | obj->name = strdup (obj->name); \ | 1874 | 1.34k | } \ | 1875 | 67.2k | _ent = obj->tio.entity \ | 1876 | 67.2k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 67.2k | if (!_ent) \ | 1878 | 67.2k | return DWG_ERR_OUTOFMEM; \ | 1879 | 67.2k | _ent->tio.token \ | 1880 | 67.2k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 67.2k | if (!_ent->tio.token) \ | 1882 | 67.2k | return DWG_ERR_OUTOFMEM; \ | 1883 | 67.2k | _ent->dwg = obj->parent; \ | 1884 | 67.2k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 67.2k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 67.2k | return 0; \ | 1887 | 67.2k | } \ |
Line | Count | Source | 1826 | 8.87k | { \ | 1827 | 8.87k | Dwg_Object_Entity *_ent; \ | 1828 | 8.87k | Dwg_Entity_##token *_obj; \ | 1829 | 8.87k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 8.87k | && obj->parent->header.version < R_13b1) \ | 1831 | 8.87k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 8.87k | else \ | 1833 | 8.87k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 8.87k | obj->parent->num_entities++; \ | 1835 | 8.87k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 8.87k | if (!(int)obj->fixedtype) \ | 1837 | 8.87k | { \ | 1838 | 8.87k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 8.87k | } \ | 1840 | 8.87k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 8.87k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 8.87k | if (!obj->dxfname) \ | 1845 | 8.87k | { \ | 1846 | 8.87k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 8.87k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 8.87k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 8.87k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 8.87k | else \ | 1854 | 8.87k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 8.87k | } \ | 1856 | 8.87k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 8.87k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 8.87k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 8.87k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 8.87k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 8.87k | _ent = obj->tio.entity \ | 1876 | 8.87k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 8.87k | if (!_ent) \ | 1878 | 8.87k | return DWG_ERR_OUTOFMEM; \ | 1879 | 8.87k | _ent->tio.token \ | 1880 | 8.87k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 8.87k | if (!_ent->tio.token) \ | 1882 | 8.87k | return DWG_ERR_OUTOFMEM; \ | 1883 | 8.87k | _ent->dwg = obj->parent; \ | 1884 | 8.87k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 8.87k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 8.87k | return 0; \ | 1887 | 8.87k | } \ |
Line | Count | Source | 1826 | 28.6k | { \ | 1827 | 28.6k | Dwg_Object_Entity *_ent; \ | 1828 | 28.6k | Dwg_Entity_##token *_obj; \ | 1829 | 28.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 28.6k | && obj->parent->header.version < R_13b1) \ | 1831 | 28.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 28.6k | else \ | 1833 | 28.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 28.6k | obj->parent->num_entities++; \ | 1835 | 28.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 28.6k | if (!(int)obj->fixedtype) \ | 1837 | 28.6k | { \ | 1838 | 28.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 28.6k | } \ | 1840 | 28.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 28.6k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 28.6k | if (!obj->dxfname) \ | 1845 | 28.6k | { \ | 1846 | 28.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 28.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 28.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 28.6k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 28.6k | else \ | 1854 | 28.6k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 28.6k | } \ | 1856 | 28.6k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 28.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 28.6k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 28.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 28.6k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 28.6k | _ent = obj->tio.entity \ | 1876 | 28.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 28.6k | if (!_ent) \ | 1878 | 28.6k | return DWG_ERR_OUTOFMEM; \ | 1879 | 28.6k | _ent->tio.token \ | 1880 | 28.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 28.6k | if (!_ent->tio.token) \ | 1882 | 28.6k | return DWG_ERR_OUTOFMEM; \ | 1883 | 28.6k | _ent->dwg = obj->parent; \ | 1884 | 28.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 28.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 28.6k | return 0; \ | 1887 | 28.6k | } \ |
Unexecuted instantiation: dwg_setup_ACIDBLOCKREFERENCE Line | Count | Source | 1826 | 18.1k | { \ | 1827 | 18.1k | Dwg_Object_Entity *_ent; \ | 1828 | 18.1k | Dwg_Entity_##token *_obj; \ | 1829 | 18.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 18.1k | && obj->parent->header.version < R_13b1) \ | 1831 | 18.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 18.1k | else \ | 1833 | 18.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 18.1k | obj->parent->num_entities++; \ | 1835 | 18.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 18.1k | if (!(int)obj->fixedtype) \ | 1837 | 18.1k | { \ | 1838 | 18.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 18.1k | } \ | 1840 | 18.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 18.1k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 18.1k | if (!obj->dxfname) \ | 1845 | 18.1k | { \ | 1846 | 18.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 18.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 18.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 18.1k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 18.1k | else \ | 1854 | 18.1k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 18.1k | } \ | 1856 | 18.1k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 18.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 18.1k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 18.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 18.1k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 18.1k | _ent = obj->tio.entity \ | 1876 | 18.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 18.1k | if (!_ent) \ | 1878 | 18.1k | return DWG_ERR_OUTOFMEM; \ | 1879 | 18.1k | _ent->tio.token \ | 1880 | 18.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 18.1k | if (!_ent->tio.token) \ | 1882 | 18.1k | return DWG_ERR_OUTOFMEM; \ | 1883 | 18.1k | _ent->dwg = obj->parent; \ | 1884 | 18.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 18.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 18.1k | return 0; \ | 1887 | 18.1k | } \ |
Line | Count | Source | 1826 | 33.4k | { \ | 1827 | 33.4k | Dwg_Object_Entity *_ent; \ | 1828 | 33.4k | Dwg_Entity_##token *_obj; \ | 1829 | 33.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 33.4k | && obj->parent->header.version < R_13b1) \ | 1831 | 33.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 33.4k | else \ | 1833 | 33.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 33.4k | obj->parent->num_entities++; \ | 1835 | 33.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 33.4k | if (!(int)obj->fixedtype) \ | 1837 | 33.4k | { \ | 1838 | 33.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 33.4k | } \ | 1840 | 33.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 33.4k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 33.4k | if (!obj->dxfname) \ | 1845 | 33.4k | { \ | 1846 | 33.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 33.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 33.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 0 | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 0 | else \ | 1854 | 0 | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 33.4k | } \ | 1856 | 33.4k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 33.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 33.4k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 33.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 33.4k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 33.4k | _ent = obj->tio.entity \ | 1876 | 33.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 33.4k | if (!_ent) \ | 1878 | 33.4k | return DWG_ERR_OUTOFMEM; \ | 1879 | 33.4k | _ent->tio.token \ | 1880 | 33.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 33.4k | if (!_ent->tio.token) \ | 1882 | 33.4k | return DWG_ERR_OUTOFMEM; \ | 1883 | 33.4k | _ent->dwg = obj->parent; \ | 1884 | 33.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 33.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 33.4k | return 0; \ | 1887 | 33.4k | } \ |
Line | Count | Source | 1826 | 31.6k | { \ | 1827 | 31.6k | Dwg_Object_Entity *_ent; \ | 1828 | 31.6k | Dwg_Entity_##token *_obj; \ | 1829 | 31.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 31.6k | && obj->parent->header.version < R_13b1) \ | 1831 | 31.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 31.6k | else \ | 1833 | 31.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 31.6k | obj->parent->num_entities++; \ | 1835 | 31.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 31.6k | if (!(int)obj->fixedtype) \ | 1837 | 31.6k | { \ | 1838 | 31.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 31.6k | } \ | 1840 | 31.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 31.6k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 31.6k | if (!obj->dxfname) \ | 1845 | 31.6k | { \ | 1846 | 31.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 31.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 31.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 31.6k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 31.6k | else \ | 1854 | 31.6k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 31.6k | } \ | 1856 | 31.6k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 31.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 31.6k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 31.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 31.6k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 31.6k | _ent = obj->tio.entity \ | 1876 | 31.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 31.6k | if (!_ent) \ | 1878 | 31.6k | return DWG_ERR_OUTOFMEM; \ | 1879 | 31.6k | _ent->tio.token \ | 1880 | 31.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 31.6k | if (!_ent->tio.token) \ | 1882 | 31.6k | return DWG_ERR_OUTOFMEM; \ | 1883 | 31.6k | _ent->dwg = obj->parent; \ | 1884 | 31.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 31.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 31.6k | return 0; \ | 1887 | 31.6k | } \ |
Line | Count | Source | 1826 | 6.07k | { \ | 1827 | 6.07k | Dwg_Object_Entity *_ent; \ | 1828 | 6.07k | Dwg_Entity_##token *_obj; \ | 1829 | 6.07k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 6.07k | && obj->parent->header.version < R_13b1) \ | 1831 | 6.07k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 6.07k | else \ | 1833 | 6.07k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 6.07k | obj->parent->num_entities++; \ | 1835 | 6.07k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 6.07k | if (!(int)obj->fixedtype) \ | 1837 | 6.07k | { \ | 1838 | 6.07k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 6.07k | } \ | 1840 | 6.07k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 6.07k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 6.07k | if (!obj->dxfname) \ | 1845 | 6.07k | { \ | 1846 | 6.07k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 6.07k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 6.07k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 6.07k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 6.07k | else \ | 1854 | 6.07k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 6.07k | } \ | 1856 | 6.07k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 6.07k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 6.07k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 6.07k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 6.07k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 6.07k | _ent = obj->tio.entity \ | 1876 | 6.07k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 6.07k | if (!_ent) \ | 1878 | 6.07k | return DWG_ERR_OUTOFMEM; \ | 1879 | 6.07k | _ent->tio.token \ | 1880 | 6.07k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 6.07k | if (!_ent->tio.token) \ | 1882 | 6.07k | return DWG_ERR_OUTOFMEM; \ | 1883 | 6.07k | _ent->dwg = obj->parent; \ | 1884 | 6.07k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 6.07k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 6.07k | return 0; \ | 1887 | 6.07k | } \ |
Line | Count | Source | 1826 | 38.3k | { \ | 1827 | 38.3k | Dwg_Object_Entity *_ent; \ | 1828 | 38.3k | Dwg_Entity_##token *_obj; \ | 1829 | 38.3k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 38.3k | && obj->parent->header.version < R_13b1) \ | 1831 | 38.3k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 38.3k | else \ | 1833 | 38.3k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 38.3k | obj->parent->num_entities++; \ | 1835 | 38.3k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 38.3k | if (!(int)obj->fixedtype) \ | 1837 | 38.3k | { \ | 1838 | 38.3k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 38.3k | } \ | 1840 | 38.3k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 38.3k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 38.3k | if (!obj->dxfname) \ | 1845 | 38.3k | { \ | 1846 | 38.3k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 38.3k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 38.3k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 38.3k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 38.3k | else \ | 1854 | 38.3k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 38.3k | } \ | 1856 | 38.3k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 38.3k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 38.3k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 38.3k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 38.3k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 38.3k | _ent = obj->tio.entity \ | 1876 | 38.3k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 38.3k | if (!_ent) \ | 1878 | 38.3k | return DWG_ERR_OUTOFMEM; \ | 1879 | 38.3k | _ent->tio.token \ | 1880 | 38.3k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 38.3k | if (!_ent->tio.token) \ | 1882 | 38.3k | return DWG_ERR_OUTOFMEM; \ | 1883 | 38.3k | _ent->dwg = obj->parent; \ | 1884 | 38.3k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 38.3k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 38.3k | return 0; \ | 1887 | 38.3k | } \ |
Line | Count | Source | 1826 | 29.4k | { \ | 1827 | 29.4k | Dwg_Object_Entity *_ent; \ | 1828 | 29.4k | Dwg_Entity_##token *_obj; \ | 1829 | 29.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 29.4k | && obj->parent->header.version < R_13b1) \ | 1831 | 29.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 29.4k | else \ | 1833 | 29.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 29.4k | obj->parent->num_entities++; \ | 1835 | 29.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 29.4k | if (!(int)obj->fixedtype) \ | 1837 | 29.4k | { \ | 1838 | 29.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 29.4k | } \ | 1840 | 29.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 29.4k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 29.4k | if (!obj->dxfname) \ | 1845 | 29.4k | { \ | 1846 | 29.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 29.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 29.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 29.4k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 29.4k | else \ | 1854 | 29.4k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 29.4k | } \ | 1856 | 29.4k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 29.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 29.4k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 29.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 29.4k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 29.4k | _ent = obj->tio.entity \ | 1876 | 29.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 29.4k | if (!_ent) \ | 1878 | 29.4k | return DWG_ERR_OUTOFMEM; \ | 1879 | 29.4k | _ent->tio.token \ | 1880 | 29.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 29.4k | if (!_ent->tio.token) \ | 1882 | 29.4k | return DWG_ERR_OUTOFMEM; \ | 1883 | 29.4k | _ent->dwg = obj->parent; \ | 1884 | 29.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 29.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 29.4k | return 0; \ | 1887 | 29.4k | } \ |
dwg_setup_VERTEX_PFACE_FACE Line | Count | Source | 1826 | 4.81k | { \ | 1827 | 4.81k | Dwg_Object_Entity *_ent; \ | 1828 | 4.81k | Dwg_Entity_##token *_obj; \ | 1829 | 4.81k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 4.81k | && obj->parent->header.version < R_13b1) \ | 1831 | 4.81k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 4.81k | else \ | 1833 | 4.81k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 4.81k | obj->parent->num_entities++; \ | 1835 | 4.81k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 4.81k | if (!(int)obj->fixedtype) \ | 1837 | 4.81k | { \ | 1838 | 4.81k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 4.81k | } \ | 1840 | 4.81k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 4.81k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 4.81k | if (!obj->dxfname) \ | 1845 | 4.81k | { \ | 1846 | 4.81k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 4.81k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 4.81k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 4.81k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 4.81k | else \ | 1854 | 4.81k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 4.81k | } \ | 1856 | 4.81k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 4.81k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 4.81k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 4.81k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 4.81k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 4.81k | _ent = obj->tio.entity \ | 1876 | 4.81k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 4.81k | if (!_ent) \ | 1878 | 4.81k | return DWG_ERR_OUTOFMEM; \ | 1879 | 4.81k | _ent->tio.token \ | 1880 | 4.81k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 4.81k | if (!_ent->tio.token) \ | 1882 | 4.81k | return DWG_ERR_OUTOFMEM; \ | 1883 | 4.81k | _ent->dwg = obj->parent; \ | 1884 | 4.81k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 4.81k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 4.81k | return 0; \ | 1887 | 4.81k | } \ |
Line | Count | Source | 1826 | 30.6k | { \ | 1827 | 30.6k | Dwg_Object_Entity *_ent; \ | 1828 | 30.6k | Dwg_Entity_##token *_obj; \ | 1829 | 30.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 30.6k | && obj->parent->header.version < R_13b1) \ | 1831 | 30.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 30.6k | else \ | 1833 | 30.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 30.6k | obj->parent->num_entities++; \ | 1835 | 30.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 30.6k | if (!(int)obj->fixedtype) \ | 1837 | 30.6k | { \ | 1838 | 30.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 30.6k | } \ | 1840 | 30.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 30.6k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 30.6k | if (!obj->dxfname) \ | 1845 | 30.6k | { \ | 1846 | 30.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 30.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 30.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 30.6k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 30.6k | else \ | 1854 | 30.6k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 30.6k | } \ | 1856 | 30.6k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 30.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 30.6k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 30.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 30.6k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 30.6k | _ent = obj->tio.entity \ | 1876 | 30.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 30.6k | if (!_ent) \ | 1878 | 30.6k | return DWG_ERR_OUTOFMEM; \ | 1879 | 30.6k | _ent->tio.token \ | 1880 | 30.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 30.6k | if (!_ent->tio.token) \ | 1882 | 30.6k | return DWG_ERR_OUTOFMEM; \ | 1883 | 30.6k | _ent->dwg = obj->parent; \ | 1884 | 30.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 30.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 30.6k | return 0; \ | 1887 | 30.6k | } \ |
Line | Count | Source | 1826 | 38.0k | { \ | 1827 | 38.0k | Dwg_Object_Entity *_ent; \ | 1828 | 38.0k | Dwg_Entity_##token *_obj; \ | 1829 | 38.0k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 38.0k | && obj->parent->header.version < R_13b1) \ | 1831 | 38.0k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 38.0k | else \ | 1833 | 38.0k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 38.0k | obj->parent->num_entities++; \ | 1835 | 38.0k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 38.0k | if (!(int)obj->fixedtype) \ | 1837 | 38.0k | { \ | 1838 | 38.0k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 38.0k | } \ | 1840 | 38.0k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 38.0k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 38.0k | if (!obj->dxfname) \ | 1845 | 38.0k | { \ | 1846 | 38.0k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 38.0k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 38.0k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 38.0k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 38.0k | else \ | 1854 | 38.0k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 38.0k | } \ | 1856 | 38.0k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 38.0k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 38.0k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 38.0k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 38.0k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 38.0k | _ent = obj->tio.entity \ | 1876 | 38.0k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 38.0k | if (!_ent) \ | 1878 | 38.0k | return DWG_ERR_OUTOFMEM; \ | 1879 | 38.0k | _ent->tio.token \ | 1880 | 38.0k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 38.0k | if (!_ent->tio.token) \ | 1882 | 38.0k | return DWG_ERR_OUTOFMEM; \ | 1883 | 38.0k | _ent->dwg = obj->parent; \ | 1884 | 38.0k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 38.0k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 38.0k | return 0; \ | 1887 | 38.0k | } \ |
Line | Count | Source | 1826 | 50.7k | { \ | 1827 | 50.7k | Dwg_Object_Entity *_ent; \ | 1828 | 50.7k | Dwg_Entity_##token *_obj; \ | 1829 | 50.7k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 50.7k | && obj->parent->header.version < R_13b1) \ | 1831 | 50.7k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 50.7k | else \ | 1833 | 50.7k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 50.7k | obj->parent->num_entities++; \ | 1835 | 50.7k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 50.7k | if (!(int)obj->fixedtype) \ | 1837 | 50.7k | { \ | 1838 | 50.7k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 50.7k | } \ | 1840 | 50.7k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 50.7k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 50.7k | if (!obj->dxfname) \ | 1845 | 50.7k | { \ | 1846 | 50.7k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 50.7k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 50.7k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 50.7k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 50.7k | else \ | 1854 | 50.7k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 50.7k | } \ | 1856 | 50.7k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 50.7k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 50.7k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 50.7k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 50.7k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 50.7k | _ent = obj->tio.entity \ | 1876 | 50.7k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 50.7k | if (!_ent) \ | 1878 | 50.7k | return DWG_ERR_OUTOFMEM; \ | 1879 | 50.7k | _ent->tio.token \ | 1880 | 50.7k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 50.7k | if (!_ent->tio.token) \ | 1882 | 50.7k | return DWG_ERR_OUTOFMEM; \ | 1883 | 50.7k | _ent->dwg = obj->parent; \ | 1884 | 50.7k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 50.7k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 50.7k | return 0; \ | 1887 | 50.7k | } \ |
Line | Count | Source | 1826 | 27.6k | { \ | 1827 | 27.6k | Dwg_Object_Entity *_ent; \ | 1828 | 27.6k | Dwg_Entity_##token *_obj; \ | 1829 | 27.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 27.6k | && obj->parent->header.version < R_13b1) \ | 1831 | 27.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 27.6k | else \ | 1833 | 27.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 27.6k | obj->parent->num_entities++; \ | 1835 | 27.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 27.6k | if (!(int)obj->fixedtype) \ | 1837 | 27.6k | { \ | 1838 | 27.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 27.6k | } \ | 1840 | 27.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 27.6k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 27.6k | if (!obj->dxfname) \ | 1845 | 27.6k | { \ | 1846 | 27.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 27.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 27.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 27.6k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 27.6k | else \ | 1854 | 27.6k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 27.6k | } \ | 1856 | 27.6k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 27.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 27.6k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 27.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 27.6k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 27.6k | _ent = obj->tio.entity \ | 1876 | 27.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 27.6k | if (!_ent) \ | 1878 | 27.6k | return DWG_ERR_OUTOFMEM; \ | 1879 | 27.6k | _ent->tio.token \ | 1880 | 27.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 27.6k | if (!_ent->tio.token) \ | 1882 | 27.6k | return DWG_ERR_OUTOFMEM; \ | 1883 | 27.6k | _ent->dwg = obj->parent; \ | 1884 | 27.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 27.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 27.6k | return 0; \ | 1887 | 27.6k | } \ |
Line | Count | Source | 1826 | 62.9k | { \ | 1827 | 62.9k | Dwg_Object_Entity *_ent; \ | 1828 | 62.9k | Dwg_Entity_##token *_obj; \ | 1829 | 62.9k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 62.9k | && obj->parent->header.version < R_13b1) \ | 1831 | 62.9k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 62.9k | else \ | 1833 | 62.9k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 62.9k | obj->parent->num_entities++; \ | 1835 | 62.9k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 62.9k | if (!(int)obj->fixedtype) \ | 1837 | 62.9k | { \ | 1838 | 62.9k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 62.9k | } \ | 1840 | 62.9k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 62.9k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 62.9k | if (!obj->dxfname) \ | 1845 | 62.9k | { \ | 1846 | 62.9k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 62.9k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 62.9k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 62.9k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 62.9k | else \ | 1854 | 62.9k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 62.9k | } \ | 1856 | 62.9k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 62.9k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 62.9k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 62.9k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 62.9k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 62.9k | _ent = obj->tio.entity \ | 1876 | 62.9k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 62.9k | if (!_ent) \ | 1878 | 62.9k | return DWG_ERR_OUTOFMEM; \ | 1879 | 62.9k | _ent->tio.token \ | 1880 | 62.9k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 62.9k | if (!_ent->tio.token) \ | 1882 | 62.9k | return DWG_ERR_OUTOFMEM; \ | 1883 | 62.9k | _ent->dwg = obj->parent; \ | 1884 | 62.9k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 62.9k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 62.9k | return 0; \ | 1887 | 62.9k | } \ |
dwg_setup_DIMENSION_ORDINATE Line | Count | Source | 1826 | 38.9k | { \ | 1827 | 38.9k | Dwg_Object_Entity *_ent; \ | 1828 | 38.9k | Dwg_Entity_##token *_obj; \ | 1829 | 38.9k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 38.9k | && obj->parent->header.version < R_13b1) \ | 1831 | 38.9k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 38.9k | else \ | 1833 | 38.9k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 38.9k | obj->parent->num_entities++; \ | 1835 | 38.9k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 38.9k | if (!(int)obj->fixedtype) \ | 1837 | 38.9k | { \ | 1838 | 38.9k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 38.9k | } \ | 1840 | 38.9k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 38.9k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 38.9k | if (!obj->dxfname) \ | 1845 | 38.9k | { \ | 1846 | 38.9k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 38.9k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 38.9k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 38.9k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 38.9k | else \ | 1854 | 38.9k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 38.9k | } \ | 1856 | 38.9k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 38.9k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 38.9k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 38.9k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 38.9k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 38.9k | _ent = obj->tio.entity \ | 1876 | 38.9k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 38.9k | if (!_ent) \ | 1878 | 38.9k | return DWG_ERR_OUTOFMEM; \ | 1879 | 38.9k | _ent->tio.token \ | 1880 | 38.9k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 38.9k | if (!_ent->tio.token) \ | 1882 | 38.9k | return DWG_ERR_OUTOFMEM; \ | 1883 | 38.9k | _ent->dwg = obj->parent; \ | 1884 | 38.9k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 38.9k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 38.9k | return 0; \ | 1887 | 38.9k | } \ |
dwg_setup_DIMENSION_LINEAR Line | Count | Source | 1826 | 70.4k | { \ | 1827 | 70.4k | Dwg_Object_Entity *_ent; \ | 1828 | 70.4k | Dwg_Entity_##token *_obj; \ | 1829 | 70.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 70.4k | && obj->parent->header.version < R_13b1) \ | 1831 | 70.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 70.4k | else \ | 1833 | 70.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 70.4k | obj->parent->num_entities++; \ | 1835 | 70.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 70.4k | if (!(int)obj->fixedtype) \ | 1837 | 70.4k | { \ | 1838 | 70.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 70.4k | } \ | 1840 | 70.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 70.4k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 70.4k | if (!obj->dxfname) \ | 1845 | 70.4k | { \ | 1846 | 70.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 70.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 70.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 70.4k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 70.4k | else \ | 1854 | 70.4k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 70.4k | } \ | 1856 | 70.4k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 70.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 70.4k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 70.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 70.4k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 70.4k | _ent = obj->tio.entity \ | 1876 | 70.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 70.4k | if (!_ent) \ | 1878 | 70.4k | return DWG_ERR_OUTOFMEM; \ | 1879 | 70.4k | _ent->tio.token \ | 1880 | 70.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 70.4k | if (!_ent->tio.token) \ | 1882 | 70.4k | return DWG_ERR_OUTOFMEM; \ | 1883 | 70.4k | _ent->dwg = obj->parent; \ | 1884 | 70.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 70.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 70.4k | return 0; \ | 1887 | 70.4k | } \ |
dwg_setup_DIMENSION_ALIGNED Line | Count | Source | 1826 | 13.9k | { \ | 1827 | 13.9k | Dwg_Object_Entity *_ent; \ | 1828 | 13.9k | Dwg_Entity_##token *_obj; \ | 1829 | 13.9k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 13.9k | && obj->parent->header.version < R_13b1) \ | 1831 | 13.9k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 13.9k | else \ | 1833 | 13.9k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 13.9k | obj->parent->num_entities++; \ | 1835 | 13.9k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 13.9k | if (!(int)obj->fixedtype) \ | 1837 | 13.9k | { \ | 1838 | 13.9k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 13.9k | } \ | 1840 | 13.9k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 13.9k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 13.9k | if (!obj->dxfname) \ | 1845 | 13.9k | { \ | 1846 | 13.9k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 13.9k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 13.9k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 13.9k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 13.9k | else \ | 1854 | 13.9k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 13.9k | } \ | 1856 | 13.9k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 13.9k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 13.9k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 13.9k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 13.9k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 13.9k | _ent = obj->tio.entity \ | 1876 | 13.9k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 13.9k | if (!_ent) \ | 1878 | 13.9k | return DWG_ERR_OUTOFMEM; \ | 1879 | 13.9k | _ent->tio.token \ | 1880 | 13.9k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 13.9k | if (!_ent->tio.token) \ | 1882 | 13.9k | return DWG_ERR_OUTOFMEM; \ | 1883 | 13.9k | _ent->dwg = obj->parent; \ | 1884 | 13.9k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 13.9k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 13.9k | return 0; \ | 1887 | 13.9k | } \ |
dwg_setup_DIMENSION_ANG3PT Line | Count | Source | 1826 | 15.6k | { \ | 1827 | 15.6k | Dwg_Object_Entity *_ent; \ | 1828 | 15.6k | Dwg_Entity_##token *_obj; \ | 1829 | 15.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 15.6k | && obj->parent->header.version < R_13b1) \ | 1831 | 15.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 15.6k | else \ | 1833 | 15.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 15.6k | obj->parent->num_entities++; \ | 1835 | 15.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 15.6k | if (!(int)obj->fixedtype) \ | 1837 | 15.6k | { \ | 1838 | 15.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 15.6k | } \ | 1840 | 15.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 15.6k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 15.6k | if (!obj->dxfname) \ | 1845 | 15.6k | { \ | 1846 | 15.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 15.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 15.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 15.6k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 15.6k | else \ | 1854 | 15.6k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 15.6k | } \ | 1856 | 15.6k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 15.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 15.6k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 15.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 15.6k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 15.6k | _ent = obj->tio.entity \ | 1876 | 15.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 15.6k | if (!_ent) \ | 1878 | 15.6k | return DWG_ERR_OUTOFMEM; \ | 1879 | 15.6k | _ent->tio.token \ | 1880 | 15.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 15.6k | if (!_ent->tio.token) \ | 1882 | 15.6k | return DWG_ERR_OUTOFMEM; \ | 1883 | 15.6k | _ent->dwg = obj->parent; \ | 1884 | 15.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 15.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 15.6k | return 0; \ | 1887 | 15.6k | } \ |
dwg_setup_DIMENSION_ANG2LN Line | Count | Source | 1826 | 210k | { \ | 1827 | 210k | Dwg_Object_Entity *_ent; \ | 1828 | 210k | Dwg_Entity_##token *_obj; \ | 1829 | 210k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 210k | && obj->parent->header.version < R_13b1) \ | 1831 | 210k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 210k | else \ | 1833 | 210k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 210k | obj->parent->num_entities++; \ | 1835 | 210k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 210k | if (!(int)obj->fixedtype) \ | 1837 | 210k | { \ | 1838 | 210k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 210k | } \ | 1840 | 210k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 210k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 210k | if (!obj->dxfname) \ | 1845 | 210k | { \ | 1846 | 210k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 210k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 210k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 210k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 210k | else \ | 1854 | 210k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 210k | } \ | 1856 | 210k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 210k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 210k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 210k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 210k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 210k | _ent = obj->tio.entity \ | 1876 | 210k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 210k | if (!_ent) \ | 1878 | 210k | return DWG_ERR_OUTOFMEM; \ | 1879 | 210k | _ent->tio.token \ | 1880 | 210k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 210k | if (!_ent->tio.token) \ | 1882 | 210k | return DWG_ERR_OUTOFMEM; \ | 1883 | 210k | _ent->dwg = obj->parent; \ | 1884 | 210k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 210k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 210k | return 0; \ | 1887 | 210k | } \ |
dwg_setup_DIMENSION_RADIUS Line | Count | Source | 1826 | 16.7k | { \ | 1827 | 16.7k | Dwg_Object_Entity *_ent; \ | 1828 | 16.7k | Dwg_Entity_##token *_obj; \ | 1829 | 16.7k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 16.7k | && obj->parent->header.version < R_13b1) \ | 1831 | 16.7k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 16.7k | else \ | 1833 | 16.7k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 16.7k | obj->parent->num_entities++; \ | 1835 | 16.7k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 16.7k | if (!(int)obj->fixedtype) \ | 1837 | 16.7k | { \ | 1838 | 16.7k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 16.7k | } \ | 1840 | 16.7k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 16.7k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 16.7k | if (!obj->dxfname) \ | 1845 | 16.7k | { \ | 1846 | 16.7k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 16.7k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 16.7k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 16.7k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 16.7k | else \ | 1854 | 16.7k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 16.7k | } \ | 1856 | 16.7k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 16.7k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 16.7k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 16.7k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 16.7k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 16.7k | _ent = obj->tio.entity \ | 1876 | 16.7k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 16.7k | if (!_ent) \ | 1878 | 16.7k | return DWG_ERR_OUTOFMEM; \ | 1879 | 16.7k | _ent->tio.token \ | 1880 | 16.7k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 16.7k | if (!_ent->tio.token) \ | 1882 | 16.7k | return DWG_ERR_OUTOFMEM; \ | 1883 | 16.7k | _ent->dwg = obj->parent; \ | 1884 | 16.7k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 16.7k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 16.7k | return 0; \ | 1887 | 16.7k | } \ |
dwg_setup_DIMENSION_DIAMETER Line | Count | Source | 1826 | 5.98k | { \ | 1827 | 5.98k | Dwg_Object_Entity *_ent; \ | 1828 | 5.98k | Dwg_Entity_##token *_obj; \ | 1829 | 5.98k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 5.98k | && obj->parent->header.version < R_13b1) \ | 1831 | 5.98k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 5.98k | else \ | 1833 | 5.98k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 5.98k | obj->parent->num_entities++; \ | 1835 | 5.98k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 5.98k | if (!(int)obj->fixedtype) \ | 1837 | 5.98k | { \ | 1838 | 5.98k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 5.98k | } \ | 1840 | 5.98k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 5.98k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 5.98k | if (!obj->dxfname) \ | 1845 | 5.98k | { \ | 1846 | 5.98k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 5.98k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 5.98k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 5.98k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 5.98k | else \ | 1854 | 5.98k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 5.98k | } \ | 1856 | 5.98k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 5.98k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 5.98k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 5.98k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 5.98k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 5.98k | _ent = obj->tio.entity \ | 1876 | 5.98k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 5.98k | if (!_ent) \ | 1878 | 5.98k | return DWG_ERR_OUTOFMEM; \ | 1879 | 5.98k | _ent->tio.token \ | 1880 | 5.98k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 5.98k | if (!_ent->tio.token) \ | 1882 | 5.98k | return DWG_ERR_OUTOFMEM; \ | 1883 | 5.98k | _ent->dwg = obj->parent; \ | 1884 | 5.98k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 5.98k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 5.98k | return 0; \ | 1887 | 5.98k | } \ |
Unexecuted instantiation: dwg_setup_LARGE_RADIAL_DIMENSION Line | Count | Source | 1826 | 36.0k | { \ | 1827 | 36.0k | Dwg_Object_Entity *_ent; \ | 1828 | 36.0k | Dwg_Entity_##token *_obj; \ | 1829 | 36.0k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 36.0k | && obj->parent->header.version < R_13b1) \ | 1831 | 36.0k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 36.0k | else \ | 1833 | 36.0k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 36.0k | obj->parent->num_entities++; \ | 1835 | 36.0k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 36.0k | if (!(int)obj->fixedtype) \ | 1837 | 36.0k | { \ | 1838 | 36.0k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 36.0k | } \ | 1840 | 36.0k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 36.0k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 36.0k | if (!obj->dxfname) \ | 1845 | 36.0k | { \ | 1846 | 36.0k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 36.0k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 36.0k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 36.0k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 36.0k | else \ | 1854 | 36.0k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 36.0k | } \ | 1856 | 36.0k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 36.0k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 36.0k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 36.0k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 36.0k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 36.0k | _ent = obj->tio.entity \ | 1876 | 36.0k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 36.0k | if (!_ent) \ | 1878 | 36.0k | return DWG_ERR_OUTOFMEM; \ | 1879 | 36.0k | _ent->tio.token \ | 1880 | 36.0k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 36.0k | if (!_ent->tio.token) \ | 1882 | 36.0k | return DWG_ERR_OUTOFMEM; \ | 1883 | 36.0k | _ent->dwg = obj->parent; \ | 1884 | 36.0k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 36.0k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 36.0k | return 0; \ | 1887 | 36.0k | } \ |
Line | Count | Source | 1826 | 49.5k | { \ | 1827 | 49.5k | Dwg_Object_Entity *_ent; \ | 1828 | 49.5k | Dwg_Entity_##token *_obj; \ | 1829 | 49.5k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 49.5k | && obj->parent->header.version < R_13b1) \ | 1831 | 49.5k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 49.5k | else \ | 1833 | 49.5k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 49.5k | obj->parent->num_entities++; \ | 1835 | 49.5k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 49.5k | if (!(int)obj->fixedtype) \ | 1837 | 49.5k | { \ | 1838 | 49.5k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 49.5k | } \ | 1840 | 49.5k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 49.5k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 49.5k | if (!obj->dxfname) \ | 1845 | 49.5k | { \ | 1846 | 49.5k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 49.5k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 49.5k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 0 | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 0 | else \ | 1854 | 0 | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 49.5k | } \ | 1856 | 49.5k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 49.5k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 49.5k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 49.5k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 49.5k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 49.5k | _ent = obj->tio.entity \ | 1876 | 49.5k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 49.5k | if (!_ent) \ | 1878 | 49.5k | return DWG_ERR_OUTOFMEM; \ | 1879 | 49.5k | _ent->tio.token \ | 1880 | 49.5k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 49.5k | if (!_ent->tio.token) \ | 1882 | 49.5k | return DWG_ERR_OUTOFMEM; \ | 1883 | 49.5k | _ent->dwg = obj->parent; \ | 1884 | 49.5k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 49.5k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 49.5k | return 0; \ | 1887 | 49.5k | } \ |
Line | Count | Source | 1826 | 14.8k | { \ | 1827 | 14.8k | Dwg_Object_Entity *_ent; \ | 1828 | 14.8k | Dwg_Entity_##token *_obj; \ | 1829 | 14.8k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 14.8k | && obj->parent->header.version < R_13b1) \ | 1831 | 14.8k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 14.8k | else \ | 1833 | 14.8k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 14.8k | obj->parent->num_entities++; \ | 1835 | 14.8k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 14.8k | if (!(int)obj->fixedtype) \ | 1837 | 14.8k | { \ | 1838 | 14.8k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 14.8k | } \ | 1840 | 14.8k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 14.8k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 14.8k | if (!obj->dxfname) \ | 1845 | 14.8k | { \ | 1846 | 14.8k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 14.8k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 14.8k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 14.8k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 14.8k | else \ | 1854 | 14.8k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 14.8k | } \ | 1856 | 14.8k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 14.8k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 14.8k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 14.8k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 14.8k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 14.8k | _ent = obj->tio.entity \ | 1876 | 14.8k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 14.8k | if (!_ent) \ | 1878 | 14.8k | return DWG_ERR_OUTOFMEM; \ | 1879 | 14.8k | _ent->tio.token \ | 1880 | 14.8k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 14.8k | if (!_ent->tio.token) \ | 1882 | 14.8k | return DWG_ERR_OUTOFMEM; \ | 1883 | 14.8k | _ent->dwg = obj->parent; \ | 1884 | 14.8k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 14.8k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 14.8k | return 0; \ | 1887 | 14.8k | } \ |
Line | Count | Source | 1826 | 24.8k | { \ | 1827 | 24.8k | Dwg_Object_Entity *_ent; \ | 1828 | 24.8k | Dwg_Entity_##token *_obj; \ | 1829 | 24.8k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 24.8k | && obj->parent->header.version < R_13b1) \ | 1831 | 24.8k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 24.8k | else \ | 1833 | 24.8k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 24.8k | obj->parent->num_entities++; \ | 1835 | 24.8k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 24.8k | if (!(int)obj->fixedtype) \ | 1837 | 24.8k | { \ | 1838 | 24.8k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 24.8k | } \ | 1840 | 24.8k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 24.8k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 24.8k | if (!obj->dxfname) \ | 1845 | 24.8k | { \ | 1846 | 24.8k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 24.8k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 24.8k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 24.8k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 24.8k | else \ | 1854 | 24.8k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 24.8k | } \ | 1856 | 24.8k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 24.8k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 24.8k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 24.8k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 24.8k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 24.8k | _ent = obj->tio.entity \ | 1876 | 24.8k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 24.8k | if (!_ent) \ | 1878 | 24.8k | return DWG_ERR_OUTOFMEM; \ | 1879 | 24.8k | _ent->tio.token \ | 1880 | 24.8k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 24.8k | if (!_ent->tio.token) \ | 1882 | 24.8k | return DWG_ERR_OUTOFMEM; \ | 1883 | 24.8k | _ent->dwg = obj->parent; \ | 1884 | 24.8k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 24.8k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 24.8k | return 0; \ | 1887 | 24.8k | } \ |
Line | Count | Source | 1826 | 25.1k | { \ | 1827 | 25.1k | Dwg_Object_Entity *_ent; \ | 1828 | 25.1k | Dwg_Entity_##token *_obj; \ | 1829 | 25.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 25.1k | && obj->parent->header.version < R_13b1) \ | 1831 | 25.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 25.1k | else \ | 1833 | 25.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 25.1k | obj->parent->num_entities++; \ | 1835 | 25.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 25.1k | if (!(int)obj->fixedtype) \ | 1837 | 25.1k | { \ | 1838 | 25.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 25.1k | } \ | 1840 | 25.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 25.1k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 25.1k | if (!obj->dxfname) \ | 1845 | 25.1k | { \ | 1846 | 25.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 25.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 25.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 25.1k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 25.1k | else \ | 1854 | 25.1k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 25.1k | } \ | 1856 | 25.1k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 25.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 25.1k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 25.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 25.1k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 25.1k | _ent = obj->tio.entity \ | 1876 | 25.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 25.1k | if (!_ent) \ | 1878 | 25.1k | return DWG_ERR_OUTOFMEM; \ | 1879 | 25.1k | _ent->tio.token \ | 1880 | 25.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 25.1k | if (!_ent->tio.token) \ | 1882 | 25.1k | return DWG_ERR_OUTOFMEM; \ | 1883 | 25.1k | _ent->dwg = obj->parent; \ | 1884 | 25.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 25.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 25.1k | return 0; \ | 1887 | 25.1k | } \ |
Line | Count | Source | 1826 | 38.1k | { \ | 1827 | 38.1k | Dwg_Object_Entity *_ent; \ | 1828 | 38.1k | Dwg_Entity_##token *_obj; \ | 1829 | 38.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 38.1k | && obj->parent->header.version < R_13b1) \ | 1831 | 38.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 38.1k | else \ | 1833 | 38.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 38.1k | obj->parent->num_entities++; \ | 1835 | 38.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 38.1k | if (!(int)obj->fixedtype) \ | 1837 | 38.1k | { \ | 1838 | 38.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 38.1k | } \ | 1840 | 38.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 38.1k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 38.1k | if (!obj->dxfname) \ | 1845 | 38.1k | { \ | 1846 | 38.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 38.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 38.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 38.1k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 38.1k | else \ | 1854 | 38.1k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 38.1k | } \ | 1856 | 38.1k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 38.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 38.1k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 38.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 38.1k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 38.1k | _ent = obj->tio.entity \ | 1876 | 38.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 38.1k | if (!_ent) \ | 1878 | 38.1k | return DWG_ERR_OUTOFMEM; \ | 1879 | 38.1k | _ent->tio.token \ | 1880 | 38.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 38.1k | if (!_ent->tio.token) \ | 1882 | 38.1k | return DWG_ERR_OUTOFMEM; \ | 1883 | 38.1k | _ent->dwg = obj->parent; \ | 1884 | 38.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 38.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 38.1k | return 0; \ | 1887 | 38.1k | } \ |
Line | Count | Source | 1826 | 20.4k | { \ | 1827 | 20.4k | Dwg_Object_Entity *_ent; \ | 1828 | 20.4k | Dwg_Entity_##token *_obj; \ | 1829 | 20.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 20.4k | && obj->parent->header.version < R_13b1) \ | 1831 | 20.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 20.4k | else \ | 1833 | 20.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 20.4k | obj->parent->num_entities++; \ | 1835 | 20.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 20.4k | if (!(int)obj->fixedtype) \ | 1837 | 20.4k | { \ | 1838 | 20.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 20.4k | } \ | 1840 | 20.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 20.4k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 20.4k | if (!obj->dxfname) \ | 1845 | 20.4k | { \ | 1846 | 20.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 20.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 20.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 20.4k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 20.4k | else \ | 1854 | 20.4k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 20.4k | } \ | 1856 | 20.4k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 20.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 20.4k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 20.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 20.4k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 20.4k | _ent = obj->tio.entity \ | 1876 | 20.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 20.4k | if (!_ent) \ | 1878 | 20.4k | return DWG_ERR_OUTOFMEM; \ | 1879 | 20.4k | _ent->tio.token \ | 1880 | 20.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 20.4k | if (!_ent->tio.token) \ | 1882 | 20.4k | return DWG_ERR_OUTOFMEM; \ | 1883 | 20.4k | _ent->dwg = obj->parent; \ | 1884 | 20.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 20.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 20.4k | return 0; \ | 1887 | 20.4k | } \ |
Line | Count | Source | 1826 | 16.2k | { \ | 1827 | 16.2k | Dwg_Object_Entity *_ent; \ | 1828 | 16.2k | Dwg_Entity_##token *_obj; \ | 1829 | 16.2k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 16.2k | && obj->parent->header.version < R_13b1) \ | 1831 | 16.2k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 16.2k | else \ | 1833 | 16.2k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 16.2k | obj->parent->num_entities++; \ | 1835 | 16.2k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 16.2k | if (!(int)obj->fixedtype) \ | 1837 | 16.2k | { \ | 1838 | 16.2k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 16.2k | } \ | 1840 | 16.2k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 16.2k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 16.2k | if (!obj->dxfname) \ | 1845 | 16.2k | { \ | 1846 | 16.2k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 16.2k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 16.2k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 16.2k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 16.2k | else \ | 1854 | 16.2k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 16.2k | } \ | 1856 | 16.2k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 16.2k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 16.2k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 16.2k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 16.2k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 16.2k | _ent = obj->tio.entity \ | 1876 | 16.2k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 16.2k | if (!_ent) \ | 1878 | 16.2k | return DWG_ERR_OUTOFMEM; \ | 1879 | 16.2k | _ent->tio.token \ | 1880 | 16.2k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 16.2k | if (!_ent->tio.token) \ | 1882 | 16.2k | return DWG_ERR_OUTOFMEM; \ | 1883 | 16.2k | _ent->dwg = obj->parent; \ | 1884 | 16.2k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 16.2k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 16.2k | return 0; \ | 1887 | 16.2k | } \ |
Line | Count | Source | 1826 | 3.52k | { \ | 1827 | 3.52k | Dwg_Object_Entity *_ent; \ | 1828 | 3.52k | Dwg_Entity_##token *_obj; \ | 1829 | 3.52k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 3.52k | && obj->parent->header.version < R_13b1) \ | 1831 | 3.52k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 3.52k | else \ | 1833 | 3.52k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 3.52k | obj->parent->num_entities++; \ | 1835 | 3.52k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 3.52k | if (!(int)obj->fixedtype) \ | 1837 | 3.52k | { \ | 1838 | 3.52k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 3.52k | } \ | 1840 | 3.52k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 3.52k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 3.52k | if (!obj->dxfname) \ | 1845 | 3.52k | { \ | 1846 | 3.52k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 3.52k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 3.52k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 3.52k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 3.52k | else \ | 1854 | 3.52k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 3.52k | } \ | 1856 | 3.52k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 3.52k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 3.52k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 3.52k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 3.52k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 3.52k | _ent = obj->tio.entity \ | 1876 | 3.52k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 3.52k | if (!_ent) \ | 1878 | 3.52k | return DWG_ERR_OUTOFMEM; \ | 1879 | 3.52k | _ent->tio.token \ | 1880 | 3.52k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 3.52k | if (!_ent->tio.token) \ | 1882 | 3.52k | return DWG_ERR_OUTOFMEM; \ | 1883 | 3.52k | _ent->dwg = obj->parent; \ | 1884 | 3.52k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 3.52k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 3.52k | return 0; \ | 1887 | 3.52k | } \ |
Line | Count | Source | 1826 | 21.6k | { \ | 1827 | 21.6k | Dwg_Object_Entity *_ent; \ | 1828 | 21.6k | Dwg_Entity_##token *_obj; \ | 1829 | 21.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 21.6k | && obj->parent->header.version < R_13b1) \ | 1831 | 21.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 21.6k | else \ | 1833 | 21.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 21.6k | obj->parent->num_entities++; \ | 1835 | 21.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 21.6k | if (!(int)obj->fixedtype) \ | 1837 | 21.6k | { \ | 1838 | 21.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 21.6k | } \ | 1840 | 21.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 21.6k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 21.6k | if (!obj->dxfname) \ | 1845 | 21.6k | { \ | 1846 | 21.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 21.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 21.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 21.6k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 21.6k | else \ | 1854 | 21.6k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 21.6k | } \ | 1856 | 21.6k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 21.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 21.6k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 21.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 21.6k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 21.6k | _ent = obj->tio.entity \ | 1876 | 21.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 21.6k | if (!_ent) \ | 1878 | 21.6k | return DWG_ERR_OUTOFMEM; \ | 1879 | 21.6k | _ent->tio.token \ | 1880 | 21.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 21.6k | if (!_ent->tio.token) \ | 1882 | 21.6k | return DWG_ERR_OUTOFMEM; \ | 1883 | 21.6k | _ent->dwg = obj->parent; \ | 1884 | 21.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 21.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 21.6k | return 0; \ | 1887 | 21.6k | } \ |
Line | Count | Source | 1826 | 42.5k | { \ | 1827 | 42.5k | Dwg_Object_Entity *_ent; \ | 1828 | 42.5k | Dwg_Entity_##token *_obj; \ | 1829 | 42.5k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 42.5k | && obj->parent->header.version < R_13b1) \ | 1831 | 42.5k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 42.5k | else \ | 1833 | 42.5k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 42.5k | obj->parent->num_entities++; \ | 1835 | 42.5k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 42.5k | if (!(int)obj->fixedtype) \ | 1837 | 42.5k | { \ | 1838 | 42.5k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 42.5k | } \ | 1840 | 42.5k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 42.5k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 42.5k | if (!obj->dxfname) \ | 1845 | 42.5k | { \ | 1846 | 42.5k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 42.5k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 42.5k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 42.5k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 42.5k | else \ | 1854 | 42.5k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 42.5k | } \ | 1856 | 42.5k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 42.5k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 42.5k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 42.5k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 42.5k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 42.5k | _ent = obj->tio.entity \ | 1876 | 42.5k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 42.5k | if (!_ent) \ | 1878 | 42.5k | return DWG_ERR_OUTOFMEM; \ | 1879 | 42.5k | _ent->tio.token \ | 1880 | 42.5k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 42.5k | if (!_ent->tio.token) \ | 1882 | 42.5k | return DWG_ERR_OUTOFMEM; \ | 1883 | 42.5k | _ent->dwg = obj->parent; \ | 1884 | 42.5k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 42.5k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 42.5k | return 0; \ | 1887 | 42.5k | } \ |
Line | Count | Source | 1826 | 9.64k | { \ | 1827 | 9.64k | Dwg_Object_Entity *_ent; \ | 1828 | 9.64k | Dwg_Entity_##token *_obj; \ | 1829 | 9.64k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 9.64k | && obj->parent->header.version < R_13b1) \ | 1831 | 9.64k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 9.64k | else \ | 1833 | 9.64k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 9.64k | obj->parent->num_entities++; \ | 1835 | 9.64k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 9.64k | if (!(int)obj->fixedtype) \ | 1837 | 9.64k | { \ | 1838 | 9.64k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 9.64k | } \ | 1840 | 9.64k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 9.64k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 9.64k | if (!obj->dxfname) \ | 1845 | 9.64k | { \ | 1846 | 9.64k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 9.64k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 9.64k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 0 | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 0 | else \ | 1854 | 0 | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 9.64k | } \ | 1856 | 9.64k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 9.64k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 9.64k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 9.64k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 9.64k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 9.64k | _ent = obj->tio.entity \ | 1876 | 9.64k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 9.64k | if (!_ent) \ | 1878 | 9.64k | return DWG_ERR_OUTOFMEM; \ | 1879 | 9.64k | _ent->tio.token \ | 1880 | 9.64k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 9.64k | if (!_ent->tio.token) \ | 1882 | 9.64k | return DWG_ERR_OUTOFMEM; \ | 1883 | 9.64k | _ent->dwg = obj->parent; \ | 1884 | 9.64k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 9.64k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 9.64k | return 0; \ | 1887 | 9.64k | } \ |
Line | Count | Source | 1826 | 10.3k | { \ | 1827 | 10.3k | Dwg_Object_Entity *_ent; \ | 1828 | 10.3k | Dwg_Entity_##token *_obj; \ | 1829 | 10.3k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 10.3k | && obj->parent->header.version < R_13b1) \ | 1831 | 10.3k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 10.3k | else \ | 1833 | 10.3k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 10.3k | obj->parent->num_entities++; \ | 1835 | 10.3k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 10.3k | if (!(int)obj->fixedtype) \ | 1837 | 10.3k | { \ | 1838 | 10.3k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 10.3k | } \ | 1840 | 10.3k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 10.3k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 10.3k | if (!obj->dxfname) \ | 1845 | 10.3k | { \ | 1846 | 10.3k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 10.3k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 10.3k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 10.3k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 10.3k | else \ | 1854 | 10.3k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 10.3k | } \ | 1856 | 10.3k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 10.3k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 10.3k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 10.3k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 10.3k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 10.3k | _ent = obj->tio.entity \ | 1876 | 10.3k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 10.3k | if (!_ent) \ | 1878 | 10.3k | return DWG_ERR_OUTOFMEM; \ | 1879 | 10.3k | _ent->tio.token \ | 1880 | 10.3k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 10.3k | if (!_ent->tio.token) \ | 1882 | 10.3k | return DWG_ERR_OUTOFMEM; \ | 1883 | 10.3k | _ent->dwg = obj->parent; \ | 1884 | 10.3k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 10.3k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 10.3k | return 0; \ | 1887 | 10.3k | } \ |
Line | Count | Source | 1826 | 9.79k | { \ | 1827 | 9.79k | Dwg_Object_Entity *_ent; \ | 1828 | 9.79k | Dwg_Entity_##token *_obj; \ | 1829 | 9.79k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 9.79k | && obj->parent->header.version < R_13b1) \ | 1831 | 9.79k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 9.79k | else \ | 1833 | 9.79k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 9.79k | obj->parent->num_entities++; \ | 1835 | 9.79k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 9.79k | if (!(int)obj->fixedtype) \ | 1837 | 9.79k | { \ | 1838 | 9.79k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 9.79k | } \ | 1840 | 9.79k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 9.79k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 9.79k | if (!obj->dxfname) \ | 1845 | 9.79k | { \ | 1846 | 9.79k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 9.79k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 9.79k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 9.79k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 9.79k | else \ | 1854 | 9.79k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 9.79k | } \ | 1856 | 9.79k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 9.79k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 9.79k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 9.79k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 9.79k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 9.79k | _ent = obj->tio.entity \ | 1876 | 9.79k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 9.79k | if (!_ent) \ | 1878 | 9.79k | return DWG_ERR_OUTOFMEM; \ | 1879 | 9.79k | _ent->tio.token \ | 1880 | 9.79k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 9.79k | if (!_ent->tio.token) \ | 1882 | 9.79k | return DWG_ERR_OUTOFMEM; \ | 1883 | 9.79k | _ent->dwg = obj->parent; \ | 1884 | 9.79k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 9.79k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 9.79k | return 0; \ | 1887 | 9.79k | } \ |
Line | Count | Source | 1826 | 4.36k | { \ | 1827 | 4.36k | Dwg_Object_Entity *_ent; \ | 1828 | 4.36k | Dwg_Entity_##token *_obj; \ | 1829 | 4.36k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 4.36k | && obj->parent->header.version < R_13b1) \ | 1831 | 4.36k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 4.36k | else \ | 1833 | 4.36k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 4.36k | obj->parent->num_entities++; \ | 1835 | 4.36k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 4.36k | if (!(int)obj->fixedtype) \ | 1837 | 4.36k | { \ | 1838 | 4.36k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 4.36k | } \ | 1840 | 4.36k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 4.36k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 4.36k | if (!obj->dxfname) \ | 1845 | 4.36k | { \ | 1846 | 4.36k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 4.36k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 4.36k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 4.36k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 4.36k | else \ | 1854 | 4.36k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 4.36k | } \ | 1856 | 4.36k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 4.36k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 4.36k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 4.36k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 4.36k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 4.36k | _ent = obj->tio.entity \ | 1876 | 4.36k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 4.36k | if (!_ent) \ | 1878 | 4.36k | return DWG_ERR_OUTOFMEM; \ | 1879 | 4.36k | _ent->tio.token \ | 1880 | 4.36k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 4.36k | if (!_ent->tio.token) \ | 1882 | 4.36k | return DWG_ERR_OUTOFMEM; \ | 1883 | 4.36k | _ent->dwg = obj->parent; \ | 1884 | 4.36k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 4.36k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 4.36k | return 0; \ | 1887 | 4.36k | } \ |
Line | Count | Source | 1826 | 682 | { \ | 1827 | 682 | Dwg_Object_Entity *_ent; \ | 1828 | 682 | Dwg_Entity_##token *_obj; \ | 1829 | 682 | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 682 | && obj->parent->header.version < R_13b1) \ | 1831 | 682 | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 682 | else \ | 1833 | 682 | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 682 | obj->parent->num_entities++; \ | 1835 | 682 | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 682 | if (!(int)obj->fixedtype) \ | 1837 | 682 | { \ | 1838 | 682 | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 682 | } \ | 1840 | 682 | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 682 | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 682 | if (!obj->dxfname) \ | 1845 | 682 | { \ | 1846 | 682 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 682 | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 682 | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 682 | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 682 | else \ | 1854 | 682 | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 682 | } \ | 1856 | 682 | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 682 | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 682 | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 682 | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 682 | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 682 | _ent = obj->tio.entity \ | 1876 | 682 | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 682 | if (!_ent) \ | 1878 | 682 | return DWG_ERR_OUTOFMEM; \ | 1879 | 682 | _ent->tio.token \ | 1880 | 682 | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 682 | if (!_ent->tio.token) \ | 1882 | 682 | return DWG_ERR_OUTOFMEM; \ | 1883 | 682 | _ent->dwg = obj->parent; \ | 1884 | 682 | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 682 | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 682 | return 0; \ | 1887 | 682 | } \ |
Line | Count | Source | 1826 | 7.59k | { \ | 1827 | 7.59k | Dwg_Object_Entity *_ent; \ | 1828 | 7.59k | Dwg_Entity_##token *_obj; \ | 1829 | 7.59k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 7.59k | && obj->parent->header.version < R_13b1) \ | 1831 | 7.59k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 7.59k | else \ | 1833 | 7.59k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 7.59k | obj->parent->num_entities++; \ | 1835 | 7.59k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 7.59k | if (!(int)obj->fixedtype) \ | 1837 | 7.59k | { \ | 1838 | 7.59k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 7.59k | } \ | 1840 | 7.59k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 7.59k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 7.59k | if (!obj->dxfname) \ | 1845 | 7.59k | { \ | 1846 | 7.59k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 7.59k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 7.59k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 7.59k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 7.59k | else \ | 1854 | 7.59k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 7.59k | } \ | 1856 | 7.59k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 7.59k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 7.59k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 7.59k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 7.59k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 7.59k | _ent = obj->tio.entity \ | 1876 | 7.59k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 7.59k | if (!_ent) \ | 1878 | 7.59k | return DWG_ERR_OUTOFMEM; \ | 1879 | 7.59k | _ent->tio.token \ | 1880 | 7.59k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 7.59k | if (!_ent->tio.token) \ | 1882 | 7.59k | return DWG_ERR_OUTOFMEM; \ | 1883 | 7.59k | _ent->dwg = obj->parent; \ | 1884 | 7.59k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 7.59k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 7.59k | return 0; \ | 1887 | 7.59k | } \ |
Line | Count | Source | 1826 | 14.2k | { \ | 1827 | 14.2k | Dwg_Object_Entity *_ent; \ | 1828 | 14.2k | Dwg_Entity_##token *_obj; \ | 1829 | 14.2k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 14.2k | && obj->parent->header.version < R_13b1) \ | 1831 | 14.2k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 14.2k | else \ | 1833 | 14.2k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 14.2k | obj->parent->num_entities++; \ | 1835 | 14.2k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 14.2k | if (!(int)obj->fixedtype) \ | 1837 | 14.2k | { \ | 1838 | 14.2k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 14.2k | } \ | 1840 | 14.2k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 14.2k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 14.2k | if (!obj->dxfname) \ | 1845 | 14.2k | { \ | 1846 | 14.2k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 14.2k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 14.2k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 14.2k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 14.2k | else \ | 1854 | 14.2k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 14.2k | } \ | 1856 | 14.2k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 14.2k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 14.2k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 14.2k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 14.2k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 14.2k | _ent = obj->tio.entity \ | 1876 | 14.2k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 14.2k | if (!_ent) \ | 1878 | 14.2k | return DWG_ERR_OUTOFMEM; \ | 1879 | 14.2k | _ent->tio.token \ | 1880 | 14.2k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 14.2k | if (!_ent->tio.token) \ | 1882 | 14.2k | return DWG_ERR_OUTOFMEM; \ | 1883 | 14.2k | _ent->dwg = obj->parent; \ | 1884 | 14.2k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 14.2k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 14.2k | return 0; \ | 1887 | 14.2k | } \ |
Line | Count | Source | 1826 | 1.37k | { \ | 1827 | 1.37k | Dwg_Object_Entity *_ent; \ | 1828 | 1.37k | Dwg_Entity_##token *_obj; \ | 1829 | 1.37k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 1.37k | && obj->parent->header.version < R_13b1) \ | 1831 | 1.37k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 1.37k | else \ | 1833 | 1.37k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 1.37k | obj->parent->num_entities++; \ | 1835 | 1.37k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 1.37k | if (!(int)obj->fixedtype) \ | 1837 | 1.37k | { \ | 1838 | 1.37k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 1.37k | } \ | 1840 | 1.37k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 1.37k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 1.37k | if (!obj->dxfname) \ | 1845 | 1.37k | { \ | 1846 | 1.37k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 1.37k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 1.37k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 1.37k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 1.37k | else \ | 1854 | 1.37k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 1.37k | } \ | 1856 | 1.37k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 1.37k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 1.37k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 1.37k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 1.37k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 1.37k | _ent = obj->tio.entity \ | 1876 | 1.37k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 1.37k | if (!_ent) \ | 1878 | 1.37k | return DWG_ERR_OUTOFMEM; \ | 1879 | 1.37k | _ent->tio.token \ | 1880 | 1.37k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 1.37k | if (!_ent->tio.token) \ | 1882 | 1.37k | return DWG_ERR_OUTOFMEM; \ | 1883 | 1.37k | _ent->dwg = obj->parent; \ | 1884 | 1.37k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 1.37k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 1.37k | return 0; \ | 1887 | 1.37k | } \ |
Line | Count | Source | 1826 | 5.23k | { \ | 1827 | 5.23k | Dwg_Object_Entity *_ent; \ | 1828 | 5.23k | Dwg_Entity_##token *_obj; \ | 1829 | 5.23k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 5.23k | && obj->parent->header.version < R_13b1) \ | 1831 | 5.23k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 5.23k | else \ | 1833 | 5.23k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 5.23k | obj->parent->num_entities++; \ | 1835 | 5.23k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 5.23k | if (!(int)obj->fixedtype) \ | 1837 | 5.23k | { \ | 1838 | 5.23k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 5.23k | } \ | 1840 | 5.23k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 5.23k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 5.23k | if (!obj->dxfname) \ | 1845 | 5.23k | { \ | 1846 | 5.23k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 5.23k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 5.23k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 5.23k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 5.23k | else \ | 1854 | 5.23k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 5.23k | } \ | 1856 | 5.23k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 5.23k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 5.23k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 5.23k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 5.23k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 5.23k | _ent = obj->tio.entity \ | 1876 | 5.23k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 5.23k | if (!_ent) \ | 1878 | 5.23k | return DWG_ERR_OUTOFMEM; \ | 1879 | 5.23k | _ent->tio.token \ | 1880 | 5.23k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 5.23k | if (!_ent->tio.token) \ | 1882 | 5.23k | return DWG_ERR_OUTOFMEM; \ | 1883 | 5.23k | _ent->dwg = obj->parent; \ | 1884 | 5.23k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 5.23k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 5.23k | return 0; \ | 1887 | 5.23k | } \ |
Line | Count | Source | 1826 | 10.4k | { \ | 1827 | 10.4k | Dwg_Object_Entity *_ent; \ | 1828 | 10.4k | Dwg_Entity_##token *_obj; \ | 1829 | 10.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 10.4k | && obj->parent->header.version < R_13b1) \ | 1831 | 10.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 10.4k | else \ | 1833 | 10.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 10.4k | obj->parent->num_entities++; \ | 1835 | 10.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 10.4k | if (!(int)obj->fixedtype) \ | 1837 | 10.4k | { \ | 1838 | 10.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 10.4k | } \ | 1840 | 10.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 10.4k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 10.4k | if (!obj->dxfname) \ | 1845 | 10.4k | { \ | 1846 | 10.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 10.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 10.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 10.4k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 10.4k | else \ | 1854 | 10.4k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 10.4k | } \ | 1856 | 10.4k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 10.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 10.4k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 10.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 10.4k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 10.4k | _ent = obj->tio.entity \ | 1876 | 10.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 10.4k | if (!_ent) \ | 1878 | 10.4k | return DWG_ERR_OUTOFMEM; \ | 1879 | 10.4k | _ent->tio.token \ | 1880 | 10.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 10.4k | if (!_ent->tio.token) \ | 1882 | 10.4k | return DWG_ERR_OUTOFMEM; \ | 1883 | 10.4k | _ent->dwg = obj->parent; \ | 1884 | 10.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 10.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 10.4k | return 0; \ | 1887 | 10.4k | } \ |
Unexecuted instantiation: dwg_setup_IMAGE Line | Count | Source | 1826 | 28.5k | { \ | 1827 | 28.5k | Dwg_Object_Entity *_ent; \ | 1828 | 28.5k | Dwg_Entity_##token *_obj; \ | 1829 | 28.5k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 28.5k | && obj->parent->header.version < R_13b1) \ | 1831 | 28.5k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 28.5k | else \ | 1833 | 28.5k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 28.5k | obj->parent->num_entities++; \ | 1835 | 28.5k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 28.5k | if (!(int)obj->fixedtype) \ | 1837 | 28.5k | { \ | 1838 | 28.5k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 28.5k | } \ | 1840 | 28.5k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 28.5k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 28.5k | if (!obj->dxfname) \ | 1845 | 28.5k | { \ | 1846 | 28.5k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 28.5k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 28.5k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 28.5k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 28.5k | else \ | 1854 | 28.5k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 28.5k | } \ | 1856 | 28.5k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 28.5k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 28.5k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 28.5k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 28.5k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 28.5k | _ent = obj->tio.entity \ | 1876 | 28.5k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 28.5k | if (!_ent) \ | 1878 | 28.5k | return DWG_ERR_OUTOFMEM; \ | 1879 | 28.5k | _ent->tio.token \ | 1880 | 28.5k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 28.5k | if (!_ent->tio.token) \ | 1882 | 28.5k | return DWG_ERR_OUTOFMEM; \ | 1883 | 28.5k | _ent->dwg = obj->parent; \ | 1884 | 28.5k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 28.5k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 28.5k | return 0; \ | 1887 | 28.5k | } \ |
Line | Count | Source | 1826 | 1.95k | { \ | 1827 | 1.95k | Dwg_Object_Entity *_ent; \ | 1828 | 1.95k | Dwg_Entity_##token *_obj; \ | 1829 | 1.95k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 1.95k | && obj->parent->header.version < R_13b1) \ | 1831 | 1.95k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 1.95k | else \ | 1833 | 1.95k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 1.95k | obj->parent->num_entities++; \ | 1835 | 1.95k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 1.95k | if (!(int)obj->fixedtype) \ | 1837 | 1.95k | { \ | 1838 | 1.95k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 1.95k | } \ | 1840 | 1.95k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 1.95k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 1.95k | if (!obj->dxfname) \ | 1845 | 1.95k | { \ | 1846 | 1.95k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 1.95k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 1.95k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 1.95k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 1.95k | else \ | 1854 | 1.95k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 1.95k | } \ | 1856 | 1.95k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 1.95k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 1.95k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 1.95k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 1.95k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 1.95k | _ent = obj->tio.entity \ | 1876 | 1.95k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 1.95k | if (!_ent) \ | 1878 | 1.95k | return DWG_ERR_OUTOFMEM; \ | 1879 | 1.95k | _ent->tio.token \ | 1880 | 1.95k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 1.95k | if (!_ent->tio.token) \ | 1882 | 1.95k | return DWG_ERR_OUTOFMEM; \ | 1883 | 1.95k | _ent->dwg = obj->parent; \ | 1884 | 1.95k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 1.95k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 1.95k | return 0; \ | 1887 | 1.95k | } \ |
Line | Count | Source | 1826 | 1.38k | { \ | 1827 | 1.38k | Dwg_Object_Entity *_ent; \ | 1828 | 1.38k | Dwg_Entity_##token *_obj; \ | 1829 | 1.38k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 1.38k | && obj->parent->header.version < R_13b1) \ | 1831 | 1.38k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 1.38k | else \ | 1833 | 1.38k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 1.38k | obj->parent->num_entities++; \ | 1835 | 1.38k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 1.38k | if (!(int)obj->fixedtype) \ | 1837 | 1.38k | { \ | 1838 | 1.38k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 1.38k | } \ | 1840 | 1.38k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 1.38k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 1.38k | if (!obj->dxfname) \ | 1845 | 1.38k | { \ | 1846 | 1.38k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 1.38k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 1.38k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 1.38k | { \ | 1850 | 1.38k | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 1.38k | obj->name = (char *)#token; \ | 1852 | 1.38k | } \ | 1853 | 1.38k | else \ | 1854 | 1.38k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 1.38k | } \ | 1856 | 1.38k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 1.38k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 1.38k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 1.38k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 1.38k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 1.38k | _ent = obj->tio.entity \ | 1876 | 1.38k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 1.38k | if (!_ent) \ | 1878 | 1.38k | return DWG_ERR_OUTOFMEM; \ | 1879 | 1.38k | _ent->tio.token \ | 1880 | 1.38k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 1.38k | if (!_ent->tio.token) \ | 1882 | 1.38k | return DWG_ERR_OUTOFMEM; \ | 1883 | 1.38k | _ent->dwg = obj->parent; \ | 1884 | 1.38k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 1.38k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 1.38k | return 0; \ | 1887 | 1.38k | } \ |
Unexecuted instantiation: dwg_setup_TABLE Unexecuted instantiation: dwg_setup_MULTILEADER Unexecuted instantiation: dwg_setup_WIPEOUT Unexecuted instantiation: dwg_setup_PDFUNDERLAY Unexecuted instantiation: dwg_setup_DGNUNDERLAY Unexecuted instantiation: dwg_setup_DWFUNDERLAY Unexecuted instantiation: dwg_setup_CAMERA Unexecuted instantiation: dwg_setup_SECTIONOBJECT Unexecuted instantiation: dwg_setup_UNKNOWN_ENT Unexecuted instantiation: dwg_setup_LIGHT Unexecuted instantiation: dwg_setup_HELIX Unexecuted instantiation: dwg_setup_MESH Unexecuted instantiation: dwg_setup_ARC_DIMENSION Unexecuted instantiation: dwg_setup_PLANESURFACE Unexecuted instantiation: dwg_setup_LAYOUTPRINTCONFIG Unexecuted instantiation: dwg_setup_POINTCLOUD Unexecuted instantiation: dwg_setup_POINTCLOUDEX Line | Count | Source | 1826 | 55.3k | { \ | 1827 | 55.3k | Dwg_Object_Entity *_ent; \ | 1828 | 55.3k | Dwg_Entity_##token *_obj; \ | 1829 | 55.3k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 55.3k | && obj->parent->header.version < R_13b1) \ | 1831 | 55.3k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 55.3k | else \ | 1833 | 55.3k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 55.3k | obj->parent->num_entities++; \ | 1835 | 55.3k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 55.3k | if (!(int)obj->fixedtype) \ | 1837 | 55.3k | { \ | 1838 | 55.3k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 55.3k | } \ | 1840 | 55.3k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 55.3k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 55.3k | if (!obj->dxfname) \ | 1845 | 55.3k | { \ | 1846 | 55.3k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 55.3k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 55.3k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 55.3k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 55.3k | else \ | 1854 | 55.3k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 55.3k | } \ | 1856 | 55.3k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 55.3k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 55.3k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 55.3k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 55.3k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 55.3k | _ent = obj->tio.entity \ | 1876 | 55.3k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 55.3k | if (!_ent) \ | 1878 | 55.3k | return DWG_ERR_OUTOFMEM; \ | 1879 | 55.3k | _ent->tio.token \ | 1880 | 55.3k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 55.3k | if (!_ent->tio.token) \ | 1882 | 55.3k | return DWG_ERR_OUTOFMEM; \ | 1883 | 55.3k | _ent->dwg = obj->parent; \ | 1884 | 55.3k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 55.3k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 55.3k | return 0; \ | 1887 | 55.3k | } \ |
Line | Count | Source | 1826 | 4.57k | { \ | 1827 | 4.57k | Dwg_Object_Entity *_ent; \ | 1828 | 4.57k | Dwg_Entity_##token *_obj; \ | 1829 | 4.57k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 4.57k | && obj->parent->header.version < R_13b1) \ | 1831 | 4.57k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 4.57k | else \ | 1833 | 4.57k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 4.57k | obj->parent->num_entities++; \ | 1835 | 4.57k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 4.57k | if (!(int)obj->fixedtype) \ | 1837 | 4.57k | { \ | 1838 | 4.57k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 4.57k | } \ | 1840 | 4.57k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 4.57k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 4.57k | if (!obj->dxfname) \ | 1845 | 4.57k | { \ | 1846 | 4.57k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 4.57k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 4.57k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 4.57k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 4.57k | else \ | 1854 | 4.57k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 4.57k | } \ | 1856 | 4.57k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 4.57k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 4.57k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 4.57k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 4.57k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 4.57k | _ent = obj->tio.entity \ | 1876 | 4.57k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 4.57k | if (!_ent) \ | 1878 | 4.57k | return DWG_ERR_OUTOFMEM; \ | 1879 | 4.57k | _ent->tio.token \ | 1880 | 4.57k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 4.57k | if (!_ent->tio.token) \ | 1882 | 4.57k | return DWG_ERR_OUTOFMEM; \ | 1883 | 4.57k | _ent->dwg = obj->parent; \ | 1884 | 4.57k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 4.57k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 4.57k | return 0; \ | 1887 | 4.57k | } \ |
Line | Count | Source | 1826 | 4.71k | { \ | 1827 | 4.71k | Dwg_Object_Entity *_ent; \ | 1828 | 4.71k | Dwg_Entity_##token *_obj; \ | 1829 | 4.71k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 4.71k | && obj->parent->header.version < R_13b1) \ | 1831 | 4.71k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 4.71k | else \ | 1833 | 4.71k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 4.71k | obj->parent->num_entities++; \ | 1835 | 4.71k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 4.71k | if (!(int)obj->fixedtype) \ | 1837 | 4.71k | { \ | 1838 | 4.71k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 4.71k | } \ | 1840 | 4.71k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 4.71k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 4.71k | if (!obj->dxfname) \ | 1845 | 4.71k | { \ | 1846 | 4.71k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 4.71k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 4.71k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 4.71k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 4.71k | else \ | 1854 | 4.71k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 4.71k | } \ | 1856 | 4.71k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 4.71k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 4.71k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 4.71k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 4.71k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 4.71k | _ent = obj->tio.entity \ | 1876 | 4.71k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 4.71k | if (!_ent) \ | 1878 | 4.71k | return DWG_ERR_OUTOFMEM; \ | 1879 | 4.71k | _ent->tio.token \ | 1880 | 4.71k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 4.71k | if (!_ent->tio.token) \ | 1882 | 4.71k | return DWG_ERR_OUTOFMEM; \ | 1883 | 4.71k | _ent->dwg = obj->parent; \ | 1884 | 4.71k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 4.71k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 4.71k | return 0; \ | 1887 | 4.71k | } \ |
Line | Count | Source | 1826 | 2.42k | { \ | 1827 | 2.42k | Dwg_Object_Entity *_ent; \ | 1828 | 2.42k | Dwg_Entity_##token *_obj; \ | 1829 | 2.42k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1830 | 2.42k | && obj->parent->header.version < R_13b1) \ | 1831 | 2.42k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1832 | 2.42k | else \ | 1833 | 2.42k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1834 | 2.42k | obj->parent->num_entities++; \ | 1835 | 2.42k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1836 | 2.42k | if (!(int)obj->fixedtype) \ | 1837 | 2.42k | { \ | 1838 | 2.42k | obj->fixedtype = DWG_TYPE_##token; \ | 1839 | 2.42k | } \ | 1840 | 2.42k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1841 | 2.42k | { \ | 1842 | 0 | obj->type = DWG_TYPE_##token; \ | 1843 | 0 | } \ | 1844 | 2.42k | if (!obj->dxfname) \ | 1845 | 2.42k | { \ | 1846 | 2.42k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1847 | 2.42k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1848 | 2.42k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1849 | 2.42k | { \ | 1850 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1851 | 0 | obj->name = (char *)#token; \ | 1852 | 0 | } \ | 1853 | 2.42k | else \ | 1854 | 2.42k | obj->name = obj->dxfname = (char *)#token; \ | 1855 | 2.42k | } \ | 1856 | 2.42k | else if (!obj->name) \ | 1857 | 0 | { \ | 1858 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1859 | 0 | obj->name = (char *)&#token[1]; \ | 1860 | 0 | else \ | 1861 | 0 | obj->name = (char *)#token; \ | 1862 | 0 | } \ | 1863 | 2.42k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1864 | 2.42k | { \ | 1865 | 0 | obj->name = (char *)#token; \ | 1866 | 0 | obj->dxfname = (char *)#token; \ | 1867 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1868 | 0 | } \ | 1869 | 2.42k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1870 | 2.42k | { \ | 1871 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1872 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1873 | 0 | obj->name = strdup (obj->name); \ | 1874 | 0 | } \ | 1875 | 2.42k | _ent = obj->tio.entity \ | 1876 | 2.42k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1877 | 2.42k | if (!_ent) \ | 1878 | 2.42k | return DWG_ERR_OUTOFMEM; \ | 1879 | 2.42k | _ent->tio.token \ | 1880 | 2.42k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1881 | 2.42k | if (!_ent->tio.token) \ | 1882 | 2.42k | return DWG_ERR_OUTOFMEM; \ | 1883 | 2.42k | _ent->dwg = obj->parent; \ | 1884 | 2.42k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1885 | 2.42k | _ent->tio.token->parent = obj->tio.entity; \ | 1886 | 2.42k | return 0; \ | 1887 | 2.42k | } \ |
|
1888 | | \ |
1889 | | static int dwg_decode_##token##_private ( \ |
1890 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1891 | | Dwg_Object *restrict obj); \ |
1892 | | \ |
1893 | | /** Call dwg_setup_##token and write the fields from the bitstream dat \ |
1894 | | * to the entity or object. */ \ |
1895 | | DWG_DECODE_FUNC int dwg_decode_##token (Bit_Chain *restrict dat, \ |
1896 | | Dwg_Object *restrict obj) \ |
1897 | 1.29M | { \ |
1898 | 1.29M | int error = dwg_setup_##token (obj); \ |
1899 | 1.29M | Bit_Chain hdl_dat = *dat; \ |
1900 | 1.29M | if (error) \ |
1901 | 1.29M | return error; \ |
1902 | 1.29M | SINCE (R_2007a) \ |
1903 | 1.29M | { \ |
1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ |
1905 | 0 | error \ |
1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ |
1907 | 0 | } \ |
1908 | 1.29M | else \ |
1909 | 1.29M | { \ |
1910 | 1.29M | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ |
1911 | 1.29M | } \ |
1912 | 1.29M | return error; \ |
1913 | 1.29M | } \ Line | Count | Source | 1897 | 68.7k | { \ | 1898 | 68.7k | int error = dwg_setup_##token (obj); \ | 1899 | 68.7k | Bit_Chain hdl_dat = *dat; \ | 1900 | 68.7k | if (error) \ | 1901 | 68.7k | return error; \ | 1902 | 68.7k | SINCE (R_2007a) \ | 1903 | 68.7k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 68.7k | else \ | 1909 | 68.7k | { \ | 1910 | 68.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 68.7k | } \ | 1912 | 68.7k | return error; \ | 1913 | 68.7k | } \ |
decode.c:dwg_decode_ATTRIB Line | Count | Source | 1897 | 40.1k | { \ | 1898 | 40.1k | int error = dwg_setup_##token (obj); \ | 1899 | 40.1k | Bit_Chain hdl_dat = *dat; \ | 1900 | 40.1k | if (error) \ | 1901 | 40.1k | return error; \ | 1902 | 40.1k | SINCE (R_2007a) \ | 1903 | 40.1k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 40.1k | else \ | 1909 | 40.1k | { \ | 1910 | 40.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 40.1k | } \ | 1912 | 40.1k | return error; \ | 1913 | 40.1k | } \ |
decode.c:dwg_decode_ATTDEF Line | Count | Source | 1897 | 68.1k | { \ | 1898 | 68.1k | int error = dwg_setup_##token (obj); \ | 1899 | 68.1k | Bit_Chain hdl_dat = *dat; \ | 1900 | 68.1k | if (error) \ | 1901 | 68.1k | return error; \ | 1902 | 68.1k | SINCE (R_2007a) \ | 1903 | 68.1k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 68.1k | else \ | 1909 | 68.1k | { \ | 1910 | 68.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 68.1k | } \ | 1912 | 68.1k | return error; \ | 1913 | 68.1k | } \ |
decode.c:dwg_decode_BLOCK Line | Count | Source | 1897 | 33.0k | { \ | 1898 | 33.0k | int error = dwg_setup_##token (obj); \ | 1899 | 33.0k | Bit_Chain hdl_dat = *dat; \ | 1900 | 33.0k | if (error) \ | 1901 | 33.0k | return error; \ | 1902 | 33.0k | SINCE (R_2007a) \ | 1903 | 33.0k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 33.0k | else \ | 1909 | 33.0k | { \ | 1910 | 33.0k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 33.0k | } \ | 1912 | 33.0k | return error; \ | 1913 | 33.0k | } \ |
decode.c:dwg_decode_ENDBLK Line | Count | Source | 1897 | 30.9k | { \ | 1898 | 30.9k | int error = dwg_setup_##token (obj); \ | 1899 | 30.9k | Bit_Chain hdl_dat = *dat; \ | 1900 | 30.9k | if (error) \ | 1901 | 30.9k | return error; \ | 1902 | 30.9k | SINCE (R_2007a) \ | 1903 | 30.9k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 30.9k | else \ | 1909 | 30.9k | { \ | 1910 | 30.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 30.9k | } \ | 1912 | 30.9k | return error; \ | 1913 | 30.9k | } \ |
decode.c:dwg_decode_SEQEND Line | Count | Source | 1897 | 8.87k | { \ | 1898 | 8.87k | int error = dwg_setup_##token (obj); \ | 1899 | 8.87k | Bit_Chain hdl_dat = *dat; \ | 1900 | 8.87k | if (error) \ | 1901 | 8.87k | return error; \ | 1902 | 8.87k | SINCE (R_2007a) \ | 1903 | 8.87k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 8.87k | else \ | 1909 | 8.87k | { \ | 1910 | 8.87k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 8.87k | } \ | 1912 | 8.87k | return error; \ | 1913 | 8.87k | } \ |
decode.c:dwg_decode_INSERT Line | Count | Source | 1897 | 28.6k | { \ | 1898 | 28.6k | int error = dwg_setup_##token (obj); \ | 1899 | 28.6k | Bit_Chain hdl_dat = *dat; \ | 1900 | 28.6k | if (error) \ | 1901 | 28.6k | return error; \ | 1902 | 28.6k | SINCE (R_2007a) \ | 1903 | 28.6k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 28.6k | else \ | 1909 | 28.6k | { \ | 1910 | 28.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 28.6k | } \ | 1912 | 28.6k | return error; \ | 1913 | 28.6k | } \ |
decode.c:dwg_decode_MINSERT Line | Count | Source | 1897 | 18.1k | { \ | 1898 | 18.1k | int error = dwg_setup_##token (obj); \ | 1899 | 18.1k | Bit_Chain hdl_dat = *dat; \ | 1900 | 18.1k | if (error) \ | 1901 | 18.1k | return error; \ | 1902 | 18.1k | SINCE (R_2007a) \ | 1903 | 18.1k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 18.1k | else \ | 1909 | 18.1k | { \ | 1910 | 18.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 18.1k | } \ | 1912 | 18.1k | return error; \ | 1913 | 18.1k | } \ |
decode.c:dwg_decode_VERTEX_2D Line | Count | Source | 1897 | 31.6k | { \ | 1898 | 31.6k | int error = dwg_setup_##token (obj); \ | 1899 | 31.6k | Bit_Chain hdl_dat = *dat; \ | 1900 | 31.6k | if (error) \ | 1901 | 31.6k | return error; \ | 1902 | 31.6k | SINCE (R_2007a) \ | 1903 | 31.6k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 31.6k | else \ | 1909 | 31.6k | { \ | 1910 | 31.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 31.6k | } \ | 1912 | 31.6k | return error; \ | 1913 | 31.6k | } \ |
decode.c:dwg_decode_VERTEX_3D Line | Count | Source | 1897 | 6.07k | { \ | 1898 | 6.07k | int error = dwg_setup_##token (obj); \ | 1899 | 6.07k | Bit_Chain hdl_dat = *dat; \ | 1900 | 6.07k | if (error) \ | 1901 | 6.07k | return error; \ | 1902 | 6.07k | SINCE (R_2007a) \ | 1903 | 6.07k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 6.07k | else \ | 1909 | 6.07k | { \ | 1910 | 6.07k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 6.07k | } \ | 1912 | 6.07k | return error; \ | 1913 | 6.07k | } \ |
decode.c:dwg_decode_VERTEX_MESH Line | Count | Source | 1897 | 38.3k | { \ | 1898 | 38.3k | int error = dwg_setup_##token (obj); \ | 1899 | 38.3k | Bit_Chain hdl_dat = *dat; \ | 1900 | 38.3k | if (error) \ | 1901 | 38.3k | return error; \ | 1902 | 38.3k | SINCE (R_2007a) \ | 1903 | 38.3k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 38.3k | else \ | 1909 | 38.3k | { \ | 1910 | 38.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 38.3k | } \ | 1912 | 38.3k | return error; \ | 1913 | 38.3k | } \ |
decode.c:dwg_decode_VERTEX_PFACE Line | Count | Source | 1897 | 29.4k | { \ | 1898 | 29.4k | int error = dwg_setup_##token (obj); \ | 1899 | 29.4k | Bit_Chain hdl_dat = *dat; \ | 1900 | 29.4k | if (error) \ | 1901 | 29.4k | return error; \ | 1902 | 29.4k | SINCE (R_2007a) \ | 1903 | 29.4k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 29.4k | else \ | 1909 | 29.4k | { \ | 1910 | 29.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 29.4k | } \ | 1912 | 29.4k | return error; \ | 1913 | 29.4k | } \ |
decode.c:dwg_decode_VERTEX_PFACE_FACE Line | Count | Source | 1897 | 4.81k | { \ | 1898 | 4.81k | int error = dwg_setup_##token (obj); \ | 1899 | 4.81k | Bit_Chain hdl_dat = *dat; \ | 1900 | 4.81k | if (error) \ | 1901 | 4.81k | return error; \ | 1902 | 4.81k | SINCE (R_2007a) \ | 1903 | 4.81k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 4.81k | else \ | 1909 | 4.81k | { \ | 1910 | 4.81k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 4.81k | } \ | 1912 | 4.81k | return error; \ | 1913 | 4.81k | } \ |
decode.c:dwg_decode_POLYLINE_2D Line | Count | Source | 1897 | 30.6k | { \ | 1898 | 30.6k | int error = dwg_setup_##token (obj); \ | 1899 | 30.6k | Bit_Chain hdl_dat = *dat; \ | 1900 | 30.6k | if (error) \ | 1901 | 30.6k | return error; \ | 1902 | 30.6k | SINCE (R_2007a) \ | 1903 | 30.6k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 30.6k | else \ | 1909 | 30.6k | { \ | 1910 | 30.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 30.6k | } \ | 1912 | 30.6k | return error; \ | 1913 | 30.6k | } \ |
decode.c:dwg_decode_POLYLINE_3D Line | Count | Source | 1897 | 38.0k | { \ | 1898 | 38.0k | int error = dwg_setup_##token (obj); \ | 1899 | 38.0k | Bit_Chain hdl_dat = *dat; \ | 1900 | 38.0k | if (error) \ | 1901 | 38.0k | return error; \ | 1902 | 38.0k | SINCE (R_2007a) \ | 1903 | 38.0k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 38.0k | else \ | 1909 | 38.0k | { \ | 1910 | 38.0k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 38.0k | } \ | 1912 | 38.0k | return error; \ | 1913 | 38.0k | } \ |
Line | Count | Source | 1897 | 50.7k | { \ | 1898 | 50.7k | int error = dwg_setup_##token (obj); \ | 1899 | 50.7k | Bit_Chain hdl_dat = *dat; \ | 1900 | 50.7k | if (error) \ | 1901 | 50.7k | return error; \ | 1902 | 50.7k | SINCE (R_2007a) \ | 1903 | 50.7k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 50.7k | else \ | 1909 | 50.7k | { \ | 1910 | 50.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 50.7k | } \ | 1912 | 50.7k | return error; \ | 1913 | 50.7k | } \ |
decode.c:dwg_decode_CIRCLE Line | Count | Source | 1897 | 27.6k | { \ | 1898 | 27.6k | int error = dwg_setup_##token (obj); \ | 1899 | 27.6k | Bit_Chain hdl_dat = *dat; \ | 1900 | 27.6k | if (error) \ | 1901 | 27.6k | return error; \ | 1902 | 27.6k | SINCE (R_2007a) \ | 1903 | 27.6k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 27.6k | else \ | 1909 | 27.6k | { \ | 1910 | 27.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 27.6k | } \ | 1912 | 27.6k | return error; \ | 1913 | 27.6k | } \ |
Line | Count | Source | 1897 | 62.9k | { \ | 1898 | 62.9k | int error = dwg_setup_##token (obj); \ | 1899 | 62.9k | Bit_Chain hdl_dat = *dat; \ | 1900 | 62.9k | if (error) \ | 1901 | 62.9k | return error; \ | 1902 | 62.9k | SINCE (R_2007a) \ | 1903 | 62.9k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 62.9k | else \ | 1909 | 62.9k | { \ | 1910 | 62.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 62.9k | } \ | 1912 | 62.9k | return error; \ | 1913 | 62.9k | } \ |
decode.c:dwg_decode_DIMENSION_ORDINATE Line | Count | Source | 1897 | 38.9k | { \ | 1898 | 38.9k | int error = dwg_setup_##token (obj); \ | 1899 | 38.9k | Bit_Chain hdl_dat = *dat; \ | 1900 | 38.9k | if (error) \ | 1901 | 38.9k | return error; \ | 1902 | 38.9k | SINCE (R_2007a) \ | 1903 | 38.9k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 38.9k | else \ | 1909 | 38.9k | { \ | 1910 | 38.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 38.9k | } \ | 1912 | 38.9k | return error; \ | 1913 | 38.9k | } \ |
decode.c:dwg_decode_DIMENSION_LINEAR Line | Count | Source | 1897 | 70.4k | { \ | 1898 | 70.4k | int error = dwg_setup_##token (obj); \ | 1899 | 70.4k | Bit_Chain hdl_dat = *dat; \ | 1900 | 70.4k | if (error) \ | 1901 | 70.4k | return error; \ | 1902 | 70.4k | SINCE (R_2007a) \ | 1903 | 70.4k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 70.4k | else \ | 1909 | 70.4k | { \ | 1910 | 70.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 70.4k | } \ | 1912 | 70.4k | return error; \ | 1913 | 70.4k | } \ |
decode.c:dwg_decode_DIMENSION_ALIGNED Line | Count | Source | 1897 | 13.9k | { \ | 1898 | 13.9k | int error = dwg_setup_##token (obj); \ | 1899 | 13.9k | Bit_Chain hdl_dat = *dat; \ | 1900 | 13.9k | if (error) \ | 1901 | 13.9k | return error; \ | 1902 | 13.9k | SINCE (R_2007a) \ | 1903 | 13.9k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 13.9k | else \ | 1909 | 13.9k | { \ | 1910 | 13.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 13.9k | } \ | 1912 | 13.9k | return error; \ | 1913 | 13.9k | } \ |
decode.c:dwg_decode_DIMENSION_ANG3PT Line | Count | Source | 1897 | 15.6k | { \ | 1898 | 15.6k | int error = dwg_setup_##token (obj); \ | 1899 | 15.6k | Bit_Chain hdl_dat = *dat; \ | 1900 | 15.6k | if (error) \ | 1901 | 15.6k | return error; \ | 1902 | 15.6k | SINCE (R_2007a) \ | 1903 | 15.6k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 15.6k | else \ | 1909 | 15.6k | { \ | 1910 | 15.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 15.6k | } \ | 1912 | 15.6k | return error; \ | 1913 | 15.6k | } \ |
decode.c:dwg_decode_DIMENSION_ANG2LN Line | Count | Source | 1897 | 18.7k | { \ | 1898 | 18.7k | int error = dwg_setup_##token (obj); \ | 1899 | 18.7k | Bit_Chain hdl_dat = *dat; \ | 1900 | 18.7k | if (error) \ | 1901 | 18.7k | return error; \ | 1902 | 18.7k | SINCE (R_2007a) \ | 1903 | 18.7k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 18.7k | else \ | 1909 | 18.7k | { \ | 1910 | 18.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 18.7k | } \ | 1912 | 18.7k | return error; \ | 1913 | 18.7k | } \ |
decode.c:dwg_decode_DIMENSION_RADIUS Line | Count | Source | 1897 | 16.7k | { \ | 1898 | 16.7k | int error = dwg_setup_##token (obj); \ | 1899 | 16.7k | Bit_Chain hdl_dat = *dat; \ | 1900 | 16.7k | if (error) \ | 1901 | 16.7k | return error; \ | 1902 | 16.7k | SINCE (R_2007a) \ | 1903 | 16.7k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 16.7k | else \ | 1909 | 16.7k | { \ | 1910 | 16.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 16.7k | } \ | 1912 | 16.7k | return error; \ | 1913 | 16.7k | } \ |
decode.c:dwg_decode_DIMENSION_DIAMETER Line | Count | Source | 1897 | 5.98k | { \ | 1898 | 5.98k | int error = dwg_setup_##token (obj); \ | 1899 | 5.98k | Bit_Chain hdl_dat = *dat; \ | 1900 | 5.98k | if (error) \ | 1901 | 5.98k | return error; \ | 1902 | 5.98k | SINCE (R_2007a) \ | 1903 | 5.98k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 5.98k | else \ | 1909 | 5.98k | { \ | 1910 | 5.98k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 5.98k | } \ | 1912 | 5.98k | return error; \ | 1913 | 5.98k | } \ |
decode.c:dwg_decode_POINT Line | Count | Source | 1897 | 36.0k | { \ | 1898 | 36.0k | int error = dwg_setup_##token (obj); \ | 1899 | 36.0k | Bit_Chain hdl_dat = *dat; \ | 1900 | 36.0k | if (error) \ | 1901 | 36.0k | return error; \ | 1902 | 36.0k | SINCE (R_2007a) \ | 1903 | 36.0k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 36.0k | else \ | 1909 | 36.0k | { \ | 1910 | 36.0k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 36.0k | } \ | 1912 | 36.0k | return error; \ | 1913 | 36.0k | } \ |
decode.c:dwg_decode__3DFACE Line | Count | Source | 1897 | 49.5k | { \ | 1898 | 49.5k | int error = dwg_setup_##token (obj); \ | 1899 | 49.5k | Bit_Chain hdl_dat = *dat; \ | 1900 | 49.5k | if (error) \ | 1901 | 49.5k | return error; \ | 1902 | 49.5k | SINCE (R_2007a) \ | 1903 | 49.5k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 49.5k | else \ | 1909 | 49.5k | { \ | 1910 | 49.5k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 49.5k | } \ | 1912 | 49.5k | return error; \ | 1913 | 49.5k | } \ |
decode.c:dwg_decode_POLYLINE_PFACE Line | Count | Source | 1897 | 14.8k | { \ | 1898 | 14.8k | int error = dwg_setup_##token (obj); \ | 1899 | 14.8k | Bit_Chain hdl_dat = *dat; \ | 1900 | 14.8k | if (error) \ | 1901 | 14.8k | return error; \ | 1902 | 14.8k | SINCE (R_2007a) \ | 1903 | 14.8k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 14.8k | else \ | 1909 | 14.8k | { \ | 1910 | 14.8k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 14.8k | } \ | 1912 | 14.8k | return error; \ | 1913 | 14.8k | } \ |
decode.c:dwg_decode_POLYLINE_MESH Line | Count | Source | 1897 | 24.8k | { \ | 1898 | 24.8k | int error = dwg_setup_##token (obj); \ | 1899 | 24.8k | Bit_Chain hdl_dat = *dat; \ | 1900 | 24.8k | if (error) \ | 1901 | 24.8k | return error; \ | 1902 | 24.8k | SINCE (R_2007a) \ | 1903 | 24.8k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 24.8k | else \ | 1909 | 24.8k | { \ | 1910 | 24.8k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 24.8k | } \ | 1912 | 24.8k | return error; \ | 1913 | 24.8k | } \ |
decode.c:dwg_decode_SOLID Line | Count | Source | 1897 | 25.1k | { \ | 1898 | 25.1k | int error = dwg_setup_##token (obj); \ | 1899 | 25.1k | Bit_Chain hdl_dat = *dat; \ | 1900 | 25.1k | if (error) \ | 1901 | 25.1k | return error; \ | 1902 | 25.1k | SINCE (R_2007a) \ | 1903 | 25.1k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 25.1k | else \ | 1909 | 25.1k | { \ | 1910 | 25.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 25.1k | } \ | 1912 | 25.1k | return error; \ | 1913 | 25.1k | } \ |
decode.c:dwg_decode_TRACE Line | Count | Source | 1897 | 38.1k | { \ | 1898 | 38.1k | int error = dwg_setup_##token (obj); \ | 1899 | 38.1k | Bit_Chain hdl_dat = *dat; \ | 1900 | 38.1k | if (error) \ | 1901 | 38.1k | return error; \ | 1902 | 38.1k | SINCE (R_2007a) \ | 1903 | 38.1k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 38.1k | else \ | 1909 | 38.1k | { \ | 1910 | 38.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 38.1k | } \ | 1912 | 38.1k | return error; \ | 1913 | 38.1k | } \ |
decode.c:dwg_decode_SHAPE Line | Count | Source | 1897 | 20.4k | { \ | 1898 | 20.4k | int error = dwg_setup_##token (obj); \ | 1899 | 20.4k | Bit_Chain hdl_dat = *dat; \ | 1900 | 20.4k | if (error) \ | 1901 | 20.4k | return error; \ | 1902 | 20.4k | SINCE (R_2007a) \ | 1903 | 20.4k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 20.4k | else \ | 1909 | 20.4k | { \ | 1910 | 20.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 20.4k | } \ | 1912 | 20.4k | return error; \ | 1913 | 20.4k | } \ |
decode.c:dwg_decode_VIEWPORT Line | Count | Source | 1897 | 16.2k | { \ | 1898 | 16.2k | int error = dwg_setup_##token (obj); \ | 1899 | 16.2k | Bit_Chain hdl_dat = *dat; \ | 1900 | 16.2k | if (error) \ | 1901 | 16.2k | return error; \ | 1902 | 16.2k | SINCE (R_2007a) \ | 1903 | 16.2k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 16.2k | else \ | 1909 | 16.2k | { \ | 1910 | 16.2k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 16.2k | } \ | 1912 | 16.2k | return error; \ | 1913 | 16.2k | } \ |
decode.c:dwg_decode_ELLIPSE Line | Count | Source | 1897 | 3.52k | { \ | 1898 | 3.52k | int error = dwg_setup_##token (obj); \ | 1899 | 3.52k | Bit_Chain hdl_dat = *dat; \ | 1900 | 3.52k | if (error) \ | 1901 | 3.52k | return error; \ | 1902 | 3.52k | SINCE (R_2007a) \ | 1903 | 3.52k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 3.52k | else \ | 1909 | 3.52k | { \ | 1910 | 3.52k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 3.52k | } \ | 1912 | 3.52k | return error; \ | 1913 | 3.52k | } \ |
decode.c:dwg_decode_SPLINE Line | Count | Source | 1897 | 21.6k | { \ | 1898 | 21.6k | int error = dwg_setup_##token (obj); \ | 1899 | 21.6k | Bit_Chain hdl_dat = *dat; \ | 1900 | 21.6k | if (error) \ | 1901 | 21.6k | return error; \ | 1902 | 21.6k | SINCE (R_2007a) \ | 1903 | 21.6k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 21.6k | else \ | 1909 | 21.6k | { \ | 1910 | 21.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 21.6k | } \ | 1912 | 21.6k | return error; \ | 1913 | 21.6k | } \ |
decode.c:dwg_decode_REGION Line | Count | Source | 1897 | 42.5k | { \ | 1898 | 42.5k | int error = dwg_setup_##token (obj); \ | 1899 | 42.5k | Bit_Chain hdl_dat = *dat; \ | 1900 | 42.5k | if (error) \ | 1901 | 42.5k | return error; \ | 1902 | 42.5k | SINCE (R_2007a) \ | 1903 | 42.5k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 42.5k | else \ | 1909 | 42.5k | { \ | 1910 | 42.5k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 42.5k | } \ | 1912 | 42.5k | return error; \ | 1913 | 42.5k | } \ |
decode.c:dwg_decode__3DSOLID Line | Count | Source | 1897 | 9.64k | { \ | 1898 | 9.64k | int error = dwg_setup_##token (obj); \ | 1899 | 9.64k | Bit_Chain hdl_dat = *dat; \ | 1900 | 9.64k | if (error) \ | 1901 | 9.64k | return error; \ | 1902 | 9.64k | SINCE (R_2007a) \ | 1903 | 9.64k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 9.64k | else \ | 1909 | 9.64k | { \ | 1910 | 9.64k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 9.64k | } \ | 1912 | 9.64k | return error; \ | 1913 | 9.64k | } \ |
Line | Count | Source | 1897 | 10.3k | { \ | 1898 | 10.3k | int error = dwg_setup_##token (obj); \ | 1899 | 10.3k | Bit_Chain hdl_dat = *dat; \ | 1900 | 10.3k | if (error) \ | 1901 | 10.3k | return error; \ | 1902 | 10.3k | SINCE (R_2007a) \ | 1903 | 10.3k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 10.3k | else \ | 1909 | 10.3k | { \ | 1910 | 10.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 10.3k | } \ | 1912 | 10.3k | return error; \ | 1913 | 10.3k | } \ |
Line | Count | Source | 1897 | 9.79k | { \ | 1898 | 9.79k | int error = dwg_setup_##token (obj); \ | 1899 | 9.79k | Bit_Chain hdl_dat = *dat; \ | 1900 | 9.79k | if (error) \ | 1901 | 9.79k | return error; \ | 1902 | 9.79k | SINCE (R_2007a) \ | 1903 | 9.79k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 9.79k | else \ | 1909 | 9.79k | { \ | 1910 | 9.79k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 9.79k | } \ | 1912 | 9.79k | return error; \ | 1913 | 9.79k | } \ |
decode.c:dwg_decode_XLINE Line | Count | Source | 1897 | 4.36k | { \ | 1898 | 4.36k | int error = dwg_setup_##token (obj); \ | 1899 | 4.36k | Bit_Chain hdl_dat = *dat; \ | 1900 | 4.36k | if (error) \ | 1901 | 4.36k | return error; \ | 1902 | 4.36k | SINCE (R_2007a) \ | 1903 | 4.36k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 4.36k | else \ | 1909 | 4.36k | { \ | 1910 | 4.36k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 4.36k | } \ | 1912 | 4.36k | return error; \ | 1913 | 4.36k | } \ |
decode.c:dwg_decode_MTEXT Line | Count | Source | 1897 | 7.59k | { \ | 1898 | 7.59k | int error = dwg_setup_##token (obj); \ | 1899 | 7.59k | Bit_Chain hdl_dat = *dat; \ | 1900 | 7.59k | if (error) \ | 1901 | 7.59k | return error; \ | 1902 | 7.59k | SINCE (R_2007a) \ | 1903 | 7.59k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 7.59k | else \ | 1909 | 7.59k | { \ | 1910 | 7.59k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 7.59k | } \ | 1912 | 7.59k | return error; \ | 1913 | 7.59k | } \ |
decode.c:dwg_decode_LEADER Line | Count | Source | 1897 | 14.2k | { \ | 1898 | 14.2k | int error = dwg_setup_##token (obj); \ | 1899 | 14.2k | Bit_Chain hdl_dat = *dat; \ | 1900 | 14.2k | if (error) \ | 1901 | 14.2k | return error; \ | 1902 | 14.2k | SINCE (R_2007a) \ | 1903 | 14.2k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 14.2k | else \ | 1909 | 14.2k | { \ | 1910 | 14.2k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 14.2k | } \ | 1912 | 14.2k | return error; \ | 1913 | 14.2k | } \ |
decode.c:dwg_decode_TOLERANCE Line | Count | Source | 1897 | 1.37k | { \ | 1898 | 1.37k | int error = dwg_setup_##token (obj); \ | 1899 | 1.37k | Bit_Chain hdl_dat = *dat; \ | 1900 | 1.37k | if (error) \ | 1901 | 1.37k | return error; \ | 1902 | 1.37k | SINCE (R_2007a) \ | 1903 | 1.37k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 1.37k | else \ | 1909 | 1.37k | { \ | 1910 | 1.37k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 1.37k | } \ | 1912 | 1.37k | return error; \ | 1913 | 1.37k | } \ |
decode.c:dwg_decode_MLINE Line | Count | Source | 1897 | 5.23k | { \ | 1898 | 5.23k | int error = dwg_setup_##token (obj); \ | 1899 | 5.23k | Bit_Chain hdl_dat = *dat; \ | 1900 | 5.23k | if (error) \ | 1901 | 5.23k | return error; \ | 1902 | 5.23k | SINCE (R_2007a) \ | 1903 | 5.23k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 5.23k | else \ | 1909 | 5.23k | { \ | 1910 | 5.23k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 5.23k | } \ | 1912 | 5.23k | return error; \ | 1913 | 5.23k | } \ |
decode.c:dwg_decode_OLE2FRAME Line | Count | Source | 1897 | 1.95k | { \ | 1898 | 1.95k | int error = dwg_setup_##token (obj); \ | 1899 | 1.95k | Bit_Chain hdl_dat = *dat; \ | 1900 | 1.95k | if (error) \ | 1901 | 1.95k | return error; \ | 1902 | 1.95k | SINCE (R_2007a) \ | 1903 | 1.95k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 1.95k | else \ | 1909 | 1.95k | { \ | 1910 | 1.95k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 1.95k | } \ | 1912 | 1.95k | return error; \ | 1913 | 1.95k | } \ |
decode.c:dwg_decode_LWPOLYLINE Line | Count | Source | 1897 | 28.5k | { \ | 1898 | 28.5k | int error = dwg_setup_##token (obj); \ | 1899 | 28.5k | Bit_Chain hdl_dat = *dat; \ | 1900 | 28.5k | if (error) \ | 1901 | 28.5k | return error; \ | 1902 | 28.5k | SINCE (R_2007a) \ | 1903 | 28.5k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 28.5k | else \ | 1909 | 28.5k | { \ | 1910 | 28.5k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 28.5k | } \ | 1912 | 28.5k | return error; \ | 1913 | 28.5k | } \ |
decode.c:dwg_decode_HATCH Line | Count | Source | 1897 | 10.4k | { \ | 1898 | 10.4k | int error = dwg_setup_##token (obj); \ | 1899 | 10.4k | Bit_Chain hdl_dat = *dat; \ | 1900 | 10.4k | if (error) \ | 1901 | 10.4k | return error; \ | 1902 | 10.4k | SINCE (R_2007a) \ | 1903 | 10.4k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 10.4k | else \ | 1909 | 10.4k | { \ | 1910 | 10.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 10.4k | } \ | 1912 | 10.4k | return error; \ | 1913 | 10.4k | } \ |
decode.c:dwg_decode_OLEFRAME Line | Count | Source | 1897 | 682 | { \ | 1898 | 682 | int error = dwg_setup_##token (obj); \ | 1899 | 682 | Bit_Chain hdl_dat = *dat; \ | 1900 | 682 | if (error) \ | 1901 | 682 | return error; \ | 1902 | 682 | SINCE (R_2007a) \ | 1903 | 682 | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 682 | else \ | 1909 | 682 | { \ | 1910 | 682 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 682 | } \ | 1912 | 682 | return error; \ | 1913 | 682 | } \ |
decode.c:dwg_decode_PROXY_ENTITY Line | Count | Source | 1897 | 1.38k | { \ | 1898 | 1.38k | int error = dwg_setup_##token (obj); \ | 1899 | 1.38k | Bit_Chain hdl_dat = *dat; \ | 1900 | 1.38k | if (error) \ | 1901 | 1.38k | return error; \ | 1902 | 1.38k | SINCE (R_2007a) \ | 1903 | 1.38k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 1.38k | else \ | 1909 | 1.38k | { \ | 1910 | 1.38k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 1.38k | } \ | 1912 | 1.38k | return error; \ | 1913 | 1.38k | } \ |
Unexecuted instantiation: decode.c:dwg_decode_IMAGE Unexecuted instantiation: decode.c:dwg_decode_ACIDBLOCKREFERENCE Unexecuted instantiation: decode.c:dwg_decode_LARGE_RADIAL_DIMENSION decode.c:dwg_decode__3DLINE Line | Count | Source | 1897 | 33.4k | { \ | 1898 | 33.4k | int error = dwg_setup_##token (obj); \ | 1899 | 33.4k | Bit_Chain hdl_dat = *dat; \ | 1900 | 33.4k | if (error) \ | 1901 | 33.4k | return error; \ | 1902 | 33.4k | SINCE (R_2007a) \ | 1903 | 33.4k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 33.4k | else \ | 1909 | 33.4k | { \ | 1910 | 33.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 33.4k | } \ | 1912 | 33.4k | return error; \ | 1913 | 33.4k | } \ |
Unexecuted instantiation: dwg_decode_TABLE Unexecuted instantiation: dwg_decode_MULTILEADER Unexecuted instantiation: dwg_decode_WIPEOUT Unexecuted instantiation: dwg_decode_PDFUNDERLAY Unexecuted instantiation: dwg_decode_DGNUNDERLAY Unexecuted instantiation: dwg_decode_DWFUNDERLAY Unexecuted instantiation: dwg_decode_CAMERA Unexecuted instantiation: dwg_decode_SECTIONOBJECT Unexecuted instantiation: dwg_decode_UNKNOWN_ENT Unexecuted instantiation: dwg_decode_LIGHT Unexecuted instantiation: dwg_decode_HELIX Unexecuted instantiation: dwg_decode_MESH Unexecuted instantiation: dwg_decode_ARC_DIMENSION Unexecuted instantiation: dwg_decode_PLANESURFACE Unexecuted instantiation: dwg_decode_LAYOUTPRINTCONFIG Unexecuted instantiation: dwg_decode_POINTCLOUD Unexecuted instantiation: dwg_decode_POINTCLOUDEX Line | Count | Source | 1897 | 55.3k | { \ | 1898 | 55.3k | int error = dwg_setup_##token (obj); \ | 1899 | 55.3k | Bit_Chain hdl_dat = *dat; \ | 1900 | 55.3k | if (error) \ | 1901 | 55.3k | return error; \ | 1902 | 55.3k | SINCE (R_2007a) \ | 1903 | 55.3k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 55.3k | else \ | 1909 | 55.3k | { \ | 1910 | 55.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 55.3k | } \ | 1912 | 55.3k | return error; \ | 1913 | 55.3k | } \ |
Line | Count | Source | 1897 | 4.57k | { \ | 1898 | 4.57k | int error = dwg_setup_##token (obj); \ | 1899 | 4.57k | Bit_Chain hdl_dat = *dat; \ | 1900 | 4.57k | if (error) \ | 1901 | 4.57k | return error; \ | 1902 | 4.57k | SINCE (R_2007a) \ | 1903 | 4.57k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 4.57k | else \ | 1909 | 4.57k | { \ | 1910 | 4.57k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 4.57k | } \ | 1912 | 4.57k | return error; \ | 1913 | 4.57k | } \ |
Line | Count | Source | 1897 | 4.71k | { \ | 1898 | 4.71k | int error = dwg_setup_##token (obj); \ | 1899 | 4.71k | Bit_Chain hdl_dat = *dat; \ | 1900 | 4.71k | if (error) \ | 1901 | 4.71k | return error; \ | 1902 | 4.71k | SINCE (R_2007a) \ | 1903 | 4.71k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 4.71k | else \ | 1909 | 4.71k | { \ | 1910 | 4.71k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 4.71k | } \ | 1912 | 4.71k | return error; \ | 1913 | 4.71k | } \ |
Line | Count | Source | 1897 | 2.42k | { \ | 1898 | 2.42k | int error = dwg_setup_##token (obj); \ | 1899 | 2.42k | Bit_Chain hdl_dat = *dat; \ | 1900 | 2.42k | if (error) \ | 1901 | 2.42k | return error; \ | 1902 | 2.42k | SINCE (R_2007a) \ | 1903 | 2.42k | { \ | 1904 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1905 | 0 | error \ | 1906 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1907 | 0 | } \ | 1908 | 2.42k | else \ | 1909 | 2.42k | { \ | 1910 | 2.42k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1911 | 2.42k | } \ | 1912 | 2.42k | return error; \ | 1913 | 2.42k | } \ |
|
1914 | | \ |
1915 | | GCC30_DIAG_IGNORE (-Wformat-nonliteral) \ |
1916 | | static int dwg_decode_##token##_private ( \ |
1917 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1918 | | Dwg_Object *restrict obj) \ |
1919 | 1.29M | { \ |
1920 | 1.29M | BITCODE_BL vcount, rcount3, rcount4; \ |
1921 | 1.29M | int error = 0; \ |
1922 | 1.29M | Dwg_Entity_##token *ent, *_obj; \ |
1923 | 1.29M | Dwg_Object_Entity *_ent; \ |
1924 | 1.29M | Dwg_Data *dwg = obj->parent; \ |
1925 | 1.29M | LOG_INFO ("Decode entity " #token "\n"); \ |
1926 | 1.29M | _ent = obj->tio.entity; \ |
1927 | 1.29M | ent = obj->tio.entity->tio.token; \ |
1928 | 1.29M | _obj = ent; \ |
1929 | 1.29M | _ent->dwg = dwg; \ |
1930 | 1.29M | _ent->objid = obj->index; /* obj ptr itself might move */ \ |
1931 | 1.29M | _obj->parent = obj->tio.entity; \ |
1932 | 1.29M | SINCE (R_13b1) \ |
1933 | 1.29M | { \ |
1934 | 722k | error = dwg_decode_entity (dat, hdl_dat, str_dat, _ent); \ |
1935 | 722k | } \ |
1936 | 1.29M | else \ |
1937 | 1.29M | { \ |
1938 | 574k | error = decode_entity_preR13 (dat, obj, _ent); \ |
1939 | 574k | } \ |
1940 | 1.29M | if (error >= DWG_ERR_CRITICAL || dat->byte > dat->size) \ |
1941 | 1.29M | return error; |
1942 | | |
1943 | | // Does size include the CRC? |
1944 | | #define DWG_ENTITY_END \ |
1945 | 4.64M | SINCE (R_13b1) \ |
1946 | 4.16M | { \ |
1947 | 4.16M | size_t pos = obj_stream_position (dat, hdl_dat, str_dat); \ |
1948 | 4.16M | int64_t padding = (obj->size * 8) - pos; \ |
1949 | 4.16M | bit_set_position (dat, pos); \ |
1950 | 4.16M | if (padding) \ |
1951 | 4.16M | LOG_HANDLE (" padding: %+ld %s\n", (long)padding, \ |
1952 | 4.16M | padding >= 8 ? "MISSING" \ |
1953 | 4.16M | : (padding < 0) ? "OVERSHOOT" \ |
1954 | 4.16M | : ""); \ |
1955 | 4.16M | } \ |
1956 | 615k | return error & ~DWG_ERR_UNHANDLEDCLASS; \ |
1957 | 4.72M | } |
1958 | | |
1959 | | #define DWG_OBJECT(token) \ |
1960 | | EXPORT int dwg_setup_##token (Dwg_Object *obj) \ |
1961 | 3.32M | { \ |
1962 | 3.32M | Dwg_Object_##token *_obj; \ |
1963 | 3.32M | LOG_INFO ("Add object " #token " [%d] ", obj->index); \ |
1964 | 3.32M | obj->supertype = DWG_SUPERTYPE_OBJECT; \ |
1965 | 3.32M | obj->tio.object \ |
1966 | 3.32M | = (Dwg_Object_Object *)calloc (1, sizeof (Dwg_Object_Object)); \ |
1967 | 3.32M | if (!obj->tio.object) \ |
1968 | 3.32M | return DWG_ERR_OUTOFMEM; \ |
1969 | 3.32M | _obj = obj->tio.object->tio.token \ |
1970 | 3.32M | = (Dwg_Object_##token *)calloc (1, sizeof (Dwg_Object_##token)); \ |
1971 | 3.32M | if (!_obj) \ |
1972 | 3.32M | { \ |
1973 | 0 | free (obj->tio.object); \ |
1974 | 0 | obj->tio.object = NULL; \ |
1975 | 0 | obj->fixedtype = DWG_TYPE_FREED; \ |
1976 | 0 | return DWG_ERR_OUTOFMEM; \ |
1977 | 0 | } \ |
1978 | 3.32M | if (!(int)obj->fixedtype) \ |
1979 | 3.32M | { \ |
1980 | 3.32M | obj->fixedtype = DWG_TYPE_##token; \ |
1981 | 3.32M | obj->name = (char *)#token; \ |
1982 | 3.32M | } \ |
1983 | 3.32M | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ |
1984 | 3.32M | { \ |
1985 | 3.12M | obj->type = DWG_TYPE_##token; \ |
1986 | 3.12M | } \ |
1987 | 3.32M | if (!obj->dxfname) \ |
1988 | 3.32M | { \ |
1989 | 3.32M | if (strEQc (#token, "PLACEHOLDER")) \ |
1990 | 3.32M | obj->dxfname = (char *)"ACDBPLACEHOLDER"; \ |
1991 | 3.32M | else if (strEQc (#token, "PROXY_OBJECT")) \ |
1992 | 3.31M | obj->dxfname = (char *)"ACAD_PROXY_OBJECT"; \ |
1993 | 3.31M | else \ |
1994 | 3.31M | obj->dxfname = (char *)#token; \ |
1995 | 3.32M | } \ |
1996 | 3.32M | if (strEQc (#token, "UNKNOWN_OBJ")) \ |
1997 | 3.32M | { \ |
1998 | 2.05k | obj->name = (char *)#token; \ |
1999 | 2.05k | obj->dxfname = (char *)#token; \ |
2000 | 2.05k | obj->fixedtype = DWG_TYPE_UNKNOWN_OBJ; \ |
2001 | 2.05k | } \ |
2002 | 3.32M | if (obj->parent->opts & DWG_OPTS_IN) \ |
2003 | 3.32M | { \ |
2004 | 0 | obj->dxfname = strdup (obj->dxfname); \ |
2005 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ |
2006 | 0 | obj->name = strdup (obj->name); \ |
2007 | 0 | } \ |
2008 | 3.32M | _obj->parent = obj->tio.object; \ |
2009 | 3.32M | obj->tio.object->dwg = obj->parent; \ |
2010 | 3.32M | obj->tio.object->objid = obj->index; /* obj ptr itself might move */ \ |
2011 | 3.32M | return 0; \ |
2012 | 3.32M | } \ |
2013 | | static int dwg_decode_##token##_private ( \ |
2014 | | Bit_Chain *obj_dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
2015 | | Dwg_Object *restrict obj); \ |
2016 | | \ |
2017 | | DWG_DECODE_FUNC int dwg_decode_##token (Bit_Chain *restrict dat, \ |
2018 | | Dwg_Object *restrict obj) \ |
2019 | 3.32M | { \ |
2020 | 3.32M | int error = dwg_setup_##token (obj); \ |
2021 | 3.32M | Bit_Chain hdl_dat = *dat; \ |
2022 | 3.32M | if (error) \ |
2023 | 3.32M | return error; \ |
2024 | 3.32M | SINCE (R_2007a) \ |
2025 | 3.32M | { \ |
2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ |
2027 | 0 | error \ |
2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ |
2029 | 0 | } \ |
2030 | 3.32M | else \ |
2031 | 3.32M | { \ |
2032 | 3.32M | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ |
2033 | 3.32M | } \ |
2034 | 3.32M | return error; \ |
2035 | 3.32M | } \ decode.c:dwg_decode_DICTIONARY Line | Count | Source | 2019 | 2.30k | { \ | 2020 | 2.30k | int error = dwg_setup_##token (obj); \ | 2021 | 2.30k | Bit_Chain hdl_dat = *dat; \ | 2022 | 2.30k | if (error) \ | 2023 | 2.30k | return error; \ | 2024 | 2.30k | SINCE (R_2007a) \ | 2025 | 2.30k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 2.30k | else \ | 2031 | 2.30k | { \ | 2032 | 2.30k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 2.30k | } \ | 2034 | 2.30k | return error; \ | 2035 | 2.30k | } \ |
decode.c:dwg_decode_BLOCK_CONTROL Line | Count | Source | 2019 | 18.2k | { \ | 2020 | 18.2k | int error = dwg_setup_##token (obj); \ | 2021 | 18.2k | Bit_Chain hdl_dat = *dat; \ | 2022 | 18.2k | if (error) \ | 2023 | 18.2k | return error; \ | 2024 | 18.2k | SINCE (R_2007a) \ | 2025 | 18.2k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 18.2k | else \ | 2031 | 18.2k | { \ | 2032 | 18.2k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 18.2k | } \ | 2034 | 18.2k | return error; \ | 2035 | 18.2k | } \ |
decode.c:dwg_decode_LAYER_CONTROL Line | Count | Source | 2019 | 3.66k | { \ | 2020 | 3.66k | int error = dwg_setup_##token (obj); \ | 2021 | 3.66k | Bit_Chain hdl_dat = *dat; \ | 2022 | 3.66k | if (error) \ | 2023 | 3.66k | return error; \ | 2024 | 3.66k | SINCE (R_2007a) \ | 2025 | 3.66k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 3.66k | else \ | 2031 | 3.66k | { \ | 2032 | 3.66k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 3.66k | } \ | 2034 | 3.66k | return error; \ | 2035 | 3.66k | } \ |
decode.c:dwg_decode_STYLE_CONTROL Line | Count | Source | 2019 | 16.9k | { \ | 2020 | 16.9k | int error = dwg_setup_##token (obj); \ | 2021 | 16.9k | Bit_Chain hdl_dat = *dat; \ | 2022 | 16.9k | if (error) \ | 2023 | 16.9k | return error; \ | 2024 | 16.9k | SINCE (R_2007a) \ | 2025 | 16.9k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 16.9k | else \ | 2031 | 16.9k | { \ | 2032 | 16.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 16.9k | } \ | 2034 | 16.9k | return error; \ | 2035 | 16.9k | } \ |
decode.c:dwg_decode_LTYPE_CONTROL Line | Count | Source | 2019 | 7.36k | { \ | 2020 | 7.36k | int error = dwg_setup_##token (obj); \ | 2021 | 7.36k | Bit_Chain hdl_dat = *dat; \ | 2022 | 7.36k | if (error) \ | 2023 | 7.36k | return error; \ | 2024 | 7.36k | SINCE (R_2007a) \ | 2025 | 7.36k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 7.36k | else \ | 2031 | 7.36k | { \ | 2032 | 7.36k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 7.36k | } \ | 2034 | 7.36k | return error; \ | 2035 | 7.36k | } \ |
decode.c:dwg_decode_VIEW_CONTROL Line | Count | Source | 2019 | 5.66k | { \ | 2020 | 5.66k | int error = dwg_setup_##token (obj); \ | 2021 | 5.66k | Bit_Chain hdl_dat = *dat; \ | 2022 | 5.66k | if (error) \ | 2023 | 5.66k | return error; \ | 2024 | 5.66k | SINCE (R_2007a) \ | 2025 | 5.66k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 5.66k | else \ | 2031 | 5.66k | { \ | 2032 | 5.66k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 5.66k | } \ | 2034 | 5.66k | return error; \ | 2035 | 5.66k | } \ |
decode.c:dwg_decode_UCS_CONTROL Line | Count | Source | 2019 | 2.96k | { \ | 2020 | 2.96k | int error = dwg_setup_##token (obj); \ | 2021 | 2.96k | Bit_Chain hdl_dat = *dat; \ | 2022 | 2.96k | if (error) \ | 2023 | 2.96k | return error; \ | 2024 | 2.96k | SINCE (R_2007a) \ | 2025 | 2.96k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 2.96k | else \ | 2031 | 2.96k | { \ | 2032 | 2.96k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 2.96k | } \ | 2034 | 2.96k | return error; \ | 2035 | 2.96k | } \ |
decode.c:dwg_decode_VPORT_CONTROL Line | Count | Source | 2019 | 30.7k | { \ | 2020 | 30.7k | int error = dwg_setup_##token (obj); \ | 2021 | 30.7k | Bit_Chain hdl_dat = *dat; \ | 2022 | 30.7k | if (error) \ | 2023 | 30.7k | return error; \ | 2024 | 30.7k | SINCE (R_2007a) \ | 2025 | 30.7k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 30.7k | else \ | 2031 | 30.7k | { \ | 2032 | 30.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 30.7k | } \ | 2034 | 30.7k | return error; \ | 2035 | 30.7k | } \ |
decode.c:dwg_decode_APPID_CONTROL Line | Count | Source | 2019 | 4.14k | { \ | 2020 | 4.14k | int error = dwg_setup_##token (obj); \ | 2021 | 4.14k | Bit_Chain hdl_dat = *dat; \ | 2022 | 4.14k | if (error) \ | 2023 | 4.14k | return error; \ | 2024 | 4.14k | SINCE (R_2007a) \ | 2025 | 4.14k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 4.14k | else \ | 2031 | 4.14k | { \ | 2032 | 4.14k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 4.14k | } \ | 2034 | 4.14k | return error; \ | 2035 | 4.14k | } \ |
decode.c:dwg_decode_DIMSTYLE_CONTROL Line | Count | Source | 2019 | 13.5k | { \ | 2020 | 13.5k | int error = dwg_setup_##token (obj); \ | 2021 | 13.5k | Bit_Chain hdl_dat = *dat; \ | 2022 | 13.5k | if (error) \ | 2023 | 13.5k | return error; \ | 2024 | 13.5k | SINCE (R_2007a) \ | 2025 | 13.5k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 13.5k | else \ | 2031 | 13.5k | { \ | 2032 | 13.5k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 13.5k | } \ | 2034 | 13.5k | return error; \ | 2035 | 13.5k | } \ |
decode.c:dwg_decode_VX_CONTROL Line | Count | Source | 2019 | 1.75k | { \ | 2020 | 1.75k | int error = dwg_setup_##token (obj); \ | 2021 | 1.75k | Bit_Chain hdl_dat = *dat; \ | 2022 | 1.75k | if (error) \ | 2023 | 1.75k | return error; \ | 2024 | 1.75k | SINCE (R_2007a) \ | 2025 | 1.75k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 1.75k | else \ | 2031 | 1.75k | { \ | 2032 | 1.75k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 1.75k | } \ | 2034 | 1.75k | return error; \ | 2035 | 1.75k | } \ |
decode.c:dwg_decode_GROUP Line | Count | Source | 2019 | 15.3k | { \ | 2020 | 15.3k | int error = dwg_setup_##token (obj); \ | 2021 | 15.3k | Bit_Chain hdl_dat = *dat; \ | 2022 | 15.3k | if (error) \ | 2023 | 15.3k | return error; \ | 2024 | 15.3k | SINCE (R_2007a) \ | 2025 | 15.3k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 15.3k | else \ | 2031 | 15.3k | { \ | 2032 | 15.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 15.3k | } \ | 2034 | 15.3k | return error; \ | 2035 | 15.3k | } \ |
decode.c:dwg_decode_MLINESTYLE Line | Count | Source | 2019 | 22.3k | { \ | 2020 | 22.3k | int error = dwg_setup_##token (obj); \ | 2021 | 22.3k | Bit_Chain hdl_dat = *dat; \ | 2022 | 22.3k | if (error) \ | 2023 | 22.3k | return error; \ | 2024 | 22.3k | SINCE (R_2007a) \ | 2025 | 22.3k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 22.3k | else \ | 2031 | 22.3k | { \ | 2032 | 22.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 22.3k | } \ | 2034 | 22.3k | return error; \ | 2035 | 22.3k | } \ |
decode.c:dwg_decode_LAYOUT Line | Count | Source | 2019 | 3.12M | { \ | 2020 | 3.12M | int error = dwg_setup_##token (obj); \ | 2021 | 3.12M | Bit_Chain hdl_dat = *dat; \ | 2022 | 3.12M | if (error) \ | 2023 | 3.12M | return error; \ | 2024 | 3.12M | SINCE (R_2007a) \ | 2025 | 3.12M | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 3.12M | else \ | 2031 | 3.12M | { \ | 2032 | 3.12M | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 3.12M | } \ | 2034 | 3.12M | return error; \ | 2035 | 3.12M | } \ |
decode.c:dwg_decode_PROXY_OBJECT Line | Count | Source | 2019 | 441 | { \ | 2020 | 441 | int error = dwg_setup_##token (obj); \ | 2021 | 441 | Bit_Chain hdl_dat = *dat; \ | 2022 | 441 | if (error) \ | 2023 | 441 | return error; \ | 2024 | 441 | SINCE (R_2007a) \ | 2025 | 441 | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 441 | else \ | 2031 | 441 | { \ | 2032 | 441 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 441 | } \ | 2034 | 441 | return error; \ | 2035 | 441 | } \ |
Unexecuted instantiation: decode.c:dwg_decode_DICTIONARYVAR Unexecuted instantiation: decode.c:dwg_decode_DICTIONARYWDFLT Unexecuted instantiation: decode.c:dwg_decode_FIELD Unexecuted instantiation: decode.c:dwg_decode_FIELDLIST Unexecuted instantiation: decode.c:dwg_decode_IDBUFFER Unexecuted instantiation: decode.c:dwg_decode_INDEX Unexecuted instantiation: decode.c:dwg_decode_IMAGEDEF Unexecuted instantiation: decode.c:dwg_decode_IMAGEDEF_REACTOR Unexecuted instantiation: decode.c:dwg_decode_LAYER_INDEX Unexecuted instantiation: decode.c:dwg_decode_PLOTSETTINGS Unexecuted instantiation: dwg_decode_GEODATA Unexecuted instantiation: dwg_decode_RASTERVARIABLES Unexecuted instantiation: dwg_decode_SORTENTSTABLE Unexecuted instantiation: dwg_decode_SPATIAL_FILTER Unexecuted instantiation: dwg_decode_SPATIAL_INDEX Unexecuted instantiation: dwg_decode_TABLECONTENT Unexecuted instantiation: dwg_decode_TABLESTYLE Unexecuted instantiation: dwg_decode_CELLSTYLEMAP Unexecuted instantiation: dwg_decode_TABLEGEOMETRY Line | Count | Source | 2019 | 5.11k | { \ | 2020 | 5.11k | int error = dwg_setup_##token (obj); \ | 2021 | 5.11k | Bit_Chain hdl_dat = *dat; \ | 2022 | 5.11k | if (error) \ | 2023 | 5.11k | return error; \ | 2024 | 5.11k | SINCE (R_2007a) \ | 2025 | 5.11k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 5.11k | else \ | 2031 | 5.11k | { \ | 2032 | 5.11k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 5.11k | } \ | 2034 | 5.11k | return error; \ | 2035 | 5.11k | } \ |
Line | Count | Source | 2019 | 10.1k | { \ | 2020 | 10.1k | int error = dwg_setup_##token (obj); \ | 2021 | 10.1k | Bit_Chain hdl_dat = *dat; \ | 2022 | 10.1k | if (error) \ | 2023 | 10.1k | return error; \ | 2024 | 10.1k | SINCE (R_2007a) \ | 2025 | 10.1k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 10.1k | else \ | 2031 | 10.1k | { \ | 2032 | 10.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 10.1k | } \ | 2034 | 10.1k | return error; \ | 2035 | 10.1k | } \ |
Unexecuted instantiation: dwg_decode_SCALE Line | Count | Source | 2019 | 18.0k | { \ | 2020 | 18.0k | int error = dwg_setup_##token (obj); \ | 2021 | 18.0k | Bit_Chain hdl_dat = *dat; \ | 2022 | 18.0k | if (error) \ | 2023 | 18.0k | return error; \ | 2024 | 18.0k | SINCE (R_2007a) \ | 2025 | 18.0k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 18.0k | else \ | 2031 | 18.0k | { \ | 2032 | 18.0k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 18.0k | } \ | 2034 | 18.0k | return error; \ | 2035 | 18.0k | } \ |
Unexecuted instantiation: dwg_decode_MLEADERSTYLE Unexecuted instantiation: dwg_decode_WIPEOUTVARIABLES Unexecuted instantiation: dwg_decode_PDFDEFINITION Unexecuted instantiation: dwg_decode_DGNDEFINITION Unexecuted instantiation: dwg_decode_DWFDEFINITION Unexecuted instantiation: dwg_decode_SECTION_MANAGER Unexecuted instantiation: dwg_decode_SECTION_SETTINGS Line | Count | Source | 2019 | 2.05k | { \ | 2020 | 2.05k | int error = dwg_setup_##token (obj); \ | 2021 | 2.05k | Bit_Chain hdl_dat = *dat; \ | 2022 | 2.05k | if (error) \ | 2023 | 2.05k | return error; \ | 2024 | 2.05k | SINCE (R_2007a) \ | 2025 | 2.05k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 2.05k | else \ | 2031 | 2.05k | { \ | 2032 | 2.05k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 2.05k | } \ | 2034 | 2.05k | return error; \ | 2035 | 2.05k | } \ |
Line | Count | Source | 2019 | 989 | { \ | 2020 | 989 | int error = dwg_setup_##token (obj); \ | 2021 | 989 | Bit_Chain hdl_dat = *dat; \ | 2022 | 989 | if (error) \ | 2023 | 989 | return error; \ | 2024 | 989 | SINCE (R_2007a) \ | 2025 | 989 | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 989 | else \ | 2031 | 989 | { \ | 2032 | 989 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 989 | } \ | 2034 | 989 | return error; \ | 2035 | 989 | } \ |
dwg_decode_LONG_TRANSACTION Line | Count | Source | 2019 | 10.4k | { \ | 2020 | 10.4k | int error = dwg_setup_##token (obj); \ | 2021 | 10.4k | Bit_Chain hdl_dat = *dat; \ | 2022 | 10.4k | if (error) \ | 2023 | 10.4k | return error; \ | 2024 | 10.4k | SINCE (R_2007a) \ | 2025 | 10.4k | { \ | 2026 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2027 | 0 | error \ | 2028 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 2029 | 0 | } \ | 2030 | 10.4k | else \ | 2031 | 10.4k | { \ | 2032 | 10.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2033 | 10.4k | } \ | 2034 | 10.4k | return error; \ | 2035 | 10.4k | } \ |
Unexecuted instantiation: dwg_decode_OBJECT_PTR Unexecuted instantiation: dwg_decode_ASSOCDEPENDENCY Unexecuted instantiation: dwg_decode_ASSOCPLANESURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCEXTENDSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCEXTRUDEDSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCLOFTEDSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCNETWORKSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCOFFSETSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCREVOLVEDSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCTRIMSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCBLENDSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCPATCHSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_ASSOCFILLETSURFACEACTIONBODY Unexecuted instantiation: dwg_decode_VISUALSTYLE Unexecuted instantiation: dwg_decode_DYNAMICBLOCKPURGEPREVENTER Unexecuted instantiation: dwg_decode_BLOCKREPRESENTATION Unexecuted instantiation: dwg_decode_DBCOLOR Unexecuted instantiation: dwg_decode_LIGHTLIST Unexecuted instantiation: dwg_decode_SUN Unexecuted instantiation: dwg_decode_RENDERSETTINGS Unexecuted instantiation: dwg_decode_MENTALRAYRENDERSETTINGS Unexecuted instantiation: dwg_decode_RAPIDRTRENDERSETTINGS Unexecuted instantiation: dwg_decode_MATERIAL Unexecuted instantiation: dwg_decode_LAYER_FILTER Unexecuted instantiation: dwg_decode_ACSH_BOX_CLASS Unexecuted instantiation: dwg_decode_ACSH_WEDGE_CLASS Unexecuted instantiation: dwg_decode_ACSH_SPHERE_CLASS Unexecuted instantiation: dwg_decode_ACSH_CYLINDER_CLASS Unexecuted instantiation: dwg_decode_ACSH_CONE_CLASS Unexecuted instantiation: dwg_decode_ACSH_PYRAMID_CLASS Unexecuted instantiation: dwg_decode_ACSH_FILLET_CLASS Unexecuted instantiation: dwg_decode_ACSH_CHAMFER_CLASS Unexecuted instantiation: dwg_decode_ACSH_TORUS_CLASS Unexecuted instantiation: dwg_decode_ACSH_BREP_CLASS Unexecuted instantiation: dwg_decode_ACSH_BOOLEAN_CLASS Unexecuted instantiation: dwg_decode_ACSH_HISTORY_CLASS Unexecuted instantiation: dwg_decode_ASSOCACTION Unexecuted instantiation: dwg_decode_ASSOCVALUEDEPENDENCY Unexecuted instantiation: dwg_decode_ASSOCGEOMDEPENDENCY Unexecuted instantiation: dwg_decode_ASSOCNETWORK Unexecuted instantiation: dwg_decode_BLOCKVISIBILITYGRIP Unexecuted instantiation: dwg_decode_BLOCKGRIPLOCATIONCOMPONENT Unexecuted instantiation: dwg_decode_BLOCKALIGNMENTGRIP Unexecuted instantiation: dwg_decode_BLOCKALIGNMENTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKLINEARPARAMETER Unexecuted instantiation: dwg_decode_BLOCKBASEPOINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKFLIPPARAMETER Unexecuted instantiation: dwg_decode_BLOCKFLIPGRIP Unexecuted instantiation: dwg_decode_BLOCKLINEARGRIP Unexecuted instantiation: dwg_decode_BLOCKLOOKUPGRIP Unexecuted instantiation: dwg_decode_BLOCKXYPARAMETER Unexecuted instantiation: dwg_decode_BLOCKMOVEACTION Unexecuted instantiation: dwg_decode_BLOCKFLIPACTION Unexecuted instantiation: dwg_decode_BLOCKROTATIONPARAMETER Unexecuted instantiation: dwg_decode_BLOCKROTATEACTION Unexecuted instantiation: dwg_decode_BLOCKROTATIONGRIP Unexecuted instantiation: dwg_decode_BLOCKSCALEACTION Unexecuted instantiation: dwg_decode_BLOCKVISIBILITYPARAMETER Unexecuted instantiation: dwg_decode_EVALUATION_GRAPH Unexecuted instantiation: dwg_decode_DIMASSOC Unexecuted instantiation: dwg_decode_DATALINK Unexecuted instantiation: dwg_decode_ALDIMOBJECTCONTEXTDATA Unexecuted instantiation: dwg_decode_MTEXTOBJECTCONTEXTDATA Unexecuted instantiation: dwg_decode_TEXTOBJECTCONTEXTDATA Unexecuted instantiation: dwg_decode_BLKREFOBJECTCONTEXTDATA Unexecuted instantiation: dwg_decode_LEADEROBJECTCONTEXTDATA Unexecuted instantiation: dwg_decode_FCFOBJECTCONTEXTDATA Unexecuted instantiation: dwg_decode_DETAILVIEWSTYLE Unexecuted instantiation: dwg_decode_SECTIONVIEWSTYLE Unexecuted instantiation: dwg_decode_GRADIENT_BACKGROUND Unexecuted instantiation: dwg_decode_GROUND_PLANE_BACKGROUND Unexecuted instantiation: dwg_decode_IBL_BACKGROUND Unexecuted instantiation: dwg_decode_IMAGE_BACKGROUND Unexecuted instantiation: dwg_decode_SKYLIGHT_BACKGROUND Unexecuted instantiation: dwg_decode_SOLID_BACKGROUND Unexecuted instantiation: dwg_decode_RENDERENTRY Unexecuted instantiation: dwg_decode_RENDERENVIRONMENT Unexecuted instantiation: dwg_decode_RENDERGLOBAL Unexecuted instantiation: dwg_decode_POINTCLOUDDEF Unexecuted instantiation: dwg_decode_POINTCLOUDDEFEX Unexecuted instantiation: dwg_decode_POINTCLOUDDEF_REACTOR Unexecuted instantiation: dwg_decode_POINTCLOUDDEF_REACTOR_EX Unexecuted instantiation: dwg_decode_POINTCLOUDCOLORMAP Unexecuted instantiation: dwg_decode_ASSOC2DCONSTRAINTGROUP Unexecuted instantiation: dwg_decode_ASSOCVARIABLE Unexecuted instantiation: dwg_decode_ASSOCACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCCOMPOUNDACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCOSNAPPOINTREFACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCPOINTREFACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCOBJECTACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCPATHACTIONPARAM Unexecuted instantiation: dwg_decode_BLOCKPOLARPARAMETER Unexecuted instantiation: dwg_decode_BLOCKPOLARGRIP Unexecuted instantiation: dwg_decode_ASSOCDIMDEPENDENCYBODY Unexecuted instantiation: dwg_decode_BLOCKARRAYACTION Unexecuted instantiation: dwg_decode_BLOCKANGULARCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_ASSOCFACEACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCVERTEXACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCASMBODYACTIONPARAM Unexecuted instantiation: dwg_decode_ASSOCARRAYMODIFYPARAMETERS Unexecuted instantiation: dwg_decode_ASSOCARRAYPATHPARAMETERS Unexecuted instantiation: dwg_decode_ASSOCARRAYPOLARPARAMETERS Unexecuted instantiation: dwg_decode_ASSOCARRAYRECTANGULARPARAMETERS Unexecuted instantiation: dwg_decode_BLOCKPARAMDEPENDENCYBODY Unexecuted instantiation: dwg_decode_BLOCKDIAMETRICCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKRADIALCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKALIGNEDCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKLINEARCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKHORIZONTALCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKVERTICALCONSTRAINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKLOOKUPACTION Unexecuted instantiation: dwg_decode_BLOCKLOOKUPPARAMETER Unexecuted instantiation: dwg_decode_BLOCKPOINTPARAMETER Unexecuted instantiation: dwg_decode_BLOCKSTRETCHACTION Unexecuted instantiation: dwg_decode_BLOCKPOLARSTRETCHACTION Unexecuted instantiation: dwg_decode_ASSOCARRAYACTIONBODY Unexecuted instantiation: dwg_decode_BLOCKUSERPARAMETER Unexecuted instantiation: dwg_decode_BLOCKXYGRIP Unexecuted instantiation: dwg_decode_PARTIAL_VIEWING_INDEX |
2036 | | \ |
2037 | | GCC30_DIAG_IGNORE (-Wformat-nonliteral) \ |
2038 | | static int dwg_decode_##token##_private ( \ |
2039 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
2040 | | Dwg_Object *restrict obj) \ |
2041 | 3.32M | { \ |
2042 | 3.32M | BITCODE_BL vcount, rcount3, rcount4; \ |
2043 | 3.32M | int error = 0; \ |
2044 | 3.32M | Dwg_Object_##token *_obj = NULL; \ |
2045 | 3.32M | Dwg_Data *dwg = obj->parent; \ |
2046 | 3.32M | LOG_INFO ("Decode object " #token "\n"); \ |
2047 | 3.32M | if (strNE (#token, "TABLECONTENT") || obj->fixedtype != DWG_TYPE_TABLE) \ |
2048 | 3.32M | { \ |
2049 | 3.32M | _obj = obj->tio.object->tio.token; \ |
2050 | 3.32M | error = dwg_decode_object (dat, hdl_dat, str_dat, obj->tio.object); \ |
2051 | 3.32M | if (error >= DWG_ERR_CRITICAL || dat->byte > dat->size) \ |
2052 | 3.32M | return error; \ |
2053 | 3.32M | } |
2054 | | |
2055 | 3.61M | #define DWG_OBJECT_END DWG_ENTITY_END |
2056 | | |
2057 | | // only for exported BLOCK_HEADER, LAYER, STYLE, LTYPE, VIEW, UCS, VPORT, |
2058 | | // APPID, DIMSTYLE, VX_TABLE_RECORD table records, needed for the r11 add API. |
2059 | | #define DWG_TABLE(token) \ |
2060 | | EXPORT int dwg_setup_##token (Dwg_Object *obj) \ |
2061 | 435k | { \ |
2062 | 435k | Dwg_Object_##token *_obj; \ |
2063 | 435k | LOG_INFO ("Add table record " #token " [%d] ", obj->index); \ |
2064 | 435k | obj->supertype = DWG_SUPERTYPE_OBJECT; \ |
2065 | 435k | obj->tio.object \ |
2066 | 435k | = (Dwg_Object_Object *)calloc (1, sizeof (Dwg_Object_Object)); \ |
2067 | 435k | if (!obj->tio.object) \ |
2068 | 435k | return DWG_ERR_OUTOFMEM; \ |
2069 | 435k | _obj = obj->tio.object->tio.token \ |
2070 | 435k | = (Dwg_Object_##token *)calloc (1, sizeof (Dwg_Object_##token)); \ |
2071 | 435k | if (!_obj) \ |
2072 | 435k | { \ |
2073 | 0 | free (obj->tio.object); \ |
2074 | 0 | obj->tio.object = NULL; \ |
2075 | 0 | obj->fixedtype = DWG_TYPE_FREED; \ |
2076 | 0 | return DWG_ERR_OUTOFMEM; \ |
2077 | 0 | } \ |
2078 | 435k | if (!(int)obj->fixedtype) \ |
2079 | 435k | { \ |
2080 | 435k | obj->fixedtype = DWG_TYPE_##token; \ |
2081 | 435k | obj->name = (char *)#token; \ |
2082 | 435k | } \ |
2083 | 435k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ |
2084 | 435k | { \ |
2085 | 91.4k | obj->type = DWG_TYPE_##token; \ |
2086 | 91.4k | } \ |
2087 | 435k | obj->dxfname = (char *)#token; \ |
2088 | 435k | if (obj->parent->opts & DWG_OPTS_IN) \ |
2089 | 435k | { \ |
2090 | 0 | obj->dxfname = strdup (obj->dxfname); \ |
2091 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ |
2092 | 0 | obj->name = strdup (obj->name); \ |
2093 | 0 | } \ |
2094 | 435k | _obj->parent = obj->tio.object; \ |
2095 | 435k | obj->tio.object->dwg = obj->parent; \ |
2096 | 435k | obj->tio.object->objid = obj->index; /* obj ptr itself might move */ \ |
2097 | 435k | return 0; \ |
2098 | 435k | } \ |
2099 | | static int dwg_decode_##token##_private ( \ |
2100 | | Bit_Chain *obj_dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
2101 | | Dwg_Object *restrict obj); \ |
2102 | | \ |
2103 | | int dwg_decode_##token (Bit_Chain *restrict dat, Dwg_Object *restrict obj) \ |
2104 | 435k | { \ |
2105 | 435k | int error = dwg_setup_##token (obj); \ |
2106 | 435k | Bit_Chain hdl_dat = *dat; \ |
2107 | 435k | if (error) \ |
2108 | 435k | return error; \ |
2109 | 435k | SINCE (R_2007a) \ |
2110 | 435k | { \ |
2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ |
2112 | 0 | error \ |
2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ |
2114 | 0 | } \ |
2115 | 435k | else \ |
2116 | 435k | { \ |
2117 | 435k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ |
2118 | 435k | } \ |
2119 | 435k | return error; \ |
2120 | 435k | } \ Line | Count | Source | 2104 | 115k | { \ | 2105 | 115k | int error = dwg_setup_##token (obj); \ | 2106 | 115k | Bit_Chain hdl_dat = *dat; \ | 2107 | 115k | if (error) \ | 2108 | 115k | return error; \ | 2109 | 115k | SINCE (R_2007a) \ | 2110 | 115k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 115k | else \ | 2116 | 115k | { \ | 2117 | 115k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 115k | } \ | 2119 | 115k | return error; \ | 2120 | 115k | } \ |
Line | Count | Source | 2104 | 5.67k | { \ | 2105 | 5.67k | int error = dwg_setup_##token (obj); \ | 2106 | 5.67k | Bit_Chain hdl_dat = *dat; \ | 2107 | 5.67k | if (error) \ | 2108 | 5.67k | return error; \ | 2109 | 5.67k | SINCE (R_2007a) \ | 2110 | 5.67k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 5.67k | else \ | 2116 | 5.67k | { \ | 2117 | 5.67k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 5.67k | } \ | 2119 | 5.67k | return error; \ | 2120 | 5.67k | } \ |
Line | Count | Source | 2104 | 22.7k | { \ | 2105 | 22.7k | int error = dwg_setup_##token (obj); \ | 2106 | 22.7k | Bit_Chain hdl_dat = *dat; \ | 2107 | 22.7k | if (error) \ | 2108 | 22.7k | return error; \ | 2109 | 22.7k | SINCE (R_2007a) \ | 2110 | 22.7k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 22.7k | else \ | 2116 | 22.7k | { \ | 2117 | 22.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 22.7k | } \ | 2119 | 22.7k | return error; \ | 2120 | 22.7k | } \ |
Line | Count | Source | 2104 | 36.7k | { \ | 2105 | 36.7k | int error = dwg_setup_##token (obj); \ | 2106 | 36.7k | Bit_Chain hdl_dat = *dat; \ | 2107 | 36.7k | if (error) \ | 2108 | 36.7k | return error; \ | 2109 | 36.7k | SINCE (R_2007a) \ | 2110 | 36.7k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 36.7k | else \ | 2116 | 36.7k | { \ | 2117 | 36.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 36.7k | } \ | 2119 | 36.7k | return error; \ | 2120 | 36.7k | } \ |
Line | Count | Source | 2104 | 29.8k | { \ | 2105 | 29.8k | int error = dwg_setup_##token (obj); \ | 2106 | 29.8k | Bit_Chain hdl_dat = *dat; \ | 2107 | 29.8k | if (error) \ | 2108 | 29.8k | return error; \ | 2109 | 29.8k | SINCE (R_2007a) \ | 2110 | 29.8k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 29.8k | else \ | 2116 | 29.8k | { \ | 2117 | 29.8k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 29.8k | } \ | 2119 | 29.8k | return error; \ | 2120 | 29.8k | } \ |
Line | Count | Source | 2104 | 9.67k | { \ | 2105 | 9.67k | int error = dwg_setup_##token (obj); \ | 2106 | 9.67k | Bit_Chain hdl_dat = *dat; \ | 2107 | 9.67k | if (error) \ | 2108 | 9.67k | return error; \ | 2109 | 9.67k | SINCE (R_2007a) \ | 2110 | 9.67k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 9.67k | else \ | 2116 | 9.67k | { \ | 2117 | 9.67k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 9.67k | } \ | 2119 | 9.67k | return error; \ | 2120 | 9.67k | } \ |
Line | Count | Source | 2104 | 182k | { \ | 2105 | 182k | int error = dwg_setup_##token (obj); \ | 2106 | 182k | Bit_Chain hdl_dat = *dat; \ | 2107 | 182k | if (error) \ | 2108 | 182k | return error; \ | 2109 | 182k | SINCE (R_2007a) \ | 2110 | 182k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 182k | else \ | 2116 | 182k | { \ | 2117 | 182k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 182k | } \ | 2119 | 182k | return error; \ | 2120 | 182k | } \ |
Line | Count | Source | 2104 | 2.04k | { \ | 2105 | 2.04k | int error = dwg_setup_##token (obj); \ | 2106 | 2.04k | Bit_Chain hdl_dat = *dat; \ | 2107 | 2.04k | if (error) \ | 2108 | 2.04k | return error; \ | 2109 | 2.04k | SINCE (R_2007a) \ | 2110 | 2.04k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 2.04k | else \ | 2116 | 2.04k | { \ | 2117 | 2.04k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 2.04k | } \ | 2119 | 2.04k | return error; \ | 2120 | 2.04k | } \ |
Line | Count | Source | 2104 | 27.7k | { \ | 2105 | 27.7k | int error = dwg_setup_##token (obj); \ | 2106 | 27.7k | Bit_Chain hdl_dat = *dat; \ | 2107 | 27.7k | if (error) \ | 2108 | 27.7k | return error; \ | 2109 | 27.7k | SINCE (R_2007a) \ | 2110 | 27.7k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 27.7k | else \ | 2116 | 27.7k | { \ | 2117 | 27.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 27.7k | } \ | 2119 | 27.7k | return error; \ | 2120 | 27.7k | } \ |
dwg_decode_VX_TABLE_RECORD Line | Count | Source | 2104 | 2.70k | { \ | 2105 | 2.70k | int error = dwg_setup_##token (obj); \ | 2106 | 2.70k | Bit_Chain hdl_dat = *dat; \ | 2107 | 2.70k | if (error) \ | 2108 | 2.70k | return error; \ | 2109 | 2.70k | SINCE (R_2007a) \ | 2110 | 2.70k | { \ | 2111 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2112 | 0 | error \ | 2113 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2114 | 0 | } \ | 2115 | 2.70k | else \ | 2116 | 2.70k | { \ | 2117 | 2.70k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2118 | 2.70k | } \ | 2119 | 2.70k | return error; \ | 2120 | 2.70k | } \ |
|
2121 | | \ |
2122 | | GCC30_DIAG_IGNORE (-Wformat-nonliteral) \ |
2123 | | static int dwg_decode_##token##_private ( \ |
2124 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
2125 | | Dwg_Object *restrict obj) \ |
2126 | 435k | { \ |
2127 | 435k | BITCODE_BL vcount, rcount3, rcount4; \ |
2128 | 435k | int error = 0; \ |
2129 | 435k | Dwg_Object_##token *_obj = NULL; \ |
2130 | 435k | Dwg_Data *dwg = obj->parent; \ |
2131 | 435k | LOG_INFO ("Decode table record " #token "\n"); \ |
2132 | 435k | _obj = obj->tio.object->tio.token; \ |
2133 | 435k | error = dwg_decode_object (dat, hdl_dat, str_dat, obj->tio.object); \ |
2134 | 435k | if (error >= DWG_ERR_CRITICAL || dat->byte > dat->size) \ |
2135 | 435k | return error; |
2136 | | |
2137 | | #endif |