/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 | 294k | LOG_INSANE (" @%" PRIuSIZE ".%u", \ |
64 | 294k | obj ? dat->byte - obj->address : dat->byte, (unsigned)dat->bit);\ |
65 | 294k | LOG_TRACE ("\n"); |
66 | | #define LOG_POS_(level) \ |
67 | 3.95k | LOG_INSANE (" @%" PRIuSIZE ".%u", \ |
68 | 3.95k | obj ? dat->byte - obj->address : dat->byte, (unsigned)dat->bit);\ |
69 | 3.95k | LOG (level, "\n") |
70 | | |
71 | | #define LOG_RPOS \ |
72 | 10.5M | LOG_INSANE (" @%" PRIuSIZE ".%u", dat->byte, (unsigned)dat->bit); \ |
73 | 10.6M | 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 | 12.4M | { \ |
106 | 12.4M | _obj->nam = bit_read_##type (dat); \ |
107 | 12.4M | FIELD_G_TRACE (nam, type, dxf); \ |
108 | 12.4M | } |
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 | 196k | { \ |
117 | 196k | _obj->o.nam = bit_read_##type (dat); \ |
118 | 196k | FIELD_G_TRACE (o.nam, type, dxf); \ |
119 | 196k | } |
120 | | |
121 | | #define FIELD_CAST(nam, type, cast, dxf) \ |
122 | 4.11M | { \ |
123 | 4.11M | _obj->nam = (BITCODE_##cast)bit_read_##type (dat); \ |
124 | 4.11M | FIELD_G_TRACE (nam, cast, dxf); \ |
125 | 4.11M | } |
126 | | #define SUB_FIELD_CAST(o, nam, type, cast, dxf) \ |
127 | 707k | { \ |
128 | 707k | _obj->o.nam = (BITCODE_##cast)bit_read_##type (dat); \ |
129 | 707k | FIELD_G_TRACE (o.nam, cast, dxf); \ |
130 | 707k | } |
131 | | |
132 | | #define FIELD_G_TRACE(nam, type, dxfgroup) \ |
133 | 34.7M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
134 | 34.7M | { \ |
135 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
136 | 0 | if (s1) \ |
137 | 0 | { \ |
138 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
139 | 0 | if (s2) \ |
140 | 0 | { \ |
141 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
142 | 0 | LOG_TRACE (strcat (s2, ": " FORMAT_##type " [" #type " %d]"), \ |
143 | 0 | rcount1, rcount2, (BITCODE_##type)_obj->nam, dxfgroup);\ |
144 | 0 | GCC46_DIAG_RESTORE \ |
145 | 0 | free (s2); \ |
146 | 0 | free (s1); \ |
147 | 0 | } \ |
148 | 0 | else \ |
149 | 0 | { \ |
150 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
151 | 0 | LOG_TRACE (strcat (s1, ": " FORMAT_##type " [" #type " %d]"), \ |
152 | 0 | rcount1, (BITCODE_##type)_obj->nam, dxfgroup); \ |
153 | 0 | GCC46_DIAG_RESTORE \ |
154 | 0 | free (s1); \ |
155 | 0 | } \ |
156 | 0 | } \ |
157 | 0 | else \ |
158 | 0 | LOG_TRACE (#nam ": " FORMAT_##type " [" #type " %d]", \ |
159 | 0 | (BITCODE_##type)_obj->nam, dxfgroup); \ |
160 | 0 | LOG_RPOS \ |
161 | 0 | } |
162 | | |
163 | | #define FIELD_G_TRACE_ANGLE(nam, type, dxfgroup) \ |
164 | 645k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
165 | 645k | { \ |
166 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
167 | 0 | if (s1) \ |
168 | 0 | { \ |
169 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
170 | 0 | if (s2) \ |
171 | 0 | { \ |
172 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
173 | 0 | LOG_TRACE ( \ |
174 | 0 | strcat (s2, ": " FORMAT_##type " [" #type " %d] %gº"), \ |
175 | 0 | rcount1, rcount2, _obj->nam, dxfgroup, \ |
176 | 0 | rad2deg (_obj->nam)); \ |
177 | 0 | GCC46_DIAG_RESTORE \ |
178 | 0 | free (s2); \ |
179 | 0 | free (s1); \ |
180 | 0 | } \ |
181 | 0 | else \ |
182 | 0 | { \ |
183 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
184 | 0 | LOG_TRACE ( \ |
185 | 0 | strcat (s1, ": " FORMAT_##type " [" #type " %d] %gº"), \ |
186 | 0 | rcount1, _obj->nam, dxfgroup, rad2deg (_obj->nam)); \ |
187 | 0 | GCC46_DIAG_RESTORE \ |
188 | 0 | free (s1); \ |
189 | 0 | } \ |
190 | 0 | } \ |
191 | 0 | else \ |
192 | 0 | LOG_TRACE (#nam ": " FORMAT_##type " [" #type " %d] %gº", \ |
193 | 0 | (BITCODE_##type)_obj->nam, dxfgroup, rad2deg (_obj->nam)); \ |
194 | 0 | LOG_RPOS \ |
195 | 0 | } |
196 | | |
197 | | #define FIELD_TRACE(nam, type) \ |
198 | 1.41k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
199 | 1.41k | { \ |
200 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
201 | 0 | if (s1) \ |
202 | 0 | { \ |
203 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
204 | 0 | if (s2) \ |
205 | 0 | { \ |
206 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
207 | 0 | LOG_TRACE (strcat (s2, ": " FORMAT_##type " " #type "\n"), \ |
208 | 0 | rcount1, rcount2, _obj->nam); \ |
209 | 0 | GCC46_DIAG_RESTORE \ |
210 | 0 | free (s2); \ |
211 | 0 | free (s1); \ |
212 | 0 | } \ |
213 | 0 | else \ |
214 | 0 | { \ |
215 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
216 | 0 | LOG_TRACE (strcat (s1, ": " FORMAT_##type " " #type "\n"), \ |
217 | 0 | rcount1, _obj->nam); \ |
218 | 0 | GCC46_DIAG_RESTORE \ |
219 | 0 | free (s1); \ |
220 | 0 | } \ |
221 | 0 | } \ |
222 | 0 | else \ |
223 | 0 | { \ |
224 | 0 | LOG_TRACE (#nam ": " FORMAT_##type " [" #type "]\n", _obj->nam); \ |
225 | 0 | } \ |
226 | 0 | } |
227 | | #define LOG_TF(level, var, len) \ |
228 | 64.9k | { \ |
229 | 64.9k | LOG_TF_HEX (level, var, len) \ |
230 | 64.9k | if (var && (DWG_LOGLEVEL >= DWG_LOGLEVEL_INSANE)) \ |
231 | 64.9k | { \ |
232 | 0 | for (unsigned _i = 0; _i < (unsigned)(len); _i++) \ |
233 | 0 | { \ |
234 | 0 | unsigned char c = ((unsigned char *)var)[_i]; \ |
235 | 0 | LOG_INSANE ("%-2c", isprint (c) ? c : ' '); \ |
236 | 0 | } \ |
237 | 0 | LOG_INSANE ("\n"); \ |
238 | 0 | } \ |
239 | 64.9k | } |
240 | | #define LOG_TF_HEX(level, var, len) \ |
241 | 64.9k | { \ |
242 | 64.9k | if (var && (DWG_LOGLEVEL >= DWG_LOGLEVEL_##level || len <= 256)) \ |
243 | 64.9k | { \ |
244 | 3.87M | for (unsigned _i = 0; _i < (unsigned)(len); _i++) \ |
245 | 3.83M | { \ |
246 | 3.83M | LOG (level, "%02X", (unsigned char)((char *)var)[_i]); \ |
247 | 3.83M | } \ |
248 | 44.4k | LOG (level, "\n"); \ |
249 | 44.4k | } \ |
250 | 64.9k | } |
251 | 24.6k | #define LOG_TRACE_TF(var, len) LOG_TF (TRACE, var, len); |
252 | 40.3k | #define LOG_INSANE_TF(var, len) LOG_TF (INSANE, var, len); |
253 | | |
254 | | #define FIELD_VEC_TRACE_N(nam, type, vcount, value, dxf) \ |
255 | 491k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
256 | 491k | { \ |
257 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
258 | 0 | if (s1) \ |
259 | 0 | { \ |
260 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
261 | 0 | if (s2) \ |
262 | 0 | { \ |
263 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
264 | 0 | LOG_TRACE ( \ |
265 | 0 | strcat (s2, "[%ld]: " FORMAT_##type " [" #type " %d]"), \ |
266 | 0 | rcount1, rcount2, vcount, value, dxf); \ |
267 | 0 | GCC46_DIAG_RESTORE \ |
268 | 0 | free (s2); \ |
269 | 0 | free (s1); \ |
270 | 0 | } \ |
271 | 0 | else \ |
272 | 0 | { \ |
273 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
274 | 0 | LOG_TRACE ( \ |
275 | 0 | strcat (s1, "[%ld]: " FORMAT_##type " [" #type " %d]"), \ |
276 | 0 | rcount1, vcount, value, dxf); \ |
277 | 0 | GCC46_DIAG_RESTORE \ |
278 | 0 | free (s1); \ |
279 | 0 | } \ |
280 | 0 | } \ |
281 | 0 | else \ |
282 | 0 | { \ |
283 | 0 | LOG_TRACE (#nam "[%ld]: " FORMAT_##type " [" #type " %d]", vcount, \ |
284 | 0 | value, dxf); \ |
285 | 0 | } \ |
286 | 0 | LOG_POS; \ |
287 | 0 | } |
288 | | #define FIELD_2PT_TRACE(nam, type, dxf) \ |
289 | 8.94M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
290 | 8.94M | { \ |
291 | 0 | char *s1 = strrplc (#nam, "[rcount1]", "[%d]"); \ |
292 | 0 | if (s1) \ |
293 | 0 | { \ |
294 | 0 | char *s2 = strrplc (s1, "[rcount2]", "[%d]"); \ |
295 | 0 | if (s2) \ |
296 | 0 | { \ |
297 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
298 | 0 | LOG_TRACE (strcat (s2, ": (" FORMAT_BD ", " FORMAT_BD \ |
299 | 0 | ") [" #type " %d]"), \ |
300 | 0 | rcount1, rcount2, _obj->nam.x, _obj->nam.y, dxf); \ |
301 | 0 | GCC46_DIAG_RESTORE \ |
302 | 0 | free (s2); \ |
303 | 0 | free (s1); \ |
304 | 0 | } \ |
305 | 0 | else \ |
306 | 0 | { \ |
307 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
308 | 0 | LOG_TRACE (strcat (s1, ": (" FORMAT_BD ", " FORMAT_BD \ |
309 | 0 | ") [" #type " %d]"), \ |
310 | 0 | rcount1, _obj->nam.x, _obj->nam.y, dxf); \ |
311 | 0 | GCC46_DIAG_RESTORE \ |
312 | 0 | free (s1); \ |
313 | 0 | } \ |
314 | 0 | } \ |
315 | 0 | else \ |
316 | 0 | LOG_TRACE (#nam ": (" FORMAT_BD ", " FORMAT_BD ") [" #type " %d]", \ |
317 | 0 | _obj->nam.x, _obj->nam.y, dxf); \ |
318 | 0 | LOG_POS; \ |
319 | 0 | } |
320 | | #define FIELD_3PT_TRACE(nam, type, dxf) \ |
321 | 14.1M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
322 | 14.1M | { \ |
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 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
330 | 0 | LOG_TRACE (strcat (s2, ": (" FORMAT_BD ", " FORMAT_BD \ |
331 | 0 | ", " FORMAT_BD ") [" #type " %d]"), \ |
332 | 0 | rcount1, rcount2, _obj->nam.x, _obj->nam.y, \ |
333 | 0 | _obj->nam.z, dxf); \ |
334 | 0 | GCC46_DIAG_RESTORE \ |
335 | 0 | free (s2); \ |
336 | 0 | free (s1); \ |
337 | 0 | } \ |
338 | 0 | else \ |
339 | 0 | { \ |
340 | 0 | GCC46_DIAG_IGNORE (-Wformat-nonliteral) \ |
341 | 0 | LOG_TRACE (strcat (s1, ": (" FORMAT_BD ", " FORMAT_BD \ |
342 | 0 | ", " FORMAT_BD ") [" #type " %d]"), \ |
343 | 0 | rcount1, _obj->nam.x, _obj->nam.y, _obj->nam.z, dxf);\ |
344 | 0 | GCC46_DIAG_RESTORE \ |
345 | 0 | free (s1); \ |
346 | 0 | } \ |
347 | 0 | } \ |
348 | 0 | else \ |
349 | 0 | { \ |
350 | 0 | LOG_TRACE (#nam ": (" FORMAT_BD ", " FORMAT_BD ", " FORMAT_BD \ |
351 | 0 | ") [" #type " %d]", \ |
352 | 0 | _obj->nam.x, _obj->nam.y, _obj->nam.z, dxf); \ |
353 | 0 | } \ |
354 | 0 | LOG_POS; \ |
355 | 0 | } |
356 | | |
357 | | #define ANYCODE -1 |
358 | | #define VALUE_HANDLE(ref, nam, code, dxf) \ |
359 | 7.14M | { \ |
360 | 7.14M | PRE (R_13b1) \ |
361 | 7.14M | { \ |
362 | 674k | size_t _pos = bit_position (dat); \ |
363 | 674k | if (ref && !ref->handleref.is_global) \ |
364 | 674k | free (ref); \ |
365 | 674k | ref = dwg_decode_preR13_handleref (dat, code /*as size */, dwg); \ |
366 | 674k | LOG_TRACE (#nam ": %hd [H(%s) %d]", (short)ref->r11_idx, \ |
367 | 674k | code == 1 ? "RC" : "RSd", dxf); \ |
368 | 674k | LOG_INSANE (" @%" PRIuSIZE ".%u", _pos / 8, (unsigned)(_pos % 8)); \ |
369 | 674k | LOG_TRACE ("\n"); \ |
370 | 674k | } \ |
371 | 7.14M | LATER_VERSIONS \ |
372 | 7.14M | { \ |
373 | 6.46M | size_t _pos = bit_position (hdl_dat); \ |
374 | 6.46M | if (code >= 0) \ |
375 | 6.46M | ref = dwg_decode_handleref_with_code (hdl_dat, obj, dwg, code); \ |
376 | 6.46M | else \ |
377 | 6.46M | ref = dwg_decode_handleref (hdl_dat, obj, dwg); \ |
378 | 6.46M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
379 | 6.46M | { \ |
380 | 0 | if (ref) \ |
381 | 0 | { \ |
382 | 0 | LOG_TRACE (#nam ": " FORMAT_REF " [H %d]", ARGS_REF (ref), \ |
383 | 0 | dxf); \ |
384 | 0 | if (dwg_ref_object_silent (dwg, ref) \ |
385 | 0 | && DWG_LOGLEVEL > DWG_LOGLEVEL_TRACE) \ |
386 | 0 | { \ |
387 | 0 | int alloced; \ |
388 | 0 | const char *u8 = dwg_ref_tblname (dwg, ref, &alloced); \ |
389 | 0 | if (u8 && *u8) \ |
390 | 0 | HANDLER (OUTPUT, " => %s %s", dwg_ref_objname (dwg, ref), \ |
391 | 0 | u8); \ |
392 | 0 | if (u8 && alloced) \ |
393 | 0 | free ((void *)u8); \ |
394 | 0 | } \ |
395 | 0 | } \ |
396 | 0 | else \ |
397 | 0 | { \ |
398 | 0 | HANDLER (OUTPUT, #nam ": NULL %d [H %d]", code, dxf); \ |
399 | 0 | } \ |
400 | 0 | LOG_INSANE (" @%" PRIuSIZE ".%u", _pos / 8, (unsigned)(_pos % 8)); \ |
401 | 0 | HANDLER (OUTPUT, "\n"); \ |
402 | 0 | } \ |
403 | 6.46M | } \ |
404 | 7.14M | } |
405 | 6.70M | #define FIELD_HANDLE(nam, code, dxf) VALUE_HANDLE (_obj->nam, nam, code, dxf) |
406 | | #define SUB_FIELD_HANDLE(o, nam, code, dxf) \ |
407 | 366k | VALUE_HANDLE (_obj->o.nam, o.nam, code, dxf) |
408 | | #define VALUE_H(hdl, dxf) \ |
409 | 138k | { \ |
410 | 138k | size_t pos; \ |
411 | 138k | PRE (R_13b1) \ |
412 | 138k | { \ |
413 | 138k | pos = bit_position (dat); \ |
414 | 138k | error |= bit_read_H (dat, &hdl); \ |
415 | 138k | } \ |
416 | 138k | else \ |
417 | 138k | { \ |
418 | 0 | pos = bit_position (hdl_dat); \ |
419 | 0 | error |= bit_read_H (hdl_dat, &hdl); \ |
420 | 0 | } \ |
421 | 138k | LOG_TRACE ("handle: " FORMAT_H " [H %d]", ARGS_H (hdl), dxf); \ |
422 | 138k | LOG_INSANE (" @%" PRIuSIZE ".%u", pos / 8, (unsigned)(pos % 8)); \ |
423 | 138k | LOG_TRACE ("\n"); \ |
424 | 138k | } |
425 | | |
426 | | #define VALUE_HANDLE_N(ref, nam, vcount, code, dxf) \ |
427 | 11.9M | { \ |
428 | 11.9M | PRE (R_13b1) \ |
429 | 11.9M | { \ |
430 | 0 | size_t pos = bit_position (dat); \ |
431 | 0 | ref = dwg_decode_preR13_handleref (dat, code, dwg); \ |
432 | 0 | LOG_TRACE (#nam "[%d]: " FORMAT_RS " [RS %d]", (int)vcount, \ |
433 | 0 | ref->r11_idx, dxf); \ |
434 | 0 | LOG_INSANE (" @%" PRIuSIZE ".%u", pos / 8, (unsigned)(pos % 8)); \ |
435 | 0 | LOG_TRACE ("\n"); \ |
436 | 0 | } \ |
437 | 11.9M | LATER_VERSIONS \ |
438 | 11.9M | { \ |
439 | 11.9M | size_t pos = bit_position (hdl_dat); \ |
440 | 11.9M | if (code >= 0) \ |
441 | 11.9M | ref = dwg_decode_handleref_with_code (hdl_dat, obj, dwg, code); \ |
442 | 11.9M | else \ |
443 | 11.9M | ref = dwg_decode_handleref (hdl_dat, obj, dwg); \ |
444 | 11.9M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
445 | 11.9M | { \ |
446 | 0 | if (ref) \ |
447 | 0 | { \ |
448 | 0 | char *_name = strrplc (#nam, "[vcount]", ""); \ |
449 | 0 | LOG_TRACE ("%s[%d]: " FORMAT_REF " [H* %d]", \ |
450 | 0 | _name ? _name : #nam, (int)vcount, ARGS_REF (ref), \ |
451 | 0 | dxf); \ |
452 | 0 | if (_name) \ |
453 | 0 | free (_name); \ |
454 | 0 | if (dwg_ref_object_silent (dwg, ref) \ |
455 | 0 | && DWG_LOGLEVEL > DWG_LOGLEVEL_TRACE) \ |
456 | 0 | { \ |
457 | 0 | int alloced; \ |
458 | 0 | const char *u8 = dwg_ref_tblname (dwg, ref, &alloced); \ |
459 | 0 | HANDLER (OUTPUT, " => %s %s", dwg_ref_objname (dwg, ref), \ |
460 | 0 | u8); \ |
461 | 0 | if (alloced) \ |
462 | 0 | free ((void *)u8); \ |
463 | 0 | } \ |
464 | 0 | } \ |
465 | 0 | else \ |
466 | 0 | { \ |
467 | 0 | LOG_TRACE (#nam "[%d]: NULL %d [H* %d]", (int)vcount, code, \ |
468 | 0 | dxf); \ |
469 | 0 | } \ |
470 | 0 | LOG_INSANE (" @%" PRIuSIZE ".%u", pos / 8, (unsigned)(pos % 8)); \ |
471 | 0 | LOG_TRACE ("\n"); \ |
472 | 0 | } \ |
473 | 11.9M | } \ |
474 | 11.9M | } |
475 | | #define FIELD_HANDLE_N(nam, vcount, code, dxf) \ |
476 | 9.95M | VALUE_HANDLE_N (_obj->nam, nam, vcount, code, dxf) |
477 | | |
478 | | #define FIELD_DATAHANDLE(nam, code, dxf) \ |
479 | 9.94k | { \ |
480 | 9.94k | _obj->nam = dwg_decode_handleref (dat, obj, dwg); \ |
481 | 9.94k | if (_obj->nam) \ |
482 | 9.94k | { \ |
483 | 5.52k | LOG_TRACE (#nam ": " FORMAT_H " [H %d]", \ |
484 | 5.52k | ARGS_H (_obj->nam->handleref), dxf); \ |
485 | 5.52k | LOG_RPOS \ |
486 | 5.52k | } \ |
487 | 9.94k | } |
488 | | |
489 | 1.02M | #define FIELD_B(nam, dxf) FIELDG (nam, B, dxf) |
490 | 65.8k | #define FIELD_BB(nam, dxf) FIELDG (nam, BB, dxf) |
491 | | #define FIELD_3B(nam, dxf) FIELDG (nam, 3B, dxf) |
492 | 8.94M | #define FIELD_BS(nam, dxf) FIELDG (nam, BS, dxf) |
493 | 134k | #define FIELD_BL(nam, dxf) FIELDG (nam, BL, dxf) |
494 | 0 | #define FIELD_BLL(nam, dxf) FIELDG (nam, BLL, dxf) |
495 | | #define FIELD_BD(nam, dxf) \ |
496 | 16.6M | { \ |
497 | 16.6M | _obj->nam = bit_read_BD (dat); \ |
498 | 16.6M | if (bit_isnan (_obj->nam)) \ |
499 | 16.6M | { \ |
500 | 5.13k | FIELD_G_TRACE (nam, BD, dxf); \ |
501 | 5.13k | LOG_ERROR ("Invalid BD " #nam); \ |
502 | 5.13k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
503 | 5.13k | } \ |
504 | 16.6M | if (dxf >= 50 && dxf < 54) \ |
505 | 16.6M | { \ |
506 | 645k | FIELD_G_TRACE_ANGLE (nam, BD, dxf); \ |
507 | 645k | } \ |
508 | 16.6M | else \ |
509 | 16.6M | { \ |
510 | 15.9M | FIELD_G_TRACE (nam, BD, dxf); \ |
511 | 15.9M | } \ |
512 | 16.6M | } |
513 | 14.3k | #define FIELD_BLx(nam, dxf) FIELD_CAST (nam, BL, BLx, dxf) |
514 | 0 | #define SUB_FIELD_BLx(o, nam, dxf) SUB_FIELD_CAST (o, nam, BL, BLx, dxf) |
515 | 196k | #define SUB_FIELD_RC(o, nam, dxf) SUB_FIELD (o, nam, RC, dxf) |
516 | | #define FIELD_RCx(nam, dxf) FIELD_CAST (nam, RC, RCx, dxf) |
517 | 149k | #define FIELD_RCd(nam, dxf) FIELD_CAST (nam, RC, RCd, dxf) |
518 | 17.8k | #define FIELD_RLx(nam, dxf) FIELD_CAST (nam, RL, RLx, dxf) |
519 | 8 | #define FIELD_RLLx(nam, dxf) FIELD_CAST (nam, RLL, RLLx, dxf) |
520 | 2.69M | #define FIELD_BSx(nam, dxf) FIELD_CAST (nam, BS, BSx, dxf) |
521 | 7.48k | #define FIELD_RSd(nam, dxf) FIELD_CAST (nam, RS, RSd, dxf) |
522 | 76.0k | #define FIELD_BSd(nam, dxf) FIELD_CAST (nam, BS, BSd, dxf) |
523 | 707k | #define SUB_FIELD_BSd(o, nam, dxf) SUB_FIELD_CAST (o, nam, BS, BSd, dxf) |
524 | 392k | #define FIELD_BLd(nam, dxf) FIELD_CAST (nam, BL, BLd, dxf) |
525 | 18 | #define FIELD_RLd(nam, dxf) FIELD_CAST (nam, RL, RLd, dxf) |
526 | 791k | #define FIELD_RC(nam, dxf) FIELDG (nam, RC, dxf) |
527 | | #define FIELD_RCu(nam, dxf) \ |
528 | 18.6k | { \ |
529 | 18.6k | _obj->nam = bit_read_RC (dat); \ |
530 | 18.6k | LOG_TRACE (#nam ": %u [RC %d]", (unsigned)((unsigned char)_obj->nam), \ |
531 | 18.6k | dxf); \ |
532 | 18.6k | LOG_RPOS \ |
533 | 18.6k | } |
534 | 0 | #define SUB_FIELD_RCd(o, nam, dxf) SUB_FIELD_CAST (o, nam, RC, RCd, dxf) |
535 | 101k | #define FIELD_RS(nam, dxf) FIELDG (nam, RS, dxf) |
536 | 292k | #define FIELD_RSx(nam, dxf) FIELD_CAST (nam, RS, RSx, dxf) |
537 | | #define FIELD_HV(nam, dxf) FIELD_CAST (nam, RLL, RLLx, dxf) |
538 | | #define FIELD_RD(nam, dxf) \ |
539 | 1.46M | { \ |
540 | 1.46M | _obj->nam = bit_read_RD (dat); \ |
541 | 1.46M | if (bit_isnan (_obj->nam)) \ |
542 | 1.46M | { \ |
543 | 28.7k | LOG_ERROR ("Invalid RD " #nam); \ |
544 | 28.7k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
545 | 28.7k | } \ |
546 | 1.46M | if (dxf >= 50 && dxf < 54) \ |
547 | 1.43M | { \ |
548 | 202k | LOG_TRACE (#nam ": " FORMAT_RD " [RD %d] %gº", _obj->nam, dxf, \ |
549 | 202k | rad2deg (_obj->nam)); \ |
550 | 202k | LOG_RPOS \ |
551 | 202k | } \ |
552 | 1.43M | else \ |
553 | 1.43M | { \ |
554 | 1.23M | FIELD_G_TRACE (nam, RD, dxf); \ |
555 | 1.23M | } \ |
556 | 1.43M | } |
557 | 24.6k | #define FIELD_RL(nam, dxf) FIELDG (nam, RL, dxf) |
558 | 366 | #define FIELD_RLL(nam, dxf) FIELDG (nam, RLL, dxf) |
559 | | #define FIELD_RLLd(nam, dxf) FIELDG (nam, RLLd, dxf) |
560 | | #define FIELD_MC(nam, dxf) FIELDG (nam, MC, dxf) |
561 | | #define FIELD_MS(nam, dxf) FIELDG (nam, MS, dxf) |
562 | | /* preR13 we have no obj->address and obj->size yet, skip VECTOR_CHKCOUNT */ |
563 | | // clang-format off |
564 | | #define FIELD_TF(nam, len, dxf) \ |
565 | 15.0k | { \ |
566 | 15.0k | SINCE (R_13b1) { _obj->nam = NULL; VECTOR_CHKCOUNT (nam, TF, len, dat) } \ |
567 | 15.0k | _obj->nam = bit_read_TF (dat, (size_t)len); \ |
568 | 13.5k | LOG_TRACE (#nam ": \"%s\" [TF %" PRIuSIZE " " #dxf "]", _obj->nam, (size_t)len); \ |
569 | 13.5k | if (!_obj->nam) \ |
570 | 13.5k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
571 | 13.5k | LOG_INSANE (" @%" PRIuSIZE ".%u", dat->byte, (unsigned)dat->bit); \ |
572 | 12.8k | LOG_TRACE ("\n"); \ |
573 | 12.8k | LOG_TRACE_TF (FIELD_VALUE (nam), (int)len); \ |
574 | 12.8k | } |
575 | | #define FIELD_TFv(nam, len, dxf) \ |
576 | 16.1k | { \ |
577 | 16.1k | /* if (_obj->nam) free (_obj->nam); // preR13 add_Document defaults */ \ |
578 | 16.1k | SINCE (R_13b1) { _obj->nam = NULL; VECTOR_CHKCOUNT (nam, TF, len, dat) } \ |
579 | 16.1k | _obj->nam = (BITCODE_TV)bit_read_TF (dat, (size_t)len); \ |
580 | 16.1k | LOG_TRACE (#nam ": \"%s\" [TFv %" PRIuSIZE " " #dxf "]", _obj->nam, \ |
581 | 16.1k | (size_t)len); \ |
582 | 16.1k | if (!_obj->nam) \ |
583 | 16.1k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
584 | 16.1k | LOG_RPOS \ |
585 | 13.3k | /* LOG_TRACE_TF (FIELD_VALUE (nam), (int)len); */ \ |
586 | 13.3k | } |
587 | | #define FIELD_TFF(nam, len, dxf) \ |
588 | 552 | { \ |
589 | 552 | SINCE (R_13b1) { _VECTOR_CHKCOUNT_STATIC (nam, len, 8, dat) } \ |
590 | 552 | bit_read_fixed (dat, _obj->nam, (size_t)len); \ |
591 | 552 | LOG_TRACE (#nam ": \"%.*s\" [TFF %" PRIuSIZE " " #dxf "]", (int)len, \ |
592 | 552 | _obj->nam, (size_t)len); \ |
593 | 552 | LOG_RPOS \ |
594 | 552 | LOG_TRACE_TF (FIELD_VALUE (nam), (size_t)len); \ |
595 | 552 | } |
596 | | #define FIELD_TFFx(nam, len, dxf) \ |
597 | 2 | { \ |
598 | 2 | SINCE (R_13b1) { _VECTOR_CHKCOUNT_STATIC (nam, len, 8, dat) } \ |
599 | 2 | bit_read_fixed (dat, (BITCODE_RC*)_obj->nam, (int)len); \ |
600 | 2 | LOG_TRACE (#nam ": [TFFx %d " #dxf "]", (int)len); \ |
601 | 2 | LOG_RPOS \ |
602 | 2 | LOG_TRACE_TF ((BITCODE_RC*)_obj->nam, (int)len); \ |
603 | 2 | } |
604 | | #define FIELD_T16(nam, dxf) \ |
605 | 208 | if (dat->from_version < R_2007) \ |
606 | 208 | { \ |
607 | 208 | _obj->nam = (BITCODE_T16)bit_read_T16 (dat); \ |
608 | 208 | LOG_TRACE (#nam ": %s [T16 " #dxf "]", _obj->nam); \ |
609 | 208 | LOG_RPOS \ |
610 | 208 | } \ |
611 | 208 | else \ |
612 | 208 | { \ |
613 | 0 | _obj->nam = (BITCODE_T16)bit_read_TU16 (dat); \ |
614 | 0 | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf); \ |
615 | 0 | } |
616 | | #define FIELD_T32(nam, dxf) \ |
617 | 0 | { \ |
618 | 0 | if (dat->from_version < R_2007) \ |
619 | 0 | { \ |
620 | 0 | FIELDG (nam, T32, dxf); \ |
621 | 0 | } \ |
622 | 0 | else \ |
623 | 0 | { \ |
624 | 0 | _obj->nam = bit_read_TU32 (dat); \ |
625 | 0 | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf); \ |
626 | 0 | } \ |
627 | 0 | } |
628 | | #define FIELD_TU16(nam, dxf) \ |
629 | | { \ |
630 | | _obj->nam = bit_read_TU16 (dat); \ |
631 | | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf); \ |
632 | | } |
633 | | #define FIELD_TU32(nam, dxf) \ |
634 | | { \ |
635 | | _obj->nam = bit_read_TU32 (dat); \ |
636 | | if (dat->from_version < R_2007) \ |
637 | | { \ |
638 | | LOG_TRACE (#nam ": \"%s\" [TU32 %d]", _obj->nam, dxf) \ |
639 | | LOG_RPOS \ |
640 | | } \ |
641 | | else \ |
642 | | { \ |
643 | | LOG_TRACE_TU (#nam, FIELD_VALUE (nam), dxf) \ |
644 | | } \ |
645 | | } |
646 | | #define FIELD_TV(nam, dxf) \ |
647 | 340k | { \ |
648 | 340k | _obj->nam = bit_read_TV (dat); \ |
649 | 340k | LOG_TRACE_TV (#nam ": \"%s\" [TV %d]", _obj->nam, dxf); \ |
650 | 340k | } |
651 | | #define FIELD_TU(nam, dxf) \ |
652 | | { \ |
653 | | _obj->nam = (BITCODE_TU)bit_read_TU (str_dat); \ |
654 | | LOG_TRACE_TU (#nam, (BITCODE_TU)FIELD_VALUE (nam), dxf); \ |
655 | | } |
656 | | // clang-format on |
657 | | #define FIELD_T(nam, dxf) \ |
658 | 8.30M | { \ |
659 | 8.30M | if (dat->from_version < R_2007) \ |
660 | 8.30M | { \ |
661 | 8.30M | _obj->nam = bit_read_TV (dat); \ |
662 | 8.30M | LOG_TRACE_TV (#nam ": \"%s\" [TV %d]", _obj->nam, dxf); \ |
663 | 8.30M | } \ |
664 | 8.30M | else \ |
665 | 8.30M | { \ |
666 | 0 | if (!obj || obj->has_strings) /* header_vars */ \ |
667 | 0 | { \ |
668 | 0 | _obj->nam = (BITCODE_T)bit_read_TU (str_dat); \ |
669 | 0 | LOG_TRACE_TU (#nam, (BITCODE_TU)FIELD_VALUE (nam), dxf); \ |
670 | 0 | } \ |
671 | 0 | else \ |
672 | 0 | { \ |
673 | 0 | LOG_TRACE_TU (#nam, L"", dxf); \ |
674 | 0 | LOG_INSANE (" !has_strings\n"); \ |
675 | 0 | } \ |
676 | 0 | } \ |
677 | 8.30M | } |
678 | 34.6k | #define FIELD_BT(nam, dxf) FIELDG (nam, BT, dxf) |
679 | | #define FIELD_4BITS(nam, dxf) \ |
680 | 36.5k | { \ |
681 | 36.5k | int _b = _obj->nam = bit_read_4BITS (dat); \ |
682 | 36.5k | LOG_TRACE (#nam ": b%d%d%d%d [4BITS %d]", _b & 8, _b & 4, _b & 2, _b & 1, \ |
683 | 36.5k | dxf); \ |
684 | 36.5k | LOG_RPOS \ |
685 | 36.5k | } |
686 | | |
687 | | #define FIELD_BE(nam, dxf) \ |
688 | 33.6k | { \ |
689 | 33.6k | bit_read_BE (dat, &_obj->nam.x, &_obj->nam.y, &_obj->nam.z); \ |
690 | 33.6k | if (dat->version >= R_2000 && FIELD_VALUE (nam.x) == 0.0 \ |
691 | 33.6k | && FIELD_VALUE (nam.y) == 0.0 && FIELD_VALUE (nam.z) == 1.0) \ |
692 | 33.6k | LOG_TRACE (#nam ": default 0,0,1 [B %d]", dxf); \ |
693 | 33.6k | else \ |
694 | 33.6k | LOG_TRACE (#nam ": (%f, %f, %f) [BE %d]", _obj->nam.x, _obj->nam.y, \ |
695 | 33.6k | _obj->nam.z, dxf); \ |
696 | 33.6k | LOG_POS; \ |
697 | 33.6k | } |
698 | | #define TRACE_DD \ |
699 | 419k | { \ |
700 | 419k | BITCODE_BB result = 0; \ |
701 | 419k | BITCODE_RC byte; \ |
702 | 419k | if ((dat->byte * 8) + 8 + dat->bit > dat->size * 8) \ |
703 | 419k | { \ |
704 | 92.8k | loglevel = dat->opts & DWG_OPTS_LOGLEVEL; \ |
705 | 92.8k | LOG_ERROR ("%s FIELD_DD buffer overflow at pos %" PRIuSIZE \ |
706 | 92.8k | ".%u, size %" PRIuSIZE "," \ |
707 | 92.8k | " advance by 8", \ |
708 | 92.8k | __FUNCTION__, dat->byte, dat->bit, dat->size); \ |
709 | 92.8k | } \ |
710 | 419k | else \ |
711 | 419k | { \ |
712 | 327k | byte = dat->chain[dat->byte]; \ |
713 | 327k | if (dat->bit < 7) \ |
714 | 327k | result = (byte & (0xc0 >> dat->bit)) >> (6 - dat->bit); \ |
715 | 327k | else \ |
716 | 327k | { \ |
717 | 680 | result = (byte & 0x01) << 1; \ |
718 | 680 | if (dat->byte < dat->size - 1) \ |
719 | 680 | { \ |
720 | 680 | byte = dat->chain[dat->byte + 1]; \ |
721 | 680 | result |= (byte & 0x80) >> 7; \ |
722 | 680 | } \ |
723 | 680 | } \ |
724 | 327k | } \ |
725 | 419k | LOG_HANDLE ("DD code %u\n", result); \ |
726 | 419k | } |
727 | | #define FIELD_DD(nam, _default, dxf) \ |
728 | 419k | { \ |
729 | 419k | TRACE_DD \ |
730 | 419k | FIELD_VALUE (nam) = bit_read_DD (dat, _default); \ |
731 | 419k | if (bit_isnan (_obj->nam)) \ |
732 | 419k | { \ |
733 | 1.22k | LOG_ERROR ("Invalid DD " #nam); \ |
734 | 1.22k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
735 | 1.22k | } \ |
736 | 419k | } |
737 | | #define FIELD_2DD(nam, def, dxf) \ |
738 | 11.7k | { \ |
739 | 11.7k | FIELD_DD (nam.x, FIELD_VALUE (def.x), dxf); \ |
740 | 11.4k | FIELD_DD (nam.y, FIELD_VALUE (def.y), dxf + 10); \ |
741 | 11.3k | FIELD_2PT_TRACE (nam, 2DD, dxf); \ |
742 | 11.3k | } |
743 | | #define FIELD_3DD(nam, def, dxf) \ |
744 | 7.59k | { \ |
745 | 7.59k | FIELD_DD (nam.x, FIELD_VALUE (def.x), dxf); \ |
746 | 7.49k | FIELD_DD (nam.y, FIELD_VALUE (def.y), dxf + 10); \ |
747 | 7.44k | FIELD_DD (nam.z, FIELD_VALUE (def.z), dxf + 20); \ |
748 | 7.36k | FIELD_3PT_TRACE (nam, 3DD, dxf); \ |
749 | 7.36k | } |
750 | | #define FIELD_3RD(nam, dxf) \ |
751 | 245k | { \ |
752 | 245k | _obj->nam.x = bit_read_RD (dat); \ |
753 | 245k | _obj->nam.y = bit_read_RD (dat); \ |
754 | 245k | _obj->nam.z = bit_read_RD (dat); \ |
755 | 245k | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y) \ |
756 | 245k | || bit_isnan (_obj->nam.z)) \ |
757 | 245k | { \ |
758 | 34.1k | LOG_ERROR ("Invalid 3RD " #nam); \ |
759 | 34.1k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
760 | 34.1k | } \ |
761 | 245k | FIELD_3PT_TRACE (nam, 3RD, dxf); \ |
762 | 211k | } |
763 | | #define FIELD_3BD(nam, dxf) \ |
764 | 13.8M | { \ |
765 | 13.8M | _obj->nam.x = bit_read_BD (dat); \ |
766 | 13.8M | _obj->nam.y = bit_read_BD (dat); \ |
767 | 13.8M | _obj->nam.z = bit_read_BD (dat); \ |
768 | 13.8M | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y) \ |
769 | 13.8M | || bit_isnan (_obj->nam.z)) \ |
770 | 13.8M | { \ |
771 | 10.1k | LOG_ERROR ("Invalid 3BD " #nam); \ |
772 | 10.1k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
773 | 10.1k | } \ |
774 | 13.8M | FIELD_3PT_TRACE (nam, 3BD, dxf); \ |
775 | 13.8M | } |
776 | | #define FIELD_2RD(nam, dxf) \ |
777 | 3.60M | { \ |
778 | 3.60M | _obj->nam.x = bit_read_RD (dat); \ |
779 | 3.60M | _obj->nam.y = bit_read_RD (dat); \ |
780 | 3.60M | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y)) \ |
781 | 3.60M | { \ |
782 | 64.4k | LOG_ERROR ("Invalid 2RD " #nam); \ |
783 | 64.4k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
784 | 64.4k | } \ |
785 | 3.60M | FIELD_2PT_TRACE (nam, 2RD, dxf); \ |
786 | 3.53M | } |
787 | | // FIXME: does this even exist? normal 2DPOINT is 2RD |
788 | | // HATCH.deflines.pt0,offset LAYOUT.plot_origin,plot_window_{ll,ur}, |
789 | | // LAYOUT.paper_image_origin GEODATA.northdir, GEODATA.refpt0,1 .zero1, zero2 |
790 | | // BACKGROUND.offset,scale |
791 | | #define FIELD_2BD(nam, dxf) \ |
792 | | { \ |
793 | | _obj->nam.x = bit_read_BD (dat); \ |
794 | | _obj->nam.y = bit_read_BD (dat); \ |
795 | | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y)) \ |
796 | | { \ |
797 | | LOG_ERROR ("Invalid 2BD " #nam); \ |
798 | | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
799 | | } \ |
800 | | FIELD_2PT_TRACE (nam, 2BD, dxf); \ |
801 | | } |
802 | | #define FIELD_2BD_1(nam, dxf) \ |
803 | 5.39M | { \ |
804 | 5.39M | _obj->nam.x = bit_read_BD (dat); \ |
805 | 5.39M | _obj->nam.y = bit_read_BD (dat); \ |
806 | 5.39M | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y)) \ |
807 | 5.39M | { \ |
808 | 1.47k | LOG_ERROR ("Invalid 2BD_1 " #nam); \ |
809 | 1.47k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
810 | 1.47k | } \ |
811 | 5.39M | FIELD_2PT_TRACE (nam, 2BD_1, dxf); \ |
812 | 5.39M | } |
813 | | // FIELDG(nam.x, BD, dxf); FIELDG(nam.y, BD, dxf+1); |
814 | | #define FIELD_3BD_1(nam, dxf) \ |
815 | 50.7k | { \ |
816 | 50.7k | _obj->nam.x = bit_read_BD (dat); \ |
817 | 50.7k | _obj->nam.y = bit_read_BD (dat); \ |
818 | 50.7k | _obj->nam.z = bit_read_BD (dat); \ |
819 | 50.7k | if (bit_isnan (_obj->nam.x) || bit_isnan (_obj->nam.y) \ |
820 | 50.7k | || bit_isnan (_obj->nam.z)) \ |
821 | 50.7k | { \ |
822 | 276 | LOG_ERROR ("Invalid 3BD_1 " #nam); \ |
823 | 276 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
824 | 276 | } \ |
825 | 50.7k | FIELD_3PT_TRACE (nam, 3BD_1, dxf); \ |
826 | 50.5k | } |
827 | | // FIELDG(nam.x, BD, dxf); FIELDG(nam.y, BD, dxf+1); |
828 | | // FIELDG(nam.z, BD, dxf+2); } |
829 | | #define FIELD_2DPOINT(nam, dxf) FIELD_2RD (nam, dxf) |
830 | 12.4M | #define FIELD_3DPOINT(nam, dxf) FIELD_3BD (nam, dxf) |
831 | | #define FIELD_3DVECTOR(nam, dxf) FIELD_3BD_1 (nam, dxf) |
832 | | #define FIELD_TIMEBLL(nam, dxf) \ |
833 | 39.7k | { \ |
834 | 39.7k | _obj->nam = bit_read_TIMEBLL (dat); \ |
835 | 39.7k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
836 | 39.7k | { \ |
837 | 0 | struct tm tm; \ |
838 | 0 | char _buf[60] = ""; \ |
839 | 0 | cvt_TIMEBLL (&tm, _obj->nam); \ |
840 | 0 | if (strEQc (#nam, "TDINDWG") || strEQc (#nam, "TDUSRTIMER")) \ |
841 | 0 | strftime (_buf, 60, STRFTIME_DURATION, &tm); \ |
842 | 0 | else if (_obj->nam.days) \ |
843 | 0 | strftime (_buf, 60, STRFTIME_DATE, &tm); \ |
844 | 0 | else \ |
845 | 0 | strftime (_buf, 60, STRFTIME_TIME, &tm); \ |
846 | 0 | LOG_TRACE (#nam ": [" FORMAT_BL ", " FORMAT_BL "] %s [TIMEBLL %d]", \ |
847 | 0 | _obj->nam.days, _obj->nam.ms, _buf, dxf); \ |
848 | 0 | LOG_RPOS \ |
849 | 0 | } \ |
850 | 39.7k | } |
851 | | #define FIELD_TIMERLL(nam, dxf) \ |
852 | 1.11k | { \ |
853 | 1.11k | _obj->nam = bit_read_TIMERLL (dat); \ |
854 | 1.11k | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
855 | 1.11k | { \ |
856 | 0 | struct tm tm; \ |
857 | 0 | char _buf[60] = ""; \ |
858 | 0 | if (_obj->nam.days) \ |
859 | 0 | strftime (_buf, 60, STRFTIME_DATE, cvt_TIMEBLL (&tm, _obj->nam)); \ |
860 | 0 | else \ |
861 | 0 | strftime (_buf, 60, STRFTIME_TIME, cvt_TIMEBLL (&tm, _obj->nam)); \ |
862 | 0 | LOG_TRACE (#nam ": [" FORMAT_RL ", " FORMAT_RL "] %s [TIMERLL %d]", \ |
863 | 0 | _obj->nam.days, _obj->nam.ms, _buf, dxf); \ |
864 | 0 | LOG_RPOS \ |
865 | 0 | } \ |
866 | 1.11k | } |
867 | | #define FIELD_CMC(color, dxf) \ |
868 | 74.2k | { \ |
869 | 74.2k | error |= bit_read_CMC (dat, str_dat, &_obj->color); \ |
870 | 74.2k | LOG_TRACE (#color ".index: %d [CMC.%s %d]", _obj->color.index, \ |
871 | 74.2k | dat->from_version < R_13b1 ? "RS" : "BS", dxf); \ |
872 | 74.2k | LOG_RPOS \ |
873 | 74.2k | if (dat->from_version >= R_2004) \ |
874 | 74.2k | { \ |
875 | 0 | LOG_TRACE (#color ".rgb: 0x%06x [CMC.BL %d]\n", \ |
876 | 0 | (unsigned)_obj->color.rgb, dxf + 420 - 62); \ |
877 | 0 | LOG_TRACE (#color ".method: 0x%x %s\n", _obj->color.method, \ |
878 | 0 | dwg_color_method_name (_obj->color.method)); \ |
879 | 0 | LOG_TRACE (#color ".flag: 0x%x [CMC.RC]\n", \ |
880 | 0 | (unsigned)_obj->color.flag); \ |
881 | 0 | if (_obj->color.flag & 1) \ |
882 | 0 | { \ |
883 | 0 | LOG_TRACE (#color ".name: %s [CMC.%s]\n", _obj->color.name, \ |
884 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
885 | 0 | } \ |
886 | 0 | if (_obj->color.flag & 2) \ |
887 | 0 | { \ |
888 | 0 | LOG_TRACE (#color ".book_name: %s [CMC.%s]\n", \ |
889 | 0 | _obj->color.book_name, \ |
890 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
891 | 0 | } \ |
892 | 0 | } \ |
893 | 74.2k | } |
894 | | #define SUB_FIELD_CMC(o, color, dxf) \ |
895 | 707k | { \ |
896 | 707k | error |= bit_read_CMC (dat, str_dat, &_obj->o.color); \ |
897 | 707k | LOG_TRACE (#o "." #color ".index: %d [CMC.BS %d]", _obj->o.color.index, \ |
898 | 707k | dxf); \ |
899 | 707k | LOG_RPOS \ |
900 | 707k | if (dat->from_version >= R_2004) \ |
901 | 707k | { \ |
902 | 0 | LOG_TRACE (#o "." #color ".rgb: 0x%06x [CMC.BL %d]\n", \ |
903 | 0 | (unsigned)_obj->o.color.rgb, dxf + 420 - 62); \ |
904 | 0 | LOG_TRACE (#color ".method: 0x%x %s\n", _obj->o.color.method, \ |
905 | 0 | dwg_color_method_name (_obj->o.color.method)); \ |
906 | 0 | LOG_TRACE (#o "." #color ".flag: 0x%x [CMC.RC]\n", \ |
907 | 0 | (unsigned)_obj->o.color.flag); \ |
908 | 0 | if (_obj->o.color.flag & 1) \ |
909 | 0 | { \ |
910 | 0 | LOG_TRACE (#o "." #color ".name: %s [CMC.%s]\n", \ |
911 | 0 | _obj->o.color.name, \ |
912 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
913 | 0 | } \ |
914 | 0 | if (_obj->o.color.flag & 2) \ |
915 | 0 | { \ |
916 | 0 | LOG_TRACE (#o "." #color ".book_name: %s [CMC.%s]\n", \ |
917 | 0 | _obj->o.color.book_name, \ |
918 | 0 | dat->from_version >= R_2007 ? "T" : "TV"); \ |
919 | 0 | } \ |
920 | 0 | } \ |
921 | 707k | } |
922 | | // force truecolor |
923 | | #define FIELD_CMTC(name, dxf) \ |
924 | 0 | { \ |
925 | 0 | Dwg_Version_Type _ver = dat->from_version; \ |
926 | 0 | if (dat->from_version < R_2004) \ |
927 | 0 | dat->from_version = R_2004; \ |
928 | 0 | FIELD_CMC (name, dxf); \ |
929 | 0 | dat->from_version = _ver; \ |
930 | 0 | } |
931 | | #define SUB_FIELD_CMTC(o, name, dxf) \ |
932 | 0 | { \ |
933 | 0 | Dwg_Version_Type _ver = dat->from_version; \ |
934 | 0 | if (dat->from_version < R_2004) \ |
935 | 0 | dat->from_version = R_2004; \ |
936 | 0 | SUB_FIELD_CMC (o, name, dxf); \ |
937 | 0 | dat->from_version = _ver; \ |
938 | 0 | } |
939 | | #define FIELD_ENC(color, dxf) \ |
940 | | { \ |
941 | | bit_read_ENC (dat, hdl_dat, str_dat, &_obj->color); \ |
942 | | LOG_TRACE (#color ".index: %d [ENC.BS %d]", _obj->color.index, dxf); \ |
943 | | LOG_POS \ |
944 | | if (dat->from_version >= R_2004) \ |
945 | | { \ |
946 | | if (_obj->color.flag) \ |
947 | | LOG_TRACE (#color ".flag: 0x%x\n", (unsigned)_obj->color.flag); \ |
948 | | if (_obj->color.flag & 0x20) \ |
949 | | LOG_TRACE (#color ".alpha: %d [ENC.BL %d]\n", \ |
950 | | (int)_obj->color.alpha, dxf + 440 - 62); \ |
951 | | if (_obj->color.flag & 0x80) \ |
952 | | LOG_TRACE (#color ".rgb: 0x%06x [ENC.BL %d]\n", \ |
953 | | (unsigned)_obj->color.rgb, dxf + 420 - 62); \ |
954 | | if (_obj->color.flag & 0x40 && _obj->color.handle) \ |
955 | | LOG_TRACE (#color ".handle: %X [ENC.H %d]\n", \ |
956 | | _obj->color.handle->handleref.value, dxf + 430 - 62); \ |
957 | | } \ |
958 | | } |
959 | | #define SUB_FIELD_ENC(o, color, dxf) \ |
960 | | { \ |
961 | | bit_read_ENC (dat, hdl_dat, str_dat, &_obj->o.color); \ |
962 | | LOG_TRACE (#o "." #color ".index: %d [ENC.BS %d]", _obj->o.color.index, \ |
963 | | dxf); \ |
964 | | LOG_POS \ |
965 | | if (dat->from_version >= R_2004) \ |
966 | | { \ |
967 | | if (_obj->o.color.flag) \ |
968 | | LOG_TRACE (#o "." #color ".flag: 0x%x\n", \ |
969 | | (unsigned)_obj->o.color.flag); \ |
970 | | if (_obj->o.color.flag & 0x20) \ |
971 | | LOG_TRACE (#o "." #color ".alpha: %d [ENC.BL %d]\n", \ |
972 | | (unsigned)_obj->o.color.alpha, dxf + 440 - 62); \ |
973 | | if (_obj->o.color.flag & 0x80) \ |
974 | | LOG_TRACE (#o "." #color ".rgb: 0x%06x [ENC.BL %d]\n", \ |
975 | | (unsigned)_obj->o.color.rgb, dxf + 420 - 62); \ |
976 | | if (_obj->o.color.flag & 0x40 && _obj->o.color.handle) \ |
977 | | LOG_TRACE (#o "." #color ".handle: " FORMAT_HV " [ENC.H %d]\n", \ |
978 | | _obj->o.color.handle->handleref.value, dxf + 430 - 62); \ |
979 | | } \ |
980 | | } |
981 | | |
982 | | #undef DEBUG_POS |
983 | | #undef DEBUG_HERE |
984 | | #undef DEBUG_POS_OBJ |
985 | | #undef DEBUG_HERE_OBJ |
986 | | #define DEBUG_POS_OBJ \ |
987 | 54 | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
988 | 54 | { \ |
989 | 0 | LOG_TRACE ("DEBUG_POS @%" PRIuSIZE ".%u (%" PRIuSIZE ") %" PRIuSIZE \ |
990 | 0 | "\n", \ |
991 | 0 | dat->byte, (unsigned)dat->bit, bit_position (dat), \ |
992 | 0 | obj ? bit_position (dat) - obj->address * 8 : 0); \ |
993 | 0 | } |
994 | | #define DEBUG_POS \ |
995 | 3.63M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
996 | 3.63M | { \ |
997 | 0 | LOG_TRACE ("DEBUG_POS @%" PRIuSIZE ".%u (%" PRIuSIZE ")\n", dat->byte, \ |
998 | 0 | (unsigned)dat->bit, bit_position (dat)); \ |
999 | 0 | } |
1000 | | #define _DEBUG_HERE(objsize) \ |
1001 | 3.63M | if (dat->size < dat->byte) \ |
1002 | 3.63M | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1003 | 3.63M | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_TRACE) \ |
1004 | 3.63M | { \ |
1005 | 0 | Bit_Chain here = *dat; \ |
1006 | 0 | int oldloglevel = loglevel; \ |
1007 | 0 | BITCODE_TF tmp; \ |
1008 | 0 | BITCODE_BB bb = 0; \ |
1009 | 0 | BITCODE_RS rs; \ |
1010 | 0 | BITCODE_RL rl; \ |
1011 | 0 | double bd; \ |
1012 | 0 | Dwg_Handle hdl; \ |
1013 | 0 | rs = 24; \ |
1014 | 0 | if ((objsize) > 0 && dat->byte + rs > (objsize)) \ |
1015 | 0 | rs = ((objsize) - dat->byte) & 0xFFFF; \ |
1016 | 0 | if (dat->byte + rs > dat->size) \ |
1017 | 0 | rs = (dat->size - dat->byte - 1) & 0xFFFF; \ |
1018 | 0 | tmp = bit_read_TF (dat, (size_t)rs); \ |
1019 | 0 | if (tmp) \ |
1020 | 0 | { \ |
1021 | 0 | if (DWG_LOGLEVEL >= DWG_LOGLEVEL_INSANE) \ |
1022 | 0 | { \ |
1023 | 0 | bit_fprint_bits (OUTPUT, tmp, rs * 8); \ |
1024 | 0 | HANDLER (OUTPUT, "\n"); \ |
1025 | 0 | } \ |
1026 | 0 | LOG_TRACE_TF (tmp, rs); \ |
1027 | 0 | free (tmp); \ |
1028 | 0 | } \ |
1029 | 0 | SINCE (R_13b1) \ |
1030 | 0 | { \ |
1031 | 0 | *dat = here; \ |
1032 | 0 | LOG_TRACE (" B :" FORMAT_B "\t", bit_read_B (dat)); \ |
1033 | 0 | *dat = here; \ |
1034 | 0 | bb = bit_read_BB (dat) & 0x3; \ |
1035 | 0 | LOG_TRACE (" BB :" FORMAT_BB "\n", bb); \ |
1036 | 0 | } \ |
1037 | 0 | *dat = here; \ |
1038 | 0 | rs = bit_read_RS (dat); \ |
1039 | 0 | LOG_TRACE (" RS :" FORMAT_RS " / 0x%04x (16)\n", rs, rs); \ |
1040 | 0 | SINCE (R_13b1) \ |
1041 | 0 | { \ |
1042 | 0 | *dat = here; \ |
1043 | 0 | rs = bit_read_BS (dat); \ |
1044 | 0 | LOG_TRACE (" BS :" FORMAT_BS " / 0x%04x (%" PRIuSIZE ")\t", rs, rs, \ |
1045 | 0 | bit_position (dat) - bit_position (&here)); \ |
1046 | 0 | } \ |
1047 | 0 | SINCE (R_2007a) \ |
1048 | 0 | { \ |
1049 | 0 | *dat = here; \ |
1050 | 0 | rs = bit_read_MS (dat); \ |
1051 | 0 | LOG_TRACE (" MS :" FORMAT_RS " / 0x%04x (%" PRIuSIZE ")\n", rs, rs, \ |
1052 | 0 | bit_position (dat) - bit_position (&here)); \ |
1053 | 0 | } \ |
1054 | 0 | else LOG_TRACE ("\n"); \ |
1055 | 0 | *dat = here; \ |
1056 | 0 | rl = bit_read_RL (dat); \ |
1057 | 0 | LOG_TRACE (" RL :" FORMAT_RL " / 0x%08x (32)\n", rl, rl); \ |
1058 | 0 | *dat = here; \ |
1059 | 0 | LOG_TRACE (" RD :" FORMAT_RD " (64)\n", bit_read_RD (dat)); \ |
1060 | 0 | *dat = here; \ |
1061 | 0 | SINCE (R_13b1) \ |
1062 | 0 | { \ |
1063 | 0 | if (bb != 3) \ |
1064 | 0 | { \ |
1065 | 0 | rl = bit_read_BL (dat); \ |
1066 | 0 | LOG_TRACE (" BL :" FORMAT_BL " / 0x%08x (%" PRIuSIZE ")\n", rl, \ |
1067 | 0 | rl, bit_position (dat) - bit_position (&here)); \ |
1068 | 0 | *dat = here; \ |
1069 | 0 | bd = bit_read_BD (dat); \ |
1070 | 0 | LOG_TRACE (" BD :" FORMAT_BD " (%" PRIuSIZE ")\n", bd, \ |
1071 | 0 | bit_position (dat) - bit_position (&here)); \ |
1072 | 0 | *dat = here; \ |
1073 | 0 | } \ |
1074 | 0 | } \ |
1075 | 0 | if ((dat->chain[dat->byte] & 0xf) <= 4) \ |
1076 | 0 | { \ |
1077 | 0 | loglevel = 0; \ |
1078 | 0 | if (!bit_read_H (dat, &hdl)) \ |
1079 | 0 | { \ |
1080 | 0 | LOG_TRACE (" H : " FORMAT_H " (%" PRIuSIZE ")\n", \ |
1081 | 0 | ARGS_H (hdl), \ |
1082 | 0 | bit_position (dat) - bit_position (&here)); \ |
1083 | 0 | } \ |
1084 | 0 | loglevel = oldloglevel; \ |
1085 | 0 | } \ |
1086 | 0 | *dat = here; \ |
1087 | 0 | } |
1088 | | #define DEBUG_HERE_OBJ \ |
1089 | 54 | DEBUG_POS_OBJ \ |
1090 | 54 | _DEBUG_HERE (obj->size) |
1091 | | #define DEBUG_HERE \ |
1092 | 3.63M | DEBUG_POS \ |
1093 | 3.63M | _DEBUG_HERE (0UL) |
1094 | | |
1095 | | // check for overflow into next object (invalid num_elems) |
1096 | 1.35M | #define AVAIL_BITS(dat) (int64_t) ((dat->size * 8) - bit_position (dat)) |
1097 | 160k | #define TYPE_MAXELEMSIZE(type) dwg_bits_size[BITS_##type] |
1098 | | #define VECTOR_CHKCOUNT(nam, type, size, dat) \ |
1099 | 18.3k | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1100 | 18.3k | || (int64_t)((size) * TYPE_MAXELEMSIZE (type)) > AVAIL_BITS (dat)) \ |
1101 | 18.3k | { \ |
1102 | 2.30k | LOG_ERROR ("Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1103 | 2.30k | " bits for " #type ", have %" PRId64 " for %s.", \ |
1104 | 2.30k | (int64_t)(size), (int64_t)(size) * TYPE_MAXELEMSIZE (type), \ |
1105 | 2.30k | AVAIL_BITS (dat), SAFEDXFNAME); \ |
1106 | 2.30k | if (_obj->nam) \ |
1107 | 2.30k | free (_obj->nam); \ |
1108 | 2.30k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1109 | 2.30k | } |
1110 | | #define SUB_VECTOR_CHKCOUNT(o, nam, type, size, dat) \ |
1111 | 646 | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1112 | 646 | || (int64_t)((size) * TYPE_MAXELEMSIZE (type)) > AVAIL_BITS (dat)) \ |
1113 | 646 | { \ |
1114 | 43 | LOG_ERROR ( \ |
1115 | 43 | "Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1116 | 43 | " bits for " #type ", have %" PRId64 " at @%" PRIuSIZE ".%u " \ |
1117 | 43 | " for %s.", \ |
1118 | 43 | (int64_t)(size), (int64_t)(size) * TYPE_MAXELEMSIZE (type), \ |
1119 | 43 | AVAIL_BITS (dat), dat->byte, (unsigned)dat->bit, SAFEDXFNAME); \ |
1120 | 43 | if (_obj->o.nam) \ |
1121 | 43 | free (_obj->o.nam); \ |
1122 | 43 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1123 | 43 | } |
1124 | | #define VECTOR_CHKCOUNT_LV(nam, type, size, dat) \ |
1125 | 248k | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1126 | 248k | || (int64_t)((size) * TYPE_MAXELEMSIZE (type)) > AVAIL_BITS (dat)) \ |
1127 | 248k | { \ |
1128 | 115k | LOG_ERROR ( \ |
1129 | 115k | "Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1130 | 115k | " bits for " #type ", have %" PRId64 " at @%" PRIuSIZE ".%u " \ |
1131 | 115k | "for %s.", \ |
1132 | 115k | (int64_t)(size), (int64_t)(size) * TYPE_MAXELEMSIZE (type), \ |
1133 | 115k | AVAIL_BITS (dat), dat->byte, (unsigned)dat->bit, SAFEDXFNAME); \ |
1134 | 115k | if (_obj->nam) \ |
1135 | 115k | free (_obj->nam); \ |
1136 | 115k | size = 0; /* return DWG_ERR_VALUEOUTOFBOUNDS; */ \ |
1137 | 115k | } |
1138 | | // for static TFF types with a size field |
1139 | | #define _VECTOR_CHKCOUNT(nam, size, maxelemsize, dat) \ |
1140 | 7.93k | if ((int64_t)(size) > AVAIL_BITS (dat) \ |
1141 | 7.93k | || (int64_t)((size) * (maxelemsize)) > AVAIL_BITS (dat)) \ |
1142 | 7.93k | { \ |
1143 | 2.14k | LOG_ERROR ("Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1144 | 2.14k | " bits, have %" PRId64 " for %s. " \ |
1145 | 2.14k | "Set " #size " to 0", \ |
1146 | 2.14k | (int64_t)(size), (int64_t)(size) * (maxelemsize), \ |
1147 | 2.14k | AVAIL_BITS (dat), SAFEDXFNAME); \ |
1148 | 2.14k | size = 0; \ |
1149 | 2.14k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1150 | 2.14k | } |
1151 | | // for static TFF types with fixed size |
1152 | | #define _VECTOR_CHKCOUNT_STATIC(nam, siz, maxelemsize, dat) \ |
1153 | 89 | if ((int64_t)(8 * siz) > AVAIL_BITS (dat) \ |
1154 | 89 | || (int64_t)((siz) * (maxelemsize)) > AVAIL_BITS (dat) \ |
1155 | 89 | || dat->byte + (siz) > dat->size) \ |
1156 | 89 | { \ |
1157 | 5 | LOG_ERROR ("Invalid " #nam " size %" PRId64 ". Need min. %" PRId64 \ |
1158 | 5 | " bits, have %" PRId64 " for %s.", \ |
1159 | 5 | (int64_t)(siz), (int64_t)(siz) * (maxelemsize), \ |
1160 | 5 | AVAIL_BITS (dat), SAFEDXFNAME); \ |
1161 | 5 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1162 | 5 | } |
1163 | | #define HANDLE_VECTOR_CHKCOUNT(nam, size) \ |
1164 | 7.60k | _VECTOR_CHKCOUNT (nam, size, TYPE_MAXELEMSIZE (HANDLE), hdl_dat) |
1165 | | |
1166 | | // FIELD_VECTOR_N(name, type, size): |
1167 | | // reads data of the type indicated by 'type' 'size' times and stores |
1168 | | // it all in the vector called 'name'. |
1169 | | #define FIELD_VECTOR_N(name, type, size, dxf) \ |
1170 | 7.72k | if (size > 0) \ |
1171 | 7.72k | { \ |
1172 | 3.14k | VECTOR_CHKCOUNT (name, type, size, dat); \ |
1173 | 2.27k | _obj->name = (BITCODE_##type *)calloc (size, sizeof (BITCODE_##type)); \ |
1174 | 2.27k | if (!_obj->name) \ |
1175 | 2.27k | return DWG_ERR_OUTOFMEM; \ |
1176 | 493k | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1177 | 491k | { \ |
1178 | 491k | _obj->name[vcount] = bit_read_##type (dat); \ |
1179 | 491k | FIELD_VEC_TRACE_N (name, type, (long)vcount, _obj->name[vcount], \ |
1180 | 491k | dxf); \ |
1181 | 491k | } \ |
1182 | 2.27k | } |
1183 | | #define SUB_FIELD_VECTOR_N(o, nam, type, csize, dxf) \ |
1184 | 0 | if (csize > 0) \ |
1185 | 0 | { \ |
1186 | 0 | SUB_VECTOR_CHKCOUNT (o, nam, type, csize, dat) \ |
1187 | 0 | _obj->o.nam \ |
1188 | 0 | = (BITCODE_##type *)calloc (csize, sizeof (BITCODE_##type)); \ |
1189 | 0 | if (!_obj->o.nam) \ |
1190 | 0 | return DWG_ERR_OUTOFMEM; \ |
1191 | 0 | for (vcount = 0; vcount < (BITCODE_BL)csize; vcount++) \ |
1192 | 0 | { \ |
1193 | 0 | _obj->o.nam[vcount] = bit_read_##type (dat); \ |
1194 | 0 | LOG_TRACE (#nam "[%ld]: " FORMAT_##type " [" #type " %d]", \ |
1195 | 0 | (long)vcount, _obj->o.nam[vcount], dxf); \ |
1196 | 0 | LOG_POS \ |
1197 | 0 | } \ |
1198 | 0 | } |
1199 | | #define SUB_FIELD_VECTOR(o, name, type, sizefield, dxf) \ |
1200 | 7.95k | if (_obj->o.sizefield > 0) \ |
1201 | 7.95k | { \ |
1202 | 646 | SUB_VECTOR_CHKCOUNT (o, name, type, _obj->o.sizefield, dat); \ |
1203 | 603 | _obj->o.name = (BITCODE_##type *)calloc (_obj->o.sizefield, \ |
1204 | 603 | sizeof (BITCODE_##type)); \ |
1205 | 603 | if (!_obj->o.name) \ |
1206 | 603 | return DWG_ERR_OUTOFMEM; \ |
1207 | 603 | LOG_TRACE (#name ": { "); \ |
1208 | 692k | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.sizefield; vcount++) \ |
1209 | 692k | { \ |
1210 | 692k | _obj->o.name[vcount] = bit_read_##type (dat); \ |
1211 | 692k | LOG_TRACE (FORMAT_##type " ", _obj->o.name[vcount]); \ |
1212 | 692k | } \ |
1213 | 603 | if (dxf) \ |
1214 | 603 | LOG_TRACE ("} [*" #type " %d]", dxf); \ |
1215 | 603 | else \ |
1216 | 603 | LOG_TRACE ("} [*" #type "]"); \ |
1217 | 603 | LOG_POS \ |
1218 | 603 | } |
1219 | | // inlined, with const size and without malloc |
1220 | | #define FIELD_VECTOR_INL(name, type, size, dxf) \ |
1221 | 330 | if (size > 0) \ |
1222 | 330 | { \ |
1223 | 330 | SINCE (R_13b1) \ |
1224 | 330 | { \ |
1225 | 33 | _VECTOR_CHKCOUNT_STATIC (name, size, TYPE_MAXELEMSIZE (type), dat); \ |
1226 | 28 | } \ |
1227 | 330 | LOG_TRACE (#name ": { "); \ |
1228 | 20.6k | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1229 | 20.2k | { \ |
1230 | 20.2k | _obj->name[vcount] = bit_read_##type (dat); \ |
1231 | 20.2k | LOG_TRACE (FORMAT_##type " ", _obj->name[vcount]); \ |
1232 | 20.2k | } \ |
1233 | 325 | if (dxf) \ |
1234 | 325 | LOG_TRACE ("} [*" #type " %d]", dxf); \ |
1235 | 325 | else \ |
1236 | 325 | LOG_TRACE ("} [*" #type "]"); \ |
1237 | 325 | LOG_POS \ |
1238 | 325 | } |
1239 | | // inlined, with const size and without malloc |
1240 | | #define SUB_FIELD_VECTOR_INL(o, nam, type, csize, dxf) \ |
1241 | 0 | if (csize > 0) \ |
1242 | 0 | { \ |
1243 | 0 | _VECTOR_CHKCOUNT_STATIC (nam, csize, TYPE_MAXELEMSIZE (type), dat); \ |
1244 | 0 | for (vcount = 0; vcount < (BITCODE_BL)csize; vcount++) \ |
1245 | 0 | { \ |
1246 | 0 | _obj->o.nam[vcount] = bit_read_##type (dat); \ |
1247 | 0 | LOG_TRACE (#nam "[%ld]: " FORMAT_##type " [" #type " %d]", \ |
1248 | 0 | (long)vcount, _obj->o.nam[vcount], dxf); \ |
1249 | 0 | LOG_POS \ |
1250 | 0 | } \ |
1251 | 0 | } |
1252 | | #define FIELD_VECTOR_T(name, type, size, dxf) \ |
1253 | 350 | if (_obj->size > 0) \ |
1254 | 350 | { \ |
1255 | 329 | _VECTOR_CHKCOUNT (name, _obj->size, \ |
1256 | 329 | dat->from_version >= R_2007 ? 18 : 2, dat); \ |
1257 | 139 | _obj->name = (char **)calloc (_obj->size, sizeof (char *)); \ |
1258 | 139 | if (!_obj->name) \ |
1259 | 139 | return DWG_ERR_OUTOFMEM; \ |
1260 | 581 | for (vcount = 0; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1261 | 560 | { \ |
1262 | 560 | PRE (R_2007a) \ |
1263 | 560 | { \ |
1264 | 560 | _obj->name[vcount] = bit_read_TV (dat); \ |
1265 | 560 | LOG_TRACE (#name "[%d]: \"%s\" [TV %d]", (int)vcount, \ |
1266 | 560 | _obj->name[vcount], dxf); \ |
1267 | 560 | LOG_POS \ |
1268 | 560 | if (!_obj->name[vcount]) \ |
1269 | 560 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1270 | 560 | } \ |
1271 | 560 | LATER_VERSIONS \ |
1272 | 560 | { \ |
1273 | 0 | _obj->name[vcount] = (char *)bit_read_##type (dat); \ |
1274 | 0 | LOG_TRACE_TU_I (#name, vcount, _obj->name[vcount], type, dxf); \ |
1275 | 0 | if (!_obj->name[vcount]) \ |
1276 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1277 | 0 | } \ |
1278 | 560 | } \ |
1279 | 139 | } |
1280 | | #define FIELD_VECTOR_N1(name, type, size, dxf) \ |
1281 | 0 | if (size > 0) \ |
1282 | 0 | { \ |
1283 | 0 | int _dxf = dxf; \ |
1284 | 0 | VECTOR_CHKCOUNT (name, type, size, dat) \ |
1285 | 0 | _obj->name = (BITCODE_##type *)calloc (size, sizeof (BITCODE_##type)); \ |
1286 | 0 | if (!_obj->name) \ |
1287 | 0 | return DWG_ERR_OUTOFMEM; \ |
1288 | 0 | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1289 | 0 | { \ |
1290 | 0 | _obj->name[vcount] = bit_read_##type (dat); \ |
1291 | 0 | LOG_TRACE (#name "[%d]: " FORMAT_##type " [" #type " %d]", \ |
1292 | 0 | (int)vcount, _obj->name[vcount], _dxf++); \ |
1293 | 0 | LOG_POS; \ |
1294 | 0 | } \ |
1295 | 0 | } |
1296 | | |
1297 | | #define FIELD_VECTOR(name, type, size, dxf) \ |
1298 | 7.72k | FIELD_VECTOR_N (name, type, _obj->size, dxf) |
1299 | | |
1300 | | #define SUB_FIELD_VECTOR_TYPESIZE(o, name, size, typesize, dxf) \ |
1301 | 0 | if (_obj->o.size > 0) \ |
1302 | 0 | { \ |
1303 | 0 | _obj->o.name = (BITCODE_RC *)calloc (_obj->o.size, typesize); \ |
1304 | 0 | if (!_obj->o.name) \ |
1305 | 0 | return DWG_ERR_OUTOFMEM; \ |
1306 | 0 | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \ |
1307 | 0 | { \ |
1308 | 0 | switch (typesize) \ |
1309 | 0 | { \ |
1310 | 0 | case 0: \ |
1311 | 0 | break; \ |
1312 | 0 | case 1: \ |
1313 | 0 | _obj->o.name[vcount] = bit_read_RC (dat); \ |
1314 | 0 | break; \ |
1315 | 0 | case 2: \ |
1316 | 0 | _obj->o.name[vcount] = bit_read_RS (dat); \ |
1317 | 0 | break; \ |
1318 | 0 | case 4: \ |
1319 | 0 | _obj->o.name[vcount] = bit_read_RL (dat); \ |
1320 | 0 | break; \ |
1321 | 0 | case 8: \ |
1322 | 0 | _obj->o.name[vcount] = bit_read_RLL (dat); \ |
1323 | 0 | break; \ |
1324 | 0 | default: \ |
1325 | 0 | LOG_ERROR ("Unknown FIELD_VECTOR_TYPE " #name " typesize %d", \ |
1326 | 0 | typesize); \ |
1327 | 0 | break; \ |
1328 | 0 | } \ |
1329 | 0 | LOG_TRACE (#name "[%u]: %d", vcount, (int)_obj->o.name[vcount]); \ |
1330 | 0 | LOG_POS \ |
1331 | 0 | } \ |
1332 | 0 | } |
1333 | | |
1334 | | #define FIELD_2RD_VECTOR(name, size, dxf) \ |
1335 | 2.12k | VECTOR_CHKCOUNT_LV (name, 2RD, _obj->size, dat) \ |
1336 | 2.12k | if (_obj->size > 0) \ |
1337 | 750 | { \ |
1338 | 750 | _obj->name = (BITCODE_2RD *)calloc (_obj->size, sizeof (BITCODE_2RD)); \ |
1339 | 750 | if (!_obj->name) \ |
1340 | 750 | return DWG_ERR_OUTOFMEM; \ |
1341 | 33.0k | for (vcount = 0; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1342 | 32.8k | { \ |
1343 | 32.8k | FIELD_2RD (name[vcount], dxf); \ |
1344 | 32.2k | } \ |
1345 | 750 | } \ |
1346 | 0 | else \ |
1347 | 1.37k | return DWG_ERR_VALUEOUTOFBOUNDS; |
1348 | | |
1349 | | #define SUB_FIELD_2RD_VECTOR(o, name, size, dxf) \ |
1350 | 0 | VECTOR_CHKCOUNT_LV (o.name, 2RD, _obj->o.size, dat) \ |
1351 | 0 | if (_obj->o.size > 0) \ |
1352 | 0 | { \ |
1353 | 0 | _obj->o.name \ |
1354 | 0 | = (BITCODE_2RD *)calloc (_obj->o.size, sizeof (BITCODE_2RD)); \ |
1355 | 0 | if (!_obj->o.name) \ |
1356 | 0 | return DWG_ERR_OUTOFMEM; \ |
1357 | 0 | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \ |
1358 | 0 | { \ |
1359 | 0 | SUB_FIELD_2RD (o, name[vcount], dxf); \ |
1360 | 0 | } \ |
1361 | 0 | } \ |
1362 | 0 | else \ |
1363 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; |
1364 | | |
1365 | | #define FIELD_2DD_VECTOR(name, size, dxf) \ |
1366 | 2.72k | VECTOR_CHKCOUNT_LV (name, 2DD, _obj->size, dat) \ |
1367 | 2.72k | if (_obj->size > 0) \ |
1368 | 2.72k | { \ |
1369 | 1.63k | _obj->name = (BITCODE_2RD *)calloc (_obj->size, sizeof (BITCODE_2RD)); \ |
1370 | 1.63k | if (!_obj->name) \ |
1371 | 1.63k | return DWG_ERR_OUTOFMEM; \ |
1372 | 3.11k | FIELD_2RD (name[0], dxf); \ |
1373 | 182k | for (vcount = 1; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1374 | 181k | { \ |
1375 | 181k | BITCODE_BB b2, b1 = bit_read_BB_noadv (dat); \ |
1376 | 181k | FIELD_DD (name[vcount].x, FIELD_VALUE (name[vcount - 1].x), dxf); \ |
1377 | 181k | b2 = bit_read_BB_noadv (dat); \ |
1378 | 181k | FIELD_DD (name[vcount].y, FIELD_VALUE (name[vcount - 1].y), \ |
1379 | 181k | dxf + 10); \ |
1380 | 180k | if (b1 == 3 && b2 == 3) \ |
1381 | 180k | LOG_TRACE (#name "[%ld]: (" FORMAT_BD ", " FORMAT_BD \ |
1382 | 180k | ") [2DD %d]", \ |
1383 | 180k | (long)vcount, _obj->name[vcount].x, \ |
1384 | 180k | _obj->name[vcount].y, dxf); \ |
1385 | 180k | else \ |
1386 | 180k | LOG_TRACE (#name "[%ld]: (" FORMAT_BD ", " FORMAT_BD \ |
1387 | 180k | ") [2DD/%d%d %d]", \ |
1388 | 180k | (long)vcount, _obj->name[vcount].x, \ |
1389 | 180k | _obj->name[vcount].y, b1, b2, dxf); \ |
1390 | 180k | LOG_POS \ |
1391 | 180k | } \ |
1392 | 3.11k | } \ |
1393 | 2.72k | else \ |
1394 | 2.72k | return DWG_ERR_VALUEOUTOFBOUNDS; |
1395 | | |
1396 | | #define FIELD_3DPOINT_VECTOR(name, size, dxf) \ |
1397 | 206k | VECTOR_CHKCOUNT_LV (name, 3BD, _obj->size, dat) \ |
1398 | 206k | if (_obj->size > 0) \ |
1399 | 206k | { \ |
1400 | 18.5k | _obj->name \ |
1401 | 18.5k | = (BITCODE_3DPOINT *)calloc (_obj->size, sizeof (BITCODE_3DPOINT)); \ |
1402 | 18.5k | if (!_obj->name) \ |
1403 | 18.5k | return DWG_ERR_OUTOFMEM; \ |
1404 | 4.40M | for (vcount = 0; vcount < (BITCODE_BL)_obj->size; vcount++) \ |
1405 | 4.38M | { \ |
1406 | 4.38M | FIELD_3DPOINT (name[vcount], dxf); \ |
1407 | 4.38M | } \ |
1408 | 18.5k | } |
1409 | | #define SUB_FIELD_3BD_VECTOR(o, name, size, dxf) \ |
1410 | 0 | VECTOR_CHKCOUNT_LV (o.name, 3BD, _obj->o.size, dat) \ |
1411 | 0 | if (_obj->o.size > 0) \ |
1412 | 0 | { \ |
1413 | 0 | _obj->o.name \ |
1414 | 0 | = (BITCODE_3BD *)calloc (_obj->o.size, sizeof (BITCODE_3BD)); \ |
1415 | 0 | if (!_obj->o.name) \ |
1416 | 0 | return DWG_ERR_OUTOFMEM; \ |
1417 | 0 | for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \ |
1418 | 0 | { \ |
1419 | 0 | SUB_FIELD_3BD (o, name[vcount], dxf); \ |
1420 | 0 | } \ |
1421 | 0 | } \ |
1422 | 0 | else \ |
1423 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; |
1424 | | |
1425 | | // shortest handle: 8 bit |
1426 | | #define HANDLE_VECTOR_N(nam, size, code, dxf) \ |
1427 | 36.9k | if (size > 0) \ |
1428 | 36.9k | { \ |
1429 | 16.0k | FIELD_VALUE (nam) = (BITCODE_H *)calloc (size, sizeof (BITCODE_H)); \ |
1430 | 16.0k | if (!_obj->nam) \ |
1431 | 16.0k | return DWG_ERR_OUTOFMEM; \ |
1432 | 9.97M | for (vcount = 0; vcount < (BITCODE_BL)size; vcount++) \ |
1433 | 9.95M | { \ |
1434 | 9.95M | FIELD_HANDLE_N (nam[vcount], vcount, code, dxf); \ |
1435 | 9.95M | } \ |
1436 | 16.0k | } |
1437 | | |
1438 | | #define HANDLE_VECTOR(nam, sizefield, code, dxf) \ |
1439 | 36.9k | VECTOR_CHKCOUNT_LV (nam, HANDLE, FIELD_VALUE (sizefield), hdl_dat) \ |
1440 | 36.9k | HANDLE_VECTOR_N (nam, FIELD_VALUE (sizefield), code, dxf) |
1441 | | |
1442 | | #define SUB_HANDLE_VECTOR(o, nam, sizefield, code, dxf) \ |
1443 | 249 | if (_obj->o.sizefield > 0) \ |
1444 | 249 | { \ |
1445 | 83 | BITCODE_BL _size = _obj->o.sizefield; \ |
1446 | 83 | HANDLE_VECTOR_CHKCOUNT (nam, _size) \ |
1447 | 83 | _obj->o.nam = (BITCODE_H *)calloc (_size, sizeof (BITCODE_H)); \ |
1448 | 73 | if (!_obj->o.nam) \ |
1449 | 73 | return DWG_ERR_OUTOFMEM; \ |
1450 | 6.97k | for (vcount = 0; vcount < _size; vcount++) \ |
1451 | 6.90k | { \ |
1452 | 6.90k | SUB_FIELD_HANDLE (o, nam[vcount], code, dxf); \ |
1453 | 6.90k | } \ |
1454 | 73 | } |
1455 | | |
1456 | | // count 1 bytes, until non-1 bytes or a terminating zero |
1457 | | #define FIELD_NUM_INSERTS(num_inserts, type, dxf) \ |
1458 | 8.45k | FIELD_VALUE (num_inserts) = 0; \ |
1459 | 8.45k | vcount = 0; \ |
1460 | 283k | while ((vcount = (BITCODE_RC)bit_read_RC (dat))) \ |
1461 | 274k | { \ |
1462 | 274k | FIELD_VALUE (num_inserts)++; \ |
1463 | 274k | LOG_INSANE ("num_inserts [RC " FORMAT_RL "]: %d\n", \ |
1464 | 274k | FIELD_VALUE (num_inserts), (unsigned char)vcount); \ |
1465 | 274k | if (vcount == 0) \ |
1466 | 274k | break; \ |
1467 | 274k | } \ |
1468 | 8.45k | LOG_TRACE ("num_inserts: %d [RC* 0]\n", FIELD_VALUE (num_inserts)); |
1469 | | |
1470 | | #define FIELD_XDATA(name, xdata_size) \ |
1471 | 1.41k | _obj->name = dwg_decode_xdata (dat, _obj, _obj->xdata_size) |
1472 | | |
1473 | | #define REACTORS(code) \ |
1474 | 31.8k | if (obj->tio.object->num_reactors > 0) \ |
1475 | 31.8k | { \ |
1476 | 2.65k | HANDLE_VECTOR_CHKCOUNT (reactors, obj->tio.object->num_reactors) \ |
1477 | 2.65k | obj->tio.object->reactors = (BITCODE_H *)calloc ( \ |
1478 | 2.39k | obj->tio.object->num_reactors, sizeof (BITCODE_H)); \ |
1479 | 2.39k | if (!obj->tio.object->reactors) \ |
1480 | 2.39k | return DWG_ERR_OUTOFMEM; \ |
1481 | 660k | for (vcount = 0; vcount < obj->tio.object->num_reactors; vcount++) \ |
1482 | 657k | { \ |
1483 | 657k | VALUE_HANDLE_N (obj->tio.object->reactors[vcount], reactors, \ |
1484 | 657k | vcount, code, 330); \ |
1485 | 657k | } \ |
1486 | 2.39k | } |
1487 | | |
1488 | | #define ENT_REACTORS(code) \ |
1489 | 11.7k | if (_ent->num_reactors > 0) \ |
1490 | 11.7k | { \ |
1491 | 4.86k | HANDLE_VECTOR_CHKCOUNT (reactors, _ent->num_reactors) \ |
1492 | 4.86k | _ent->reactors \ |
1493 | 3.18k | = (BITCODE_H *)calloc (_ent->num_reactors, sizeof (BITCODE_H)); \ |
1494 | 3.18k | if (!_ent->reactors) \ |
1495 | 3.18k | return DWG_ERR_OUTOFMEM; \ |
1496 | 1.35M | for (vcount = 0; vcount < _ent->num_reactors; vcount++) \ |
1497 | 1.35M | { \ |
1498 | 1.35M | VALUE_HANDLE_N (_ent->reactors[vcount], reactors, vcount, code, \ |
1499 | 1.35M | 330); \ |
1500 | 1.35M | } \ |
1501 | 3.18k | } |
1502 | | |
1503 | | #define XDICOBJHANDLE(code) \ |
1504 | 31.5k | SINCE (R_2004a) \ |
1505 | 31.5k | { \ |
1506 | 0 | if (!obj->tio.object->is_xdic_missing) \ |
1507 | 0 | { \ |
1508 | 0 | VALUE_HANDLE (obj->tio.object->xdicobjhandle, xdicobjhandle, code, \ |
1509 | 0 | 360); \ |
1510 | 0 | if (!obj->tio.object->xdicobjhandle) \ |
1511 | 0 | obj->tio.object->is_xdic_missing = 1; \ |
1512 | 0 | } \ |
1513 | 0 | } \ |
1514 | 31.5k | else \ |
1515 | 31.5k | { \ |
1516 | 31.5k | SINCE (R_13b1) \ |
1517 | 31.5k | { \ |
1518 | 31.5k | VALUE_HANDLE (obj->tio.object->xdicobjhandle, xdicobjhandle, code, \ |
1519 | 31.5k | 360); \ |
1520 | 31.5k | } \ |
1521 | 31.5k | } |
1522 | | |
1523 | | #define ENT_XDICOBJHANDLE(code) \ |
1524 | 10.1k | SINCE (R_2004a) \ |
1525 | 10.1k | { \ |
1526 | 0 | if (!_ent->is_xdic_missing) \ |
1527 | 0 | { \ |
1528 | 0 | VALUE_HANDLE (_ent->xdicobjhandle, xdicobjhandle, code, 360); \ |
1529 | 0 | } \ |
1530 | 0 | } \ |
1531 | 10.1k | else \ |
1532 | 10.1k | { \ |
1533 | 10.1k | SINCE (R_13b1) \ |
1534 | 10.1k | { \ |
1535 | 10.1k | VALUE_HANDLE (_ent->xdicobjhandle, xdicobjhandle, code, 360); \ |
1536 | 10.1k | } \ |
1537 | 10.1k | } |
1538 | | |
1539 | | #define UNKNOWN_UNTIL(pos) \ |
1540 | 4.11k | if (dat->byte < (size_t)(pos)) \ |
1541 | 4.11k | { \ |
1542 | 3.54k | long len = (long)((pos) - dat->byte); \ |
1543 | 3.54k | BITCODE_TF unknown = bit_read_TF (dat, (size_t)len); \ |
1544 | 3.54k | LOG_TRACE ("unknown (%ld): ", len); \ |
1545 | 3.54k | LOG_TRACE_TF (unknown, len); \ |
1546 | 3.54k | free (unknown); \ |
1547 | 3.54k | } \ |
1548 | 4.11k | dat->byte = (size_t)(pos) |
1549 | | |
1550 | | #define SECTION_STRING_STREAM \ |
1551 | 0 | { \ |
1552 | 0 | Bit_Chain sav_dat = *dat; \ |
1553 | 0 | dat = str_dat; |
1554 | | |
1555 | | // TODO: unused |
1556 | | #define START_STRING_STREAM \ |
1557 | | obj->has_strings = bit_read_B (dat); \ |
1558 | | if (obj->has_strings) \ |
1559 | | { \ |
1560 | | Bit_Chain sav_dat = *dat; \ |
1561 | | obj_string_stream (dat, obj, dat); |
1562 | | |
1563 | | #define END_STRING_STREAM \ |
1564 | 0 | *dat = sav_dat; \ |
1565 | 0 | } |
1566 | | /* just checking. skip the has_strings bit. hdl_dat is already set */ |
1567 | | #define START_HANDLE_STREAM \ |
1568 | 1.60M | { \ |
1569 | 1.60M | size_t _pos = bit_position (dat); \ |
1570 | 1.60M | if (dat->from_version >= R_2007) \ |
1571 | 1.60M | _pos++; /* has_strings bit */ \ |
1572 | 1.60M | if (obj->hdlpos != _pos) \ |
1573 | 1.60M | { \ |
1574 | 488k | LOG_HANDLE ( \ |
1575 | 488k | " handle stream: %+ld @%" PRIuSIZE ".%u %s (@%" PRIuSIZE ".%u " \ |
1576 | 488k | " @%" PRIuSIZE ".%u)\n", \ |
1577 | 488k | (long)(obj->hdlpos - _pos), dat->byte, (unsigned)dat->bit, \ |
1578 | 488k | (long)(obj->hdlpos - _pos) >= 8 ? "MISSING" \ |
1579 | 488k | : (long)(obj->hdlpos < _pos) ? "OVERSHOOT" \ |
1580 | 488k | : "", \ |
1581 | 488k | obj->hdlpos / 8, (unsigned)obj->hdlpos % 8, hdl_dat->byte, \ |
1582 | 488k | (unsigned)hdl_dat->bit); \ |
1583 | 488k | bit_set_position (dat, obj->hdlpos); \ |
1584 | 488k | } \ |
1585 | 1.60M | } |
1586 | | |
1587 | | #define REPEAT_CHKCOUNT(name, times, type) \ |
1588 | 0 | if (AVAIL_BITS (dat) < 0) \ |
1589 | 0 | { \ |
1590 | 0 | LOG_ERROR ("Invalid " #name " in %s. No bytes left.\n", SAFEDXFNAME); \ |
1591 | 0 | if (_obj->name) \ |
1592 | 0 | { \ |
1593 | 0 | free (_obj->name); \ |
1594 | 0 | _obj->name = NULL; \ |
1595 | 0 | } \ |
1596 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1597 | 0 | } \ |
1598 | 0 | LOG_INSANE ("REPEAT_CHKCOUNT %s." #name " x %lu: %lu > %" PRId64 "?\n", \ |
1599 | 0 | SAFEDXFNAME, (unsigned long)times, \ |
1600 | 0 | (unsigned long)((times) * sizeof (type)), AVAIL_BITS (dat)); \ |
1601 | 0 | if ((int64_t)((times) * sizeof (type)) > AVAIL_BITS (dat)) \ |
1602 | 0 | { \ |
1603 | 0 | LOG_ERROR ("Invalid %s." #name " x %lu\n", SAFEDXFNAME, \ |
1604 | 0 | (unsigned long)times); \ |
1605 | 0 | if (_obj->name) \ |
1606 | 0 | { \ |
1607 | 0 | free (_obj->name); \ |
1608 | 0 | _obj->name = NULL; \ |
1609 | 0 | } \ |
1610 | 0 | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1611 | 0 | } |
1612 | | #define REPEAT_CHKCOUNT_LVAL(name, times, type) \ |
1613 | 208k | if (AVAIL_BITS (dat) < 0) \ |
1614 | 208k | { \ |
1615 | 1.06k | LOG_ERROR ("Invalid %s." #name ". No bytes left.\n", SAFEDXFNAME); \ |
1616 | 1.06k | times = 0; \ |
1617 | 1.06k | if (_obj->name) \ |
1618 | 1.06k | { \ |
1619 | 0 | free (_obj->name); \ |
1620 | 0 | _obj->name = NULL; \ |
1621 | 0 | } \ |
1622 | 1.06k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1623 | 1.06k | } \ |
1624 | 208k | LOG_INSANE ("REPEAT_CHKCOUNT_LVAL %s." #name " x %lu: %lu > %" PRId64 \ |
1625 | 207k | "?\n", \ |
1626 | 207k | SAFEDXFNAME, (unsigned long)times, \ |
1627 | 207k | (unsigned long)((times) * sizeof (type)), AVAIL_BITS (dat)); \ |
1628 | 207k | if ((int64_t)((times) * sizeof (type)) > AVAIL_BITS (dat) \ |
1629 | 207k | || (sizeof (times) > 4 && times > 0xc0000000 / sizeof (type))) \ |
1630 | 207k | { \ |
1631 | 4.18k | LOG_ERROR ("Invalid %s." #name " x %ld\n", SAFEDXFNAME, (long)times); \ |
1632 | 4.18k | times = 0; \ |
1633 | 4.18k | if (_obj->name) \ |
1634 | 4.18k | { \ |
1635 | 0 | free (_obj->name); \ |
1636 | 0 | _obj->name = NULL; \ |
1637 | 0 | } \ |
1638 | 4.18k | return DWG_ERR_VALUEOUTOFBOUNDS; \ |
1639 | 4.18k | } |
1640 | | |
1641 | | /* REPEAT names: |
1642 | | _ adds idx |
1643 | | C does no checks |
1644 | | N does constant times (else _obj->times) |
1645 | | F does not calloc/free |
1646 | | */ |
1647 | | |
1648 | | // unchecked with constant times |
1649 | | #define REPEAT_CN(times, name, type) \ |
1650 | 0 | if (times > 0) \ |
1651 | 0 | { \ |
1652 | 0 | _obj->name = (type *)calloc (times, sizeof (type)); \ |
1653 | 0 | if (!_obj->name) \ |
1654 | 0 | return DWG_ERR_OUTOFMEM; \ |
1655 | 0 | } \ |
1656 | 0 | for (rcount1 = 0; rcount1 < (BITCODE_BL)times; rcount1++) |
1657 | | // checked with constant times |
1658 | | #define REPEAT_N(times, name, type) \ |
1659 | 0 | REPEAT_CHKCOUNT (name, times, type) \ |
1660 | 0 | if (times > 0) \ |
1661 | 0 | { \ |
1662 | 0 | _obj->name = (type *)calloc (times, sizeof (type)); \ |
1663 | 0 | if (!_obj->name) \ |
1664 | 0 | return DWG_ERR_OUTOFMEM; \ |
1665 | 0 | } \ |
1666 | 0 | for (rcount1 = 0; rcount1 < (BITCODE_BL)times; rcount1++) |
1667 | | |
1668 | | // checked with var. times |
1669 | | #define _REPEAT(times, nam, type, idx) \ |
1670 | 208k | REPEAT_CHKCOUNT_LVAL (nam, _obj->times, type) \ |
1671 | 207k | if (_obj->times > 0) \ |
1672 | 202k | { \ |
1673 | 15.9k | _obj->nam = (type *)calloc (_obj->times, sizeof (type)); \ |
1674 | 15.9k | if (!_obj->nam) \ |
1675 | 15.9k | return DWG_ERR_OUTOFMEM; \ |
1676 | 15.9k | } \ |
1677 | 1.04M | for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; rcount##idx++) |
1678 | | // unchecked with var. times |
1679 | | #define _REPEAT_C(times, name, type, idx) \ |
1680 | 6.90k | if (_obj->times > 0) \ |
1681 | 6.90k | _obj->name = (type *)calloc (_obj->times, sizeof (type)); \ |
1682 | 713k | for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; rcount##idx++) |
1683 | | // unchecked with constant times |
1684 | | #define _REPEAT_CN(times, name, type, idx) \ |
1685 | 0 | if (times > 0) \ |
1686 | 0 | { \ |
1687 | 0 | _obj->name = (type *)calloc (times, sizeof (type)); \ |
1688 | 0 | if (!_obj->name) \ |
1689 | 0 | return DWG_ERR_OUTOFMEM; \ |
1690 | 0 | } \ |
1691 | 0 | if (_obj->name) \ |
1692 | 0 | for (rcount##idx = 0; rcount##idx < (BITCODE_BL)times; rcount##idx++) |
1693 | | |
1694 | | // not allocating versions unchecked: _REPEAT_CNF |
1695 | | // not allocating versions checked: _REPEAT_NF |
1696 | | |
1697 | 25.3k | #define REPEAT(times, name, type) _REPEAT (times, name, type, 1) |
1698 | 183k | #define REPEAT2(times, name, type) _REPEAT (times, name, type, 2) |
1699 | 116 | #define REPEAT3(times, name, type) _REPEAT (times, name, type, 3) |
1700 | 0 | #define REPEAT4(times, name, type) _REPEAT (times, name, type, 4) |
1701 | | |
1702 | 6.90k | #define REPEAT_C(times, name, type) _REPEAT_C (times, name, type, 1) |
1703 | | #define REPEAT2_C(times, name, type) _REPEAT_C (times, name, type, 2) |
1704 | | #define REPEAT3_C(times, name, type) _REPEAT_C (times, name, type, 3) |
1705 | | #define REPEAT4_C(times, name, type) _REPEAT_C (times, name, type, 4) |
1706 | | |
1707 | | #define COMMON_ENTITY_HANDLE_DATA \ |
1708 | 323k | SINCE (R_13b1) \ |
1709 | 193k | { \ |
1710 | 193k | START_HANDLE_STREAM; \ |
1711 | 193k | } |
1712 | | |
1713 | | /** Add the empty entity or object with its three structs to the DWG. |
1714 | | All fields are zero'd. TODO: some are initialized with default values, as |
1715 | | defined in dwg.spec. |
1716 | | Returns 0 or DWG_ERR_OUTOFMEM. |
1717 | | */ |
1718 | | |
1719 | | #define DWG_ENTITY(token) \ |
1720 | | EXPORT int dwg_setup_##token (Dwg_Object *obj) \ |
1721 | 529k | { \ |
1722 | 529k | Dwg_Object_Entity *_ent; \ |
1723 | 529k | Dwg_Entity_##token *_obj; \ |
1724 | 529k | if (strEQc (#token, "DIMENSION_ANG2LN") \ |
1725 | 529k | && obj->parent->header.version < R_13b1) \ |
1726 | 529k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ |
1727 | 529k | else \ |
1728 | 529k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ |
1729 | 529k | obj->parent->num_entities++; \ |
1730 | 529k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ |
1731 | 529k | if (!(int)obj->fixedtype) \ |
1732 | 529k | { \ |
1733 | 529k | obj->fixedtype = DWG_TYPE_##token; \ |
1734 | 529k | } \ |
1735 | 529k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ |
1736 | 529k | { \ |
1737 | 1.13k | obj->type = DWG_TYPE_##token; \ |
1738 | 1.13k | } \ |
1739 | 529k | if (!obj->dxfname) \ |
1740 | 529k | { \ |
1741 | 529k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ |
1742 | 529k | obj->name = obj->dxfname = (char *)&#token[1]; \ |
1743 | 529k | else if (strEQc (#token, "PROXY_ENTITY")) \ |
1744 | 512k | { \ |
1745 | 184 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ |
1746 | 184 | obj->name = (char *)#token; \ |
1747 | 184 | } \ |
1748 | 512k | else \ |
1749 | 512k | obj->name = obj->dxfname = (char *)#token; \ |
1750 | 529k | } \ |
1751 | 529k | else if (!obj->name) \ |
1752 | 0 | { \ |
1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ |
1754 | 0 | obj->name = (char *)&#token[1]; \ |
1755 | 0 | else \ |
1756 | 0 | obj->name = (char *)#token; \ |
1757 | 0 | } \ |
1758 | 529k | if (strEQc (#token, "UNKNOWN_ENT")) \ |
1759 | 529k | { \ |
1760 | 0 | obj->name = (char *)#token; \ |
1761 | 0 | obj->dxfname = (char *)#token; \ |
1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ |
1763 | 0 | } \ |
1764 | 529k | if (obj->parent->opts & DWG_OPTS_IN) \ |
1765 | 529k | { \ |
1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ |
1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ |
1768 | 0 | obj->name = strdup (obj->name); \ |
1769 | 0 | } \ |
1770 | 529k | _ent = obj->tio.entity \ |
1771 | 529k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ |
1772 | 529k | if (!_ent) \ |
1773 | 529k | return DWG_ERR_OUTOFMEM; \ |
1774 | 529k | _ent->tio.token \ |
1775 | 529k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ |
1776 | 529k | if (!_ent->tio.token) \ |
1777 | 529k | return DWG_ERR_OUTOFMEM; \ |
1778 | 529k | _ent->dwg = obj->parent; \ |
1779 | 529k | _ent->objid = obj->index; /* obj ptr itself might move */ \ |
1780 | 529k | _ent->tio.token->parent = obj->tio.entity; \ |
1781 | 529k | return 0; \ |
1782 | 529k | } \ Line | Count | Source | 1721 | 29.1k | { \ | 1722 | 29.1k | Dwg_Object_Entity *_ent; \ | 1723 | 29.1k | Dwg_Entity_##token *_obj; \ | 1724 | 29.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 29.1k | && obj->parent->header.version < R_13b1) \ | 1726 | 29.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 29.1k | else \ | 1728 | 29.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 29.1k | obj->parent->num_entities++; \ | 1730 | 29.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 29.1k | if (!(int)obj->fixedtype) \ | 1732 | 29.1k | { \ | 1733 | 29.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 29.1k | } \ | 1735 | 29.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 29.1k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 29.1k | if (!obj->dxfname) \ | 1740 | 29.1k | { \ | 1741 | 29.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 29.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 29.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 29.1k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 29.1k | else \ | 1749 | 29.1k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 29.1k | } \ | 1751 | 29.1k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 29.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 29.1k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 29.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 29.1k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 29.1k | _ent = obj->tio.entity \ | 1771 | 29.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 29.1k | if (!_ent) \ | 1773 | 29.1k | return DWG_ERR_OUTOFMEM; \ | 1774 | 29.1k | _ent->tio.token \ | 1775 | 29.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 29.1k | if (!_ent->tio.token) \ | 1777 | 29.1k | return DWG_ERR_OUTOFMEM; \ | 1778 | 29.1k | _ent->dwg = obj->parent; \ | 1779 | 29.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 29.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 29.1k | return 0; \ | 1782 | 29.1k | } \ |
Line | Count | Source | 1721 | 24.9k | { \ | 1722 | 24.9k | Dwg_Object_Entity *_ent; \ | 1723 | 24.9k | Dwg_Entity_##token *_obj; \ | 1724 | 24.9k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 24.9k | && obj->parent->header.version < R_13b1) \ | 1726 | 24.9k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 24.9k | else \ | 1728 | 24.9k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 24.9k | obj->parent->num_entities++; \ | 1730 | 24.9k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 24.9k | if (!(int)obj->fixedtype) \ | 1732 | 24.9k | { \ | 1733 | 24.9k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 24.9k | } \ | 1735 | 24.9k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 24.9k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 24.9k | if (!obj->dxfname) \ | 1740 | 24.9k | { \ | 1741 | 24.9k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 24.9k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 24.9k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 24.9k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 24.9k | else \ | 1749 | 24.9k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 24.9k | } \ | 1751 | 24.9k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 24.9k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 24.9k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 24.9k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 24.9k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 24.9k | _ent = obj->tio.entity \ | 1771 | 24.9k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 24.9k | if (!_ent) \ | 1773 | 24.9k | return DWG_ERR_OUTOFMEM; \ | 1774 | 24.9k | _ent->tio.token \ | 1775 | 24.9k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 24.9k | if (!_ent->tio.token) \ | 1777 | 24.9k | return DWG_ERR_OUTOFMEM; \ | 1778 | 24.9k | _ent->dwg = obj->parent; \ | 1779 | 24.9k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 24.9k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 24.9k | return 0; \ | 1782 | 24.9k | } \ |
Line | Count | Source | 1721 | 43.3k | { \ | 1722 | 43.3k | Dwg_Object_Entity *_ent; \ | 1723 | 43.3k | Dwg_Entity_##token *_obj; \ | 1724 | 43.3k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 43.3k | && obj->parent->header.version < R_13b1) \ | 1726 | 43.3k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 43.3k | else \ | 1728 | 43.3k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 43.3k | obj->parent->num_entities++; \ | 1730 | 43.3k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 43.3k | if (!(int)obj->fixedtype) \ | 1732 | 43.3k | { \ | 1733 | 43.3k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 43.3k | } \ | 1735 | 43.3k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 43.3k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 43.3k | if (!obj->dxfname) \ | 1740 | 43.3k | { \ | 1741 | 43.3k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 43.3k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 43.3k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 43.3k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 43.3k | else \ | 1749 | 43.3k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 43.3k | } \ | 1751 | 43.3k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 43.3k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 43.3k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 43.3k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 43.3k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 43.3k | _ent = obj->tio.entity \ | 1771 | 43.3k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 43.3k | if (!_ent) \ | 1773 | 43.3k | return DWG_ERR_OUTOFMEM; \ | 1774 | 43.3k | _ent->tio.token \ | 1775 | 43.3k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 43.3k | if (!_ent->tio.token) \ | 1777 | 43.3k | return DWG_ERR_OUTOFMEM; \ | 1778 | 43.3k | _ent->dwg = obj->parent; \ | 1779 | 43.3k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 43.3k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 43.3k | return 0; \ | 1782 | 43.3k | } \ |
Line | Count | Source | 1721 | 11.4k | { \ | 1722 | 11.4k | Dwg_Object_Entity *_ent; \ | 1723 | 11.4k | Dwg_Entity_##token *_obj; \ | 1724 | 11.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 11.4k | && obj->parent->header.version < R_13b1) \ | 1726 | 11.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 11.4k | else \ | 1728 | 11.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 11.4k | obj->parent->num_entities++; \ | 1730 | 11.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 11.4k | if (!(int)obj->fixedtype) \ | 1732 | 11.4k | { \ | 1733 | 11.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 11.4k | } \ | 1735 | 11.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 11.4k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 11.4k | if (!obj->dxfname) \ | 1740 | 11.4k | { \ | 1741 | 11.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 11.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 11.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 11.4k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 11.4k | else \ | 1749 | 11.4k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 11.4k | } \ | 1751 | 11.4k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 11.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 11.4k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 11.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 11.4k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 11.4k | _ent = obj->tio.entity \ | 1771 | 11.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 11.4k | if (!_ent) \ | 1773 | 11.4k | return DWG_ERR_OUTOFMEM; \ | 1774 | 11.4k | _ent->tio.token \ | 1775 | 11.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 11.4k | if (!_ent->tio.token) \ | 1777 | 11.4k | return DWG_ERR_OUTOFMEM; \ | 1778 | 11.4k | _ent->dwg = obj->parent; \ | 1779 | 11.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 11.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 11.4k | return 0; \ | 1782 | 11.4k | } \ |
Line | Count | Source | 1721 | 9.84k | { \ | 1722 | 9.84k | Dwg_Object_Entity *_ent; \ | 1723 | 9.84k | Dwg_Entity_##token *_obj; \ | 1724 | 9.84k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 9.84k | && obj->parent->header.version < R_13b1) \ | 1726 | 9.84k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 9.84k | else \ | 1728 | 9.84k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 9.84k | obj->parent->num_entities++; \ | 1730 | 9.84k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 9.84k | if (!(int)obj->fixedtype) \ | 1732 | 9.84k | { \ | 1733 | 9.84k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 9.84k | } \ | 1735 | 9.84k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 9.84k | { \ | 1737 | 1.13k | obj->type = DWG_TYPE_##token; \ | 1738 | 1.13k | } \ | 1739 | 9.84k | if (!obj->dxfname) \ | 1740 | 9.84k | { \ | 1741 | 9.84k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 9.84k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 9.84k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 9.84k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 9.84k | else \ | 1749 | 9.84k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 9.84k | } \ | 1751 | 9.84k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 9.84k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 9.84k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 9.84k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 9.84k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 9.84k | _ent = obj->tio.entity \ | 1771 | 9.84k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 9.84k | if (!_ent) \ | 1773 | 9.84k | return DWG_ERR_OUTOFMEM; \ | 1774 | 9.84k | _ent->tio.token \ | 1775 | 9.84k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 9.84k | if (!_ent->tio.token) \ | 1777 | 9.84k | return DWG_ERR_OUTOFMEM; \ | 1778 | 9.84k | _ent->dwg = obj->parent; \ | 1779 | 9.84k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 9.84k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 9.84k | return 0; \ | 1782 | 9.84k | } \ |
Line | Count | Source | 1721 | 3.15k | { \ | 1722 | 3.15k | Dwg_Object_Entity *_ent; \ | 1723 | 3.15k | Dwg_Entity_##token *_obj; \ | 1724 | 3.15k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 3.15k | && obj->parent->header.version < R_13b1) \ | 1726 | 3.15k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 3.15k | else \ | 1728 | 3.15k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 3.15k | obj->parent->num_entities++; \ | 1730 | 3.15k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 3.15k | if (!(int)obj->fixedtype) \ | 1732 | 3.15k | { \ | 1733 | 3.15k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 3.15k | } \ | 1735 | 3.15k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 3.15k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 3.15k | if (!obj->dxfname) \ | 1740 | 3.15k | { \ | 1741 | 3.15k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 3.15k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 3.15k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 3.15k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 3.15k | else \ | 1749 | 3.15k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 3.15k | } \ | 1751 | 3.15k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 3.15k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 3.15k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 3.15k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 3.15k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 3.15k | _ent = obj->tio.entity \ | 1771 | 3.15k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 3.15k | if (!_ent) \ | 1773 | 3.15k | return DWG_ERR_OUTOFMEM; \ | 1774 | 3.15k | _ent->tio.token \ | 1775 | 3.15k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 3.15k | if (!_ent->tio.token) \ | 1777 | 3.15k | return DWG_ERR_OUTOFMEM; \ | 1778 | 3.15k | _ent->dwg = obj->parent; \ | 1779 | 3.15k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 3.15k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 3.15k | return 0; \ | 1782 | 3.15k | } \ |
Line | Count | Source | 1721 | 14.1k | { \ | 1722 | 14.1k | Dwg_Object_Entity *_ent; \ | 1723 | 14.1k | Dwg_Entity_##token *_obj; \ | 1724 | 14.1k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 14.1k | && obj->parent->header.version < R_13b1) \ | 1726 | 14.1k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 14.1k | else \ | 1728 | 14.1k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 14.1k | obj->parent->num_entities++; \ | 1730 | 14.1k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 14.1k | if (!(int)obj->fixedtype) \ | 1732 | 14.1k | { \ | 1733 | 14.1k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 14.1k | } \ | 1735 | 14.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 14.1k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 14.1k | if (!obj->dxfname) \ | 1740 | 14.1k | { \ | 1741 | 14.1k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 14.1k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 14.1k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 14.1k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 14.1k | else \ | 1749 | 14.1k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 14.1k | } \ | 1751 | 14.1k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 14.1k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 14.1k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 14.1k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 14.1k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 14.1k | _ent = obj->tio.entity \ | 1771 | 14.1k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 14.1k | if (!_ent) \ | 1773 | 14.1k | return DWG_ERR_OUTOFMEM; \ | 1774 | 14.1k | _ent->tio.token \ | 1775 | 14.1k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 14.1k | if (!_ent->tio.token) \ | 1777 | 14.1k | return DWG_ERR_OUTOFMEM; \ | 1778 | 14.1k | _ent->dwg = obj->parent; \ | 1779 | 14.1k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 14.1k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 14.1k | return 0; \ | 1782 | 14.1k | } \ |
Line | Count | Source | 1721 | 6.32k | { \ | 1722 | 6.32k | Dwg_Object_Entity *_ent; \ | 1723 | 6.32k | Dwg_Entity_##token *_obj; \ | 1724 | 6.32k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 6.32k | && obj->parent->header.version < R_13b1) \ | 1726 | 6.32k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 6.32k | else \ | 1728 | 6.32k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 6.32k | obj->parent->num_entities++; \ | 1730 | 6.32k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 6.32k | if (!(int)obj->fixedtype) \ | 1732 | 6.32k | { \ | 1733 | 6.32k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 6.32k | } \ | 1735 | 6.32k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 6.32k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 6.32k | if (!obj->dxfname) \ | 1740 | 6.32k | { \ | 1741 | 6.32k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 6.32k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 6.32k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 6.32k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 6.32k | else \ | 1749 | 6.32k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 6.32k | } \ | 1751 | 6.32k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 6.32k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 6.32k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 6.32k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 6.32k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 6.32k | _ent = obj->tio.entity \ | 1771 | 6.32k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 6.32k | if (!_ent) \ | 1773 | 6.32k | return DWG_ERR_OUTOFMEM; \ | 1774 | 6.32k | _ent->tio.token \ | 1775 | 6.32k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 6.32k | if (!_ent->tio.token) \ | 1777 | 6.32k | return DWG_ERR_OUTOFMEM; \ | 1778 | 6.32k | _ent->dwg = obj->parent; \ | 1779 | 6.32k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 6.32k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 6.32k | return 0; \ | 1782 | 6.32k | } \ |
Line | Count | Source | 1721 | 1.95k | { \ | 1722 | 1.95k | Dwg_Object_Entity *_ent; \ | 1723 | 1.95k | Dwg_Entity_##token *_obj; \ | 1724 | 1.95k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.95k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.95k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.95k | else \ | 1728 | 1.95k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.95k | obj->parent->num_entities++; \ | 1730 | 1.95k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.95k | if (!(int)obj->fixedtype) \ | 1732 | 1.95k | { \ | 1733 | 1.95k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.95k | } \ | 1735 | 1.95k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.95k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.95k | if (!obj->dxfname) \ | 1740 | 1.95k | { \ | 1741 | 1.95k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.95k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.95k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 0 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 0 | else \ | 1749 | 0 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.95k | } \ | 1751 | 1.95k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.95k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.95k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.95k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.95k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.95k | _ent = obj->tio.entity \ | 1771 | 1.95k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.95k | if (!_ent) \ | 1773 | 1.95k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.95k | _ent->tio.token \ | 1775 | 1.95k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.95k | if (!_ent->tio.token) \ | 1777 | 1.95k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.95k | _ent->dwg = obj->parent; \ | 1779 | 1.95k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.95k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.95k | return 0; \ | 1782 | 1.95k | } \ |
Line | Count | Source | 1721 | 8.54k | { \ | 1722 | 8.54k | Dwg_Object_Entity *_ent; \ | 1723 | 8.54k | Dwg_Entity_##token *_obj; \ | 1724 | 8.54k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 8.54k | && obj->parent->header.version < R_13b1) \ | 1726 | 8.54k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 8.54k | else \ | 1728 | 8.54k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 8.54k | obj->parent->num_entities++; \ | 1730 | 8.54k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 8.54k | if (!(int)obj->fixedtype) \ | 1732 | 8.54k | { \ | 1733 | 8.54k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 8.54k | } \ | 1735 | 8.54k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 8.54k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 8.54k | if (!obj->dxfname) \ | 1740 | 8.54k | { \ | 1741 | 8.54k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 8.54k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 8.54k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 8.54k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 8.54k | else \ | 1749 | 8.54k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 8.54k | } \ | 1751 | 8.54k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 8.54k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 8.54k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 8.54k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 8.54k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 8.54k | _ent = obj->tio.entity \ | 1771 | 8.54k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 8.54k | if (!_ent) \ | 1773 | 8.54k | return DWG_ERR_OUTOFMEM; \ | 1774 | 8.54k | _ent->tio.token \ | 1775 | 8.54k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 8.54k | if (!_ent->tio.token) \ | 1777 | 8.54k | return DWG_ERR_OUTOFMEM; \ | 1778 | 8.54k | _ent->dwg = obj->parent; \ | 1779 | 8.54k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 8.54k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 8.54k | return 0; \ | 1782 | 8.54k | } \ |
Line | Count | Source | 1721 | 4.48k | { \ | 1722 | 4.48k | Dwg_Object_Entity *_ent; \ | 1723 | 4.48k | Dwg_Entity_##token *_obj; \ | 1724 | 4.48k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 4.48k | && obj->parent->header.version < R_13b1) \ | 1726 | 4.48k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 4.48k | else \ | 1728 | 4.48k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 4.48k | obj->parent->num_entities++; \ | 1730 | 4.48k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 4.48k | if (!(int)obj->fixedtype) \ | 1732 | 4.48k | { \ | 1733 | 4.48k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 4.48k | } \ | 1735 | 4.48k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 4.48k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 4.48k | if (!obj->dxfname) \ | 1740 | 4.48k | { \ | 1741 | 4.48k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 4.48k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 4.48k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 4.48k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 4.48k | else \ | 1749 | 4.48k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 4.48k | } \ | 1751 | 4.48k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 4.48k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 4.48k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 4.48k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 4.48k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 4.48k | _ent = obj->tio.entity \ | 1771 | 4.48k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 4.48k | if (!_ent) \ | 1773 | 4.48k | return DWG_ERR_OUTOFMEM; \ | 1774 | 4.48k | _ent->tio.token \ | 1775 | 4.48k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 4.48k | if (!_ent->tio.token) \ | 1777 | 4.48k | return DWG_ERR_OUTOFMEM; \ | 1778 | 4.48k | _ent->dwg = obj->parent; \ | 1779 | 4.48k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 4.48k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 4.48k | return 0; \ | 1782 | 4.48k | } \ |
Line | Count | Source | 1721 | 18.6k | { \ | 1722 | 18.6k | Dwg_Object_Entity *_ent; \ | 1723 | 18.6k | Dwg_Entity_##token *_obj; \ | 1724 | 18.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 18.6k | && obj->parent->header.version < R_13b1) \ | 1726 | 18.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 18.6k | else \ | 1728 | 18.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 18.6k | obj->parent->num_entities++; \ | 1730 | 18.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 18.6k | if (!(int)obj->fixedtype) \ | 1732 | 18.6k | { \ | 1733 | 18.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 18.6k | } \ | 1735 | 18.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 18.6k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 18.6k | if (!obj->dxfname) \ | 1740 | 18.6k | { \ | 1741 | 18.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 18.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 18.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 18.6k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 18.6k | else \ | 1749 | 18.6k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 18.6k | } \ | 1751 | 18.6k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 18.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 18.6k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 18.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 18.6k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 18.6k | _ent = obj->tio.entity \ | 1771 | 18.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 18.6k | if (!_ent) \ | 1773 | 18.6k | return DWG_ERR_OUTOFMEM; \ | 1774 | 18.6k | _ent->tio.token \ | 1775 | 18.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 18.6k | if (!_ent->tio.token) \ | 1777 | 18.6k | return DWG_ERR_OUTOFMEM; \ | 1778 | 18.6k | _ent->dwg = obj->parent; \ | 1779 | 18.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 18.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 18.6k | return 0; \ | 1782 | 18.6k | } \ |
Line | Count | Source | 1721 | 11.6k | { \ | 1722 | 11.6k | Dwg_Object_Entity *_ent; \ | 1723 | 11.6k | Dwg_Entity_##token *_obj; \ | 1724 | 11.6k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 11.6k | && obj->parent->header.version < R_13b1) \ | 1726 | 11.6k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 11.6k | else \ | 1728 | 11.6k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 11.6k | obj->parent->num_entities++; \ | 1730 | 11.6k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 11.6k | if (!(int)obj->fixedtype) \ | 1732 | 11.6k | { \ | 1733 | 11.6k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 11.6k | } \ | 1735 | 11.6k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 11.6k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 11.6k | if (!obj->dxfname) \ | 1740 | 11.6k | { \ | 1741 | 11.6k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 11.6k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 11.6k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 11.6k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 11.6k | else \ | 1749 | 11.6k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 11.6k | } \ | 1751 | 11.6k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 11.6k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 11.6k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 11.6k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 11.6k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 11.6k | _ent = obj->tio.entity \ | 1771 | 11.6k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 11.6k | if (!_ent) \ | 1773 | 11.6k | return DWG_ERR_OUTOFMEM; \ | 1774 | 11.6k | _ent->tio.token \ | 1775 | 11.6k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 11.6k | if (!_ent->tio.token) \ | 1777 | 11.6k | return DWG_ERR_OUTOFMEM; \ | 1778 | 11.6k | _ent->dwg = obj->parent; \ | 1779 | 11.6k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 11.6k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 11.6k | return 0; \ | 1782 | 11.6k | } \ |
dwg_setup_VERTEX_PFACE_FACE Line | Count | Source | 1721 | 2.69k | { \ | 1722 | 2.69k | Dwg_Object_Entity *_ent; \ | 1723 | 2.69k | Dwg_Entity_##token *_obj; \ | 1724 | 2.69k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 2.69k | && obj->parent->header.version < R_13b1) \ | 1726 | 2.69k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 2.69k | else \ | 1728 | 2.69k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 2.69k | obj->parent->num_entities++; \ | 1730 | 2.69k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 2.69k | if (!(int)obj->fixedtype) \ | 1732 | 2.69k | { \ | 1733 | 2.69k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 2.69k | } \ | 1735 | 2.69k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 2.69k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 2.69k | if (!obj->dxfname) \ | 1740 | 2.69k | { \ | 1741 | 2.69k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 2.69k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 2.69k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 2.69k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 2.69k | else \ | 1749 | 2.69k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 2.69k | } \ | 1751 | 2.69k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 2.69k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 2.69k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 2.69k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 2.69k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 2.69k | _ent = obj->tio.entity \ | 1771 | 2.69k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 2.69k | if (!_ent) \ | 1773 | 2.69k | return DWG_ERR_OUTOFMEM; \ | 1774 | 2.69k | _ent->tio.token \ | 1775 | 2.69k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 2.69k | if (!_ent->tio.token) \ | 1777 | 2.69k | return DWG_ERR_OUTOFMEM; \ | 1778 | 2.69k | _ent->dwg = obj->parent; \ | 1779 | 2.69k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 2.69k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 2.69k | return 0; \ | 1782 | 2.69k | } \ |
Line | Count | Source | 1721 | 7.91k | { \ | 1722 | 7.91k | Dwg_Object_Entity *_ent; \ | 1723 | 7.91k | Dwg_Entity_##token *_obj; \ | 1724 | 7.91k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 7.91k | && obj->parent->header.version < R_13b1) \ | 1726 | 7.91k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 7.91k | else \ | 1728 | 7.91k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 7.91k | obj->parent->num_entities++; \ | 1730 | 7.91k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 7.91k | if (!(int)obj->fixedtype) \ | 1732 | 7.91k | { \ | 1733 | 7.91k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 7.91k | } \ | 1735 | 7.91k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 7.91k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 7.91k | if (!obj->dxfname) \ | 1740 | 7.91k | { \ | 1741 | 7.91k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 7.91k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 7.91k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 7.91k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 7.91k | else \ | 1749 | 7.91k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 7.91k | } \ | 1751 | 7.91k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 7.91k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 7.91k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 7.91k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 7.91k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 7.91k | _ent = obj->tio.entity \ | 1771 | 7.91k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 7.91k | if (!_ent) \ | 1773 | 7.91k | return DWG_ERR_OUTOFMEM; \ | 1774 | 7.91k | _ent->tio.token \ | 1775 | 7.91k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 7.91k | if (!_ent->tio.token) \ | 1777 | 7.91k | return DWG_ERR_OUTOFMEM; \ | 1778 | 7.91k | _ent->dwg = obj->parent; \ | 1779 | 7.91k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 7.91k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 7.91k | return 0; \ | 1782 | 7.91k | } \ |
Line | Count | Source | 1721 | 15.9k | { \ | 1722 | 15.9k | Dwg_Object_Entity *_ent; \ | 1723 | 15.9k | Dwg_Entity_##token *_obj; \ | 1724 | 15.9k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 15.9k | && obj->parent->header.version < R_13b1) \ | 1726 | 15.9k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 15.9k | else \ | 1728 | 15.9k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 15.9k | obj->parent->num_entities++; \ | 1730 | 15.9k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 15.9k | if (!(int)obj->fixedtype) \ | 1732 | 15.9k | { \ | 1733 | 15.9k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 15.9k | } \ | 1735 | 15.9k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 15.9k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 15.9k | if (!obj->dxfname) \ | 1740 | 15.9k | { \ | 1741 | 15.9k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 15.9k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 15.9k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 15.9k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 15.9k | else \ | 1749 | 15.9k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 15.9k | } \ | 1751 | 15.9k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 15.9k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 15.9k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 15.9k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 15.9k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 15.9k | _ent = obj->tio.entity \ | 1771 | 15.9k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 15.9k | if (!_ent) \ | 1773 | 15.9k | return DWG_ERR_OUTOFMEM; \ | 1774 | 15.9k | _ent->tio.token \ | 1775 | 15.9k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 15.9k | if (!_ent->tio.token) \ | 1777 | 15.9k | return DWG_ERR_OUTOFMEM; \ | 1778 | 15.9k | _ent->dwg = obj->parent; \ | 1779 | 15.9k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 15.9k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 15.9k | return 0; \ | 1782 | 15.9k | } \ |
Line | Count | Source | 1721 | 14.4k | { \ | 1722 | 14.4k | Dwg_Object_Entity *_ent; \ | 1723 | 14.4k | Dwg_Entity_##token *_obj; \ | 1724 | 14.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 14.4k | && obj->parent->header.version < R_13b1) \ | 1726 | 14.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 14.4k | else \ | 1728 | 14.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 14.4k | obj->parent->num_entities++; \ | 1730 | 14.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 14.4k | if (!(int)obj->fixedtype) \ | 1732 | 14.4k | { \ | 1733 | 14.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 14.4k | } \ | 1735 | 14.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 14.4k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 14.4k | if (!obj->dxfname) \ | 1740 | 14.4k | { \ | 1741 | 14.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 14.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 14.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 14.4k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 14.4k | else \ | 1749 | 14.4k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 14.4k | } \ | 1751 | 14.4k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 14.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 14.4k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 14.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 14.4k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 14.4k | _ent = obj->tio.entity \ | 1771 | 14.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 14.4k | if (!_ent) \ | 1773 | 14.4k | return DWG_ERR_OUTOFMEM; \ | 1774 | 14.4k | _ent->tio.token \ | 1775 | 14.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 14.4k | if (!_ent->tio.token) \ | 1777 | 14.4k | return DWG_ERR_OUTOFMEM; \ | 1778 | 14.4k | _ent->dwg = obj->parent; \ | 1779 | 14.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 14.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 14.4k | return 0; \ | 1782 | 14.4k | } \ |
Line | Count | Source | 1721 | 4.19k | { \ | 1722 | 4.19k | Dwg_Object_Entity *_ent; \ | 1723 | 4.19k | Dwg_Entity_##token *_obj; \ | 1724 | 4.19k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 4.19k | && obj->parent->header.version < R_13b1) \ | 1726 | 4.19k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 4.19k | else \ | 1728 | 4.19k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 4.19k | obj->parent->num_entities++; \ | 1730 | 4.19k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 4.19k | if (!(int)obj->fixedtype) \ | 1732 | 4.19k | { \ | 1733 | 4.19k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 4.19k | } \ | 1735 | 4.19k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 4.19k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 4.19k | if (!obj->dxfname) \ | 1740 | 4.19k | { \ | 1741 | 4.19k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 4.19k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 4.19k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 4.19k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 4.19k | else \ | 1749 | 4.19k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 4.19k | } \ | 1751 | 4.19k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 4.19k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 4.19k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 4.19k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 4.19k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 4.19k | _ent = obj->tio.entity \ | 1771 | 4.19k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 4.19k | if (!_ent) \ | 1773 | 4.19k | return DWG_ERR_OUTOFMEM; \ | 1774 | 4.19k | _ent->tio.token \ | 1775 | 4.19k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 4.19k | if (!_ent->tio.token) \ | 1777 | 4.19k | return DWG_ERR_OUTOFMEM; \ | 1778 | 4.19k | _ent->dwg = obj->parent; \ | 1779 | 4.19k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 4.19k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 4.19k | return 0; \ | 1782 | 4.19k | } \ |
Line | Count | Source | 1721 | 14.8k | { \ | 1722 | 14.8k | Dwg_Object_Entity *_ent; \ | 1723 | 14.8k | Dwg_Entity_##token *_obj; \ | 1724 | 14.8k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 14.8k | && obj->parent->header.version < R_13b1) \ | 1726 | 14.8k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 14.8k | else \ | 1728 | 14.8k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 14.8k | obj->parent->num_entities++; \ | 1730 | 14.8k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 14.8k | if (!(int)obj->fixedtype) \ | 1732 | 14.8k | { \ | 1733 | 14.8k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 14.8k | } \ | 1735 | 14.8k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 14.8k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 14.8k | if (!obj->dxfname) \ | 1740 | 14.8k | { \ | 1741 | 14.8k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 14.8k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 14.8k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 14.8k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 14.8k | else \ | 1749 | 14.8k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 14.8k | } \ | 1751 | 14.8k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 14.8k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 14.8k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 14.8k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 14.8k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 14.8k | _ent = obj->tio.entity \ | 1771 | 14.8k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 14.8k | if (!_ent) \ | 1773 | 14.8k | return DWG_ERR_OUTOFMEM; \ | 1774 | 14.8k | _ent->tio.token \ | 1775 | 14.8k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 14.8k | if (!_ent->tio.token) \ | 1777 | 14.8k | return DWG_ERR_OUTOFMEM; \ | 1778 | 14.8k | _ent->dwg = obj->parent; \ | 1779 | 14.8k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 14.8k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 14.8k | return 0; \ | 1782 | 14.8k | } \ |
dwg_setup_DIMENSION_ORDINATE Line | Count | Source | 1721 | 13.3k | { \ | 1722 | 13.3k | Dwg_Object_Entity *_ent; \ | 1723 | 13.3k | Dwg_Entity_##token *_obj; \ | 1724 | 13.3k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 13.3k | && obj->parent->header.version < R_13b1) \ | 1726 | 13.3k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 13.3k | else \ | 1728 | 13.3k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 13.3k | obj->parent->num_entities++; \ | 1730 | 13.3k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 13.3k | if (!(int)obj->fixedtype) \ | 1732 | 13.3k | { \ | 1733 | 13.3k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 13.3k | } \ | 1735 | 13.3k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 13.3k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 13.3k | if (!obj->dxfname) \ | 1740 | 13.3k | { \ | 1741 | 13.3k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 13.3k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 13.3k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 13.3k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 13.3k | else \ | 1749 | 13.3k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 13.3k | } \ | 1751 | 13.3k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 13.3k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 13.3k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 13.3k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 13.3k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 13.3k | _ent = obj->tio.entity \ | 1771 | 13.3k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 13.3k | if (!_ent) \ | 1773 | 13.3k | return DWG_ERR_OUTOFMEM; \ | 1774 | 13.3k | _ent->tio.token \ | 1775 | 13.3k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 13.3k | if (!_ent->tio.token) \ | 1777 | 13.3k | return DWG_ERR_OUTOFMEM; \ | 1778 | 13.3k | _ent->dwg = obj->parent; \ | 1779 | 13.3k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 13.3k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 13.3k | return 0; \ | 1782 | 13.3k | } \ |
dwg_setup_DIMENSION_LINEAR Line | Count | Source | 1721 | 20.9k | { \ | 1722 | 20.9k | Dwg_Object_Entity *_ent; \ | 1723 | 20.9k | Dwg_Entity_##token *_obj; \ | 1724 | 20.9k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 20.9k | && obj->parent->header.version < R_13b1) \ | 1726 | 20.9k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 20.9k | else \ | 1728 | 20.9k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 20.9k | obj->parent->num_entities++; \ | 1730 | 20.9k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 20.9k | if (!(int)obj->fixedtype) \ | 1732 | 20.9k | { \ | 1733 | 20.9k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 20.9k | } \ | 1735 | 20.9k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 20.9k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 20.9k | if (!obj->dxfname) \ | 1740 | 20.9k | { \ | 1741 | 20.9k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 20.9k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 20.9k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 20.9k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 20.9k | else \ | 1749 | 20.9k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 20.9k | } \ | 1751 | 20.9k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 20.9k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 20.9k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 20.9k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 20.9k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 20.9k | _ent = obj->tio.entity \ | 1771 | 20.9k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 20.9k | if (!_ent) \ | 1773 | 20.9k | return DWG_ERR_OUTOFMEM; \ | 1774 | 20.9k | _ent->tio.token \ | 1775 | 20.9k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 20.9k | if (!_ent->tio.token) \ | 1777 | 20.9k | return DWG_ERR_OUTOFMEM; \ | 1778 | 20.9k | _ent->dwg = obj->parent; \ | 1779 | 20.9k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 20.9k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 20.9k | return 0; \ | 1782 | 20.9k | } \ |
dwg_setup_DIMENSION_ALIGNED Line | Count | Source | 1721 | 3.33k | { \ | 1722 | 3.33k | Dwg_Object_Entity *_ent; \ | 1723 | 3.33k | Dwg_Entity_##token *_obj; \ | 1724 | 3.33k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 3.33k | && obj->parent->header.version < R_13b1) \ | 1726 | 3.33k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 3.33k | else \ | 1728 | 3.33k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 3.33k | obj->parent->num_entities++; \ | 1730 | 3.33k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 3.33k | if (!(int)obj->fixedtype) \ | 1732 | 3.33k | { \ | 1733 | 3.33k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 3.33k | } \ | 1735 | 3.33k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 3.33k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 3.33k | if (!obj->dxfname) \ | 1740 | 3.33k | { \ | 1741 | 3.33k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 3.33k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 3.33k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 3.33k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 3.33k | else \ | 1749 | 3.33k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 3.33k | } \ | 1751 | 3.33k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 3.33k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 3.33k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 3.33k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 3.33k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 3.33k | _ent = obj->tio.entity \ | 1771 | 3.33k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 3.33k | if (!_ent) \ | 1773 | 3.33k | return DWG_ERR_OUTOFMEM; \ | 1774 | 3.33k | _ent->tio.token \ | 1775 | 3.33k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 3.33k | if (!_ent->tio.token) \ | 1777 | 3.33k | return DWG_ERR_OUTOFMEM; \ | 1778 | 3.33k | _ent->dwg = obj->parent; \ | 1779 | 3.33k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 3.33k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 3.33k | return 0; \ | 1782 | 3.33k | } \ |
dwg_setup_DIMENSION_ANG3PT Line | Count | Source | 1721 | 4.73k | { \ | 1722 | 4.73k | Dwg_Object_Entity *_ent; \ | 1723 | 4.73k | Dwg_Entity_##token *_obj; \ | 1724 | 4.73k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 4.73k | && obj->parent->header.version < R_13b1) \ | 1726 | 4.73k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 4.73k | else \ | 1728 | 4.73k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 4.73k | obj->parent->num_entities++; \ | 1730 | 4.73k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 4.73k | if (!(int)obj->fixedtype) \ | 1732 | 4.73k | { \ | 1733 | 4.73k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 4.73k | } \ | 1735 | 4.73k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 4.73k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 4.73k | if (!obj->dxfname) \ | 1740 | 4.73k | { \ | 1741 | 4.73k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 4.73k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 4.73k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 4.73k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 4.73k | else \ | 1749 | 4.73k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 4.73k | } \ | 1751 | 4.73k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 4.73k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 4.73k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 4.73k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 4.73k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 4.73k | _ent = obj->tio.entity \ | 1771 | 4.73k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 4.73k | if (!_ent) \ | 1773 | 4.73k | return DWG_ERR_OUTOFMEM; \ | 1774 | 4.73k | _ent->tio.token \ | 1775 | 4.73k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 4.73k | if (!_ent->tio.token) \ | 1777 | 4.73k | return DWG_ERR_OUTOFMEM; \ | 1778 | 4.73k | _ent->dwg = obj->parent; \ | 1779 | 4.73k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 4.73k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 4.73k | return 0; \ | 1782 | 4.73k | } \ |
dwg_setup_DIMENSION_ANG2LN Line | Count | Source | 1721 | 98.4k | { \ | 1722 | 98.4k | Dwg_Object_Entity *_ent; \ | 1723 | 98.4k | Dwg_Entity_##token *_obj; \ | 1724 | 98.4k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 98.4k | && obj->parent->header.version < R_13b1) \ | 1726 | 98.4k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 98.4k | else \ | 1728 | 98.4k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 98.4k | obj->parent->num_entities++; \ | 1730 | 98.4k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 98.4k | if (!(int)obj->fixedtype) \ | 1732 | 98.4k | { \ | 1733 | 98.4k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 98.4k | } \ | 1735 | 98.4k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 98.4k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 98.4k | if (!obj->dxfname) \ | 1740 | 98.4k | { \ | 1741 | 98.4k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 98.4k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 98.4k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 98.4k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 98.4k | else \ | 1749 | 98.4k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 98.4k | } \ | 1751 | 98.4k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 98.4k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 98.4k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 98.4k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 98.4k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 98.4k | _ent = obj->tio.entity \ | 1771 | 98.4k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 98.4k | if (!_ent) \ | 1773 | 98.4k | return DWG_ERR_OUTOFMEM; \ | 1774 | 98.4k | _ent->tio.token \ | 1775 | 98.4k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 98.4k | if (!_ent->tio.token) \ | 1777 | 98.4k | return DWG_ERR_OUTOFMEM; \ | 1778 | 98.4k | _ent->dwg = obj->parent; \ | 1779 | 98.4k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 98.4k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 98.4k | return 0; \ | 1782 | 98.4k | } \ |
dwg_setup_DIMENSION_RADIUS Line | Count | Source | 1721 | 2.66k | { \ | 1722 | 2.66k | Dwg_Object_Entity *_ent; \ | 1723 | 2.66k | Dwg_Entity_##token *_obj; \ | 1724 | 2.66k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 2.66k | && obj->parent->header.version < R_13b1) \ | 1726 | 2.66k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 2.66k | else \ | 1728 | 2.66k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 2.66k | obj->parent->num_entities++; \ | 1730 | 2.66k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 2.66k | if (!(int)obj->fixedtype) \ | 1732 | 2.66k | { \ | 1733 | 2.66k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 2.66k | } \ | 1735 | 2.66k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 2.66k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 2.66k | if (!obj->dxfname) \ | 1740 | 2.66k | { \ | 1741 | 2.66k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 2.66k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 2.66k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 2.66k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 2.66k | else \ | 1749 | 2.66k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 2.66k | } \ | 1751 | 2.66k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 2.66k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 2.66k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 2.66k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 2.66k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 2.66k | _ent = obj->tio.entity \ | 1771 | 2.66k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 2.66k | if (!_ent) \ | 1773 | 2.66k | return DWG_ERR_OUTOFMEM; \ | 1774 | 2.66k | _ent->tio.token \ | 1775 | 2.66k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 2.66k | if (!_ent->tio.token) \ | 1777 | 2.66k | return DWG_ERR_OUTOFMEM; \ | 1778 | 2.66k | _ent->dwg = obj->parent; \ | 1779 | 2.66k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 2.66k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 2.66k | return 0; \ | 1782 | 2.66k | } \ |
dwg_setup_DIMENSION_DIAMETER Line | Count | Source | 1721 | 1.64k | { \ | 1722 | 1.64k | Dwg_Object_Entity *_ent; \ | 1723 | 1.64k | Dwg_Entity_##token *_obj; \ | 1724 | 1.64k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.64k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.64k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.64k | else \ | 1728 | 1.64k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.64k | obj->parent->num_entities++; \ | 1730 | 1.64k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.64k | if (!(int)obj->fixedtype) \ | 1732 | 1.64k | { \ | 1733 | 1.64k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.64k | } \ | 1735 | 1.64k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.64k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.64k | if (!obj->dxfname) \ | 1740 | 1.64k | { \ | 1741 | 1.64k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.64k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.64k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 1.64k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 1.64k | else \ | 1749 | 1.64k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.64k | } \ | 1751 | 1.64k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.64k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.64k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.64k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.64k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.64k | _ent = obj->tio.entity \ | 1771 | 1.64k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.64k | if (!_ent) \ | 1773 | 1.64k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.64k | _ent->tio.token \ | 1775 | 1.64k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.64k | if (!_ent->tio.token) \ | 1777 | 1.64k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.64k | _ent->dwg = obj->parent; \ | 1779 | 1.64k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.64k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.64k | return 0; \ | 1782 | 1.64k | } \ |
Unexecuted instantiation: dwg_setup_LARGE_RADIAL_DIMENSION Line | Count | Source | 1721 | 5.93k | { \ | 1722 | 5.93k | Dwg_Object_Entity *_ent; \ | 1723 | 5.93k | Dwg_Entity_##token *_obj; \ | 1724 | 5.93k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 5.93k | && obj->parent->header.version < R_13b1) \ | 1726 | 5.93k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 5.93k | else \ | 1728 | 5.93k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 5.93k | obj->parent->num_entities++; \ | 1730 | 5.93k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 5.93k | if (!(int)obj->fixedtype) \ | 1732 | 5.93k | { \ | 1733 | 5.93k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 5.93k | } \ | 1735 | 5.93k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 5.93k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 5.93k | if (!obj->dxfname) \ | 1740 | 5.93k | { \ | 1741 | 5.93k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 5.93k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 5.93k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 5.93k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 5.93k | else \ | 1749 | 5.93k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 5.93k | } \ | 1751 | 5.93k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 5.93k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 5.93k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 5.93k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 5.93k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 5.93k | _ent = obj->tio.entity \ | 1771 | 5.93k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 5.93k | if (!_ent) \ | 1773 | 5.93k | return DWG_ERR_OUTOFMEM; \ | 1774 | 5.93k | _ent->tio.token \ | 1775 | 5.93k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 5.93k | if (!_ent->tio.token) \ | 1777 | 5.93k | return DWG_ERR_OUTOFMEM; \ | 1778 | 5.93k | _ent->dwg = obj->parent; \ | 1779 | 5.93k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 5.93k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 5.93k | return 0; \ | 1782 | 5.93k | } \ |
Line | Count | Source | 1721 | 14.3k | { \ | 1722 | 14.3k | Dwg_Object_Entity *_ent; \ | 1723 | 14.3k | Dwg_Entity_##token *_obj; \ | 1724 | 14.3k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 14.3k | && obj->parent->header.version < R_13b1) \ | 1726 | 14.3k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 14.3k | else \ | 1728 | 14.3k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 14.3k | obj->parent->num_entities++; \ | 1730 | 14.3k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 14.3k | if (!(int)obj->fixedtype) \ | 1732 | 14.3k | { \ | 1733 | 14.3k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 14.3k | } \ | 1735 | 14.3k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 14.3k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 14.3k | if (!obj->dxfname) \ | 1740 | 14.3k | { \ | 1741 | 14.3k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 14.3k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 14.3k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 0 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 0 | else \ | 1749 | 0 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 14.3k | } \ | 1751 | 14.3k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 14.3k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 14.3k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 14.3k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 14.3k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 14.3k | _ent = obj->tio.entity \ | 1771 | 14.3k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 14.3k | if (!_ent) \ | 1773 | 14.3k | return DWG_ERR_OUTOFMEM; \ | 1774 | 14.3k | _ent->tio.token \ | 1775 | 14.3k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 14.3k | if (!_ent->tio.token) \ | 1777 | 14.3k | return DWG_ERR_OUTOFMEM; \ | 1778 | 14.3k | _ent->dwg = obj->parent; \ | 1779 | 14.3k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 14.3k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 14.3k | return 0; \ | 1782 | 14.3k | } \ |
Line | Count | Source | 1721 | 9.33k | { \ | 1722 | 9.33k | Dwg_Object_Entity *_ent; \ | 1723 | 9.33k | Dwg_Entity_##token *_obj; \ | 1724 | 9.33k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 9.33k | && obj->parent->header.version < R_13b1) \ | 1726 | 9.33k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 9.33k | else \ | 1728 | 9.33k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 9.33k | obj->parent->num_entities++; \ | 1730 | 9.33k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 9.33k | if (!(int)obj->fixedtype) \ | 1732 | 9.33k | { \ | 1733 | 9.33k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 9.33k | } \ | 1735 | 9.33k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 9.33k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 9.33k | if (!obj->dxfname) \ | 1740 | 9.33k | { \ | 1741 | 9.33k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 9.33k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 9.33k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 9.33k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 9.33k | else \ | 1749 | 9.33k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 9.33k | } \ | 1751 | 9.33k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 9.33k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 9.33k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 9.33k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 9.33k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 9.33k | _ent = obj->tio.entity \ | 1771 | 9.33k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 9.33k | if (!_ent) \ | 1773 | 9.33k | return DWG_ERR_OUTOFMEM; \ | 1774 | 9.33k | _ent->tio.token \ | 1775 | 9.33k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 9.33k | if (!_ent->tio.token) \ | 1777 | 9.33k | return DWG_ERR_OUTOFMEM; \ | 1778 | 9.33k | _ent->dwg = obj->parent; \ | 1779 | 9.33k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 9.33k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 9.33k | return 0; \ | 1782 | 9.33k | } \ |
Line | Count | Source | 1721 | 5.02k | { \ | 1722 | 5.02k | Dwg_Object_Entity *_ent; \ | 1723 | 5.02k | Dwg_Entity_##token *_obj; \ | 1724 | 5.02k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 5.02k | && obj->parent->header.version < R_13b1) \ | 1726 | 5.02k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 5.02k | else \ | 1728 | 5.02k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 5.02k | obj->parent->num_entities++; \ | 1730 | 5.02k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 5.02k | if (!(int)obj->fixedtype) \ | 1732 | 5.02k | { \ | 1733 | 5.02k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 5.02k | } \ | 1735 | 5.02k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 5.02k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 5.02k | if (!obj->dxfname) \ | 1740 | 5.02k | { \ | 1741 | 5.02k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 5.02k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 5.02k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 5.02k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 5.02k | else \ | 1749 | 5.02k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 5.02k | } \ | 1751 | 5.02k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 5.02k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 5.02k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 5.02k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 5.02k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 5.02k | _ent = obj->tio.entity \ | 1771 | 5.02k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 5.02k | if (!_ent) \ | 1773 | 5.02k | return DWG_ERR_OUTOFMEM; \ | 1774 | 5.02k | _ent->tio.token \ | 1775 | 5.02k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 5.02k | if (!_ent->tio.token) \ | 1777 | 5.02k | return DWG_ERR_OUTOFMEM; \ | 1778 | 5.02k | _ent->dwg = obj->parent; \ | 1779 | 5.02k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 5.02k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 5.02k | return 0; \ | 1782 | 5.02k | } \ |
Line | Count | Source | 1721 | 7.55k | { \ | 1722 | 7.55k | Dwg_Object_Entity *_ent; \ | 1723 | 7.55k | Dwg_Entity_##token *_obj; \ | 1724 | 7.55k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 7.55k | && obj->parent->header.version < R_13b1) \ | 1726 | 7.55k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 7.55k | else \ | 1728 | 7.55k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 7.55k | obj->parent->num_entities++; \ | 1730 | 7.55k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 7.55k | if (!(int)obj->fixedtype) \ | 1732 | 7.55k | { \ | 1733 | 7.55k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 7.55k | } \ | 1735 | 7.55k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 7.55k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 7.55k | if (!obj->dxfname) \ | 1740 | 7.55k | { \ | 1741 | 7.55k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 7.55k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 7.55k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 7.55k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 7.55k | else \ | 1749 | 7.55k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 7.55k | } \ | 1751 | 7.55k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 7.55k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 7.55k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 7.55k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 7.55k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 7.55k | _ent = obj->tio.entity \ | 1771 | 7.55k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 7.55k | if (!_ent) \ | 1773 | 7.55k | return DWG_ERR_OUTOFMEM; \ | 1774 | 7.55k | _ent->tio.token \ | 1775 | 7.55k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 7.55k | if (!_ent->tio.token) \ | 1777 | 7.55k | return DWG_ERR_OUTOFMEM; \ | 1778 | 7.55k | _ent->dwg = obj->parent; \ | 1779 | 7.55k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 7.55k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 7.55k | return 0; \ | 1782 | 7.55k | } \ |
Line | Count | Source | 1721 | 14.5k | { \ | 1722 | 14.5k | Dwg_Object_Entity *_ent; \ | 1723 | 14.5k | Dwg_Entity_##token *_obj; \ | 1724 | 14.5k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 14.5k | && obj->parent->header.version < R_13b1) \ | 1726 | 14.5k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 14.5k | else \ | 1728 | 14.5k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 14.5k | obj->parent->num_entities++; \ | 1730 | 14.5k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 14.5k | if (!(int)obj->fixedtype) \ | 1732 | 14.5k | { \ | 1733 | 14.5k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 14.5k | } \ | 1735 | 14.5k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 14.5k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 14.5k | if (!obj->dxfname) \ | 1740 | 14.5k | { \ | 1741 | 14.5k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 14.5k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 14.5k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 14.5k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 14.5k | else \ | 1749 | 14.5k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 14.5k | } \ | 1751 | 14.5k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 14.5k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 14.5k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 14.5k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 14.5k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 14.5k | _ent = obj->tio.entity \ | 1771 | 14.5k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 14.5k | if (!_ent) \ | 1773 | 14.5k | return DWG_ERR_OUTOFMEM; \ | 1774 | 14.5k | _ent->tio.token \ | 1775 | 14.5k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 14.5k | if (!_ent->tio.token) \ | 1777 | 14.5k | return DWG_ERR_OUTOFMEM; \ | 1778 | 14.5k | _ent->dwg = obj->parent; \ | 1779 | 14.5k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 14.5k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 14.5k | return 0; \ | 1782 | 14.5k | } \ |
Line | Count | Source | 1721 | 4.17k | { \ | 1722 | 4.17k | Dwg_Object_Entity *_ent; \ | 1723 | 4.17k | Dwg_Entity_##token *_obj; \ | 1724 | 4.17k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 4.17k | && obj->parent->header.version < R_13b1) \ | 1726 | 4.17k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 4.17k | else \ | 1728 | 4.17k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 4.17k | obj->parent->num_entities++; \ | 1730 | 4.17k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 4.17k | if (!(int)obj->fixedtype) \ | 1732 | 4.17k | { \ | 1733 | 4.17k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 4.17k | } \ | 1735 | 4.17k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 4.17k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 4.17k | if (!obj->dxfname) \ | 1740 | 4.17k | { \ | 1741 | 4.17k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 4.17k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 4.17k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 4.17k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 4.17k | else \ | 1749 | 4.17k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 4.17k | } \ | 1751 | 4.17k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 4.17k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 4.17k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 4.17k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 4.17k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 4.17k | _ent = obj->tio.entity \ | 1771 | 4.17k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 4.17k | if (!_ent) \ | 1773 | 4.17k | return DWG_ERR_OUTOFMEM; \ | 1774 | 4.17k | _ent->tio.token \ | 1775 | 4.17k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 4.17k | if (!_ent->tio.token) \ | 1777 | 4.17k | return DWG_ERR_OUTOFMEM; \ | 1778 | 4.17k | _ent->dwg = obj->parent; \ | 1779 | 4.17k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 4.17k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 4.17k | return 0; \ | 1782 | 4.17k | } \ |
Line | Count | Source | 1721 | 3.22k | { \ | 1722 | 3.22k | Dwg_Object_Entity *_ent; \ | 1723 | 3.22k | Dwg_Entity_##token *_obj; \ | 1724 | 3.22k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 3.22k | && obj->parent->header.version < R_13b1) \ | 1726 | 3.22k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 3.22k | else \ | 1728 | 3.22k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 3.22k | obj->parent->num_entities++; \ | 1730 | 3.22k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 3.22k | if (!(int)obj->fixedtype) \ | 1732 | 3.22k | { \ | 1733 | 3.22k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 3.22k | } \ | 1735 | 3.22k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 3.22k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 3.22k | if (!obj->dxfname) \ | 1740 | 3.22k | { \ | 1741 | 3.22k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 3.22k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 3.22k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 3.22k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 3.22k | else \ | 1749 | 3.22k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 3.22k | } \ | 1751 | 3.22k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 3.22k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 3.22k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 3.22k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 3.22k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 3.22k | _ent = obj->tio.entity \ | 1771 | 3.22k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 3.22k | if (!_ent) \ | 1773 | 3.22k | return DWG_ERR_OUTOFMEM; \ | 1774 | 3.22k | _ent->tio.token \ | 1775 | 3.22k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 3.22k | if (!_ent->tio.token) \ | 1777 | 3.22k | return DWG_ERR_OUTOFMEM; \ | 1778 | 3.22k | _ent->dwg = obj->parent; \ | 1779 | 3.22k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 3.22k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 3.22k | return 0; \ | 1782 | 3.22k | } \ |
Line | Count | Source | 1721 | 649 | { \ | 1722 | 649 | Dwg_Object_Entity *_ent; \ | 1723 | 649 | Dwg_Entity_##token *_obj; \ | 1724 | 649 | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 649 | && obj->parent->header.version < R_13b1) \ | 1726 | 649 | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 649 | else \ | 1728 | 649 | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 649 | obj->parent->num_entities++; \ | 1730 | 649 | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 649 | if (!(int)obj->fixedtype) \ | 1732 | 649 | { \ | 1733 | 649 | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 649 | } \ | 1735 | 649 | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 649 | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 649 | if (!obj->dxfname) \ | 1740 | 649 | { \ | 1741 | 649 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 649 | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 649 | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 649 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 649 | else \ | 1749 | 649 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 649 | } \ | 1751 | 649 | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 649 | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 649 | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 649 | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 649 | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 649 | _ent = obj->tio.entity \ | 1771 | 649 | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 649 | if (!_ent) \ | 1773 | 649 | return DWG_ERR_OUTOFMEM; \ | 1774 | 649 | _ent->tio.token \ | 1775 | 649 | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 649 | if (!_ent->tio.token) \ | 1777 | 649 | return DWG_ERR_OUTOFMEM; \ | 1778 | 649 | _ent->dwg = obj->parent; \ | 1779 | 649 | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 649 | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 649 | return 0; \ | 1782 | 649 | } \ |
Line | Count | Source | 1721 | 7.22k | { \ | 1722 | 7.22k | Dwg_Object_Entity *_ent; \ | 1723 | 7.22k | Dwg_Entity_##token *_obj; \ | 1724 | 7.22k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 7.22k | && obj->parent->header.version < R_13b1) \ | 1726 | 7.22k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 7.22k | else \ | 1728 | 7.22k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 7.22k | obj->parent->num_entities++; \ | 1730 | 7.22k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 7.22k | if (!(int)obj->fixedtype) \ | 1732 | 7.22k | { \ | 1733 | 7.22k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 7.22k | } \ | 1735 | 7.22k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 7.22k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 7.22k | if (!obj->dxfname) \ | 1740 | 7.22k | { \ | 1741 | 7.22k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 7.22k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 7.22k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 7.22k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 7.22k | else \ | 1749 | 7.22k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 7.22k | } \ | 1751 | 7.22k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 7.22k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 7.22k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 7.22k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 7.22k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 7.22k | _ent = obj->tio.entity \ | 1771 | 7.22k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 7.22k | if (!_ent) \ | 1773 | 7.22k | return DWG_ERR_OUTOFMEM; \ | 1774 | 7.22k | _ent->tio.token \ | 1775 | 7.22k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 7.22k | if (!_ent->tio.token) \ | 1777 | 7.22k | return DWG_ERR_OUTOFMEM; \ | 1778 | 7.22k | _ent->dwg = obj->parent; \ | 1779 | 7.22k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 7.22k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 7.22k | return 0; \ | 1782 | 7.22k | } \ |
Line | Count | Source | 1721 | 12.2k | { \ | 1722 | 12.2k | Dwg_Object_Entity *_ent; \ | 1723 | 12.2k | Dwg_Entity_##token *_obj; \ | 1724 | 12.2k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 12.2k | && obj->parent->header.version < R_13b1) \ | 1726 | 12.2k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 12.2k | else \ | 1728 | 12.2k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 12.2k | obj->parent->num_entities++; \ | 1730 | 12.2k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 12.2k | if (!(int)obj->fixedtype) \ | 1732 | 12.2k | { \ | 1733 | 12.2k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 12.2k | } \ | 1735 | 12.2k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 12.2k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 12.2k | if (!obj->dxfname) \ | 1740 | 12.2k | { \ | 1741 | 12.2k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 12.2k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 12.2k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 12.2k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 12.2k | else \ | 1749 | 12.2k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 12.2k | } \ | 1751 | 12.2k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 12.2k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 12.2k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 12.2k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 12.2k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 12.2k | _ent = obj->tio.entity \ | 1771 | 12.2k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 12.2k | if (!_ent) \ | 1773 | 12.2k | return DWG_ERR_OUTOFMEM; \ | 1774 | 12.2k | _ent->tio.token \ | 1775 | 12.2k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 12.2k | if (!_ent->tio.token) \ | 1777 | 12.2k | return DWG_ERR_OUTOFMEM; \ | 1778 | 12.2k | _ent->dwg = obj->parent; \ | 1779 | 12.2k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 12.2k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 12.2k | return 0; \ | 1782 | 12.2k | } \ |
Line | Count | Source | 1721 | 1.13k | { \ | 1722 | 1.13k | Dwg_Object_Entity *_ent; \ | 1723 | 1.13k | Dwg_Entity_##token *_obj; \ | 1724 | 1.13k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.13k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.13k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.13k | else \ | 1728 | 1.13k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.13k | obj->parent->num_entities++; \ | 1730 | 1.13k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.13k | if (!(int)obj->fixedtype) \ | 1732 | 1.13k | { \ | 1733 | 1.13k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.13k | } \ | 1735 | 1.13k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.13k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.13k | if (!obj->dxfname) \ | 1740 | 1.13k | { \ | 1741 | 1.13k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.13k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.13k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 0 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 0 | else \ | 1749 | 0 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.13k | } \ | 1751 | 1.13k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.13k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.13k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.13k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.13k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.13k | _ent = obj->tio.entity \ | 1771 | 1.13k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.13k | if (!_ent) \ | 1773 | 1.13k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.13k | _ent->tio.token \ | 1775 | 1.13k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.13k | if (!_ent->tio.token) \ | 1777 | 1.13k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.13k | _ent->dwg = obj->parent; \ | 1779 | 1.13k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.13k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.13k | return 0; \ | 1782 | 1.13k | } \ |
Line | Count | Source | 1721 | 1.96k | { \ | 1722 | 1.96k | Dwg_Object_Entity *_ent; \ | 1723 | 1.96k | Dwg_Entity_##token *_obj; \ | 1724 | 1.96k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.96k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.96k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.96k | else \ | 1728 | 1.96k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.96k | obj->parent->num_entities++; \ | 1730 | 1.96k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.96k | if (!(int)obj->fixedtype) \ | 1732 | 1.96k | { \ | 1733 | 1.96k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.96k | } \ | 1735 | 1.96k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.96k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.96k | if (!obj->dxfname) \ | 1740 | 1.96k | { \ | 1741 | 1.96k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.96k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.96k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 1.96k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 1.96k | else \ | 1749 | 1.96k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.96k | } \ | 1751 | 1.96k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.96k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.96k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.96k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.96k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.96k | _ent = obj->tio.entity \ | 1771 | 1.96k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.96k | if (!_ent) \ | 1773 | 1.96k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.96k | _ent->tio.token \ | 1775 | 1.96k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.96k | if (!_ent->tio.token) \ | 1777 | 1.96k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.96k | _ent->dwg = obj->parent; \ | 1779 | 1.96k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.96k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.96k | return 0; \ | 1782 | 1.96k | } \ |
Line | Count | Source | 1721 | 2.93k | { \ | 1722 | 2.93k | Dwg_Object_Entity *_ent; \ | 1723 | 2.93k | Dwg_Entity_##token *_obj; \ | 1724 | 2.93k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 2.93k | && obj->parent->header.version < R_13b1) \ | 1726 | 2.93k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 2.93k | else \ | 1728 | 2.93k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 2.93k | obj->parent->num_entities++; \ | 1730 | 2.93k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 2.93k | if (!(int)obj->fixedtype) \ | 1732 | 2.93k | { \ | 1733 | 2.93k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 2.93k | } \ | 1735 | 2.93k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 2.93k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 2.93k | if (!obj->dxfname) \ | 1740 | 2.93k | { \ | 1741 | 2.93k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 2.93k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 2.93k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 2.93k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 2.93k | else \ | 1749 | 2.93k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 2.93k | } \ | 1751 | 2.93k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 2.93k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 2.93k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 2.93k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 2.93k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 2.93k | _ent = obj->tio.entity \ | 1771 | 2.93k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 2.93k | if (!_ent) \ | 1773 | 2.93k | return DWG_ERR_OUTOFMEM; \ | 1774 | 2.93k | _ent->tio.token \ | 1775 | 2.93k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 2.93k | if (!_ent->tio.token) \ | 1777 | 2.93k | return DWG_ERR_OUTOFMEM; \ | 1778 | 2.93k | _ent->dwg = obj->parent; \ | 1779 | 2.93k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 2.93k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 2.93k | return 0; \ | 1782 | 2.93k | } \ |
Line | Count | Source | 1721 | 1.37k | { \ | 1722 | 1.37k | Dwg_Object_Entity *_ent; \ | 1723 | 1.37k | Dwg_Entity_##token *_obj; \ | 1724 | 1.37k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.37k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.37k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.37k | else \ | 1728 | 1.37k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.37k | obj->parent->num_entities++; \ | 1730 | 1.37k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.37k | if (!(int)obj->fixedtype) \ | 1732 | 1.37k | { \ | 1733 | 1.37k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.37k | } \ | 1735 | 1.37k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.37k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.37k | if (!obj->dxfname) \ | 1740 | 1.37k | { \ | 1741 | 1.37k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.37k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.37k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 1.37k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 1.37k | else \ | 1749 | 1.37k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.37k | } \ | 1751 | 1.37k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.37k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.37k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.37k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.37k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.37k | _ent = obj->tio.entity \ | 1771 | 1.37k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.37k | if (!_ent) \ | 1773 | 1.37k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.37k | _ent->tio.token \ | 1775 | 1.37k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.37k | if (!_ent->tio.token) \ | 1777 | 1.37k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.37k | _ent->dwg = obj->parent; \ | 1779 | 1.37k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.37k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.37k | return 0; \ | 1782 | 1.37k | } \ |
Line | Count | Source | 1721 | 215 | { \ | 1722 | 215 | Dwg_Object_Entity *_ent; \ | 1723 | 215 | Dwg_Entity_##token *_obj; \ | 1724 | 215 | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 215 | && obj->parent->header.version < R_13b1) \ | 1726 | 215 | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 215 | else \ | 1728 | 215 | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 215 | obj->parent->num_entities++; \ | 1730 | 215 | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 215 | if (!(int)obj->fixedtype) \ | 1732 | 215 | { \ | 1733 | 215 | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 215 | } \ | 1735 | 215 | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 215 | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 215 | if (!obj->dxfname) \ | 1740 | 215 | { \ | 1741 | 215 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 215 | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 215 | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 215 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 215 | else \ | 1749 | 215 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 215 | } \ | 1751 | 215 | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 215 | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 215 | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 215 | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 215 | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 215 | _ent = obj->tio.entity \ | 1771 | 215 | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 215 | if (!_ent) \ | 1773 | 215 | return DWG_ERR_OUTOFMEM; \ | 1774 | 215 | _ent->tio.token \ | 1775 | 215 | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 215 | if (!_ent->tio.token) \ | 1777 | 215 | return DWG_ERR_OUTOFMEM; \ | 1778 | 215 | _ent->dwg = obj->parent; \ | 1779 | 215 | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 215 | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 215 | return 0; \ | 1782 | 215 | } \ |
Line | Count | Source | 1721 | 3.56k | { \ | 1722 | 3.56k | Dwg_Object_Entity *_ent; \ | 1723 | 3.56k | Dwg_Entity_##token *_obj; \ | 1724 | 3.56k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 3.56k | && obj->parent->header.version < R_13b1) \ | 1726 | 3.56k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 3.56k | else \ | 1728 | 3.56k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 3.56k | obj->parent->num_entities++; \ | 1730 | 3.56k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 3.56k | if (!(int)obj->fixedtype) \ | 1732 | 3.56k | { \ | 1733 | 3.56k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 3.56k | } \ | 1735 | 3.56k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 3.56k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 3.56k | if (!obj->dxfname) \ | 1740 | 3.56k | { \ | 1741 | 3.56k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 3.56k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 3.56k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 3.56k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 3.56k | else \ | 1749 | 3.56k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 3.56k | } \ | 1751 | 3.56k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 3.56k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 3.56k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 3.56k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 3.56k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 3.56k | _ent = obj->tio.entity \ | 1771 | 3.56k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 3.56k | if (!_ent) \ | 1773 | 3.56k | return DWG_ERR_OUTOFMEM; \ | 1774 | 3.56k | _ent->tio.token \ | 1775 | 3.56k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 3.56k | if (!_ent->tio.token) \ | 1777 | 3.56k | return DWG_ERR_OUTOFMEM; \ | 1778 | 3.56k | _ent->dwg = obj->parent; \ | 1779 | 3.56k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 3.56k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 3.56k | return 0; \ | 1782 | 3.56k | } \ |
Line | Count | Source | 1721 | 4.95k | { \ | 1722 | 4.95k | Dwg_Object_Entity *_ent; \ | 1723 | 4.95k | Dwg_Entity_##token *_obj; \ | 1724 | 4.95k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 4.95k | && obj->parent->header.version < R_13b1) \ | 1726 | 4.95k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 4.95k | else \ | 1728 | 4.95k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 4.95k | obj->parent->num_entities++; \ | 1730 | 4.95k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 4.95k | if (!(int)obj->fixedtype) \ | 1732 | 4.95k | { \ | 1733 | 4.95k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 4.95k | } \ | 1735 | 4.95k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 4.95k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 4.95k | if (!obj->dxfname) \ | 1740 | 4.95k | { \ | 1741 | 4.95k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 4.95k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 4.95k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 4.95k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 4.95k | else \ | 1749 | 4.95k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 4.95k | } \ | 1751 | 4.95k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 4.95k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 4.95k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 4.95k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 4.95k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 4.95k | _ent = obj->tio.entity \ | 1771 | 4.95k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 4.95k | if (!_ent) \ | 1773 | 4.95k | return DWG_ERR_OUTOFMEM; \ | 1774 | 4.95k | _ent->tio.token \ | 1775 | 4.95k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 4.95k | if (!_ent->tio.token) \ | 1777 | 4.95k | return DWG_ERR_OUTOFMEM; \ | 1778 | 4.95k | _ent->dwg = obj->parent; \ | 1779 | 4.95k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 4.95k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 4.95k | return 0; \ | 1782 | 4.95k | } \ |
Line | Count | Source | 1721 | 374 | { \ | 1722 | 374 | Dwg_Object_Entity *_ent; \ | 1723 | 374 | Dwg_Entity_##token *_obj; \ | 1724 | 374 | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 374 | && obj->parent->header.version < R_13b1) \ | 1726 | 374 | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 374 | else \ | 1728 | 374 | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 374 | obj->parent->num_entities++; \ | 1730 | 374 | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 374 | if (!(int)obj->fixedtype) \ | 1732 | 374 | { \ | 1733 | 374 | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 374 | } \ | 1735 | 374 | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 374 | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 374 | if (!obj->dxfname) \ | 1740 | 374 | { \ | 1741 | 374 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 374 | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 374 | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 374 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 374 | else \ | 1749 | 374 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 374 | } \ | 1751 | 374 | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 374 | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 374 | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 374 | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 374 | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 374 | _ent = obj->tio.entity \ | 1771 | 374 | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 374 | if (!_ent) \ | 1773 | 374 | return DWG_ERR_OUTOFMEM; \ | 1774 | 374 | _ent->tio.token \ | 1775 | 374 | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 374 | if (!_ent->tio.token) \ | 1777 | 374 | return DWG_ERR_OUTOFMEM; \ | 1778 | 374 | _ent->dwg = obj->parent; \ | 1779 | 374 | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 374 | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 374 | return 0; \ | 1782 | 374 | } \ |
Line | Count | Source | 1721 | 1.25k | { \ | 1722 | 1.25k | Dwg_Object_Entity *_ent; \ | 1723 | 1.25k | Dwg_Entity_##token *_obj; \ | 1724 | 1.25k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.25k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.25k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.25k | else \ | 1728 | 1.25k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.25k | obj->parent->num_entities++; \ | 1730 | 1.25k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.25k | if (!(int)obj->fixedtype) \ | 1732 | 1.25k | { \ | 1733 | 1.25k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.25k | } \ | 1735 | 1.25k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.25k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.25k | if (!obj->dxfname) \ | 1740 | 1.25k | { \ | 1741 | 1.25k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.25k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.25k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 1.25k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 1.25k | else \ | 1749 | 1.25k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.25k | } \ | 1751 | 1.25k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.25k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.25k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.25k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.25k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.25k | _ent = obj->tio.entity \ | 1771 | 1.25k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.25k | if (!_ent) \ | 1773 | 1.25k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.25k | _ent->tio.token \ | 1775 | 1.25k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.25k | if (!_ent->tio.token) \ | 1777 | 1.25k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.25k | _ent->dwg = obj->parent; \ | 1779 | 1.25k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.25k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.25k | return 0; \ | 1782 | 1.25k | } \ |
Line | Count | Source | 1721 | 1.05k | { \ | 1722 | 1.05k | Dwg_Object_Entity *_ent; \ | 1723 | 1.05k | Dwg_Entity_##token *_obj; \ | 1724 | 1.05k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.05k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.05k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.05k | else \ | 1728 | 1.05k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.05k | obj->parent->num_entities++; \ | 1730 | 1.05k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.05k | if (!(int)obj->fixedtype) \ | 1732 | 1.05k | { \ | 1733 | 1.05k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.05k | } \ | 1735 | 1.05k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.05k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.05k | if (!obj->dxfname) \ | 1740 | 1.05k | { \ | 1741 | 1.05k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.05k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.05k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 1.05k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 1.05k | else \ | 1749 | 1.05k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.05k | } \ | 1751 | 1.05k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.05k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.05k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.05k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.05k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.05k | _ent = obj->tio.entity \ | 1771 | 1.05k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.05k | if (!_ent) \ | 1773 | 1.05k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.05k | _ent->tio.token \ | 1775 | 1.05k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.05k | if (!_ent->tio.token) \ | 1777 | 1.05k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.05k | _ent->dwg = obj->parent; \ | 1779 | 1.05k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.05k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.05k | return 0; \ | 1782 | 1.05k | } \ |
Unexecuted instantiation: dwg_setup_IMAGE Line | Count | Source | 1721 | 8.46k | { \ | 1722 | 8.46k | Dwg_Object_Entity *_ent; \ | 1723 | 8.46k | Dwg_Entity_##token *_obj; \ | 1724 | 8.46k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 8.46k | && obj->parent->header.version < R_13b1) \ | 1726 | 8.46k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 8.46k | else \ | 1728 | 8.46k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 8.46k | obj->parent->num_entities++; \ | 1730 | 8.46k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 8.46k | if (!(int)obj->fixedtype) \ | 1732 | 8.46k | { \ | 1733 | 8.46k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 8.46k | } \ | 1735 | 8.46k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 8.46k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 8.46k | if (!obj->dxfname) \ | 1740 | 8.46k | { \ | 1741 | 8.46k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 8.46k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 8.46k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 8.46k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 8.46k | else \ | 1749 | 8.46k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 8.46k | } \ | 1751 | 8.46k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 8.46k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 8.46k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 8.46k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 8.46k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 8.46k | _ent = obj->tio.entity \ | 1771 | 8.46k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 8.46k | if (!_ent) \ | 1773 | 8.46k | return DWG_ERR_OUTOFMEM; \ | 1774 | 8.46k | _ent->tio.token \ | 1775 | 8.46k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 8.46k | if (!_ent->tio.token) \ | 1777 | 8.46k | return DWG_ERR_OUTOFMEM; \ | 1778 | 8.46k | _ent->dwg = obj->parent; \ | 1779 | 8.46k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 8.46k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 8.46k | return 0; \ | 1782 | 8.46k | } \ |
Line | Count | Source | 1721 | 1.01k | { \ | 1722 | 1.01k | Dwg_Object_Entity *_ent; \ | 1723 | 1.01k | Dwg_Entity_##token *_obj; \ | 1724 | 1.01k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 1.01k | && obj->parent->header.version < R_13b1) \ | 1726 | 1.01k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 1.01k | else \ | 1728 | 1.01k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 1.01k | obj->parent->num_entities++; \ | 1730 | 1.01k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 1.01k | if (!(int)obj->fixedtype) \ | 1732 | 1.01k | { \ | 1733 | 1.01k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 1.01k | } \ | 1735 | 1.01k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 1.01k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 1.01k | if (!obj->dxfname) \ | 1740 | 1.01k | { \ | 1741 | 1.01k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 1.01k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 1.01k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 1.01k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 1.01k | else \ | 1749 | 1.01k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 1.01k | } \ | 1751 | 1.01k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 1.01k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 1.01k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 1.01k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 1.01k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 1.01k | _ent = obj->tio.entity \ | 1771 | 1.01k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 1.01k | if (!_ent) \ | 1773 | 1.01k | return DWG_ERR_OUTOFMEM; \ | 1774 | 1.01k | _ent->tio.token \ | 1775 | 1.01k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 1.01k | if (!_ent->tio.token) \ | 1777 | 1.01k | return DWG_ERR_OUTOFMEM; \ | 1778 | 1.01k | _ent->dwg = obj->parent; \ | 1779 | 1.01k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 1.01k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 1.01k | return 0; \ | 1782 | 1.01k | } \ |
Line | Count | Source | 1721 | 184 | { \ | 1722 | 184 | Dwg_Object_Entity *_ent; \ | 1723 | 184 | Dwg_Entity_##token *_obj; \ | 1724 | 184 | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 184 | && obj->parent->header.version < R_13b1) \ | 1726 | 184 | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 184 | else \ | 1728 | 184 | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 184 | obj->parent->num_entities++; \ | 1730 | 184 | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 184 | if (!(int)obj->fixedtype) \ | 1732 | 184 | { \ | 1733 | 184 | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 184 | } \ | 1735 | 184 | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 184 | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 184 | if (!obj->dxfname) \ | 1740 | 184 | { \ | 1741 | 184 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 184 | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 184 | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 184 | { \ | 1745 | 184 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 184 | obj->name = (char *)#token; \ | 1747 | 184 | } \ | 1748 | 184 | else \ | 1749 | 184 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 184 | } \ | 1751 | 184 | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 184 | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 184 | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 184 | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 184 | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 184 | _ent = obj->tio.entity \ | 1771 | 184 | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 184 | if (!_ent) \ | 1773 | 184 | return DWG_ERR_OUTOFMEM; \ | 1774 | 184 | _ent->tio.token \ | 1775 | 184 | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 184 | if (!_ent->tio.token) \ | 1777 | 184 | return DWG_ERR_OUTOFMEM; \ | 1778 | 184 | _ent->dwg = obj->parent; \ | 1779 | 184 | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 184 | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 184 | return 0; \ | 1782 | 184 | } \ |
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 | 1721 | 18.7k | { \ | 1722 | 18.7k | Dwg_Object_Entity *_ent; \ | 1723 | 18.7k | Dwg_Entity_##token *_obj; \ | 1724 | 18.7k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 18.7k | && obj->parent->header.version < R_13b1) \ | 1726 | 18.7k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 18.7k | else \ | 1728 | 18.7k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 18.7k | obj->parent->num_entities++; \ | 1730 | 18.7k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 18.7k | if (!(int)obj->fixedtype) \ | 1732 | 18.7k | { \ | 1733 | 18.7k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 18.7k | } \ | 1735 | 18.7k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 18.7k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 18.7k | if (!obj->dxfname) \ | 1740 | 18.7k | { \ | 1741 | 18.7k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 18.7k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 18.7k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 18.7k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 18.7k | else \ | 1749 | 18.7k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 18.7k | } \ | 1751 | 18.7k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 18.7k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 18.7k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 18.7k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 18.7k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 18.7k | _ent = obj->tio.entity \ | 1771 | 18.7k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 18.7k | if (!_ent) \ | 1773 | 18.7k | return DWG_ERR_OUTOFMEM; \ | 1774 | 18.7k | _ent->tio.token \ | 1775 | 18.7k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 18.7k | if (!_ent->tio.token) \ | 1777 | 18.7k | return DWG_ERR_OUTOFMEM; \ | 1778 | 18.7k | _ent->dwg = obj->parent; \ | 1779 | 18.7k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 18.7k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 18.7k | return 0; \ | 1782 | 18.7k | } \ |
Line | Count | Source | 1721 | 3.08k | { \ | 1722 | 3.08k | Dwg_Object_Entity *_ent; \ | 1723 | 3.08k | Dwg_Entity_##token *_obj; \ | 1724 | 3.08k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 3.08k | && obj->parent->header.version < R_13b1) \ | 1726 | 3.08k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 3.08k | else \ | 1728 | 3.08k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 3.08k | obj->parent->num_entities++; \ | 1730 | 3.08k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 3.08k | if (!(int)obj->fixedtype) \ | 1732 | 3.08k | { \ | 1733 | 3.08k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 3.08k | } \ | 1735 | 3.08k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 3.08k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 3.08k | if (!obj->dxfname) \ | 1740 | 3.08k | { \ | 1741 | 3.08k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 3.08k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 3.08k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 3.08k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 3.08k | else \ | 1749 | 3.08k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 3.08k | } \ | 1751 | 3.08k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 3.08k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 3.08k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 3.08k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 3.08k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 3.08k | _ent = obj->tio.entity \ | 1771 | 3.08k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 3.08k | if (!_ent) \ | 1773 | 3.08k | return DWG_ERR_OUTOFMEM; \ | 1774 | 3.08k | _ent->tio.token \ | 1775 | 3.08k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 3.08k | if (!_ent->tio.token) \ | 1777 | 3.08k | return DWG_ERR_OUTOFMEM; \ | 1778 | 3.08k | _ent->dwg = obj->parent; \ | 1779 | 3.08k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 3.08k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 3.08k | return 0; \ | 1782 | 3.08k | } \ |
Line | Count | Source | 1721 | 2.18k | { \ | 1722 | 2.18k | Dwg_Object_Entity *_ent; \ | 1723 | 2.18k | Dwg_Entity_##token *_obj; \ | 1724 | 2.18k | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 2.18k | && obj->parent->header.version < R_13b1) \ | 1726 | 2.18k | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 2.18k | else \ | 1728 | 2.18k | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 2.18k | obj->parent->num_entities++; \ | 1730 | 2.18k | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 2.18k | if (!(int)obj->fixedtype) \ | 1732 | 2.18k | { \ | 1733 | 2.18k | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 2.18k | } \ | 1735 | 2.18k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 2.18k | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 2.18k | if (!obj->dxfname) \ | 1740 | 2.18k | { \ | 1741 | 2.18k | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 2.18k | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 2.18k | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 2.18k | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 2.18k | else \ | 1749 | 2.18k | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 2.18k | } \ | 1751 | 2.18k | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 2.18k | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 2.18k | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 2.18k | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 2.18k | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 2.18k | _ent = obj->tio.entity \ | 1771 | 2.18k | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 2.18k | if (!_ent) \ | 1773 | 2.18k | return DWG_ERR_OUTOFMEM; \ | 1774 | 2.18k | _ent->tio.token \ | 1775 | 2.18k | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 2.18k | if (!_ent->tio.token) \ | 1777 | 2.18k | return DWG_ERR_OUTOFMEM; \ | 1778 | 2.18k | _ent->dwg = obj->parent; \ | 1779 | 2.18k | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 2.18k | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 2.18k | return 0; \ | 1782 | 2.18k | } \ |
Line | Count | Source | 1721 | 385 | { \ | 1722 | 385 | Dwg_Object_Entity *_ent; \ | 1723 | 385 | Dwg_Entity_##token *_obj; \ | 1724 | 385 | if (strEQc (#token, "DIMENSION_ANG2LN") \ | 1725 | 385 | && obj->parent->header.version < R_13b1) \ | 1726 | 385 | LOG_INFO ("Add entity DIMENSION [%d] ", obj->index); \ | 1727 | 385 | else \ | 1728 | 385 | LOG_INFO ("Add entity " #token " [%d] ", obj->index); \ | 1729 | 385 | obj->parent->num_entities++; \ | 1730 | 385 | obj->supertype = DWG_SUPERTYPE_ENTITY; \ | 1731 | 385 | if (!(int)obj->fixedtype) \ | 1732 | 385 | { \ | 1733 | 385 | obj->fixedtype = DWG_TYPE_##token; \ | 1734 | 385 | } \ | 1735 | 385 | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ | 1736 | 385 | { \ | 1737 | 0 | obj->type = DWG_TYPE_##token; \ | 1738 | 0 | } \ | 1739 | 385 | if (!obj->dxfname) \ | 1740 | 385 | { \ | 1741 | 385 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1742 | 385 | obj->name = obj->dxfname = (char *)&#token[1]; \ | 1743 | 385 | else if (strEQc (#token, "PROXY_ENTITY")) \ | 1744 | 385 | { \ | 1745 | 0 | obj->dxfname = (char *)"ACAD_PROXY_ENTITY"; \ | 1746 | 0 | obj->name = (char *)#token; \ | 1747 | 0 | } \ | 1748 | 385 | else \ | 1749 | 385 | obj->name = obj->dxfname = (char *)#token; \ | 1750 | 385 | } \ | 1751 | 385 | else if (!obj->name) \ | 1752 | 0 | { \ | 1753 | 0 | if (strlen (#token) > 3 && !memcmp (#token, "_3D", 3)) \ | 1754 | 0 | obj->name = (char *)&#token[1]; \ | 1755 | 0 | else \ | 1756 | 0 | obj->name = (char *)#token; \ | 1757 | 0 | } \ | 1758 | 385 | if (strEQc (#token, "UNKNOWN_ENT")) \ | 1759 | 385 | { \ | 1760 | 0 | obj->name = (char *)#token; \ | 1761 | 0 | obj->dxfname = (char *)#token; \ | 1762 | 0 | obj->fixedtype = DWG_TYPE_UNKNOWN_ENT; \ | 1763 | 0 | } \ | 1764 | 385 | if (obj->parent->opts & DWG_OPTS_IN) \ | 1765 | 385 | { \ | 1766 | 0 | obj->dxfname = strdup (obj->dxfname); \ | 1767 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ | 1768 | 0 | obj->name = strdup (obj->name); \ | 1769 | 0 | } \ | 1770 | 385 | _ent = obj->tio.entity \ | 1771 | 385 | = (Dwg_Object_Entity *)calloc (1, sizeof (Dwg_Object_Entity)); \ | 1772 | 385 | if (!_ent) \ | 1773 | 385 | return DWG_ERR_OUTOFMEM; \ | 1774 | 385 | _ent->tio.token \ | 1775 | 385 | = (Dwg_Entity_##token *)calloc (1, sizeof (Dwg_Entity_##token)); \ | 1776 | 385 | if (!_ent->tio.token) \ | 1777 | 385 | return DWG_ERR_OUTOFMEM; \ | 1778 | 385 | _ent->dwg = obj->parent; \ | 1779 | 385 | _ent->objid = obj->index; /* obj ptr itself might move */ \ | 1780 | 385 | _ent->tio.token->parent = obj->tio.entity; \ | 1781 | 385 | return 0; \ | 1782 | 385 | } \ |
|
1783 | | \ |
1784 | | static int dwg_decode_##token##_private ( \ |
1785 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1786 | | Dwg_Object *restrict obj); \ |
1787 | | \ |
1788 | | /** Call dwg_setup_##token and write the fields from the bitstream dat \ |
1789 | | * to the entity or object. */ \ |
1790 | | DWG_DECODE_FUNC int dwg_decode_##token (Bit_Chain *restrict dat, \ |
1791 | | Dwg_Object *restrict obj) \ |
1792 | 434k | { \ |
1793 | 434k | int error = dwg_setup_##token (obj); \ |
1794 | 434k | Bit_Chain hdl_dat = *dat; \ |
1795 | 434k | if (error) \ |
1796 | 434k | return error; \ |
1797 | 434k | SINCE (R_2007a) \ |
1798 | 434k | { \ |
1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ |
1800 | 0 | error \ |
1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ |
1802 | 0 | } \ |
1803 | 434k | else \ |
1804 | 434k | { \ |
1805 | 434k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ |
1806 | 434k | } \ |
1807 | 434k | return error; \ |
1808 | 434k | } \ Line | Count | Source | 1792 | 29.1k | { \ | 1793 | 29.1k | int error = dwg_setup_##token (obj); \ | 1794 | 29.1k | Bit_Chain hdl_dat = *dat; \ | 1795 | 29.1k | if (error) \ | 1796 | 29.1k | return error; \ | 1797 | 29.1k | SINCE (R_2007a) \ | 1798 | 29.1k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 29.1k | else \ | 1804 | 29.1k | { \ | 1805 | 29.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 29.1k | } \ | 1807 | 29.1k | return error; \ | 1808 | 29.1k | } \ |
decode.c:dwg_decode_ATTRIB Line | Count | Source | 1792 | 24.9k | { \ | 1793 | 24.9k | int error = dwg_setup_##token (obj); \ | 1794 | 24.9k | Bit_Chain hdl_dat = *dat; \ | 1795 | 24.9k | if (error) \ | 1796 | 24.9k | return error; \ | 1797 | 24.9k | SINCE (R_2007a) \ | 1798 | 24.9k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 24.9k | else \ | 1804 | 24.9k | { \ | 1805 | 24.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 24.9k | } \ | 1807 | 24.9k | return error; \ | 1808 | 24.9k | } \ |
decode.c:dwg_decode_ATTDEF Line | Count | Source | 1792 | 43.3k | { \ | 1793 | 43.3k | int error = dwg_setup_##token (obj); \ | 1794 | 43.3k | Bit_Chain hdl_dat = *dat; \ | 1795 | 43.3k | if (error) \ | 1796 | 43.3k | return error; \ | 1797 | 43.3k | SINCE (R_2007a) \ | 1798 | 43.3k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 43.3k | else \ | 1804 | 43.3k | { \ | 1805 | 43.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 43.3k | } \ | 1807 | 43.3k | return error; \ | 1808 | 43.3k | } \ |
decode.c:dwg_decode_BLOCK Line | Count | Source | 1792 | 11.4k | { \ | 1793 | 11.4k | int error = dwg_setup_##token (obj); \ | 1794 | 11.4k | Bit_Chain hdl_dat = *dat; \ | 1795 | 11.4k | if (error) \ | 1796 | 11.4k | return error; \ | 1797 | 11.4k | SINCE (R_2007a) \ | 1798 | 11.4k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 11.4k | else \ | 1804 | 11.4k | { \ | 1805 | 11.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 11.4k | } \ | 1807 | 11.4k | return error; \ | 1808 | 11.4k | } \ |
decode.c:dwg_decode_ENDBLK Line | Count | Source | 1792 | 8.71k | { \ | 1793 | 8.71k | int error = dwg_setup_##token (obj); \ | 1794 | 8.71k | Bit_Chain hdl_dat = *dat; \ | 1795 | 8.71k | if (error) \ | 1796 | 8.71k | return error; \ | 1797 | 8.71k | SINCE (R_2007a) \ | 1798 | 8.71k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 8.71k | else \ | 1804 | 8.71k | { \ | 1805 | 8.71k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 8.71k | } \ | 1807 | 8.71k | return error; \ | 1808 | 8.71k | } \ |
decode.c:dwg_decode_SEQEND Line | Count | Source | 1792 | 3.15k | { \ | 1793 | 3.15k | int error = dwg_setup_##token (obj); \ | 1794 | 3.15k | Bit_Chain hdl_dat = *dat; \ | 1795 | 3.15k | if (error) \ | 1796 | 3.15k | return error; \ | 1797 | 3.15k | SINCE (R_2007a) \ | 1798 | 3.15k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 3.15k | else \ | 1804 | 3.15k | { \ | 1805 | 3.15k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 3.15k | } \ | 1807 | 3.15k | return error; \ | 1808 | 3.15k | } \ |
decode.c:dwg_decode_INSERT Line | Count | Source | 1792 | 14.1k | { \ | 1793 | 14.1k | int error = dwg_setup_##token (obj); \ | 1794 | 14.1k | Bit_Chain hdl_dat = *dat; \ | 1795 | 14.1k | if (error) \ | 1796 | 14.1k | return error; \ | 1797 | 14.1k | SINCE (R_2007a) \ | 1798 | 14.1k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 14.1k | else \ | 1804 | 14.1k | { \ | 1805 | 14.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 14.1k | } \ | 1807 | 14.1k | return error; \ | 1808 | 14.1k | } \ |
decode.c:dwg_decode_MINSERT Line | Count | Source | 1792 | 6.32k | { \ | 1793 | 6.32k | int error = dwg_setup_##token (obj); \ | 1794 | 6.32k | Bit_Chain hdl_dat = *dat; \ | 1795 | 6.32k | if (error) \ | 1796 | 6.32k | return error; \ | 1797 | 6.32k | SINCE (R_2007a) \ | 1798 | 6.32k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 6.32k | else \ | 1804 | 6.32k | { \ | 1805 | 6.32k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 6.32k | } \ | 1807 | 6.32k | return error; \ | 1808 | 6.32k | } \ |
decode.c:dwg_decode_VERTEX_2D Line | Count | Source | 1792 | 8.54k | { \ | 1793 | 8.54k | int error = dwg_setup_##token (obj); \ | 1794 | 8.54k | Bit_Chain hdl_dat = *dat; \ | 1795 | 8.54k | if (error) \ | 1796 | 8.54k | return error; \ | 1797 | 8.54k | SINCE (R_2007a) \ | 1798 | 8.54k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 8.54k | else \ | 1804 | 8.54k | { \ | 1805 | 8.54k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 8.54k | } \ | 1807 | 8.54k | return error; \ | 1808 | 8.54k | } \ |
decode.c:dwg_decode_VERTEX_3D Line | Count | Source | 1792 | 4.48k | { \ | 1793 | 4.48k | int error = dwg_setup_##token (obj); \ | 1794 | 4.48k | Bit_Chain hdl_dat = *dat; \ | 1795 | 4.48k | if (error) \ | 1796 | 4.48k | return error; \ | 1797 | 4.48k | SINCE (R_2007a) \ | 1798 | 4.48k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 4.48k | else \ | 1804 | 4.48k | { \ | 1805 | 4.48k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 4.48k | } \ | 1807 | 4.48k | return error; \ | 1808 | 4.48k | } \ |
decode.c:dwg_decode_VERTEX_MESH Line | Count | Source | 1792 | 18.6k | { \ | 1793 | 18.6k | int error = dwg_setup_##token (obj); \ | 1794 | 18.6k | Bit_Chain hdl_dat = *dat; \ | 1795 | 18.6k | if (error) \ | 1796 | 18.6k | return error; \ | 1797 | 18.6k | SINCE (R_2007a) \ | 1798 | 18.6k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 18.6k | else \ | 1804 | 18.6k | { \ | 1805 | 18.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 18.6k | } \ | 1807 | 18.6k | return error; \ | 1808 | 18.6k | } \ |
decode.c:dwg_decode_VERTEX_PFACE Line | Count | Source | 1792 | 11.6k | { \ | 1793 | 11.6k | int error = dwg_setup_##token (obj); \ | 1794 | 11.6k | Bit_Chain hdl_dat = *dat; \ | 1795 | 11.6k | if (error) \ | 1796 | 11.6k | return error; \ | 1797 | 11.6k | SINCE (R_2007a) \ | 1798 | 11.6k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 11.6k | else \ | 1804 | 11.6k | { \ | 1805 | 11.6k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 11.6k | } \ | 1807 | 11.6k | return error; \ | 1808 | 11.6k | } \ |
decode.c:dwg_decode_VERTEX_PFACE_FACE Line | Count | Source | 1792 | 2.69k | { \ | 1793 | 2.69k | int error = dwg_setup_##token (obj); \ | 1794 | 2.69k | Bit_Chain hdl_dat = *dat; \ | 1795 | 2.69k | if (error) \ | 1796 | 2.69k | return error; \ | 1797 | 2.69k | SINCE (R_2007a) \ | 1798 | 2.69k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 2.69k | else \ | 1804 | 2.69k | { \ | 1805 | 2.69k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 2.69k | } \ | 1807 | 2.69k | return error; \ | 1808 | 2.69k | } \ |
decode.c:dwg_decode_POLYLINE_2D Line | Count | Source | 1792 | 7.91k | { \ | 1793 | 7.91k | int error = dwg_setup_##token (obj); \ | 1794 | 7.91k | Bit_Chain hdl_dat = *dat; \ | 1795 | 7.91k | if (error) \ | 1796 | 7.91k | return error; \ | 1797 | 7.91k | SINCE (R_2007a) \ | 1798 | 7.91k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 7.91k | else \ | 1804 | 7.91k | { \ | 1805 | 7.91k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 7.91k | } \ | 1807 | 7.91k | return error; \ | 1808 | 7.91k | } \ |
decode.c:dwg_decode_POLYLINE_3D Line | Count | Source | 1792 | 15.9k | { \ | 1793 | 15.9k | int error = dwg_setup_##token (obj); \ | 1794 | 15.9k | Bit_Chain hdl_dat = *dat; \ | 1795 | 15.9k | if (error) \ | 1796 | 15.9k | return error; \ | 1797 | 15.9k | SINCE (R_2007a) \ | 1798 | 15.9k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 15.9k | else \ | 1804 | 15.9k | { \ | 1805 | 15.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 15.9k | } \ | 1807 | 15.9k | return error; \ | 1808 | 15.9k | } \ |
Line | Count | Source | 1792 | 14.4k | { \ | 1793 | 14.4k | int error = dwg_setup_##token (obj); \ | 1794 | 14.4k | Bit_Chain hdl_dat = *dat; \ | 1795 | 14.4k | if (error) \ | 1796 | 14.4k | return error; \ | 1797 | 14.4k | SINCE (R_2007a) \ | 1798 | 14.4k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 14.4k | else \ | 1804 | 14.4k | { \ | 1805 | 14.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 14.4k | } \ | 1807 | 14.4k | return error; \ | 1808 | 14.4k | } \ |
decode.c:dwg_decode_CIRCLE Line | Count | Source | 1792 | 4.19k | { \ | 1793 | 4.19k | int error = dwg_setup_##token (obj); \ | 1794 | 4.19k | Bit_Chain hdl_dat = *dat; \ | 1795 | 4.19k | if (error) \ | 1796 | 4.19k | return error; \ | 1797 | 4.19k | SINCE (R_2007a) \ | 1798 | 4.19k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 4.19k | else \ | 1804 | 4.19k | { \ | 1805 | 4.19k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 4.19k | } \ | 1807 | 4.19k | return error; \ | 1808 | 4.19k | } \ |
Line | Count | Source | 1792 | 14.8k | { \ | 1793 | 14.8k | int error = dwg_setup_##token (obj); \ | 1794 | 14.8k | Bit_Chain hdl_dat = *dat; \ | 1795 | 14.8k | if (error) \ | 1796 | 14.8k | return error; \ | 1797 | 14.8k | SINCE (R_2007a) \ | 1798 | 14.8k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 14.8k | else \ | 1804 | 14.8k | { \ | 1805 | 14.8k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 14.8k | } \ | 1807 | 14.8k | return error; \ | 1808 | 14.8k | } \ |
decode.c:dwg_decode_DIMENSION_ORDINATE Line | Count | Source | 1792 | 13.3k | { \ | 1793 | 13.3k | int error = dwg_setup_##token (obj); \ | 1794 | 13.3k | Bit_Chain hdl_dat = *dat; \ | 1795 | 13.3k | if (error) \ | 1796 | 13.3k | return error; \ | 1797 | 13.3k | SINCE (R_2007a) \ | 1798 | 13.3k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 13.3k | else \ | 1804 | 13.3k | { \ | 1805 | 13.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 13.3k | } \ | 1807 | 13.3k | return error; \ | 1808 | 13.3k | } \ |
decode.c:dwg_decode_DIMENSION_LINEAR Line | Count | Source | 1792 | 20.9k | { \ | 1793 | 20.9k | int error = dwg_setup_##token (obj); \ | 1794 | 20.9k | Bit_Chain hdl_dat = *dat; \ | 1795 | 20.9k | if (error) \ | 1796 | 20.9k | return error; \ | 1797 | 20.9k | SINCE (R_2007a) \ | 1798 | 20.9k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 20.9k | else \ | 1804 | 20.9k | { \ | 1805 | 20.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 20.9k | } \ | 1807 | 20.9k | return error; \ | 1808 | 20.9k | } \ |
decode.c:dwg_decode_DIMENSION_ALIGNED Line | Count | Source | 1792 | 3.33k | { \ | 1793 | 3.33k | int error = dwg_setup_##token (obj); \ | 1794 | 3.33k | Bit_Chain hdl_dat = *dat; \ | 1795 | 3.33k | if (error) \ | 1796 | 3.33k | return error; \ | 1797 | 3.33k | SINCE (R_2007a) \ | 1798 | 3.33k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 3.33k | else \ | 1804 | 3.33k | { \ | 1805 | 3.33k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 3.33k | } \ | 1807 | 3.33k | return error; \ | 1808 | 3.33k | } \ |
decode.c:dwg_decode_DIMENSION_ANG3PT Line | Count | Source | 1792 | 4.73k | { \ | 1793 | 4.73k | int error = dwg_setup_##token (obj); \ | 1794 | 4.73k | Bit_Chain hdl_dat = *dat; \ | 1795 | 4.73k | if (error) \ | 1796 | 4.73k | return error; \ | 1797 | 4.73k | SINCE (R_2007a) \ | 1798 | 4.73k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 4.73k | else \ | 1804 | 4.73k | { \ | 1805 | 4.73k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 4.73k | } \ | 1807 | 4.73k | return error; \ | 1808 | 4.73k | } \ |
decode.c:dwg_decode_DIMENSION_ANG2LN Line | Count | Source | 1792 | 4.27k | { \ | 1793 | 4.27k | int error = dwg_setup_##token (obj); \ | 1794 | 4.27k | Bit_Chain hdl_dat = *dat; \ | 1795 | 4.27k | if (error) \ | 1796 | 4.27k | return error; \ | 1797 | 4.27k | SINCE (R_2007a) \ | 1798 | 4.27k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 4.27k | else \ | 1804 | 4.27k | { \ | 1805 | 4.27k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 4.27k | } \ | 1807 | 4.27k | return error; \ | 1808 | 4.27k | } \ |
decode.c:dwg_decode_DIMENSION_RADIUS Line | Count | Source | 1792 | 2.66k | { \ | 1793 | 2.66k | int error = dwg_setup_##token (obj); \ | 1794 | 2.66k | Bit_Chain hdl_dat = *dat; \ | 1795 | 2.66k | if (error) \ | 1796 | 2.66k | return error; \ | 1797 | 2.66k | SINCE (R_2007a) \ | 1798 | 2.66k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 2.66k | else \ | 1804 | 2.66k | { \ | 1805 | 2.66k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 2.66k | } \ | 1807 | 2.66k | return error; \ | 1808 | 2.66k | } \ |
decode.c:dwg_decode_DIMENSION_DIAMETER Line | Count | Source | 1792 | 1.64k | { \ | 1793 | 1.64k | int error = dwg_setup_##token (obj); \ | 1794 | 1.64k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.64k | if (error) \ | 1796 | 1.64k | return error; \ | 1797 | 1.64k | SINCE (R_2007a) \ | 1798 | 1.64k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.64k | else \ | 1804 | 1.64k | { \ | 1805 | 1.64k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.64k | } \ | 1807 | 1.64k | return error; \ | 1808 | 1.64k | } \ |
decode.c:dwg_decode_POINT Line | Count | Source | 1792 | 5.93k | { \ | 1793 | 5.93k | int error = dwg_setup_##token (obj); \ | 1794 | 5.93k | Bit_Chain hdl_dat = *dat; \ | 1795 | 5.93k | if (error) \ | 1796 | 5.93k | return error; \ | 1797 | 5.93k | SINCE (R_2007a) \ | 1798 | 5.93k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 5.93k | else \ | 1804 | 5.93k | { \ | 1805 | 5.93k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 5.93k | } \ | 1807 | 5.93k | return error; \ | 1808 | 5.93k | } \ |
decode.c:dwg_decode__3DFACE Line | Count | Source | 1792 | 14.3k | { \ | 1793 | 14.3k | int error = dwg_setup_##token (obj); \ | 1794 | 14.3k | Bit_Chain hdl_dat = *dat; \ | 1795 | 14.3k | if (error) \ | 1796 | 14.3k | return error; \ | 1797 | 14.3k | SINCE (R_2007a) \ | 1798 | 14.3k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 14.3k | else \ | 1804 | 14.3k | { \ | 1805 | 14.3k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 14.3k | } \ | 1807 | 14.3k | return error; \ | 1808 | 14.3k | } \ |
decode.c:dwg_decode_POLYLINE_PFACE Line | Count | Source | 1792 | 9.33k | { \ | 1793 | 9.33k | int error = dwg_setup_##token (obj); \ | 1794 | 9.33k | Bit_Chain hdl_dat = *dat; \ | 1795 | 9.33k | if (error) \ | 1796 | 9.33k | return error; \ | 1797 | 9.33k | SINCE (R_2007a) \ | 1798 | 9.33k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 9.33k | else \ | 1804 | 9.33k | { \ | 1805 | 9.33k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 9.33k | } \ | 1807 | 9.33k | return error; \ | 1808 | 9.33k | } \ |
decode.c:dwg_decode_POLYLINE_MESH Line | Count | Source | 1792 | 5.02k | { \ | 1793 | 5.02k | int error = dwg_setup_##token (obj); \ | 1794 | 5.02k | Bit_Chain hdl_dat = *dat; \ | 1795 | 5.02k | if (error) \ | 1796 | 5.02k | return error; \ | 1797 | 5.02k | SINCE (R_2007a) \ | 1798 | 5.02k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 5.02k | else \ | 1804 | 5.02k | { \ | 1805 | 5.02k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 5.02k | } \ | 1807 | 5.02k | return error; \ | 1808 | 5.02k | } \ |
decode.c:dwg_decode_SOLID Line | Count | Source | 1792 | 7.55k | { \ | 1793 | 7.55k | int error = dwg_setup_##token (obj); \ | 1794 | 7.55k | Bit_Chain hdl_dat = *dat; \ | 1795 | 7.55k | if (error) \ | 1796 | 7.55k | return error; \ | 1797 | 7.55k | SINCE (R_2007a) \ | 1798 | 7.55k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 7.55k | else \ | 1804 | 7.55k | { \ | 1805 | 7.55k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 7.55k | } \ | 1807 | 7.55k | return error; \ | 1808 | 7.55k | } \ |
decode.c:dwg_decode_TRACE Line | Count | Source | 1792 | 14.5k | { \ | 1793 | 14.5k | int error = dwg_setup_##token (obj); \ | 1794 | 14.5k | Bit_Chain hdl_dat = *dat; \ | 1795 | 14.5k | if (error) \ | 1796 | 14.5k | return error; \ | 1797 | 14.5k | SINCE (R_2007a) \ | 1798 | 14.5k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 14.5k | else \ | 1804 | 14.5k | { \ | 1805 | 14.5k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 14.5k | } \ | 1807 | 14.5k | return error; \ | 1808 | 14.5k | } \ |
decode.c:dwg_decode_SHAPE Line | Count | Source | 1792 | 4.17k | { \ | 1793 | 4.17k | int error = dwg_setup_##token (obj); \ | 1794 | 4.17k | Bit_Chain hdl_dat = *dat; \ | 1795 | 4.17k | if (error) \ | 1796 | 4.17k | return error; \ | 1797 | 4.17k | SINCE (R_2007a) \ | 1798 | 4.17k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 4.17k | else \ | 1804 | 4.17k | { \ | 1805 | 4.17k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 4.17k | } \ | 1807 | 4.17k | return error; \ | 1808 | 4.17k | } \ |
decode.c:dwg_decode_VIEWPORT Line | Count | Source | 1792 | 3.22k | { \ | 1793 | 3.22k | int error = dwg_setup_##token (obj); \ | 1794 | 3.22k | Bit_Chain hdl_dat = *dat; \ | 1795 | 3.22k | if (error) \ | 1796 | 3.22k | return error; \ | 1797 | 3.22k | SINCE (R_2007a) \ | 1798 | 3.22k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 3.22k | else \ | 1804 | 3.22k | { \ | 1805 | 3.22k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 3.22k | } \ | 1807 | 3.22k | return error; \ | 1808 | 3.22k | } \ |
decode.c:dwg_decode_ELLIPSE Line | Count | Source | 1792 | 649 | { \ | 1793 | 649 | int error = dwg_setup_##token (obj); \ | 1794 | 649 | Bit_Chain hdl_dat = *dat; \ | 1795 | 649 | if (error) \ | 1796 | 649 | return error; \ | 1797 | 649 | SINCE (R_2007a) \ | 1798 | 649 | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 649 | else \ | 1804 | 649 | { \ | 1805 | 649 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 649 | } \ | 1807 | 649 | return error; \ | 1808 | 649 | } \ |
decode.c:dwg_decode_SPLINE Line | Count | Source | 1792 | 7.22k | { \ | 1793 | 7.22k | int error = dwg_setup_##token (obj); \ | 1794 | 7.22k | Bit_Chain hdl_dat = *dat; \ | 1795 | 7.22k | if (error) \ | 1796 | 7.22k | return error; \ | 1797 | 7.22k | SINCE (R_2007a) \ | 1798 | 7.22k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 7.22k | else \ | 1804 | 7.22k | { \ | 1805 | 7.22k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 7.22k | } \ | 1807 | 7.22k | return error; \ | 1808 | 7.22k | } \ |
decode.c:dwg_decode_REGION Line | Count | Source | 1792 | 12.2k | { \ | 1793 | 12.2k | int error = dwg_setup_##token (obj); \ | 1794 | 12.2k | Bit_Chain hdl_dat = *dat; \ | 1795 | 12.2k | if (error) \ | 1796 | 12.2k | return error; \ | 1797 | 12.2k | SINCE (R_2007a) \ | 1798 | 12.2k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 12.2k | else \ | 1804 | 12.2k | { \ | 1805 | 12.2k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 12.2k | } \ | 1807 | 12.2k | return error; \ | 1808 | 12.2k | } \ |
decode.c:dwg_decode__3DSOLID Line | Count | Source | 1792 | 1.13k | { \ | 1793 | 1.13k | int error = dwg_setup_##token (obj); \ | 1794 | 1.13k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.13k | if (error) \ | 1796 | 1.13k | return error; \ | 1797 | 1.13k | SINCE (R_2007a) \ | 1798 | 1.13k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.13k | else \ | 1804 | 1.13k | { \ | 1805 | 1.13k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.13k | } \ | 1807 | 1.13k | return error; \ | 1808 | 1.13k | } \ |
Line | Count | Source | 1792 | 1.96k | { \ | 1793 | 1.96k | int error = dwg_setup_##token (obj); \ | 1794 | 1.96k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.96k | if (error) \ | 1796 | 1.96k | return error; \ | 1797 | 1.96k | SINCE (R_2007a) \ | 1798 | 1.96k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.96k | else \ | 1804 | 1.96k | { \ | 1805 | 1.96k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.96k | } \ | 1807 | 1.96k | return error; \ | 1808 | 1.96k | } \ |
Line | Count | Source | 1792 | 2.93k | { \ | 1793 | 2.93k | int error = dwg_setup_##token (obj); \ | 1794 | 2.93k | Bit_Chain hdl_dat = *dat; \ | 1795 | 2.93k | if (error) \ | 1796 | 2.93k | return error; \ | 1797 | 2.93k | SINCE (R_2007a) \ | 1798 | 2.93k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 2.93k | else \ | 1804 | 2.93k | { \ | 1805 | 2.93k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 2.93k | } \ | 1807 | 2.93k | return error; \ | 1808 | 2.93k | } \ |
decode.c:dwg_decode_XLINE Line | Count | Source | 1792 | 1.37k | { \ | 1793 | 1.37k | int error = dwg_setup_##token (obj); \ | 1794 | 1.37k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.37k | if (error) \ | 1796 | 1.37k | return error; \ | 1797 | 1.37k | SINCE (R_2007a) \ | 1798 | 1.37k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.37k | else \ | 1804 | 1.37k | { \ | 1805 | 1.37k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.37k | } \ | 1807 | 1.37k | return error; \ | 1808 | 1.37k | } \ |
decode.c:dwg_decode_MTEXT Line | Count | Source | 1792 | 3.56k | { \ | 1793 | 3.56k | int error = dwg_setup_##token (obj); \ | 1794 | 3.56k | Bit_Chain hdl_dat = *dat; \ | 1795 | 3.56k | if (error) \ | 1796 | 3.56k | return error; \ | 1797 | 3.56k | SINCE (R_2007a) \ | 1798 | 3.56k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 3.56k | else \ | 1804 | 3.56k | { \ | 1805 | 3.56k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 3.56k | } \ | 1807 | 3.56k | return error; \ | 1808 | 3.56k | } \ |
decode.c:dwg_decode_LEADER Line | Count | Source | 1792 | 4.95k | { \ | 1793 | 4.95k | int error = dwg_setup_##token (obj); \ | 1794 | 4.95k | Bit_Chain hdl_dat = *dat; \ | 1795 | 4.95k | if (error) \ | 1796 | 4.95k | return error; \ | 1797 | 4.95k | SINCE (R_2007a) \ | 1798 | 4.95k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 4.95k | else \ | 1804 | 4.95k | { \ | 1805 | 4.95k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 4.95k | } \ | 1807 | 4.95k | return error; \ | 1808 | 4.95k | } \ |
decode.c:dwg_decode_TOLERANCE Line | Count | Source | 1792 | 374 | { \ | 1793 | 374 | int error = dwg_setup_##token (obj); \ | 1794 | 374 | Bit_Chain hdl_dat = *dat; \ | 1795 | 374 | if (error) \ | 1796 | 374 | return error; \ | 1797 | 374 | SINCE (R_2007a) \ | 1798 | 374 | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 374 | else \ | 1804 | 374 | { \ | 1805 | 374 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 374 | } \ | 1807 | 374 | return error; \ | 1808 | 374 | } \ |
decode.c:dwg_decode_MLINE Line | Count | Source | 1792 | 1.25k | { \ | 1793 | 1.25k | int error = dwg_setup_##token (obj); \ | 1794 | 1.25k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.25k | if (error) \ | 1796 | 1.25k | return error; \ | 1797 | 1.25k | SINCE (R_2007a) \ | 1798 | 1.25k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.25k | else \ | 1804 | 1.25k | { \ | 1805 | 1.25k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.25k | } \ | 1807 | 1.25k | return error; \ | 1808 | 1.25k | } \ |
decode.c:dwg_decode_OLE2FRAME Line | Count | Source | 1792 | 1.01k | { \ | 1793 | 1.01k | int error = dwg_setup_##token (obj); \ | 1794 | 1.01k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.01k | if (error) \ | 1796 | 1.01k | return error; \ | 1797 | 1.01k | SINCE (R_2007a) \ | 1798 | 1.01k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.01k | else \ | 1804 | 1.01k | { \ | 1805 | 1.01k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.01k | } \ | 1807 | 1.01k | return error; \ | 1808 | 1.01k | } \ |
decode.c:dwg_decode_LWPOLYLINE Line | Count | Source | 1792 | 8.46k | { \ | 1793 | 8.46k | int error = dwg_setup_##token (obj); \ | 1794 | 8.46k | Bit_Chain hdl_dat = *dat; \ | 1795 | 8.46k | if (error) \ | 1796 | 8.46k | return error; \ | 1797 | 8.46k | SINCE (R_2007a) \ | 1798 | 8.46k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 8.46k | else \ | 1804 | 8.46k | { \ | 1805 | 8.46k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 8.46k | } \ | 1807 | 8.46k | return error; \ | 1808 | 8.46k | } \ |
decode.c:dwg_decode_HATCH Line | Count | Source | 1792 | 1.05k | { \ | 1793 | 1.05k | int error = dwg_setup_##token (obj); \ | 1794 | 1.05k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.05k | if (error) \ | 1796 | 1.05k | return error; \ | 1797 | 1.05k | SINCE (R_2007a) \ | 1798 | 1.05k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.05k | else \ | 1804 | 1.05k | { \ | 1805 | 1.05k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.05k | } \ | 1807 | 1.05k | return error; \ | 1808 | 1.05k | } \ |
decode.c:dwg_decode_OLEFRAME Line | Count | Source | 1792 | 215 | { \ | 1793 | 215 | int error = dwg_setup_##token (obj); \ | 1794 | 215 | Bit_Chain hdl_dat = *dat; \ | 1795 | 215 | if (error) \ | 1796 | 215 | return error; \ | 1797 | 215 | SINCE (R_2007a) \ | 1798 | 215 | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 215 | else \ | 1804 | 215 | { \ | 1805 | 215 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 215 | } \ | 1807 | 215 | return error; \ | 1808 | 215 | } \ |
decode.c:dwg_decode_PROXY_ENTITY Line | Count | Source | 1792 | 184 | { \ | 1793 | 184 | int error = dwg_setup_##token (obj); \ | 1794 | 184 | Bit_Chain hdl_dat = *dat; \ | 1795 | 184 | if (error) \ | 1796 | 184 | return error; \ | 1797 | 184 | SINCE (R_2007a) \ | 1798 | 184 | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 184 | else \ | 1804 | 184 | { \ | 1805 | 184 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 184 | } \ | 1807 | 184 | return error; \ | 1808 | 184 | } \ |
Unexecuted instantiation: decode.c:dwg_decode_IMAGE Unexecuted instantiation: decode.c:dwg_decode_LARGE_RADIAL_DIMENSION decode.c:dwg_decode__3DLINE Line | Count | Source | 1792 | 1.95k | { \ | 1793 | 1.95k | int error = dwg_setup_##token (obj); \ | 1794 | 1.95k | Bit_Chain hdl_dat = *dat; \ | 1795 | 1.95k | if (error) \ | 1796 | 1.95k | return error; \ | 1797 | 1.95k | SINCE (R_2007a) \ | 1798 | 1.95k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 1.95k | else \ | 1804 | 1.95k | { \ | 1805 | 1.95k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 1.95k | } \ | 1807 | 1.95k | return error; \ | 1808 | 1.95k | } \ |
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 | 1792 | 18.7k | { \ | 1793 | 18.7k | int error = dwg_setup_##token (obj); \ | 1794 | 18.7k | Bit_Chain hdl_dat = *dat; \ | 1795 | 18.7k | if (error) \ | 1796 | 18.7k | return error; \ | 1797 | 18.7k | SINCE (R_2007a) \ | 1798 | 18.7k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 18.7k | else \ | 1804 | 18.7k | { \ | 1805 | 18.7k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 18.7k | } \ | 1807 | 18.7k | return error; \ | 1808 | 18.7k | } \ |
Line | Count | Source | 1792 | 3.08k | { \ | 1793 | 3.08k | int error = dwg_setup_##token (obj); \ | 1794 | 3.08k | Bit_Chain hdl_dat = *dat; \ | 1795 | 3.08k | if (error) \ | 1796 | 3.08k | return error; \ | 1797 | 3.08k | SINCE (R_2007a) \ | 1798 | 3.08k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 3.08k | else \ | 1804 | 3.08k | { \ | 1805 | 3.08k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 3.08k | } \ | 1807 | 3.08k | return error; \ | 1808 | 3.08k | } \ |
Line | Count | Source | 1792 | 2.18k | { \ | 1793 | 2.18k | int error = dwg_setup_##token (obj); \ | 1794 | 2.18k | Bit_Chain hdl_dat = *dat; \ | 1795 | 2.18k | if (error) \ | 1796 | 2.18k | return error; \ | 1797 | 2.18k | SINCE (R_2007a) \ | 1798 | 2.18k | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 2.18k | else \ | 1804 | 2.18k | { \ | 1805 | 2.18k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 2.18k | } \ | 1807 | 2.18k | return error; \ | 1808 | 2.18k | } \ |
Line | Count | Source | 1792 | 385 | { \ | 1793 | 385 | int error = dwg_setup_##token (obj); \ | 1794 | 385 | Bit_Chain hdl_dat = *dat; \ | 1795 | 385 | if (error) \ | 1796 | 385 | return error; \ | 1797 | 385 | SINCE (R_2007a) \ | 1798 | 385 | { \ | 1799 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1800 | 0 | error \ | 1801 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 1802 | 0 | } \ | 1803 | 385 | else \ | 1804 | 385 | { \ | 1805 | 385 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1806 | 385 | } \ | 1807 | 385 | return error; \ | 1808 | 385 | } \ |
|
1809 | | \ |
1810 | | GCC30_DIAG_IGNORE (-Wformat-nonliteral) \ |
1811 | | static int dwg_decode_##token##_private ( \ |
1812 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1813 | | Dwg_Object *restrict obj) \ |
1814 | 434k | { \ |
1815 | 434k | BITCODE_BL vcount, rcount3, rcount4; \ |
1816 | 434k | int error = 0; \ |
1817 | 434k | Dwg_Entity_##token *ent, *_obj; \ |
1818 | 434k | Dwg_Object_Entity *_ent; \ |
1819 | 434k | Dwg_Data *dwg = obj->parent; \ |
1820 | 434k | LOG_INFO ("Decode entity " #token "\n"); \ |
1821 | 434k | _ent = obj->tio.entity; \ |
1822 | 434k | ent = obj->tio.entity->tio.token; \ |
1823 | 434k | _obj = ent; \ |
1824 | 434k | _ent->dwg = dwg; \ |
1825 | 434k | _ent->objid = obj->index; /* obj ptr itself might move */ \ |
1826 | 434k | _obj->parent = obj->tio.entity; \ |
1827 | 434k | SINCE (R_13b1) \ |
1828 | 434k | { \ |
1829 | 228k | error = dwg_decode_entity (dat, hdl_dat, str_dat, _ent); \ |
1830 | 228k | } \ |
1831 | 434k | else \ |
1832 | 434k | { \ |
1833 | 206k | error = decode_entity_preR13 (dat, obj, _ent); \ |
1834 | 206k | } \ |
1835 | 434k | if (error >= DWG_ERR_CRITICAL || dat->byte > dat->size) \ |
1836 | 434k | return error; |
1837 | | |
1838 | | // Does size include the CRC? |
1839 | | #define DWG_ENTITY_END \ |
1840 | 1.80M | SINCE (R_13b1) \ |
1841 | 1.63M | { \ |
1842 | 1.63M | size_t pos = obj_stream_position (dat, hdl_dat, str_dat); \ |
1843 | 1.63M | int64_t padding = (obj->size * 8) - pos; \ |
1844 | 1.63M | bit_set_position (dat, pos); \ |
1845 | 1.63M | if (padding) \ |
1846 | 1.63M | LOG_HANDLE (" padding: %+ld %s\n", (long)padding, \ |
1847 | 1.63M | padding >= 8 ? "MISSING" \ |
1848 | 1.63M | : (padding < 0) ? "OVERSHOOT" \ |
1849 | 1.63M | : ""); \ |
1850 | 1.63M | } \ |
1851 | 1.47M | return error & ~DWG_ERR_UNHANDLEDCLASS; \ |
1852 | 1.83M | } |
1853 | | |
1854 | | #define DWG_OBJECT(token) \ |
1855 | | EXPORT int dwg_setup_##token (Dwg_Object *obj) \ |
1856 | 1.40M | { \ |
1857 | 1.40M | Dwg_Object_##token *_obj; \ |
1858 | 1.40M | LOG_INFO ("Add object " #token " [%d] ", obj->index); \ |
1859 | 1.40M | obj->supertype = DWG_SUPERTYPE_OBJECT; \ |
1860 | 1.40M | obj->tio.object \ |
1861 | 1.40M | = (Dwg_Object_Object *)calloc (1, sizeof (Dwg_Object_Object)); \ |
1862 | 1.40M | if (!obj->tio.object) \ |
1863 | 1.40M | return DWG_ERR_OUTOFMEM; \ |
1864 | 1.40M | _obj = obj->tio.object->tio.token \ |
1865 | 1.40M | = (Dwg_Object_##token *)calloc (1, sizeof (Dwg_Object_##token)); \ |
1866 | 1.40M | if (!_obj) \ |
1867 | 1.40M | { \ |
1868 | 0 | free (obj->tio.object); \ |
1869 | 0 | obj->tio.object = NULL; \ |
1870 | 0 | obj->fixedtype = DWG_TYPE_FREED; \ |
1871 | 0 | return DWG_ERR_OUTOFMEM; \ |
1872 | 0 | } \ |
1873 | 1.40M | if (!(int)obj->fixedtype) \ |
1874 | 1.40M | { \ |
1875 | 1.40M | obj->fixedtype = DWG_TYPE_##token; \ |
1876 | 1.40M | obj->name = (char *)#token; \ |
1877 | 1.40M | } \ |
1878 | 1.40M | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ |
1879 | 1.40M | { \ |
1880 | 1.34M | obj->type = DWG_TYPE_##token; \ |
1881 | 1.34M | } \ |
1882 | 1.40M | if (!obj->dxfname) \ |
1883 | 1.40M | { \ |
1884 | 1.40M | if (strEQc (#token, "PLACEHOLDER")) \ |
1885 | 1.40M | obj->dxfname = (char *)"ACDBPLACEHOLDER"; \ |
1886 | 1.40M | else if (strEQc (#token, "PROXY_OBJECT")) \ |
1887 | 1.39M | obj->dxfname = (char *)"ACAD_PROXY_OBJECT"; \ |
1888 | 1.39M | else \ |
1889 | 1.39M | obj->dxfname = (char *)#token; \ |
1890 | 1.40M | } \ |
1891 | 1.40M | if (strEQc (#token, "UNKNOWN_OBJ")) \ |
1892 | 1.40M | { \ |
1893 | 38 | obj->name = (char *)#token; \ |
1894 | 38 | obj->dxfname = (char *)#token; \ |
1895 | 38 | obj->fixedtype = DWG_TYPE_UNKNOWN_OBJ; \ |
1896 | 38 | } \ |
1897 | 1.40M | if (obj->parent->opts & DWG_OPTS_IN) \ |
1898 | 1.40M | { \ |
1899 | 0 | obj->dxfname = strdup (obj->dxfname); \ |
1900 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ |
1901 | 0 | obj->name = strdup (obj->name); \ |
1902 | 0 | } \ |
1903 | 1.40M | _obj->parent = obj->tio.object; \ |
1904 | 1.40M | obj->tio.object->dwg = obj->parent; \ |
1905 | 1.40M | obj->tio.object->objid = obj->index; /* obj ptr itself might move */ \ |
1906 | 1.40M | return 0; \ |
1907 | 1.40M | } \ |
1908 | | static int dwg_decode_##token##_private ( \ |
1909 | | Bit_Chain *obj_dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1910 | | Dwg_Object *restrict obj); \ |
1911 | | \ |
1912 | | DWG_DECODE_FUNC int dwg_decode_##token (Bit_Chain *restrict dat, \ |
1913 | | Dwg_Object *restrict obj) \ |
1914 | 1.40M | { \ |
1915 | 1.40M | int error = dwg_setup_##token (obj); \ |
1916 | 1.40M | Bit_Chain hdl_dat = *dat; \ |
1917 | 1.40M | if (error) \ |
1918 | 1.40M | return error; \ |
1919 | 1.40M | SINCE (R_2007a) \ |
1920 | 1.40M | { \ |
1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ |
1922 | 0 | error \ |
1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ |
1924 | 0 | } \ |
1925 | 1.40M | else \ |
1926 | 1.40M | { \ |
1927 | 1.40M | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ |
1928 | 1.40M | } \ |
1929 | 1.40M | return error; \ |
1930 | 1.40M | } \ decode.c:dwg_decode_DICTIONARY Line | Count | Source | 1914 | 354 | { \ | 1915 | 354 | int error = dwg_setup_##token (obj); \ | 1916 | 354 | Bit_Chain hdl_dat = *dat; \ | 1917 | 354 | if (error) \ | 1918 | 354 | return error; \ | 1919 | 354 | SINCE (R_2007a) \ | 1920 | 354 | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 354 | else \ | 1926 | 354 | { \ | 1927 | 354 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 354 | } \ | 1929 | 354 | return error; \ | 1930 | 354 | } \ |
decode.c:dwg_decode_BLOCK_CONTROL Line | Count | Source | 1914 | 3.86k | { \ | 1915 | 3.86k | int error = dwg_setup_##token (obj); \ | 1916 | 3.86k | Bit_Chain hdl_dat = *dat; \ | 1917 | 3.86k | if (error) \ | 1918 | 3.86k | return error; \ | 1919 | 3.86k | SINCE (R_2007a) \ | 1920 | 3.86k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 3.86k | else \ | 1926 | 3.86k | { \ | 1927 | 3.86k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 3.86k | } \ | 1929 | 3.86k | return error; \ | 1930 | 3.86k | } \ |
decode.c:dwg_decode_LAYER_CONTROL Line | Count | Source | 1914 | 1.53k | { \ | 1915 | 1.53k | int error = dwg_setup_##token (obj); \ | 1916 | 1.53k | Bit_Chain hdl_dat = *dat; \ | 1917 | 1.53k | if (error) \ | 1918 | 1.53k | return error; \ | 1919 | 1.53k | SINCE (R_2007a) \ | 1920 | 1.53k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 1.53k | else \ | 1926 | 1.53k | { \ | 1927 | 1.53k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 1.53k | } \ | 1929 | 1.53k | return error; \ | 1930 | 1.53k | } \ |
decode.c:dwg_decode_STYLE_CONTROL Line | Count | Source | 1914 | 4.31k | { \ | 1915 | 4.31k | int error = dwg_setup_##token (obj); \ | 1916 | 4.31k | Bit_Chain hdl_dat = *dat; \ | 1917 | 4.31k | if (error) \ | 1918 | 4.31k | return error; \ | 1919 | 4.31k | SINCE (R_2007a) \ | 1920 | 4.31k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 4.31k | else \ | 1926 | 4.31k | { \ | 1927 | 4.31k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 4.31k | } \ | 1929 | 4.31k | return error; \ | 1930 | 4.31k | } \ |
decode.c:dwg_decode_LTYPE_CONTROL Line | Count | Source | 1914 | 2.94k | { \ | 1915 | 2.94k | int error = dwg_setup_##token (obj); \ | 1916 | 2.94k | Bit_Chain hdl_dat = *dat; \ | 1917 | 2.94k | if (error) \ | 1918 | 2.94k | return error; \ | 1919 | 2.94k | SINCE (R_2007a) \ | 1920 | 2.94k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 2.94k | else \ | 1926 | 2.94k | { \ | 1927 | 2.94k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 2.94k | } \ | 1929 | 2.94k | return error; \ | 1930 | 2.94k | } \ |
decode.c:dwg_decode_VIEW_CONTROL Line | Count | Source | 1914 | 1.96k | { \ | 1915 | 1.96k | int error = dwg_setup_##token (obj); \ | 1916 | 1.96k | Bit_Chain hdl_dat = *dat; \ | 1917 | 1.96k | if (error) \ | 1918 | 1.96k | return error; \ | 1919 | 1.96k | SINCE (R_2007a) \ | 1920 | 1.96k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 1.96k | else \ | 1926 | 1.96k | { \ | 1927 | 1.96k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 1.96k | } \ | 1929 | 1.96k | return error; \ | 1930 | 1.96k | } \ |
decode.c:dwg_decode_UCS_CONTROL Line | Count | Source | 1914 | 937 | { \ | 1915 | 937 | int error = dwg_setup_##token (obj); \ | 1916 | 937 | Bit_Chain hdl_dat = *dat; \ | 1917 | 937 | if (error) \ | 1918 | 937 | return error; \ | 1919 | 937 | SINCE (R_2007a) \ | 1920 | 937 | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 937 | else \ | 1926 | 937 | { \ | 1927 | 937 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 937 | } \ | 1929 | 937 | return error; \ | 1930 | 937 | } \ |
decode.c:dwg_decode_VPORT_CONTROL Line | Count | Source | 1914 | 6.81k | { \ | 1915 | 6.81k | int error = dwg_setup_##token (obj); \ | 1916 | 6.81k | Bit_Chain hdl_dat = *dat; \ | 1917 | 6.81k | if (error) \ | 1918 | 6.81k | return error; \ | 1919 | 6.81k | SINCE (R_2007a) \ | 1920 | 6.81k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 6.81k | else \ | 1926 | 6.81k | { \ | 1927 | 6.81k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 6.81k | } \ | 1929 | 6.81k | return error; \ | 1930 | 6.81k | } \ |
decode.c:dwg_decode_APPID_CONTROL Line | Count | Source | 1914 | 1.25k | { \ | 1915 | 1.25k | int error = dwg_setup_##token (obj); \ | 1916 | 1.25k | Bit_Chain hdl_dat = *dat; \ | 1917 | 1.25k | if (error) \ | 1918 | 1.25k | return error; \ | 1919 | 1.25k | SINCE (R_2007a) \ | 1920 | 1.25k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 1.25k | else \ | 1926 | 1.25k | { \ | 1927 | 1.25k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 1.25k | } \ | 1929 | 1.25k | return error; \ | 1930 | 1.25k | } \ |
decode.c:dwg_decode_DIMSTYLE_CONTROL Line | Count | Source | 1914 | 2.84k | { \ | 1915 | 2.84k | int error = dwg_setup_##token (obj); \ | 1916 | 2.84k | Bit_Chain hdl_dat = *dat; \ | 1917 | 2.84k | if (error) \ | 1918 | 2.84k | return error; \ | 1919 | 2.84k | SINCE (R_2007a) \ | 1920 | 2.84k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 2.84k | else \ | 1926 | 2.84k | { \ | 1927 | 2.84k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 2.84k | } \ | 1929 | 2.84k | return error; \ | 1930 | 2.84k | } \ |
decode.c:dwg_decode_VX_CONTROL Line | Count | Source | 1914 | 718 | { \ | 1915 | 718 | int error = dwg_setup_##token (obj); \ | 1916 | 718 | Bit_Chain hdl_dat = *dat; \ | 1917 | 718 | if (error) \ | 1918 | 718 | return error; \ | 1919 | 718 | SINCE (R_2007a) \ | 1920 | 718 | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 718 | else \ | 1926 | 718 | { \ | 1927 | 718 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 718 | } \ | 1929 | 718 | return error; \ | 1930 | 718 | } \ |
decode.c:dwg_decode_GROUP Line | Count | Source | 1914 | 4.61k | { \ | 1915 | 4.61k | int error = dwg_setup_##token (obj); \ | 1916 | 4.61k | Bit_Chain hdl_dat = *dat; \ | 1917 | 4.61k | if (error) \ | 1918 | 4.61k | return error; \ | 1919 | 4.61k | SINCE (R_2007a) \ | 1920 | 4.61k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 4.61k | else \ | 1926 | 4.61k | { \ | 1927 | 4.61k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 4.61k | } \ | 1929 | 4.61k | return error; \ | 1930 | 4.61k | } \ |
decode.c:dwg_decode_MLINESTYLE Line | Count | Source | 1914 | 6.93k | { \ | 1915 | 6.93k | int error = dwg_setup_##token (obj); \ | 1916 | 6.93k | Bit_Chain hdl_dat = *dat; \ | 1917 | 6.93k | if (error) \ | 1918 | 6.93k | return error; \ | 1919 | 6.93k | SINCE (R_2007a) \ | 1920 | 6.93k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 6.93k | else \ | 1926 | 6.93k | { \ | 1927 | 6.93k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 6.93k | } \ | 1929 | 6.93k | return error; \ | 1930 | 6.93k | } \ |
decode.c:dwg_decode_LAYOUT Line | Count | Source | 1914 | 1.34M | { \ | 1915 | 1.34M | int error = dwg_setup_##token (obj); \ | 1916 | 1.34M | Bit_Chain hdl_dat = *dat; \ | 1917 | 1.34M | if (error) \ | 1918 | 1.34M | return error; \ | 1919 | 1.34M | SINCE (R_2007a) \ | 1920 | 1.34M | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 1.34M | else \ | 1926 | 1.34M | { \ | 1927 | 1.34M | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 1.34M | } \ | 1929 | 1.34M | return error; \ | 1930 | 1.34M | } \ |
decode.c:dwg_decode_PROXY_OBJECT Line | Count | Source | 1914 | 11 | { \ | 1915 | 11 | int error = dwg_setup_##token (obj); \ | 1916 | 11 | Bit_Chain hdl_dat = *dat; \ | 1917 | 11 | if (error) \ | 1918 | 11 | return error; \ | 1919 | 11 | SINCE (R_2007a) \ | 1920 | 11 | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 11 | else \ | 1926 | 11 | { \ | 1927 | 11 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 11 | } \ | 1929 | 11 | return error; \ | 1930 | 11 | } \ |
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_TABLESTYLE Unexecuted instantiation: dwg_decode_CELLSTYLEMAP Unexecuted instantiation: dwg_decode_TABLEGEOMETRY Line | Count | Source | 1914 | 1.41k | { \ | 1915 | 1.41k | int error = dwg_setup_##token (obj); \ | 1916 | 1.41k | Bit_Chain hdl_dat = *dat; \ | 1917 | 1.41k | if (error) \ | 1918 | 1.41k | return error; \ | 1919 | 1.41k | SINCE (R_2007a) \ | 1920 | 1.41k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 1.41k | else \ | 1926 | 1.41k | { \ | 1927 | 1.41k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 1.41k | } \ | 1929 | 1.41k | return error; \ | 1930 | 1.41k | } \ |
Line | Count | Source | 1914 | 2.30k | { \ | 1915 | 2.30k | int error = dwg_setup_##token (obj); \ | 1916 | 2.30k | Bit_Chain hdl_dat = *dat; \ | 1917 | 2.30k | if (error) \ | 1918 | 2.30k | return error; \ | 1919 | 2.30k | SINCE (R_2007a) \ | 1920 | 2.30k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 2.30k | else \ | 1926 | 2.30k | { \ | 1927 | 2.30k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 2.30k | } \ | 1929 | 2.30k | return error; \ | 1930 | 2.30k | } \ |
Unexecuted instantiation: dwg_decode_SCALE Line | Count | Source | 1914 | 6.02k | { \ | 1915 | 6.02k | int error = dwg_setup_##token (obj); \ | 1916 | 6.02k | Bit_Chain hdl_dat = *dat; \ | 1917 | 6.02k | if (error) \ | 1918 | 6.02k | return error; \ | 1919 | 6.02k | SINCE (R_2007a) \ | 1920 | 6.02k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 6.02k | else \ | 1926 | 6.02k | { \ | 1927 | 6.02k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 6.02k | } \ | 1929 | 6.02k | return error; \ | 1930 | 6.02k | } \ |
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 | 1914 | 38 | { \ | 1915 | 38 | int error = dwg_setup_##token (obj); \ | 1916 | 38 | Bit_Chain hdl_dat = *dat; \ | 1917 | 38 | if (error) \ | 1918 | 38 | return error; \ | 1919 | 38 | SINCE (R_2007a) \ | 1920 | 38 | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 38 | else \ | 1926 | 38 | { \ | 1927 | 38 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 38 | } \ | 1929 | 38 | return error; \ | 1930 | 38 | } \ |
Line | Count | Source | 1914 | 362 | { \ | 1915 | 362 | int error = dwg_setup_##token (obj); \ | 1916 | 362 | Bit_Chain hdl_dat = *dat; \ | 1917 | 362 | if (error) \ | 1918 | 362 | return error; \ | 1919 | 362 | SINCE (R_2007a) \ | 1920 | 362 | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 362 | else \ | 1926 | 362 | { \ | 1927 | 362 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 362 | } \ | 1929 | 362 | return error; \ | 1930 | 362 | } \ |
dwg_decode_LONG_TRANSACTION Line | Count | Source | 1914 | 3.25k | { \ | 1915 | 3.25k | int error = dwg_setup_##token (obj); \ | 1916 | 3.25k | Bit_Chain hdl_dat = *dat; \ | 1917 | 3.25k | if (error) \ | 1918 | 3.25k | return error; \ | 1919 | 3.25k | SINCE (R_2007a) \ | 1920 | 3.25k | { \ | 1921 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 1922 | 0 | error \ | 1923 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj);\ | 1924 | 0 | } \ | 1925 | 3.25k | else \ | 1926 | 3.25k | { \ | 1927 | 3.25k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 1928 | 3.25k | } \ | 1929 | 3.25k | return error; \ | 1930 | 3.25k | } \ |
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_LAYERFILTER 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 |
1931 | | \ |
1932 | | GCC30_DIAG_IGNORE (-Wformat-nonliteral) \ |
1933 | | static int dwg_decode_##token##_private ( \ |
1934 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1935 | | Dwg_Object *restrict obj) \ |
1936 | 1.40M | { \ |
1937 | 1.40M | BITCODE_BL vcount, rcount3, rcount4; \ |
1938 | 1.40M | int error = 0; \ |
1939 | 1.40M | Dwg_Object_##token *_obj = NULL; \ |
1940 | 1.40M | Dwg_Data *dwg = obj->parent; \ |
1941 | 1.40M | LOG_INFO ("Decode object " #token "\n"); \ |
1942 | 1.40M | if (strNE (#token, "TABLECONTENT") || obj->fixedtype != DWG_TYPE_TABLE) \ |
1943 | 1.40M | { \ |
1944 | 1.40M | _obj = obj->tio.object->tio.token; \ |
1945 | 1.40M | error = dwg_decode_object (dat, hdl_dat, str_dat, obj->tio.object); \ |
1946 | 1.40M | if (error >= DWG_ERR_CRITICAL || dat->byte > dat->size) \ |
1947 | 1.40M | return error; \ |
1948 | 1.40M | } |
1949 | | |
1950 | 1.45M | #define DWG_OBJECT_END DWG_ENTITY_END |
1951 | | |
1952 | | // only for exported BLOCK_HEADER, LAYER, STYLE, LTYPE, VIEW, UCS, VPORT, |
1953 | | // APPID, DIMSTYLE, VX_TABLE_RECORD table records, needed for the r11 add API. |
1954 | | #define DWG_TABLE(token) \ |
1955 | | EXPORT int dwg_setup_##token (Dwg_Object *obj) \ |
1956 | 87.1k | { \ |
1957 | 87.1k | Dwg_Object_##token *_obj; \ |
1958 | 87.1k | LOG_INFO ("Add table record " #token " [%d] ", obj->index); \ |
1959 | 87.1k | obj->supertype = DWG_SUPERTYPE_OBJECT; \ |
1960 | 87.1k | obj->tio.object \ |
1961 | 87.1k | = (Dwg_Object_Object *)calloc (1, sizeof (Dwg_Object_Object)); \ |
1962 | 87.1k | if (!obj->tio.object) \ |
1963 | 87.1k | return DWG_ERR_OUTOFMEM; \ |
1964 | 87.1k | _obj = obj->tio.object->tio.token \ |
1965 | 87.1k | = (Dwg_Object_##token *)calloc (1, sizeof (Dwg_Object_##token)); \ |
1966 | 87.1k | if (!_obj) \ |
1967 | 87.1k | { \ |
1968 | 0 | free (obj->tio.object); \ |
1969 | 0 | obj->tio.object = NULL; \ |
1970 | 0 | obj->fixedtype = DWG_TYPE_FREED; \ |
1971 | 0 | return DWG_ERR_OUTOFMEM; \ |
1972 | 0 | } \ |
1973 | 87.1k | if (!(int)obj->fixedtype) \ |
1974 | 87.1k | { \ |
1975 | 87.1k | obj->fixedtype = DWG_TYPE_##token; \ |
1976 | 87.1k | obj->name = (char *)#token; \ |
1977 | 87.1k | } \ |
1978 | 87.1k | if (!(int)obj->type && obj->fixedtype <= DWG_TYPE_LAYOUT) \ |
1979 | 87.1k | { \ |
1980 | 11.5k | obj->type = DWG_TYPE_##token; \ |
1981 | 11.5k | } \ |
1982 | 87.1k | obj->dxfname = (char *)#token; \ |
1983 | 87.1k | if (obj->parent->opts & DWG_OPTS_IN) \ |
1984 | 87.1k | { \ |
1985 | 0 | obj->dxfname = strdup (obj->dxfname); \ |
1986 | 0 | if (obj->parent->opts & DWG_OPTS_INJSON) \ |
1987 | 0 | obj->name = strdup (obj->name); \ |
1988 | 0 | } \ |
1989 | 87.1k | _obj->parent = obj->tio.object; \ |
1990 | 87.1k | obj->tio.object->dwg = obj->parent; \ |
1991 | 87.1k | obj->tio.object->objid = obj->index; /* obj ptr itself might move */ \ |
1992 | 87.1k | return 0; \ |
1993 | 87.1k | } \ |
1994 | | static int dwg_decode_##token##_private ( \ |
1995 | | Bit_Chain *obj_dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
1996 | | Dwg_Object *restrict obj); \ |
1997 | | \ |
1998 | | int dwg_decode_##token (Bit_Chain *restrict dat, Dwg_Object *restrict obj) \ |
1999 | 87.1k | { \ |
2000 | 87.1k | int error = dwg_setup_##token (obj); \ |
2001 | 87.1k | Bit_Chain hdl_dat = *dat; \ |
2002 | 87.1k | if (error) \ |
2003 | 87.1k | return error; \ |
2004 | 87.1k | SINCE (R_2007a) \ |
2005 | 87.1k | { \ |
2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ |
2007 | 0 | error \ |
2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ |
2009 | 0 | } \ |
2010 | 87.1k | else \ |
2011 | 87.1k | { \ |
2012 | 87.1k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ |
2013 | 87.1k | } \ |
2014 | 87.1k | return error; \ |
2015 | 87.1k | } \ Line | Count | Source | 1999 | 12.4k | { \ | 2000 | 12.4k | int error = dwg_setup_##token (obj); \ | 2001 | 12.4k | Bit_Chain hdl_dat = *dat; \ | 2002 | 12.4k | if (error) \ | 2003 | 12.4k | return error; \ | 2004 | 12.4k | SINCE (R_2007a) \ | 2005 | 12.4k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 12.4k | else \ | 2011 | 12.4k | { \ | 2012 | 12.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 12.4k | } \ | 2014 | 12.4k | return error; \ | 2015 | 12.4k | } \ |
Line | Count | Source | 1999 | 1.54k | { \ | 2000 | 1.54k | int error = dwg_setup_##token (obj); \ | 2001 | 1.54k | Bit_Chain hdl_dat = *dat; \ | 2002 | 1.54k | if (error) \ | 2003 | 1.54k | return error; \ | 2004 | 1.54k | SINCE (R_2007a) \ | 2005 | 1.54k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 1.54k | else \ | 2011 | 1.54k | { \ | 2012 | 1.54k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 1.54k | } \ | 2014 | 1.54k | return error; \ | 2015 | 1.54k | } \ |
Line | Count | Source | 1999 | 6.68k | { \ | 2000 | 6.68k | int error = dwg_setup_##token (obj); \ | 2001 | 6.68k | Bit_Chain hdl_dat = *dat; \ | 2002 | 6.68k | if (error) \ | 2003 | 6.68k | return error; \ | 2004 | 6.68k | SINCE (R_2007a) \ | 2005 | 6.68k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 6.68k | else \ | 2011 | 6.68k | { \ | 2012 | 6.68k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 6.68k | } \ | 2014 | 6.68k | return error; \ | 2015 | 6.68k | } \ |
Line | Count | Source | 1999 | 10.9k | { \ | 2000 | 10.9k | int error = dwg_setup_##token (obj); \ | 2001 | 10.9k | Bit_Chain hdl_dat = *dat; \ | 2002 | 10.9k | if (error) \ | 2003 | 10.9k | return error; \ | 2004 | 10.9k | SINCE (R_2007a) \ | 2005 | 10.9k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 10.9k | else \ | 2011 | 10.9k | { \ | 2012 | 10.9k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 10.9k | } \ | 2014 | 10.9k | return error; \ | 2015 | 10.9k | } \ |
Line | Count | Source | 1999 | 8.85k | { \ | 2000 | 8.85k | int error = dwg_setup_##token (obj); \ | 2001 | 8.85k | Bit_Chain hdl_dat = *dat; \ | 2002 | 8.85k | if (error) \ | 2003 | 8.85k | return error; \ | 2004 | 8.85k | SINCE (R_2007a) \ | 2005 | 8.85k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 8.85k | else \ | 2011 | 8.85k | { \ | 2012 | 8.85k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 8.85k | } \ | 2014 | 8.85k | return error; \ | 2015 | 8.85k | } \ |
Line | Count | Source | 1999 | 3.29k | { \ | 2000 | 3.29k | int error = dwg_setup_##token (obj); \ | 2001 | 3.29k | Bit_Chain hdl_dat = *dat; \ | 2002 | 3.29k | if (error) \ | 2003 | 3.29k | return error; \ | 2004 | 3.29k | SINCE (R_2007a) \ | 2005 | 3.29k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 3.29k | else \ | 2011 | 3.29k | { \ | 2012 | 3.29k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 3.29k | } \ | 2014 | 3.29k | return error; \ | 2015 | 3.29k | } \ |
Line | Count | Source | 1999 | 35.4k | { \ | 2000 | 35.4k | int error = dwg_setup_##token (obj); \ | 2001 | 35.4k | Bit_Chain hdl_dat = *dat; \ | 2002 | 35.4k | if (error) \ | 2003 | 35.4k | return error; \ | 2004 | 35.4k | SINCE (R_2007a) \ | 2005 | 35.4k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 35.4k | else \ | 2011 | 35.4k | { \ | 2012 | 35.4k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 35.4k | } \ | 2014 | 35.4k | return error; \ | 2015 | 35.4k | } \ |
Line | Count | Source | 1999 | 943 | { \ | 2000 | 943 | int error = dwg_setup_##token (obj); \ | 2001 | 943 | Bit_Chain hdl_dat = *dat; \ | 2002 | 943 | if (error) \ | 2003 | 943 | return error; \ | 2004 | 943 | SINCE (R_2007a) \ | 2005 | 943 | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 943 | else \ | 2011 | 943 | { \ | 2012 | 943 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 943 | } \ | 2014 | 943 | return error; \ | 2015 | 943 | } \ |
Line | Count | Source | 1999 | 6.54k | { \ | 2000 | 6.54k | int error = dwg_setup_##token (obj); \ | 2001 | 6.54k | Bit_Chain hdl_dat = *dat; \ | 2002 | 6.54k | if (error) \ | 2003 | 6.54k | return error; \ | 2004 | 6.54k | SINCE (R_2007a) \ | 2005 | 6.54k | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 6.54k | else \ | 2011 | 6.54k | { \ | 2012 | 6.54k | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 6.54k | } \ | 2014 | 6.54k | return error; \ | 2015 | 6.54k | } \ |
dwg_decode_VX_TABLE_RECORD Line | Count | Source | 1999 | 416 | { \ | 2000 | 416 | int error = dwg_setup_##token (obj); \ | 2001 | 416 | Bit_Chain hdl_dat = *dat; \ | 2002 | 416 | if (error) \ | 2003 | 416 | return error; \ | 2004 | 416 | SINCE (R_2007a) \ | 2005 | 416 | { \ | 2006 | 0 | Bit_Chain obj_dat = *dat, str_dat = *dat; \ | 2007 | 0 | error \ | 2008 | 0 | = dwg_decode_##token##_private (&obj_dat, &hdl_dat, &str_dat, obj); \ | 2009 | 0 | } \ | 2010 | 416 | else \ | 2011 | 416 | { \ | 2012 | 416 | error = dwg_decode_##token##_private (dat, &hdl_dat, dat, obj); \ | 2013 | 416 | } \ | 2014 | 416 | return error; \ | 2015 | 416 | } \ |
|
2016 | | \ |
2017 | | GCC30_DIAG_IGNORE (-Wformat-nonliteral) \ |
2018 | | static int dwg_decode_##token##_private ( \ |
2019 | | Bit_Chain *dat, Bit_Chain *hdl_dat, Bit_Chain *str_dat, \ |
2020 | | Dwg_Object *restrict obj) \ |
2021 | 87.1k | { \ |
2022 | 87.1k | BITCODE_BL vcount, rcount3, rcount4; \ |
2023 | 87.1k | int error = 0; \ |
2024 | 87.1k | Dwg_Object_##token *_obj = NULL; \ |
2025 | 87.1k | Dwg_Data *dwg = obj->parent; \ |
2026 | 87.1k | LOG_INFO ("Decode table record " #token "\n"); \ |
2027 | 87.1k | _obj = obj->tio.object->tio.token; \ |
2028 | 87.1k | error = dwg_decode_object (dat, hdl_dat, str_dat, obj->tio.object); \ |
2029 | 87.1k | if (error >= DWG_ERR_CRITICAL || dat->byte > dat->size) \ |
2030 | 87.1k | return error; |
2031 | | |
2032 | | #endif |