This removes the need to force it to build as C++, and adds proper UTF-8
support for Windows.
Since this is a fork of linenoise, there's no hope for getting
lua-linenoise to sync with it upstream. I made the bare minimum changes
to keep it working, but didn't add bindings for new functionality (e.g.
multi-line editing).
Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames. Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone. In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.
Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance. The main thing removed is the
deprecated bitlib.
Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.
Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.
Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.
Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.
Added warning level print function to Lua.
Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
------------------
Fruit Star Bonus (Ver 8.2.00ITL) [TeamEurope, f205v, Roberto Fresca]
This set is the new parent. All the others were arranged accordingly.
Isolated the speedup code in the Eolith base state, so eolith16 and
vegaeo aren't inheriting a pile of stuff they don't need.
nichibutsu/jangou.cpp: Split into derived classes so all object finders
are required and device_remove isn't necessary. Also use the data
pending callback on latches as it's there.
taito/taito_l.cpp: Use normal start/reset handlers rather than an
elaborate maze of indirection.
vsystem/aerofgt.cpp: Split the driver class up a little. It's still a
mess.
Got rid of a few of the remaining MCFG macros.
* msx/msx.cpp: Made drive names and LEDs optional.
* msx/msx.cpp: Added caps lock and language mode LEDs to layout.
* bus/msx/slot/disk.cpp: Tidied up code.
- Eliminate unnecessary command length counter
- In 16-bit bus mode, only enable DRQ for transferring one byte to memory when TC0 is set and config flag to save it is not
- Restrict 24-bit extension of transfer counter and config4 & ID registers to NCR53CF94/96
* jaleco/psychic5.cpp: Cleaned up and modernised a little.
* seibu/seibuspi.cpp: Confirmed PAL type for Raiden Fighters 2.
* thepit/thepit.cpp: Marked new set as a licensed US version.
* dataeast/cninja: Added an early version of Mutant Fighter called
Heroes. [Domenico Cervini]
* jaleco/psychic5.cpp: Updated ROM labels and locations for psychic5j.
[Domenico Cervini]
* konami/nemesis.cpp: Updated ROM labels and mask numbers for lifefrce.
[Domenico Cervini]
* seibu/seibuspi.cpp: Added cartridge PAL dumps for Raiden Fighters 2.
[Domenico Cervini]
* thepit/thepit.cpp: Added a version of The Pit that shows a Centuri Inc
copyright notice. [Domenico Cervini]
* util/jedparse.cpp: Fixed a bug when logging parsed fuse values, and
added more useful error log messages.
New working clones
------------------
Heroes (World ver EM-1) [Domenico Cervini]
The Pit (Centuri Inc) [Domenico Cervini]
-------------------------------
svision.xml: Crystball (Euro, USA, earlier) [anonymous]
svision.xml: Treasure Hunter (Euro, USA, 1993) [anonymous]
- svision.xml: corrected ROM dump for tvlink [anonymous]
- svision/svision.cpp: dumped bezel ROM for TV Link [anonymous]
- svision/svis_snd.cpp, svision/svision.cpp: added save state support and other small cleanups
* See GitHub #10937 for issues with current approach.
* Only save configuration for enabled fields.
* Apply loaded configuration to all matching fields.