KiCad PCB EDA Suite
sch_legacy_plugin.cpp File Reference
#include <algorithm>
#include <boost/algorithm/string/join.hpp>
#include <cctype>
#include <mutex>
#include <set>
#include <wx/mstream.h>
#include <wx/filename.h>
#include <wx/textfile.h>
#include <wx/tokenzr.h>
#include <pgm_base.h>
#include <gr_text.h>
#include <kiway.h>
#include <kicad_string.h>
#include <locale_io.h>
#include <richio.h>
#include <core/typeinfo.h>
#include <properties.h>
#include <trace_helpers.h>
#include <general.h>
#include <sch_bitmap.h>
#include <sch_bus_entry.h>
#include <sch_symbol.h>
#include <sch_junction.h>
#include <sch_line.h>
#include <sch_marker.h>
#include <sch_no_connect.h>
#include <sch_text.h>
#include <sch_sheet.h>
#include <sch_sheet_pin.h>
#include <bus_alias.h>
#include <sch_plugins/legacy/sch_legacy_plugin.h>
#include <template_fieldnames.h>
#include <sch_screen.h>
#include <schematic.h>
#include <class_library.h>
#include <lib_arc.h>
#include <lib_bezier.h>
#include <lib_circle.h>
#include <lib_field.h>
#include <lib_pin.h>
#include <lib_polyline.h>
#include <lib_rectangle.h>
#include <lib_text.h>
#include <eeschema_id.h>
#include <symbol_lib_table.h>
#include <confirm.h>
#include <tool/selection.h>
#include <default_values.h>

Go to the source code of this file.

Classes

class  SCH_LEGACY_PLUGIN_CACHE
 A cache assistant for the part library portion of the SCH_PLUGIN API, and only for the SCH_LEGACY_PLUGIN, so therefore is private to this implementation file, i.e. More...
 

Macros

#define Mils2Iu(x)   Mils2iu( x )
 
#define DOCFILE_IDENT   "EESchema-DOCLIB Version 2.0"
 
#define SCH_PARSE_ERROR(text, reader, pos)
 
#define T_STYLE   "style"
 
#define T_COLOR   "rgb"
 
#define T_COLORA   "rgba"
 
#define T_WIDTH   "width"
 

Functions

static bool is_eol (char c)
 
static bool strCompare (const char *aString, const char *aLine, const char **aOutput=NULL)
 Compare aString to the string starting at aLine and advances the character point to the end of String and returns the new pointer position in aOutput if it is not NULL. More...
 
static int parseInt (LINE_READER &aReader, const char *aLine, const char **aOutput=NULL)
 Parse an ASCII integer string with possible leading whitespace into an integer and updates the pointer at aOutput if it is not NULL, just like "man strtol()". More...
 
static uint32_t parseHex (LINE_READER &aReader, const char *aLine, const char **aOutput=NULL)
 Parse an ASCII hex integer string with possible leading whitespace into a long integer and updates the pointer at aOutput if it is not NULL, just like "man strtoll". More...
 
static double parseDouble (LINE_READER &aReader, const char *aLine, const char **aOutput=NULL)
 Parses an ASCII point string with possible leading whitespace into a double precision floating point number and updates the pointer at aOutput if it is not NULL, just like "man strtod". More...
 
static char parseChar (LINE_READER &aReader, const char *aCurrentToken, const char **aNextToken=NULL)
 Parse a single ASCII character and updates the pointer at aOutput if it is not NULL. More...
 
static void parseUnquotedString (wxString &aString, LINE_READER &aReader, const char *aCurrentToken, const char **aNextToken=NULL, bool aCanBeEmpty=false)
 Parse an unquoted utf8 string and updates the pointer at aOutput if it is not NULL. More...
 
static void parseQuotedString (wxString &aString, LINE_READER &aReader, const char *aCurrentToken, const char **aNextToken=NULL, bool aCanBeEmpty=false)
 Parse an quoted ASCII utf8 and updates the pointer at aOutput if it is not NULL. More...
 

Variables

const char * delims = " \t\r\n"
 
const std::map< PINSHEETLABEL_SHAPE, const char * > sheetLabelNames
 

Macro Definition Documentation

◆ DOCFILE_IDENT

