| 
    KiCad PCB EDA Suite
    
   | 
 
#include <pcb_io/pcb_io.h>#include <pcb_io/pcb_io_mgr.h>#include <ctl_flags.h>#include <richio.h>#include <string>#include <optional>#include <layer_ids.h>#include <zone_settings.h>#include <lset.h>#include <boost/ptr_container/ptr_map.hpp>#include <wx_filename.h>#include "widgets/report_severity.h"Go to the source code of this file.
Classes | |
| class | FP_CACHE_ENTRY | 
| Helper class for creating a footprint library cache.  More... | |
| class | FP_CACHE | 
| class | PCB_IO_KICAD_SEXPR | 
| A #PLUGIN derivation for saving and loading Pcbnew s-expression formatted files.  More... | |
Macros | |
| #define | SEXPR_BOARD_FILE_VERSION 20251028 | 
| Current s-expression file format version. 2 was the last legacy format version.   | |
| #define | BOARD_FILE_HOST_VERSION 20200825 | 
| Earlier files than this include the host tag.   | |
| #define | LEGACY_ARC_FORMATTING 20210925 | 
| These were the last to use old arc formatting.   | |
| #define | LEGACY_NET_TIES 20220815 | 
| These were the last to use the keywords field to indicate a net-tie.   | |
| #define | FIRST_NORMALIZED_VERISON 20230924 | 
| Earlier files did not have normalized bools.   | |
| #define | CTL_FOR_CLIPBOARD (CTL_OMIT_INITIAL_COMMENTS) | 
| Format output for the clipboard instead of footprint library or BOARD.   | |
| #define | CTL_FOR_LIBRARY ( CTL_OMIT_PAD_NETS | CTL_OMIT_UUIDS | CTL_OMIT_PATH | CTL_OMIT_AT | CTL_OMIT_LIBNAME ) | 
| Format output for a footprint library instead of clipboard or BOARD.   | |
| #define | CTL_FOR_BOARD (CTL_OMIT_INITIAL_COMMENTS|CTL_OMIT_FOOTPRINT_VERSION) | 
| The zero arg constructor when PCB_PLUGIN is used for PLUGIN::Load() and PLUGIN::Save()ing a BOARD file underneath IO_MGR.   | |
| #define BOARD_FILE_HOST_VERSION 20200825 | 
Earlier files than this include the host tag.
Definition at line 201 of file pcb_io_kicad_sexpr.h.
Referenced by PCB_IO_KICAD_SEXPR_PARSER::parseBOARD_unchecked().
| #define CTL_FOR_BOARD (CTL_OMIT_INITIAL_COMMENTS|CTL_OMIT_FOOTPRINT_VERSION) | 
The zero arg constructor when PCB_PLUGIN is used for PLUGIN::Load() and PLUGIN::Save()ing a BOARD file underneath IO_MGR.
Definition at line 219 of file pcb_io_kicad_sexpr.h.
Referenced by PCB_IO_KICAD_SEXPR::format(), and PCB_IO_KICAD_SEXPR::format().
| #define CTL_FOR_CLIPBOARD (CTL_OMIT_INITIAL_COMMENTS) | 
Format output for the clipboard instead of footprint library or BOARD.
Definition at line 211 of file pcb_io_kicad_sexpr.h.
Referenced by CLIPBOARD_IO::CLIPBOARD_IO().
| #define CTL_FOR_LIBRARY ( CTL_OMIT_PAD_NETS | CTL_OMIT_UUIDS | CTL_OMIT_PATH | CTL_OMIT_AT | CTL_OMIT_LIBNAME ) | 
Format output for a footprint library instead of clipboard or BOARD.
Definition at line 214 of file pcb_io_kicad_sexpr.h.
Referenced by FOOTPRINT_EDIT_FRAME::ExportFootprint(), PCB_IO_KICAD_SEXPR::FootprintSave(), PCBNEW_JOBS_HANDLER::JobExportFpSvg(), and PCBNEW_JOBS_HANDLER::JobExportFpUpgrade().
| #define FIRST_NORMALIZED_VERISON 20230924 | 
Earlier files did not have normalized bools.
Definition at line 205 of file pcb_io_kicad_sexpr.h.
| #define LEGACY_ARC_FORMATTING 20210925 | 
These were the last to use old arc formatting.
Definition at line 202 of file pcb_io_kicad_sexpr.h.
Referenced by PCB_IO_KICAD_SEXPR_PARSER::parsePCB_SHAPE().
| #define LEGACY_NET_TIES 20220815 | 
These were the last to use the keywords field to indicate a net-tie.
Definition at line 203 of file pcb_io_kicad_sexpr.h.
Referenced by PCB_IO_KICAD_SEXPR_PARSER::parseFOOTPRINT_unchecked().
| #define SEXPR_BOARD_FILE_VERSION 20251028 | 
Current s-expression file format version. 2 was the last legacy format version.
Definition at line 199 of file pcb_io_kicad_sexpr.h.
Referenced by KICAD_MANAGER_FRAME::CreateNewProject(), PCB_IO_KICAD_SEXPR::format(), PCBNEW_JOBS_HANDLER::JobExportFpUpgrade(), PCBNEW_JOBS_HANDLER::JobUpgrade(), PCB_EDIT_FRAME::OpenProjectFiles(), PCB_IO_KICAD_SEXPR_PARSER::parseBOARD_unchecked(), PCB_IO_KICAD_SEXPR_PARSER::parseFOOTPRINT_unchecked(), PCB_IO_KICAD_SEXPR_PARSER::parseHeader(), CLIPBOARD_IO::SaveBoard(), PCB_IO_KICAD_SEXPR::SaveBoard(), and CLIPBOARD_IO::SaveSelection().