Index: trunk/src/plugins/io_easyeda/read.c =================================================================== --- trunk/src/plugins/io_easyeda/read.c (revision 10711) +++ trunk/src/plugins/io_easyeda/read.c (revision 10712) @@ -118,6 +118,7 @@ csch_alien_read_ctx_t alien; /* these are used by the pro format only */ + double version; csch_cgrp_t *pro_last; /* last group object (e.g. part, pin) created; ATTRs are added to this */ htsi_t pro_pen_fill; int pro_want_slot; /* which slot to load; -1 means all */ Index: trunk/src/plugins/io_easyeda/read_hi_pro_draw.c =================================================================== --- trunk/src/plugins/io_easyeda/read_hi_pro_draw.c (revision 10711) +++ trunk/src/plugins/io_easyeda/read_hi_pro_draw.c (revision 10712) @@ -795,6 +795,7 @@ static int easypro_verify_header(read_ctx_t *ctx, int is_sym) { gdom_node_t *hdr, *head; + char *vers; if (ctx->root->type != GDOM_ARRAY) { error_at(ctx, ctx->root, ("easypro_verify_header: internal error: root must be an array\n")); @@ -814,8 +815,12 @@ CHK_ARG_KW(hdr, 1, "SYMBOL", "easypro_verify_header: DOCTYPE", return -1); else CHK_ARG_KW(hdr, 1, "SCH", "easypro_verify_header: DOCTYPE", return -1); - CHK_ARG_KW(hdr, 2, "1.1", "easypro_verify_header: DOCTYPE", return -1); + GET_ARG_STR(vers, hdr, 2, "easypro_verify_header: version", return -1); + ctx->version = strtod(vers, NULL); + if (ctx->version != 1.1) + rnd_message(RND_MSG_ERROR, "easyeda pro: file version is %s; the version that works the best with this plugin is 1.1\n", vers); + /* second line: HEAD */ hdr = ctx->root->value.array.child[1]; REQ_ARGC_GTE(hdr, 2, "easypro_verify_header: HEAD", return -1);