KiCad PCB EDA Suite
sch_legacy_plugin.cpp File Reference
#include <algorithm>
#include <boost/algorithm/string/join.hpp>
#include <cctype>
#include <set>
#include <wx/mstream.h>
#include <wx/filename.h>
#include <wx/tokenzr.h>
#include <pgm_base.h>
#include <gr_text.h>
#include <kiway.h>
#include <kicad_string.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_component.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 <bus_alias.h>
#include <sch_legacy_plugin.h>
#include <template_fieldnames.h>
#include <sch_screen.h>
#include <schematic.h>
#include <class_libentry.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 78 of file sch_legacy_plugin.cpp.

◆ Mils2Iu

#define Mils2Iu (   x)    Mils2iu( x )

Definition at line 74 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 at line 80 of file sch_legacy_plugin.cpp.

◆ T_COLOR

#define T_COLOR   "rgb"

Definition at line 90 of file sch_legacy_plugin.cpp.

◆ T_COLORA

#define T_COLORA   "rgba"

Definition at line 91 of file sch_legacy_plugin.cpp.

◆ T_STYLE

#define T_STYLE   "style"

Definition at line 89 of file sch_legacy_plugin.cpp.

◆ T_WIDTH

#define T_WIDTH   "width"

Definition at line 92 of file sch_legacy_plugin.cpp.

Function Documentation

◆ is_eol()

static bool is_eol ( char  c)
static

Definition at line 95 of file sch_legacy_plugin.cpp.

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

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 284 of file sch_legacy_plugin.cpp.

286 {
287  while( *aCurrentToken && isspace( *aCurrentToken ) )
288  aCurrentToken++;
289 
290  if( !*aCurrentToken )
291  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
292 
293  if( !isspace( *( aCurrentToken + 1 ) ) )
294  SCH_PARSE_ERROR( "expected single character token", aReader, aCurrentToken );
295 
296  if( aNextToken )
297  {
298  const char* next = aCurrentToken + 2;
299 
300  while( *next && isspace( *next ) )
301  next++;
302 
303  *aNextToken = next;
304  }
305 
306  return *aCurrentToken;
307 }
CITER next(CITER it)
Definition: ptree.cpp:130
#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::loadComponent(), SCH_LEGACY_PLUGIN_CACHE::loadField(), SCH_LEGACY_PLUGIN::loadSheet(), 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 243 of file sch_legacy_plugin.cpp.

245 {
246  if( !*aLine )
247  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aLine );
248 
249  // Clear errno before calling strtod() in case some other crt call set it.
250  errno = 0;
251 
252  double retv = strtod( aLine, (char**) aOutput );
253 
254  // Make sure no error occurred when calling strtod().
255  if( errno == ERANGE )
256  SCH_PARSE_ERROR( "invalid floating point number", aReader, aLine );
257 
258  // strtod does not strip off whitespace before the next token.
259  if( aOutput )
260  {
261  const char* next = *aOutput;
262 
263  while( *next && isspace( *next ) )
264  next++;
265 
266  *aOutput = next;
267  }
268 
269  return retv;
270 }
CITER next(CITER it)
Definition: ptree.cpp:130
#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::parseD_PAD(), PCB_PARSER::parseDRAWSEGMENT(), PCB_PARSER::parseEDGE_MODULE(), PCB_PARSER::parseMODULE_unchecked(), PCB_PARSER::parsePAGE_INFO(), PCB_PARSER::parseSetup(), PCB_PARSER::parseTEXTE_MODULE(), PCB_PARSER::parseTEXTE_PCB(), and PCB_PARSER::parseZONE_CONTAINER().

◆ 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 198 of file sch_legacy_plugin.cpp.

