diff --git a/eeschema/sch_file_versions.h b/eeschema/sch_file_versions.h index 642a91a1ab..2ad78c104d 100644 --- a/eeschema/sch_file_versions.h +++ b/eeschema/sch_file_versions.h @@ -134,4 +134,5 @@ //#define SEXPR_SCHEMATIC_FILE_VERSION 20250922 // Schematic variants. //#define SEXPR_SCHEMATIC_FILE_VERSION 20251012 // Flat schematic hierarchy support //#define SEXPR_SCHEMATIC_FILE_VERSION 20251028 // Updated properties formatting (do_not_autoplace, show_name) -#define SEXPR_SCHEMATIC_FILE_VERSION 20260101 // PCB variants +//#define SEXPR_SCHEMATIC_FILE_VERSION 20260101 // PCB variants +#define SEXPR_SCHEMATIC_FILE_VERSION 20260306 // Variant in_bom semantics corrected diff --git a/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr.cpp b/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr.cpp index ccf79b2da0..3611f408cc 100644 --- a/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr.cpp +++ b/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr.cpp @@ -927,7 +927,7 @@ void SCH_IO_KICAD_SEXPR::saveSymbol( SCH_SYMBOL* aSymbol, const SCHEMATIC& aSche KICAD_FORMAT::FormatBool( m_out, "exclude_from_sim", variant.m_ExcludedFromSim ); if( variant.m_ExcludedFromBOM != aSymbol->GetExcludedFromBOM() ) - KICAD_FORMAT::FormatBool( m_out, "in_bom", variant.m_ExcludedFromBOM ); + KICAD_FORMAT::FormatBool( m_out, "in_bom", !variant.m_ExcludedFromBOM ); if( variant.m_ExcludedFromBoard != aSymbol->GetExcludedFromBoard() ) KICAD_FORMAT::FormatBool( m_out, "on_board", !variant.m_ExcludedFromBoard ); @@ -1180,7 +1180,7 @@ void SCH_IO_KICAD_SEXPR::saveSheet( SCH_SHEET* aSheet, const SCH_SHEET_LIST& aSh KICAD_FORMAT::FormatBool( m_out, "exclude_from_sim", variant.m_ExcludedFromSim ); if( variant.m_ExcludedFromBOM != aSheet->GetExcludedFromBOM() ) - KICAD_FORMAT::FormatBool( m_out, "in_bom", variant.m_ExcludedFromBOM ); + KICAD_FORMAT::FormatBool( m_out, "in_bom", !variant.m_ExcludedFromBOM ); for( const auto&[fname, fvalue] : variant.m_Fields ) { diff --git a/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr_parser.cpp b/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr_parser.cpp index af328f0037..e1011bc34f 100644 --- a/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr_parser.cpp +++ b/eeschema/sch_io/kicad_sexpr/sch_io_kicad_sexpr_parser.cpp @@ -3408,7 +3408,7 @@ SCH_SYMBOL* SCH_IO_KICAD_SEXPR_PARSER::parseSchematicSymbol() break; case T_in_bom: - variant.m_ExcludedFromBOM = parseBool(); + variant.m_ExcludedFromBOM = ( m_requiredVersion >= 20260306 ) ^ parseBool(); NeedRIGHT(); break; @@ -3872,7 +3872,7 @@ SCH_SHEET* SCH_IO_KICAD_SEXPR_PARSER::parseSheet() break; case T_in_bom: - variant.m_ExcludedFromBOM = parseBool(); + variant.m_ExcludedFromBOM = ( m_requiredVersion >= 20260306 ) ^ parseBool(); NeedRIGHT(); break;