Index: trunk/src/plugins/io_easyeda/read_hi_pro.c =================================================================== --- trunk/src/plugins/io_easyeda/read_hi_pro.c (revision 10683) +++ trunk/src/plugins/io_easyeda/read_hi_pro.c (revision 10684) @@ -662,8 +662,27 @@ return 0; } +/* "COMPONENT","e152","LM358.1",190,360,0, 0,{},0 + kw id symname x y rot? ? ? ? */ static int easypro_parse_component(read_ctx_t *ctx, gdom_node_t *obj, csch_cgrp_t *parent) { + const char *symname; + double x, y, rot; + + if (ctx->pro_symtab == NULL) { + error_at(ctx, obj, ("easypro_parse_component: no symtab in context - component within a symbol?!\n")); + return -1; + } + + REQ_ARGC_GTE(obj, 9, "easypro_parse_component", return -1); + + GET_ARG_STR(symname, obj, 2, "easypro_parse_component: symname", return -1); + GET_ARG_DBL(x, obj, 3, "easypro_parse_component: coord x", return -1); + GET_ARG_DBL(y, obj, 4, "easypro_parse_component: coord y", return -1); + GET_ARG_DBL(rot, obj, 5, "easypro_parse_component: rotation", return -1); + +rnd_trace("sym lookup: '%s' -> %p\n", symname, htsp_get(ctx->pro_symtab, symname)); + TODO("implement me"); ctx->pro_last = parent; return 0; } @@ -726,7 +745,7 @@ case -1: default: - error_at(ctx, obj, ("easypro_parse_obj: unrecognized obj %d '%s'\n", cmdi, cmds)); + error_at(ctx, obj, ("easypro_parse_any_obj: unrecognized obj %d '%s'\n", cmdi, cmds)); return -1; } @@ -809,6 +828,7 @@ ctx.f = f; ctx.fn = fn; ctx.sheet = sheet; + ctx.pro_symtab = symtab; alien_setup(&ctx); easypro_init_ctx(&ctx);