Index: pcbdoc.c =================================================================== --- pcbdoc.c (revision 35513) +++ pcbdoc.c (revision 35514) @@ -84,6 +84,7 @@ switch(field->val_type) { case ALTIUM_FT_DBL: return RND_MIL_TO_COORD(field->val.dbl); + case ALTIUM_FT_LNG: return RND_MIL_TO_COORD(field->val.lng); case ALTIUM_FT_CRD: return field->val.crd; case ALTIUM_FT_STR: /* look for unit (anything non-numeric) */ @@ -118,6 +119,7 @@ switch(field->val_type) { case ALTIUM_FT_DBL: return field->val.dbl; + case ALTIUM_FT_LNG: return field->val.lng; case ALTIUM_FT_CRD: return field->val.crd; case ALTIUM_FT_STR: res = strtod(field->val.str, &end); @@ -137,6 +139,7 @@ switch(field->val_type) { case ALTIUM_FT_DBL: return field->val.dbl; + case ALTIUM_FT_LNG: return field->val.lng; case ALTIUM_FT_CRD: return field->val.crd; case ALTIUM_FT_STR: res = strtol(field->val.str, &end, 10); Index: pcbdoc_ascii.h =================================================================== --- pcbdoc_ascii.h (revision 35513) +++ pcbdoc_ascii.h (revision 35514) @@ -6,11 +6,12 @@ typedef struct altium_field_s { altium_kw_field_keys_t type; /* derived from ->key */ const char *key; - enum { ALTIUM_FT_STR, ALTIUM_FT_CRD, ALTIUM_FT_DBL } val_type; + enum { ALTIUM_FT_STR, ALTIUM_FT_CRD, ALTIUM_FT_DBL, ALTIUM_FT_LNG } val_type; union { const char *str; - const rnd_coord_t crd; + rnd_coord_t crd; double dbl; + long lng; /* also used for bool */ } val; gdl_elem_t link; /* in parent record */ } altium_field_t;