One of the bigger problems I'd been avoiding with libRUIN was that the automatic table layout algorithm (i.e., the default algorithm for computering table dimensions, for those of you unfamiliar with CSS2.1) is sort of incompletely and incorrectly specified in the CSS spec. And they kind of admit this in the spec, but that doesn't make it any less infuriating when you run your code the first time and everything that isn't specified precisely comes out looking like crap. (Usenet has plenty of bitching from browser developers on this topic.)
So I kind of hiked up my skirts and decided that I'd have to figure out how "real renderers" like Mozilla do it, and that I'd basically just have to do it by reading the code, which is, you know, not something you really want to have to do very often. And I read a bunch of it, and it was pretty tedious and confusing, and eventually I went on #developers on irc.mozilla.org for some clarifications, and a nice developer pointed out that I should really read the code for a less convoluted renderer and suggested KHTML as a good one to try.
It turns out this person was right -- KHTML has really clear source in this respect, and after several mildly unpleasant hours, I'd managed to infer a human-readable algorithm from their automatic table layout code. The best part? I just coded it up in libRUIN, and it actually works! Huzzah! So expect another release soon, with re-enabled XUL support and a bunch of other goodies, along with the new table layout code. Thanks, KHTML and #developers!
