diff --git a/scripts/check_library.py b/scripts/check_library.py index f991446..b9f6046 100644 --- a/scripts/check_library.py +++ b/scripts/check_library.py @@ -119,6 +119,14 @@ def check_symbols(report: Report) -> list[tuple[str, Path]]: if not parens_balanced(text): report.error(f"[SYM] {path.relative_to(ROOT)}: unbalanced parentheses") + gen_m = re.search(r'\(generator\s+([^\s")]+)', text) + if gen_m and re.search(r'[:/]', gen_m.group(1)): + report.error( + f"[SYM] {path.relative_to(ROOT)}: unquoted '(generator {gen_m.group(1)})' " + f"contains ':' or '/' -- this breaks KiCad's parser and silently makes the " + f"whole library fail to load; wrap the value in double quotes" + ) + digest = lc.sha256_file(path) if digest in seen_hash: report.warn( diff --git a/symbols/microcontrollers/ESP32-S31-WROOM-3.kicad_sym b/symbols/microcontrollers/ESP32-S31-WROOM-3.kicad_sym index e805df4..4e69fb9 100644 --- a/symbols/microcontrollers/ESP32-S31-WROOM-3.kicad_sym +++ b/symbols/microcontrollers/ESP32-S31-WROOM-3.kicad_sym @@ -1,6 +1,6 @@ (kicad_symbol_lib (version 20211014) - (generator https://github.com/uPesy/easyeda2kicad.py) + (generator "https://github.com/uPesy/easyeda2kicad.py") (symbol "ESP32-S31-WROOM-3_C9900281993" (in_bom yes)