Index: trunk/src_plugins/query/fields.sphash =================================================================== --- trunk/src_plugins/query/fields.sphash (revision 17029) +++ trunk/src_plugins/query/fields.sphash (revision 17030) @@ -40,3 +40,4 @@ plated shape subc +side Index: trunk/src_plugins/query/query_access.c =================================================================== --- trunk/src_plugins/query/query_access.c (revision 17029) +++ trunk/src_plugins/query/query_access.c (revision 17030) @@ -622,6 +622,7 @@ query_fields_keys_t fh1; pcb_coord_t x, y; double rot; + int on_bottom; fld2hash_req(fh1, fld, 0); if (fh1 == query_fields_a) { @@ -640,6 +641,7 @@ case query_fields_x: pcb_subc_get_origin(p, &x, &y); PCB_QRY_RET_INT(res, x); case query_fields_y: pcb_subc_get_origin(p, &x, &y); PCB_QRY_RET_INT(res, y); case query_fields_rotation: pcb_subc_get_rotation(p, &rot); PCB_QRY_RET_DBL(res, rot); + case query_fields_side: pcb_subc_get_side(p, &on_bottom); PCB_QRY_RET_SIDE(res, on_bottom); case query_fields_refdes: PCB_QRY_RET_STR(res, p->refdes); default:; } Index: trunk/src_plugins/query/query_exec.h =================================================================== --- trunk/src_plugins/query/query_exec.h (revision 17029) +++ trunk/src_plugins/query/query_exec.h (revision 17030) @@ -73,6 +73,13 @@ return 0; \ } while(0) +#define PCB_QRY_RET_SIDE(o, on_bottom) \ +do { \ + o->type = PCBQ_VT_STRING; \ + o->data.str = on_bottom ? "BOTTOM" : "TOP"; \ + return 0; \ +} while(0) + /* The case when the operation couldn't be carried out, sort of NaN */ #define PCB_QRY_RET_INV(o) \ do { \