diff --git a/eeschema/sch_plugins/kicad/sch_sexpr_parser.cpp b/eeschema/sch_plugins/kicad/sch_sexpr_parser.cpp index 2803fcaf6e..647db3a532 100644 --- a/eeschema/sch_plugins/kicad/sch_sexpr_parser.cpp +++ b/eeschema/sch_plugins/kicad/sch_sexpr_parser.cpp @@ -2609,6 +2609,11 @@ SCH_SYMBOL* SCH_SEXPR_PARSER::parseSchematicSymbol() } libName = FromUTF8(); + // Some symbol LIB_IDs or lib_name have the '/' character escaped which can break + // symbol links. The '/' character is no longer an illegal LIB_ID character so + // it doesn't need to be escaped. + libName.Replace( "{slash}", "/" ); + NeedRIGHT(); break; } @@ -2626,6 +2631,7 @@ SCH_SYMBOL* SCH_SEXPR_PARSER::parseSchematicSymbol() // symbol links. The '/' character is no longer an illegal LIB_ID character so // it doesn't need to be escaped. name.Replace( "{slash}", "/" ); + int bad_pos = libId.Parse( name ); if( bad_pos >= 0 )