Index: src_plugins/io_eagle/read.c =================================================================== --- src_plugins/io_eagle/read.c (revision 8806) +++ src_plugins/io_eagle/read.c (revision 8807) @@ -878,11 +878,22 @@ return 0; } -static void eagle_read_elem_text(read_state_t *st, pcb_element_t *elem, pcb_text_t *text, pcb_coord_t x, pcb_coord_t y, const char *attname, const char *str) +static void eagle_read_elem_text(read_state_t *st, xmlNode *nd, pcb_element_t *elem, pcb_text_t *text, pcb_coord_t x, pcb_coord_t y, const char *attname, const char *str) { int Direction = 0, TextScale = 100; - pcb_flag_t TextFlags = pcb_no_flags(); + pcb_flag_t TextFlags = pcb_no_flags(); + pcb_coord_t size = PCB_MM_TO_COORD(2); + for(nd = nd->children; nd != NULL; nd = nd->next) { + if (xmlStrcmp(nd->name, (xmlChar *)"attribute") == 0) { + const char *rot = eagle_get_attrs(nd, "rot", NULL); + size = eagle_get_attrc(nd, "size", size); + x = eagle_get_attrc(nd, "x", x); + y = eagle_get_attrc(nd, "y", y); + break; + } + } + pcb_element_text_set(text, pcb_font(st->pcb, 0, 1), x, y, Direction, str, TextScale, TextFlags); text->Element = elem; } @@ -937,9 +948,9 @@ } PCB_END_LOOP; - eagle_read_elem_text(st, new_elem, &PCB_ELEM_TEXT_DESCRIPTION(new_elem), x, y, "PROD_ID", pkg); - eagle_read_elem_text(st, new_elem, &PCB_ELEM_TEXT_REFDES(new_elem), x, y, "NAME", name); - eagle_read_elem_text(st, new_elem, &PCB_ELEM_TEXT_VALUE(new_elem), x, y, "VALUE", val); + eagle_read_elem_text(st, n, new_elem, &PCB_ELEM_TEXT_DESCRIPTION(new_elem), x, y, "PROD_ID", pkg); + eagle_read_elem_text(st, n, new_elem, &PCB_ELEM_TEXT_REFDES(new_elem), x, y, "NAME", name); + eagle_read_elem_text(st, n, new_elem, &PCB_ELEM_TEXT_VALUE(new_elem), x, y, "VALUE", val); if ((rot != NULL) && (rot[0] == 'R')) {