Index: io_lihata.c =================================================================== --- io_lihata.c (revision 33993) +++ io_lihata.c (revision 33994) @@ -33,7 +33,7 @@ pcb_plug_io_t plug_io_lihata_v1, plug_io_lihata_v2, plug_io_lihata_v3, plug_io_lihata_v4, plug_io_lihata_v5, plug_io_lihata_v6, - plug_io_lihata_v7; + plug_io_lihata_v7, plug_io_lihata_v8; conf_io_lihata_t conf_io_lihata; pcb_plug_io_t *plug_io_lihata_default = &plug_io_lihata_v7; @@ -114,6 +114,14 @@ plug_io_lihata_v7.save_as_fmt_changed = io_lihata_save_as_fmt_changed; RND_HOOK_REGISTER(pcb_plug_io_t, pcb_plug_io_chain, &plug_io_lihata_v7); + + plug_io_lihata_v8 = plug_io_lihata_v7; + plug_io_lihata_v8.write_pcb = io_lihata_write_pcb_v8; + plug_io_lihata_v8.description = "lihata board v8"; + plug_io_lihata_v8.save_preference_prio = 1; + RND_HOOK_REGISTER(pcb_plug_io_t, pcb_plug_io_chain, &plug_io_lihata_v8); + + plug_io_lihata_v6 = plug_io_lihata_v7; plug_io_lihata_v6.write_pcb = io_lihata_write_pcb_v6; plug_io_lihata_v6.description = "lihata board v6"; Index: io_lihata.h =================================================================== --- io_lihata.h (revision 33993) +++ io_lihata.h (revision 33994) @@ -30,7 +30,7 @@ extern conf_io_lihata_t conf_io_lihata; extern pcb_plug_io_t plug_io_lihata_v1, plug_io_lihata_v2, plug_io_lihata_v3, plug_io_lihata_v4, plug_io_lihata_v5, plug_io_lihata_v6, - plug_io_lihata_v7; + plug_io_lihata_v7, plug_io_lihata_v8; /* The one extedit and other code should cross-call */ extern pcb_plug_io_t *plug_io_lihata_default; Index: read.c =================================================================== --- read.c (revision 33993) +++ read.c (revision 33994) @@ -65,6 +65,8 @@ #include "../src_plugins/lib_compat_help/pstk_compat.h" #include "../src_plugins/lib_compat_help/elem_rot.h" +#include "brave.h" + typedef struct { vtp0_t post_ids, post_thermal_old, post_thermal_heavy; int rdver; @@ -2482,6 +2484,13 @@ case 5: loader = &plug_io_lihata_v5; break; case 6: loader = &plug_io_lihata_v6; break; case 7: loader = &plug_io_lihata_v7; break; + case 8: + if (pcb_brave & PCB_BRAVE_LIHATA_V8) { + loader = &plug_io_lihata_v8; + break; + } + rnd_message(RND_MSG_ERROR, "can not load lihata v8: brave mode not enabled\n"); + /* fall through */ default: return iolht_error(nd, "Lihata board version %d not supported;\n" "must be 1, 2, 3, 4, 5, 6 or 7.\n", rctx->rdver); Index: write.c =================================================================== --- write.c (revision 33993) +++ write.c (revision 33994) @@ -64,6 +64,8 @@ #include "src_plugins/lib_compat_help/pstk_compat.h" +#include "brave.h" + /*#define CFMT "%[9]"*/ #define CFMT "%.08$$mH" /*#define CFMT "%$$mn"*/ @@ -1882,6 +1884,14 @@ return io_lihata_write_pcb(ctx, FP, old_filename, new_filename, emergency, 7); } +int io_lihata_write_pcb_v8(pcb_plug_io_t *ctx, FILE * FP, const char *old_filename, const char *new_filename, rnd_bool emergency) +{ + if (pcb_brave & PCB_BRAVE_LIHATA_V8) + return io_lihata_write_pcb(ctx, FP, old_filename, new_filename, emergency, 8); + rnd_message(RND_MSG_ERROR, "Can not write lihata v8: brave mode not enabled\n"); + return -1; +} + int io_lihata_write_font(pcb_plug_io_t *ctx, pcb_font_t *font, const char *Filename) { FILE *f; Index: write.h =================================================================== --- write.h (revision 33993) +++ write.h (revision 33994) @@ -33,6 +33,7 @@ int io_lihata_write_pcb_v5(pcb_plug_io_t *ctx, FILE *FP, const char *old_filename, const char *new_filename, rnd_bool emergency); int io_lihata_write_pcb_v6(pcb_plug_io_t *ctx, FILE *FP, const char *old_filename, const char *new_filename, rnd_bool emergency); int io_lihata_write_pcb_v7(pcb_plug_io_t *ctx, FILE *FP, const char *old_filename, const char *new_filename, rnd_bool emergency); +int io_lihata_write_pcb_v8(pcb_plug_io_t *ctx, FILE *FP, const char *old_filename, const char *new_filename, rnd_bool emergency); int io_lihata_write_font(pcb_plug_io_t *ctx, pcb_font_t *font, const char *Filename); int io_lihata_write_buffer(pcb_plug_io_t *ctx, FILE *f, pcb_buffer_t *buff); int io_lihata_write_subcs_head(pcb_plug_io_t *ctx, void **udata, FILE *f, int lib, long num_subcs);