From a6f9174c0c83a261cff6efa61cb7b91e6731a2f2 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 3 Nov 2023 12:46:56 +0100 Subject: [PATCH] legacy library import: fix compatibility with some old symbol libraries (*.lib files). --- .../legacy/sch_legacy_lib_plugin_cache.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/eeschema/sch_plugins/legacy/sch_legacy_lib_plugin_cache.cpp b/eeschema/sch_plugins/legacy/sch_legacy_lib_plugin_cache.cpp index 370b6543c8..eb0653d2bd 100644 --- a/eeschema/sch_plugins/legacy/sch_legacy_lib_plugin_cache.cpp +++ b/eeschema/sch_plugins/legacy/sch_legacy_lib_plugin_cache.cpp @@ -96,12 +96,23 @@ void SCH_LEGACY_PLUGIN_CACHE::Load() m_versionMajor = parseInt( reader, line, &line ); - if( *line != '.' ) - SCH_PARSE_ERROR( "invalid file version formatting in header", reader, line ); + if( *line == '/' ) + { + // Some old libraries use a version syntax like + // EESchema-LIBRARY Version 2/10/2006-18:49:15 + // use 2.3 version numer to read the file + m_versionMajor = 2; + m_versionMinor = 3; + } + else + { + if( *line != '.' ) + SCH_PARSE_ERROR( "invalid file version formatting in header", reader, line ); - line++; + line++; - m_versionMinor = parseInt( reader, line, &line ); + m_versionMinor = parseInt( reader, line, &line ); + } if( m_versionMajor < 1 || m_versionMinor < 0 || m_versionMinor > 99 ) SCH_PARSE_ERROR( "invalid file version in header", reader, line );