#define DOCFILE_IDENT   "EESchema-DOCLIB Version 2.0"

Definition at line 81 of file sch_legacy_plugin.cpp.

◆ Mils2Iu

#define Mils2Iu (   x)    Mils2iu( x )

Definition at line 77 of file sch_legacy_plugin.cpp.

◆ SCH_PARSE_ERROR

#define SCH_PARSE_ERROR (   text,
  reader,
  pos 
)
Value:
THROW_PARSE_ERROR( text, reader.GetSource(), reader.Line(), \
reader.LineNumber(), pos - reader.Line() )
#define THROW_PARSE_ERROR(aProblem, aSource, aInputLine, aLineNumber, aByteIndex)
Definition: ki_exception.h:164

Definition at line 83 of file sch_legacy_plugin.cpp.

◆ T_COLOR

#define T_COLOR   "rgb"

Definition at line 93 of file sch_legacy_plugin.cpp.

◆ T_COLORA

#define T_COLORA   "rgba"

Definition at line 94 of file sch_legacy_plugin.cpp.

◆ T_STYLE

#define T_STYLE   "style"

Definition at line 92 of file sch_legacy_plugin.cpp.

◆ T_WIDTH

#define T_WIDTH   "width"

Definition at line 95 of file sch_legacy_plugin.cpp.

Function Documentation

◆ is_eol()

static bool is_eol ( char  c)
static

Definition at line 98 of file sch_legacy_plugin.cpp.

99 {
100  // The default file eol character used internally by KiCad.
101  // |
102  // | Possible eol if someone edited the file by hand on certain platforms.
103  // | |
104  // | | May have gone past eol with strtok().
105  // | | |
106  if( c == '\n' || c == '\r' || c == 0 )
107  return true;
108 
109  return false;
110 }

Referenced by SCH_LEGACY_PLUGIN_CACHE::loadText(), and SCH_LEGACY_PLUGIN::loadWire().

◆ parseChar()

static char parseChar ( LINE_READER aReader,
const char *  aCurrentToken,
const char **  aNextToken = NULL 
)
static

Parse a single ASCII character and updates the pointer at aOutput if it is not NULL.

Parameters
aReader- The line reader used to generate exception throw information.
aCurrentToken- A pointer the current position in a string.
aNextToken- The pointer to a string pointer to copy the string pointer position when the parsing is complete.
Returns
A valid ASCII character.
Exceptions
IO_ERRORon an unexpected end of line.
PARSE_ERRORif the parsed token is not a a single character token.

Definition at line 287 of file sch_legacy_plugin.cpp.

289 {
290  while( *aCurrentToken && isspace( *aCurrentToken ) )
291  aCurrentToken++;
292 
293  if( !*aCurrentToken )
294  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
295 
296  if( !isspace( *( aCurrentToken + 1 ) ) )
297  SCH_PARSE_ERROR( "expected single character token", aReader, aCurrentToken );
298 
299  if( aNextToken )
300  {
301  const char* next = aCurrentToken + 2;
302 
303  while( *next && isspace( *next ) )
304  next++;
305 
306  *aNextToken = next;
307  }
308 
309  return *aCurrentToken;
310 }
CITER next(CITER it)
Definition: ptree.cpp:126
#define SCH_PARSE_ERROR(text, reader, pos)
#define _(s)
Definition: 3d_actions.cpp:33

References _, next(), and SCH_PARSE_ERROR.

Referenced by SCH_LEGACY_PLUGIN_CACHE::loadField(), SCH_LEGACY_PLUGIN::loadSheet(), SCH_LEGACY_PLUGIN::loadSymbol(), SCH_LEGACY_PLUGIN_CACHE::loadText(), and SCH_LEGACY_PLUGIN_CACHE::parseFillMode().

◆ parseDouble()

static double parseDouble ( LINE_READER aReader,
const char *  aLine,
const char **  aOutput = NULL 
)
static

Parses an ASCII point string with possible leading whitespace into a double precision floating point number and updates the pointer at aOutput if it is not NULL, just like "man strtod".

Parameters
aReader- The line reader used to generate exception throw information.
aLine- A pointer the current position in a string.
aOutput- The pointer to a string pointer to copy the string pointer position when the parsing is complete.
Returns
A valid double value.
Exceptions
IO_ERRORon an unexpected end of line.
PARSE_ERRORif the parsed token is not a valid integer.

