* Fix grid select box update bug on context menu.
* Fix via size and track width select box update bugs.
* Fix layer pair indicator button update bug.
* Fix auto track width tool bar control enable bug.
* Fix via size and track width select status bug in context menu.
* Fix layer select box and layer control widget select bug when current
layer is removed.
* Add virtual function to notify objects derived from EDA_DRAW_FRAME that
the units setting has changed.
* Coding policy class naming fixes.
* DSNLEXER::NextTok() now uses two separate modes to parse quoted strings.
This gives us the freedom to control our own destiny separate from the
constraints put on us by the Specctra DSN spec.
* Added Documentation/s-expressions.txt to explain all this.
* Enhanced our quoting protocol by moving away from doubling up double quotes
to a C line escape mechanism.
* Now support multi-line strings, which when properly escaped, can still be
read in as a token originating on a single line.
* TokenList2DsnLexer.cmake now supports comments, which start with a leading
# character, and may be either on their own line or on a line after a token.
* DSNLEXER::PopReader() now pops even the last LINE_READER* and returns it.
++pcbnew:
* SPECCTRA_DB now inherits from new class SPECCTRA_LEXER, which led to a great
deal of simplification and code factoring.
* Moved specctra keywords into specctra.keywords.
* Add CMake script to generate DSN token header and source file from
token list file.
* Add preliminary component library DSN token list and lexer file to
test script and prepare for new component library file lexer.
* EESchema: right click on ERC check mark displays error in message panel.
* Remove PCBNew header file dependency from common DSN lexer source.
* Minor code clean ups.
constructor takes a keyword table, so it can be used for arbitrary DSN
syntax files of your own chosing. Simply create an enum {} with all your
unique tokens in it. Then create a KEYWORD table. See SPECCTRA_DB::keywords[].
The reason you want an enum is to give the C++ debugger better type information
so it can show symbolic integer symbols.
* Factored out common richio.cpp and richio.h
which is what DSNLEXER uses.
* Fixed some minor issues with reading circuit descriptor from a *.dsn file.
* Added exporting of netclass vias to specctra_export.
* DIALOG_DESIGN_RULES now remembers it last selected TAB and screen position and
window size, and its grid columns are automatically expanded to fit the
column titles. Remembering screen position and size allows someone with
multiple monitors, to have a given window always come up on the monitor last chosen
for it.