199 {
200  if( !*aLine )
201  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aLine );
202 
203  // Due to some issues between some files created by a 64 bits version and those
204  // created by a 32 bits version, we use here a temporary at least 64 bits storage:
205  unsigned long long retv;
206 
207  // Clear errno before calling strtoull() in case some other crt call set it.
208  errno = 0;
209  retv = strtoull( aLine, (char**) aOutput, 16 );
210 
211  // Make sure no error occurred when calling strtoull().
212  if( errno == ERANGE )
213  SCH_PARSE_ERROR( "invalid hexadecimal number", aReader, aLine );
214 
215  // Strip off whitespace before the next token.
216  if( aOutput )
217  {
218  const char* next = *aOutput;
219 
220  while( *next && isspace( *next ) )
221  next++;
222 
223  *aOutput = next;
224  }
225 
226  return (uint32_t)retv;
227 }
CITER next(CITER it)
Definition: ptree.cpp:130
#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::loadComponent(), PCB_PARSER::parseARC(), PCB_PARSER::parseDRAWSEGMENT(), PCB_PARSER::parseEDGE_MODULE(), PCB_PARSER::parseMODULE_unchecked(), 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 156 of file sch_legacy_plugin.cpp.

157 {
158  if( !*aLine )
159  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aLine );
160 
161  // Clear errno before calling strtol() in case some other crt call set it.
162  errno = 0;
163 
164  long retv = strtol( aLine, (char**) aOutput, 10 );
165 
166  // Make sure no error occurred when calling strtol().
167  if( errno == ERANGE )
168  SCH_PARSE_ERROR( "invalid integer value", aReader, aLine );
169 
170  // strtol does not strip off whitespace before the next token.
171  if( aOutput )
172  {
173  const char* next = *aOutput;
174 
175  while( *next && isspace( *next ) )
176  next++;
177 
178  *aOutput = next;
179  }
180 
181  return (int) retv;
182 }
CITER next(CITER it)
Definition: ptree.cpp:130
#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::loadComponent(), 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::loadText(), SCH_LEGACY_PLUGIN_CACHE::loadText(), SCH_LEGACY_PLUGIN::loadWire(), PCB_PARSER::parseARC(), PCB_PARSER::parseD_PAD(), PCB_PARSER::parseDefaults(), PCB_PARSER::parseGeneralSection(), PCB_PARSER::parseHeader(), PCB_PARSER::parseLayer(), PCB_PARSER::parseMODULE_unchecked(), PCB_PARSER::parseNETINFO_ITEM(), test::DRC_RULES_PARSER::parseRULE(), PCB_PARSER::parseTITLE_BLOCK(), PCB_PARSER::parseTRACK(), PCB_PARSER::parseVersion(), PCB_PARSER::parseVIA(), and PCB_PARSER::parseZONE_CONTAINER().

◆ 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 386 of file sch_legacy_plugin.cpp.

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

327 {
328  if( !*aCurrentToken )
329  {
330  if( aCanBeEmpty )
331  return;
332  else
333  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
334  }
335 
336  const char* tmp = aCurrentToken;
337 
338  while( *tmp && isspace( *tmp ) )
339  tmp++;
340 
341  if( !*tmp )
342  {
343  if( aCanBeEmpty )
344  return;
345  else
346  SCH_PARSE_ERROR( _( "unexpected end of line" ), aReader, aCurrentToken );
347  }
348 
349  std::string utf8;
350 
351  while( *tmp && !isspace( *tmp ) )
352  utf8 += *tmp++;
353 
354  aString = FROM_UTF8( utf8.c_str() );
355 
356  if( aString.IsEmpty() && !aCanBeEmpty )
357  SCH_PARSE_ERROR( _( "expected unquoted string" ), aReader, aCurrentToken );
358 
359  if( aNextToken )
360  {
361  const char* next = tmp;
362 
363  while( *next && isspace( *next ) )
364  next++;
365 
366  *aNextToken = next;
367  }
368 }
CITER next(CITER it)
Definition: ptree.cpp:130
static wxString FROM_UTF8(const char *cstring)
function FROM_UTF8 converts a UTF8 encoded C string to a wxString for all wxWidgets build modes.
Definition: macros.h:114
#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::loadComponent(), 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_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 119 of file sch_legacy_plugin.cpp.

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

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::loadComponent(), 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::loadText(), SCH_LEGACY_PLUGIN_CACHE::loadText(), and SCH_LEGACY_PLUGIN::loadWire().

Variable Documentation

◆ delims

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

Definition at line 86 of file sch_legacy_plugin.cpp.

◆ sheetLabelNames