Definition at line 246 of file sch_legacy_plugin.cpp.

248 {
249  if( !*aLine )
250  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aLine );
251 
252  // Clear errno before calling strtod() in case some other crt call set it.
253  errno = 0;
254 
255  double retv = strtod( aLine, (char**) aOutput );
256 
257  // Make sure no error occurred when calling strtod().
258  if( errno == ERANGE )
259  SCH_PARSE_ERROR( "invalid floating point number", aReader, aLine );
260 
261  // strtod does not strip off whitespace before the next token.
262  if( aOutput )
263  {
264  const char* next = *aOutput;
265 
266  while( *next && isspace( *next ) )
267  next++;
268 
269  *aOutput = next;
270  }
271 
272  return retv;
273 }
CITER next(CITER it)
Definition: ptree.cpp:126
#define SCH_PARSE_ERROR(text, reader, pos)
#define _(s)
Definition: 3d_actions.cpp:33

References _, next(), and SCH_PARSE_ERROR.

Referenced by SCH_LEGACY_PLUGIN::loadBitmap(), PCB_PARSER::parse3DModel(), PCB_PARSER::parseBoardStackup(), PCB_PARSER::parseFOOTPRINT_unchecked(), PCB_PARSER::parseFP_SHAPE(), PCB_PARSER::parseFP_TEXT(), PCB_PARSER::parsePAD(), PCB_PARSER::parsePAGE_INFO(), PCB_PARSER::parsePCB_SHAPE(), PCB_PARSER::parsePCB_TEXT(), PCB_PARSER::parseSetup(), and PCB_PARSER::parseZONE().

◆ parseHex()

static uint32_t parseHex ( LINE_READER aReader,
const char *  aLine,
const char **  aOutput = NULL 
)
static

Parse an ASCII hex integer string with possible leading whitespace into a long integer and updates the pointer at aOutput if it is not NULL, just like "man strtoll".

Parameters
aReader- The line reader used to generate exception throw information.
aLine- A pointer the current position in a string.
aOutput- The pointer to a string pointer to copy the string pointer position when the parsing is complete.
Returns
A valid uint32_t value.
Exceptions
IO_ERRORon an unexpected end of line.
PARSE_ERRORif the parsed token is not a valid integer.

Definition at line 201 of file sch_legacy_plugin.cpp.

202 {
203  if( !*aLine )
204  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aLine );
205 
206  // Due to some issues between some files created by a 64 bits version and those
207  // created by a 32 bits version, we use here a temporary at least 64 bits storage:
208  unsigned long long retv;
209 
210  // Clear errno before calling strtoull() in case some other crt call set it.
211  errno = 0;
212  retv = strtoull( aLine, (char**) aOutput, 16 );
213 
214  // Make sure no error occurred when calling strtoull().
215  if( errno == ERANGE )
216  SCH_PARSE_ERROR( "invalid hexadecimal number", aReader, aLine );
217 
218  // Strip off whitespace before the next token.
219  if( aOutput )
220  {
221  const char* next = *aOutput;
222 
223  while( *next && isspace( *next ) )
224  next++;
225 
226  *aOutput = next;
227  }
228 
229  return (uint32_t)retv;
230 }
CITER next(CITER it)
Definition: ptree.cpp:126
#define SCH_PARSE_ERROR(text, reader, pos)
#define _(s)
Definition: 3d_actions.cpp:33

References _, next(), and SCH_PARSE_ERROR.

Referenced by SCH_LEGACY_PLUGIN::loadSymbol(), PCB_PARSER::parseARC(), PCB_PARSER::parseFOOTPRINT_unchecked(), PCB_PARSER::parseFP_SHAPE(), PCB_PARSER::parsePCB_SHAPE(), PCB_PARSER::parseSetup(), PCB_PARSER::parseTRACK(), and PCB_PARSER::parseVIA().

◆ parseInt()

static int parseInt ( LINE_READER aReader,
const char *  aLine,
const char **  aOutput = NULL 
)
static

Parse an ASCII integer string with possible leading whitespace into an integer and updates the pointer at aOutput if it is not NULL, just like "man strtol()".

