From 51312ed407d216057300c9d0ade9c8b895882810 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Sun, 11 Feb 2024 19:13:52 -0500 Subject: [PATCH] Fix erc/drc severity args Fixes https://gitlab.com/kicad/code/kicad/-/issues/16924 --- kicad/cli/command_pcb_drc.cpp | 12 ++++++++---- kicad/cli/command_sch_erc.cpp | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/kicad/cli/command_pcb_drc.cpp b/kicad/cli/command_pcb_drc.cpp index e463fccc09..e00bf2be9e 100644 --- a/kicad/cli/command_pcb_drc.cpp +++ b/kicad/cli/command_pcb_drc.cpp @@ -97,26 +97,30 @@ int CLI::PCB_DRC_COMMAND::doPerform( KIWAY& aKiway ) drcJob->m_reportAllTrackErrors = m_argParser.get( ARG_ALL_TRACK_ERRORS ); drcJob->m_exitCodeViolations = m_argParser.get( ARG_EXIT_CODE_VIOLATIONS ); + int severity = 0; if( m_argParser.get( ARG_SEVERITY_ALL ) ) { - drcJob->m_severity = RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING | RPT_SEVERITY_EXCLUSION; + severity = RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING | RPT_SEVERITY_EXCLUSION; } if( m_argParser.get( ARG_SEVERITY_ERROR ) ) { - drcJob->m_severity |= RPT_SEVERITY_ERROR; + severity |= RPT_SEVERITY_ERROR; } if( m_argParser.get( ARG_SEVERITY_WARNING ) ) { - drcJob->m_severity |= RPT_SEVERITY_WARNING; + severity |= RPT_SEVERITY_WARNING; } if( m_argParser.get( ARG_SEVERITY_EXCLUSIONS ) ) { - drcJob->m_severity |= RPT_SEVERITY_EXCLUSION; + severity |= RPT_SEVERITY_EXCLUSION; } + if( severity ) // override the default only if something we configured + drcJob->m_severity = severity; + drcJob->m_reportAllTrackErrors = m_argParser.get( ARG_ALL_TRACK_ERRORS ); wxString units = From_UTF8( m_argParser.get( ARG_UNITS ).c_str() ); diff --git a/kicad/cli/command_sch_erc.cpp b/kicad/cli/command_sch_erc.cpp index abbca4135c..094a4e56d6 100644 --- a/kicad/cli/command_sch_erc.cpp +++ b/kicad/cli/command_sch_erc.cpp @@ -90,26 +90,30 @@ int CLI::SCH_ERC_COMMAND::doPerform( KIWAY& aKiway ) ercJob->m_exitCodeViolations = m_argParser.get( ARG_EXIT_CODE_VIOLATIONS ); ercJob->SetVarOverrides( m_argDefineVars ); + int severity = 0; if( m_argParser.get( ARG_SEVERITY_ALL ) ) { - ercJob->m_severity = RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING | RPT_SEVERITY_EXCLUSION; + severity = RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING | RPT_SEVERITY_EXCLUSION; } if( m_argParser.get( ARG_SEVERITY_ERROR ) ) { - ercJob->m_severity |= RPT_SEVERITY_ERROR; + severity |= RPT_SEVERITY_ERROR; } if( m_argParser.get( ARG_SEVERITY_WARNING ) ) { - ercJob->m_severity |= RPT_SEVERITY_WARNING; + severity |= RPT_SEVERITY_WARNING; } if( m_argParser.get( ARG_SEVERITY_EXCLUSIONS ) ) { - ercJob->m_severity |= RPT_SEVERITY_EXCLUSION; + severity |= RPT_SEVERITY_EXCLUSION; } + if( severity ) // override the default only if something we configured + ercJob->m_severity = severity; + wxString units = From_UTF8( m_argParser.get( ARG_UNITS ).c_str() ); if( units == wxS( "mm" ) )