Index: work/alien_formats/eagle/eagle_bin/test_parser/eagle_bin.c =================================================================== --- work/alien_formats/eagle/eagle_bin/test_parser/eagle_bin.c (revision 9373) +++ work/alien_formats/eagle/eagle_bin/test_parser/eagle_bin.c (revision 9374) @@ -18,6 +18,10 @@ T_STR } pcb_eagle_type_t; +typedef enum { + SS_DIRECT, /* it specifies the number of direct children */ + SS_RECURSIVE /* it specifies the number of all children, recursively */ +} pcb_eagle_ss_type_t; typedef struct { @@ -29,6 +33,7 @@ typedef struct { int offs; /* 0 is the terminator (no more offsets) */ int len; + pcb_eagle_ss_type_t ss_type; } subsect_t; typedef struct { @@ -54,8 +59,8 @@ TERM }, { /* subsection sizes */ - {2, 2}, - {4, 4}, + {2, 2, SS_DIRECT}, + {4, 4, SS_DIRECT}, TERM }, { /* attributes */ @@ -115,7 +120,7 @@ TERM }, { /* subsection sizes */ - {4, 4}, + {4, 4, SS_DIRECT}, TERM }, { /* attributes */ @@ -130,7 +135,7 @@ TERM }, { /* subsection sizes */ - {4, 4}, + {4, 4, SS_DIRECT}, TERM }, { /* attributes */ @@ -146,7 +151,7 @@ TERM }, { /* subsection sizes */ - {4, 4}, + {4, 4, SS_DIRECT}, TERM }, { /* attributes */ @@ -160,7 +165,7 @@ TERM }, { /* subsection sizes */ - {4, 4}, + {4, 4, SS_DIRECT}, TERM }, { /* attributes */ @@ -174,7 +179,7 @@ TERM }, { /* subsection sizes */ - {4, 4}, + {4, 4, SS_DIRECT}, TERM }, { /* attributes */ @@ -189,7 +194,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -208,7 +213,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -227,7 +232,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -246,7 +251,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -263,7 +268,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -281,7 +286,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -299,7 +304,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -315,7 +320,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -555,7 +560,7 @@ TERM }, { /* subsection sizes */ - {2,2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */ @@ -587,7 +592,7 @@ TERM }, { /* subsection sizes */ - {2, 2}, + {2, 2, SS_DIRECT}, TERM }, { /* attributes */