Parameters
aReader- The line reader used to generate exception throw information.
aLine- A pointer the current position in a string.
aOutput- The pointer to a string pointer to copy the string pointer position when the parsing is complete.
Returns
A valid integer value.
Exceptions
AnIO_ERROR on an unexpected end of line.
APARSE_ERROR if the parsed token is not a valid integer.

Definition at line 159 of file sch_legacy_plugin.cpp.

160 {
161  if( !*aLine )
162  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aLine );
163 
164  // Clear errno before calling strtol() in case some other crt call set it.
165  errno = 0;
166 
167  long retv = strtol( aLine, (char**) aOutput, 10 );
168 
169  // Make sure no error occurred when calling strtol().
170  if( errno == ERANGE )
171  SCH_PARSE_ERROR( "invalid integer value", aReader, aLine );
172 
173  // strtol does not strip off whitespace before the next token.
174  if( aOutput )
175  {
176  const char* next = *aOutput;
177 
178  while( *next && isspace( *next ) )
179  next++;
180 
181  *aOutput = next;
182  }
183 
184  return (int) retv;
185 }
CITER next(CITER it)
Definition: ptree.cpp:126
#define SCH_PARSE_ERROR(text, reader, pos)
#define _(s)
Definition: 3d_actions.cpp:33

References _, next(), and SCH_PARSE_ERROR.

Referenced by SCH_LEGACY_PLUGIN_CACHE::Load(), SCH_LEGACY_PLUGIN_CACHE::loadArc(), SCH_LEGACY_PLUGIN_CACHE::loadBezier(), SCH_LEGACY_PLUGIN::loadBitmap(), SCH_LEGACY_PLUGIN::loadBusEntry(), SCH_LEGACY_PLUGIN_CACHE::loadCircle(), SCH_LEGACY_PLUGIN_CACHE::loadField(), SCH_LEGACY_PLUGIN::loadHeader(), SCH_LEGACY_PLUGIN::loadJunction(), SCH_LEGACY_PLUGIN::loadNoConnect(), SCH_LEGACY_PLUGIN::loadPageSettings(), SCH_LEGACY_PLUGIN_CACHE::loadPolyLine(), SCH_LEGACY_PLUGIN_CACHE::loadRectangle(), SCH_LEGACY_PLUGIN::loadSheet(), SCH_LEGACY_PLUGIN::loadSymbol(), SCH_LEGACY_PLUGIN::loadText(), SCH_LEGACY_PLUGIN_CACHE::loadText(), SCH_LEGACY_PLUGIN::loadWire(), PCB_PARSER::parseARC(), PCB_PARSER::parseDefaults(), PCB_PARSER::parseDIMENSION(), PCB_PARSER::parseFOOTPRINT_unchecked(), PCB_PARSER::parseHeader(), PCB_PARSER::parseLayer(), PCB_PARSER::parseNETINFO_ITEM(), PCB_PARSER::parsePAD(), PCB_PARSER::parseTITLE_BLOCK(), PCB_PARSER::parseTRACK(), PCB_PARSER::parseVIA(), and PCB_PARSER::parseZONE().

◆ parseQuotedString()

static void parseQuotedString ( wxString &  aString,
LINE_READER aReader,
const char *  aCurrentToken,
const char **  aNextToken = NULL,
bool  aCanBeEmpty = false 
)
static

Parse an quoted ASCII utf8 and updates the pointer at aOutput if it is not NULL.

The parsed string must be contained within a single line. There are no multi-line quoted strings in the legacy schematic file format.

Parameters
aString- A reference to the parsed string.
aReader- The line reader used to generate exception throw information.
aCurrentToken- A pointer the current position in a string.
aNextToken- The pointer to a string pointer to copy the string pointer position when the parsing is complete.
aCanBeEmpty- True if the parsed string is optional. False if it is mandatory.
Exceptions
IO_ERRORon an unexpected end of line.
PARSE_ERRORif the aCanBeEmpty is false and no string was parsed.

Definition at line 389 of file sch_legacy_plugin.cpp.

