Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 4338) +++ trunk/src/plug_io.c (revision 4339) @@ -247,10 +247,6 @@ return res; } -/* Save pcb to f; there's a copy of the file we are going to "overwrite", named - in old_filename and the new file name we are using is new_filename. The file - names are NULL if we are saving into a pipe. If emergency is true, do the - safest save possible, don't mind formatting and extras. */ static int pcb_write_pcb(FILE *f, const char *old_filename, const char *new_filename, const char *fmt, pcb_bool emergency) { int res; @@ -258,7 +254,7 @@ if (p != NULL) { event(EVENT_SAVE_PRE, "s", fmt); - res = p->write_pcb(p, f); + res = p->write_pcb(p, f, old_filename, new_filename, emergency); event(EVENT_SAVE_POST, "si", fmt, res); } plug_io_err(res, "write pcb", NULL); Index: trunk/src/plug_io.h =================================================================== --- trunk/src/plug_io.h (revision 4338) +++ trunk/src/plug_io.h (revision 4339) @@ -73,8 +73,13 @@ /* Write element data to a file. Return 0 on success. */ int (*write_element)(plug_io_t *ctx, FILE *f, DataTypePtr e); - /* Writes PCB to a file. Return 0 on success. */ - int (*write_pcb)(plug_io_t *ctx, FILE *f); + /* Write PCB to f; there's a copy of the file we are going to + "overwrite", named in old_filename and the new file name we are + using is new_filename. The file names are NULL if we are saving + into a pipe. If emergency is true, do the safest save possible, + don't mind formatting and extras. + Return 0 on success. */ + int (*write_pcb)(plug_io_t *ctx, FILE *f, const char *old_filename, const char *new_filename, pcb_bool emergency); const char *default_fmt; const char *description; Index: trunk/src_plugins/io_kicad/write.c =================================================================== --- trunk/src_plugins/io_kicad/write.c (revision 4338) +++ trunk/src_plugins/io_kicad/write.c (revision 4339) @@ -77,7 +77,7 @@ /* --------------------------------------------------------------------------- * writes PCB to file */ -int io_kicad_write_pcb(plug_io_t *ctx, FILE * FP) +int io_kicad_write_pcb(plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, pcb_bool emergency) { /* this is the first step in exporting a layout; * creating a kicad module containing the elements used in the layout Index: trunk/src_plugins/io_kicad/write.h =================================================================== --- trunk/src_plugins/io_kicad/write.h (revision 4338) +++ trunk/src_plugins/io_kicad/write.h (revision 4339) @@ -32,7 +32,7 @@ int io_kicad_write_element(plug_io_t *ctx, FILE * FP, DataTypePtr Data); int io_kicad_write_buffer(plug_io_t *ctx, FILE * FP, BufferType *buff); -int io_kicad_write_pcb(plug_io_t *ctx, FILE * FP); +int io_kicad_write_pcb(plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, pcb_bool emergency); int write_kicad_module_header(FILE * FP, pcb_cardinal_t indentation); int write_kicad_layout_header(FILE * FP, pcb_cardinal_t indentation); int write_kicad_layout_vias(FILE * FP, DataTypePtr Data, Coord MaxWidth, Coord MaxHeight, pcb_cardinal_t indentation); Index: trunk/src_plugins/io_kicad_legacy/write.c =================================================================== --- trunk/src_plugins/io_kicad_legacy/write.c (revision 4338) +++ trunk/src_plugins/io_kicad_legacy/write.c (revision 4339) @@ -74,7 +74,7 @@ /* --------------------------------------------------------------------------- * writes PCB to file */ -int io_kicad_legacy_write_pcb(plug_io_t *ctx, FILE * FP) +int io_kicad_legacy_write_pcb(plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, pcb_bool emergency) { /* this is the first step in exporting a layout; * creating a kicd module containing the elements used in the layout Index: trunk/src_plugins/io_kicad_legacy/write.h =================================================================== --- trunk/src_plugins/io_kicad_legacy/write.h (revision 4338) +++ trunk/src_plugins/io_kicad_legacy/write.h (revision 4339) @@ -32,7 +32,7 @@ int io_kicad_legacy_write_element(plug_io_t *ctx, FILE * FP, DataTypePtr Data); int io_kicad_legacy_write_buffer(plug_io_t *ctx, FILE * FP, BufferType *buff); -int io_kicad_legacy_write_pcb(plug_io_t *ctx, FILE * FP); +int io_kicad_legacy_write_pcb(plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, pcb_bool emergency); int write_kicad_legacy_module_header(FILE * FP); int write_kicad_legacy_layout_header(FILE * FP); int write_kicad_legacy_layout_vias(FILE * FP, DataTypePtr Data, Coord MaxWidth, Coord MaxHeight); Index: trunk/src_plugins/io_lihata/write.c =================================================================== --- trunk/src_plugins/io_lihata/write.c (revision 4338) +++ trunk/src_plugins/io_lihata/write.c (revision 4339) @@ -501,11 +501,12 @@ return brd; } -int io_lihata_write_pcb(plug_io_t *ctx, FILE * FP) +int io_lihata_write_pcb(plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, pcb_bool emergency) { int res; lht_doc_t *brd = build_board(PCB); res = lht_dom_export(brd->root, FP, ""); +/* res = lhtpers_save_as(&events, brd, on_disk_fn, out_fn, NULL);*/ lht_dom_uninit(brd); return res; } Index: trunk/src_plugins/io_pcb/file.c =================================================================== --- trunk/src_plugins/io_pcb/file.c (revision 4338) +++ trunk/src_plugins/io_pcb/file.c (revision 4339) @@ -519,7 +519,7 @@ /* --------------------------------------------------------------------------- * writes PCB to file */ -int io_pcb_WritePCB(plug_io_t *ctx, FILE * FP) +int io_pcb_WritePCB(plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, pcb_bool emergency) { pcb_cardinal_t i; Index: trunk/src_plugins/io_pcb/file.h =================================================================== --- trunk/src_plugins/io_pcb/file.h (revision 4338) +++ trunk/src_plugins/io_pcb/file.h (revision 4339) @@ -40,7 +40,7 @@ int io_pcb_WriteBuffer(plug_io_t *ctx, FILE *f, BufferType *buff); int io_pcb_WriteElementData(plug_io_t *ctx, FILE *f, DataTypePtr); -int io_pcb_WritePCB(plug_io_t *ctx, FILE *f); +int io_pcb_WritePCB(plug_io_t *ctx, FILE *f, const char *old_filename, const char *new_filename, pcb_bool emergency); void PreLoadElementPCB(void); void PostLoadElementPCB(void);