Index: trunk/src/file_act.c =================================================================== --- trunk/src/file_act.c (revision 14149) +++ trunk/src/file_act.c (revision 14150) @@ -128,7 +128,7 @@ if (pcb_strcasecmp(function, "ElementToBuffer") == 0) { pcb_notify_crosshair_change(pcb_false); - if (pcb_element_load_to_buffer(PCB_PASTEBUFFER, name)) + if (pcb_element_load_to_buffer(PCB_PASTEBUFFER, name, NULL)) pcb_crosshair_set_mode(PCB_MODE_PASTE_BUFFER); pcb_notify_crosshair_change(pcb_true); } Index: trunk/src/obj_elem.c =================================================================== --- trunk/src/obj_elem.c (revision 14149) +++ trunk/src/obj_elem.c (revision 14150) @@ -138,10 +138,10 @@ * returns pcb_false on error * if successful, update some other stuff and reposition the pastebuffer */ -pcb_bool pcb_element_load_to_buffer(pcb_buffer_t *Buffer, const char *Name) +pcb_bool pcb_element_load_to_buffer(pcb_buffer_t *Buffer, const char *Name, const char *fmt) { pcb_buffer_clear(PCB, Buffer); - if (!pcb_parse_element(Buffer->Data, Name)) { + if (!pcb_parse_element(Buffer->Data, Name, fmt)) { if (conf_core.editor.show_solder_side) pcb_buffer_flip_side(PCB, Buffer); pcb_set_buffer_bbox(Buffer); @@ -172,7 +172,7 @@ into the buffer. Returns zero on success, non-zero on error. */ int pcb_element_load_footprint_by_name(pcb_buffer_t *Buffer, const char *Footprint) { - return !pcb_element_load_to_buffer(Buffer, Footprint); + return !pcb_element_load_to_buffer(Buffer, Footprint, NULL); } Index: trunk/src/obj_elem.h =================================================================== --- trunk/src/obj_elem.h (revision 14149) +++ trunk/src/obj_elem.h (revision 14150) @@ -83,7 +83,7 @@ int pcb_element_eq(const pcb_element_t *e1, const pcb_element_t *e2); -pcb_bool pcb_element_load_to_buffer(pcb_buffer_t *Buffer, const char *Name); +pcb_bool pcb_element_load_to_buffer(pcb_buffer_t *Buffer, const char *Name, const char *fmt); int pcb_element_load_footprint_by_name(pcb_buffer_t *Buffer, const char *Footprint); pcb_bool pcb_element_smash_buffer(pcb_buffer_t *Buffer); pcb_bool pcb_element_convert_from_buffer(pcb_buffer_t *Buffer); Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 14149) +++ trunk/src/plug_io.c (revision 14150) @@ -234,14 +234,12 @@ return res; } -int pcb_parse_element(pcb_data_t *Ptr, const char *Filename) +int pcb_parse_element(pcb_data_t *Ptr, const char *Filename, const char *fmt) { int res = -1, len, n; pcb_find_io_t available[PCB_IO_MAX_FORMATS]; int accepts[PCB_IO_MAX_FORMATS]; /* test-parse output */ int accept_total = 0; -#warning TODO: this should be a parameter - char *fmt = NULL; len = pcb_test_parse_all(Filename, fmt, PCB_IOT_FOOTPRINT, available, accepts, &accept_total, sizeof(available)/sizeof(available[0]), 0, 0); if (len < 0) Index: trunk/src/plug_io.h =================================================================== --- trunk/src/plug_io.h (revision 14149) +++ trunk/src/plug_io.h (revision 14150) @@ -108,7 +108,7 @@ /********** hook wrappers **********/ int pcb_parse_pcb(pcb_board_t *Ptr, const char *Filename, const char *fmt, int load_settings, int ignore_missing); -int pcb_parse_element(pcb_data_t *Ptr, const char *name); +int pcb_parse_element(pcb_data_t *Ptr, const char *name, const char *fmt); int pcb_parse_font(pcb_font_t *Ptr, const char *Filename); int pcb_write_buffer(FILE *f, pcb_buffer_t *buff, const char *fmt, pcb_bool elem_only); int pcb_write_element_data(FILE *f, pcb_data_t *e, const char *fmt); Index: trunk/src_plugins/hid_lesstif/library.c =================================================================== --- trunk/src_plugins/hid_lesstif/library.c (revision 14149) +++ trunk/src_plugins/hid_lesstif/library.c (revision 14150) @@ -64,7 +64,7 @@ { pcb_fplibrary_t *e = picks.array[last_pick]; e = &e->data.dir.children.array[cbs->item_position - 1]; - if (pcb_element_load_to_buffer(PCB_PASTEBUFFER, e->data.fp.loc_info)) + if (pcb_element_load_to_buffer(PCB_PASTEBUFFER, e->data.fp.loc_info, NULL)) pcb_crosshair_set_mode(PCB_MODE_PASTE_BUFFER); } Index: trunk/src_plugins/lib_gtk_common/dlg_library.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_library.c (revision 14149) +++ trunk/src_plugins/lib_gtk_common/dlg_library.c (revision 14150) @@ -284,7 +284,7 @@ fullp = entry->data.fp.loc_info; } pcb_crosshair_set_mode(PCB_MODE_ARROW); - if (pcb_element_load_to_buffer(PCB_PASTEBUFFER, name == NULL ? fullp : name)) + if (pcb_element_load_to_buffer(PCB_PASTEBUFFER, name == NULL ? fullp : name, NULL)) pcb_crosshair_set_mode(PCB_MODE_PASTE_BUFFER); /* update the preview with new symbol data */ Index: trunk/src_plugins/shand_cmd/command.c =================================================================== --- trunk/src_plugins/shand_cmd/command.c (revision 14149) +++ trunk/src_plugins/shand_cmd/command.c (revision 14150) @@ -154,7 +154,7 @@ switch (argc) { case 1: /* filename is passed in commandline */ filename = argv[0]; - if (filename && pcb_element_load_to_buffer(PCB_PASTEBUFFER, filename)) + if (filename && pcb_element_load_to_buffer(PCB_PASTEBUFFER, filename, NULL)) pcb_crosshair_set_mode(PCB_MODE_PASTE_BUFFER); break;