392 {
393  if( !*aCurrentToken )
394  {
395  if( aCanBeEmpty )
396  return;
397  else
398  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
399  }
400 
401  const char* tmp = aCurrentToken;
402 
403  while( *tmp && isspace( *tmp ) )
404  tmp++;
405 
406  if( !*tmp )
407  {
408  if( aCanBeEmpty )
409  return;
410  else
411  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
412  }
413 
414  // Verify opening quote.
415  if( *tmp != '"' )
416  SCH_PARSE_ERROR( "expecting opening quote", aReader, aCurrentToken );
417 
418  tmp++;
419 
420  std::string utf8; // utf8 without escapes and quotes.
421 
422  // Fetch everything up to closing quote.
423  while( *tmp )
424  {
425  if( *tmp == '\\' )
426  {
427  tmp++;
428 
429  if( !*tmp )
430  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
431 
432  // Do not copy the escape byte if it is followed by \ or "
433  if( *tmp != '"' && *tmp != '\\' )
434  utf8 += '\\';
435 
436  utf8 += *tmp;
437  }
438  else if( *tmp == '"' ) // Closing double quote.
439  {
440  break;
441  }
442  else
443  {
444  utf8 += *tmp;
445  }
446 
447  tmp++;
448  }
449 
450  aString = FROM_UTF8( utf8.c_str() );
451 
452  if( aString.IsEmpty() && !aCanBeEmpty )
453  SCH_PARSE_ERROR( "expected quoted string", aReader, aCurrentToken );
454 
455  if( *tmp && *tmp != '"' )
456  SCH_PARSE_ERROR( "no closing quote for string found", aReader, tmp );
457 
458  // Move past the closing quote.
459  tmp++;
460 
461  if( aNextToken )
462  {
463  const char* next = tmp;
464 
465  while( *next == ' ' )
466  next++;
467 
468  *aNextToken = next;
469  }
470 }
CITER next(CITER it)
Definition: ptree.cpp:126
static wxString FROM_UTF8(const char *cstring)
Convert a UTF8 encoded C string to a wxString for all wxWidgets build modes.
Definition: macros.h:110
#define SCH_PARSE_ERROR(text, reader, pos)
#define _(s)
Definition: 3d_actions.cpp:33

References _, FROM_UTF8(), next(), and SCH_PARSE_ERROR.

Referenced by SCH_LEGACY_PLUGIN_CACHE::loadField(), SCH_LEGACY_PLUGIN::loadPageSettings(), SCH_LEGACY_PLUGIN::loadSheet(), SCH_LEGACY_PLUGIN::loadSymbol(), and SCH_LEGACY_PLUGIN_CACHE::loadText().

◆ parseUnquotedString()

static void parseUnquotedString ( wxString &  aString,
LINE_READER aReader,
const char *  aCurrentToken,
const char **  aNextToken = NULL,
bool  aCanBeEmpty = false 
)
static

Parse an unquoted utf8 string and updates the pointer at aOutput if it is not NULL.

The parsed string must be a continuous string with no white space.

Parameters
aString- A reference to the parsed string.
aReader- The line reader used to generate exception throw information.
aCurrentToken- A pointer the current position in a string.
aNextToken- The pointer to a string pointer to copy the string pointer position when the parsing is complete.
aCanBeEmpty- True if the parsed string is optional. False if it is mandatory.
Exceptions
IO_ERRORon an unexpected end of line.
PARSE_ERRORif the aCanBeEmpty is false and no string was parsed.

Definition at line 327 of file sch_legacy_plugin.cpp.

330 {
331  if( !*aCurrentToken )
332  {
333  if( aCanBeEmpty )
334  return;
335  else
336  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
337  }
338 
339  const char* tmp = aCurrentToken;
340 
341  while( *tmp && isspace( *tmp ) )
342  tmp++;
343 
344  if( !*tmp )
345  {
346  if( aCanBeEmpty )
347  return;
348  else
349  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
350  }
351 
352  std::string utf8;
353 
354  while( *tmp && !isspace( *tmp ) )
355  utf8 += *tmp++;
356 
357  aString = FROM_UTF8( utf8.c_str() );
358 
359  if( aString.IsEmpty() && !aCanBeEmpty )
360  SCH_PARSE_ERROR( _( "expected unquoted string" ), aReader, aCurrentToken );
361 
362  if( aNextToken )
363  {
364  const char* next = tmp;
365 
366  while( *next && isspace( *next ) )
367  next++;
368 
369  *aNextToken = next;
370  }
371 }
CITER next(CITER it)
Definition: ptree.cpp:126
static wxString FROM_UTF8(const char *cstring)
Convert a UTF8 encoded C string to a wxString for all wxWidgets build modes.
Definition: macros.h:110
#define SCH_PARSE_ERROR(text, reader, pos)
#define _(s)
Definition: 3d_actions.cpp:33

