Oct 2024

Finished the TableToString rewrite: T2S2 Updated KEVN, an INI-like config file parser. I later archived the repository because it doesn’t offer many advantages over loading a Lua table constructor. Integrated PILE (collection of Lua snippets)…

Sept 2024

I noticed that LXL is slow when reading large XML files under PUC-Lua. The problem is caused by how the library scans the document for valid XML code points. I made some changes to help…

Jul 2024

Released LXL (Lua XML Library), a major rewrite of xmlToTable. Rewrote ErrTest and StringWalk (formerly StringReader), and updated UTF8Tools. Most of this work happened in June, and it started from a naive attempt to add…

Jan 2024, post hiatus

No project work this month. I’ll stop posting until I have something to write about. (Nothing serious, just poor time management and the programming equivalent of writer’s block.)

Dec 2023

Made a dropdown box widget. The single-line text box widget started in November is mostly operational now. Merged the two scrolling register sets (scr, scr2) into one (just scr). uiGraphics: Added a wrapper to setScissor…

Nov 2023

I moved ProdUI to a public Git repo. It’s not ready for general use, but it should work with LÖVE 11.4, 11.5 and 12.0-development if you want to take a look. Wrote some UI Context…

Oct 2023

Reorganized the theming and skinning system: In August, I added special fields that described how to reach theme objects. For example, skin[“*tex_side”] = “textures/side” would eventually lead to the assignment skin.tex_side = resources.textures.side. This was…

Sept 2023

Wrote utf8Check and updated utf8Tools. I thought that Lua 5.3’s utf8.len() was suitable for validating strings in LÖVE, but it will allow some invalid code points through that LÖVE rejects, like surrogate pairs. Minor work…

Aug 2023

Rewrote drawing code for the tabular menu widget. It’s now easier to see the contents of dragged columns. Started a ListBox widget. Scroll bar improvements: Scroll bar breadth and button length can now be overridden…