References _, FROM_UTF8(), next(), and SCH_PARSE_ERROR.

Referenced by SCH_LEGACY_PLUGIN::loadBusAlias(), SCH_LEGACY_PLUGIN_CACHE::loadField(), SCH_LEGACY_PLUGIN_CACHE::loadFootprintFilters(), SCH_LEGACY_PLUGIN::loadJunction(), SCH_LEGACY_PLUGIN::loadNoConnect(), SCH_LEGACY_PLUGIN::loadPageSettings(), SCH_LEGACY_PLUGIN::loadSheet(), SCH_LEGACY_PLUGIN::loadSymbol(), SCH_LEGACY_PLUGIN_CACHE::loadText(), and SCH_LEGACY_PLUGIN::loadWire().

◆ strCompare()

static bool strCompare ( const char *  aString,
const char *  aLine,
const char **  aOutput = NULL 
)
static

Compare aString to the string starting at aLine and advances the character point to the end of String and returns the new pointer position in aOutput if it is not NULL.

Parameters
aString- A pointer to the string to compare.
aLine- A pointer to string to begin the comparison.
aOutput- A pointer to a string pointer to the end of the comparison if not NULL.
Returns
true if aString was found starting at aLine. Otherwise false.

Definition at line 122 of file sch_legacy_plugin.cpp.

123 {
124  size_t len = strlen( aString );
125  bool retv = ( strncasecmp( aLine, aString, len ) == 0 ) &&
126  ( isspace( aLine[ len ] ) || aLine[ len ] == 0 );
127 
128  if( retv && aOutput )
129  {
130  const char* tmp = aLine;
131 
132  // Move past the end of the token.
133  tmp += len;
134 
135  // Move to the beginning of the next token.
136  while( *tmp && isspace( *tmp ) )
137  tmp++;
138 
139  *aOutput = tmp;
140  }
141 
142  return retv;
143 }

Referenced by SCH_LEGACY_PLUGIN_CACHE::Load(), SCH_LEGACY_PLUGIN_CACHE::loadAliases(), SCH_LEGACY_PLUGIN_CACHE::loadArc(), SCH_LEGACY_PLUGIN_CACHE::loadBezier(), SCH_LEGACY_PLUGIN::loadBitmap(), SCH_LEGACY_PLUGIN::loadBusAlias(), SCH_LEGACY_PLUGIN::loadBusEntry(), SCH_LEGACY_PLUGIN_CACHE::loadCircle(), SCH_LEGACY_PLUGIN::LoadContent(), SCH_LEGACY_PLUGIN_CACHE::loadDocs(), SCH_LEGACY_PLUGIN_CACHE::loadDrawEntries(), SCH_LEGACY_PLUGIN::loadFile(), SCH_LEGACY_PLUGIN_CACHE::loadFootprintFilters(), SCH_LEGACY_PLUGIN::loadHeader(), SCH_LEGACY_PLUGIN_CACHE::loadHeader(), SCH_LEGACY_PLUGIN::loadJunction(), SCH_LEGACY_PLUGIN::loadNoConnect(), SCH_LEGACY_PLUGIN::loadPageSettings(), SCH_LEGACY_PLUGIN_CACHE::LoadPart(), SCH_LEGACY_PLUGIN_CACHE::loadPin(), SCH_LEGACY_PLUGIN_CACHE::loadPolyLine(), SCH_LEGACY_PLUGIN_CACHE::loadRectangle(), SCH_LEGACY_PLUGIN::loadSheet(), SCH_LEGACY_PLUGIN::loadSymbol(), SCH_LEGACY_PLUGIN::loadText(), SCH_LEGACY_PLUGIN_CACHE::loadText(), and SCH_LEGACY_PLUGIN::loadWire().

Variable Documentation

◆ delims

const char* delims = " \t\r\n"

Definition at line 89 of file sch_legacy_plugin.cpp.

◆ sheetLabelNames