| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
This broke CJK combined with table layouts.
(Inline layout's state dependencies between procs are getting a bit
scary...)
|
|
|
|
|
|
| |
Turns out the generics weren't really needed in the first place.
Also, StyledNode is now 16 bytes smaller.
|
| |
|
|
|
|
| |
maybe I'll get it right one of these days
|
|
|
|
|
| |
The rowspan filler must get a smaller colspan if its first cells are
occupied by another cell with a colspan > 1.
|
|
|
|
|
|
|
| |
most of it has already been moved to monoucha, and the rest fits better
in other directories.
also, move urimethodmap to config
|
|
|
|
|
|
|
| |
far from perfect, but it's something.
(ideally, we should store enums in a bitmap instead of allocating a
GC'ed property for each of them.)
|
| |
|
|
|
|
| |
like line height, this caused more trouble than it was worth
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
23beebe6 introduced a regression that broke gotoAnchor. This fixes that,
plus a couple other long-standing gotoAnchor bugs:
* If no anchor is found, do not dupe the buffer.
Desktop browsers still add a history entry, while w3m prints an
error. I've copied the latter because it makes more sense as a user,
but this will have to be refined for the navigation API at some point.
* If the anchor *is* found, then always jump to it, even if it's not
visible.
This was a limitation of relying on the line array, so now we rely on
the box tree instead. (Sooner or later, the former must go anyway.)
Also, fix `U' reload not restoring the position (hopefully this time for
good).
|
|
|
|
| |
also, default link color is now blue for light terminal backgrounds
|
|
|
|
| |
as much as I wish it weren't, layout *is* css.
|
|
|
|
|
| |
negative z-index and inline positioning are still not respected, but
better than nothing I guess.
|
|
|
|
|
| |
* line, vector, matrix -> path
* twtuni, charcategory -> twtstr
|
|
|
|
| |
+ clean up a bit
|
| |
|
|
|
|
|
| |
Found this because the 5th largest tech company on Earth cannot bother
itself with trivial matters such as "writing valid CSS".
|
|
|
|
|
|
| |
This isn't exactly clear from the standard's wording, but e.g. *display:
inline must be discarded (because it incorrectly starts with a delim
token).
|
|
|
|
|
|
|
|
|
|
|
|
| |
Called -cha-reverse.
Mostly to solve the problem that code tags are indistinguishable from
regular text - on a graphical browser this is normally served by
monospace font, but we always use monospace...
So now the default ua.css adds reverse video to code and xmp. pre
remains as it was, because it means "preformatted", not "monospaced".
Also, it would mess with our whatever-to-HTML converter output.
|
|
|
|
| |
it's effectively a dupe, except html wouldn't work in XML
|
|
|
|
|
|
| |
* split out CSSColor from CellColor; now CellColor is just 4 bytes
(which helps reduce FormatCell size)
* unify color function naming (still not perfect)
|
|
|
|
|
| |
This switches CAtom to uint32; it seems better to use the same size on
all platforms.
|
|
|
|
|
| |
This was a bad idea that, despite my best efforts, never worked
properly.
|
|
|
|
|
| |
I've moved most image logic to adapter, so it doesn't really make
sense to have this subdir anymore.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
std/unicode has the following issues:
* Rune is an int32, which implies overflow checking. Also, it is
distinct, so you have to convert it manually to do arithmetic.
* QJS libunicode and Chagashi work with uint32, interfacing with these
required pointless type conversions.
* fastRuneAt is a template, meaning it's pasted into every call
site. Also, it decodes to UCS-4, so it generates two branches that
aren't even used. Overall this lead to quite some code bloat.
* fastRuneAt and lastRune have frustratingly different
interfaces. Writing code to handle both cases is error prone.
* On older Nim versions which we still support, std/unicode takes
strings, not openArray[char]'s.
Replace it with "twtuni", which includes some improved versions of
the few procedures from std/unicode that we actually use.
|
|
|
|
|
|
|
|
| |
Do it like parseEnumNoCase0, so we no longer instantiate a gazillion
different binary searches for the same type.
While we're at it, make matchNameProduction's searchInMap use uint32
too.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* stream: and passFd is now client-based, and accessible for buffers
* Bitmap's width & height is now int, not uint64
* no more non-network Bitmap special case in the pager for canvas
I just shoehorned it into the static image model, so it still doesn't
render changes after page load. But at least now it doesn't crash the
browser.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* cssvalues, twtstr: unify enum parsing code paths, parse enums by
bisearch instead of hash tables
* mediaquery: refactor (long overdue), fix range comparison syntax
parsing, make ident comparisons case-insensitive (as they should be)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* buffer, pager, config: add meta-refresh value, which makes it possible
to follow http-equiv=refresh META tags.
* config: clean up redundant format mode parser
* timeout: accept varargs for params to pass on to functions
* pager: add "options" dict to JS gotoURL
* twtstr: remove redundant startsWithNoCase
|
|
|
|
| |
Whitespace-only dimension values no longer crash the parser.
|
|
|
|
|
|
| |
* top/middle/bottom for img, remove redundant display: block for floats
(they get blockified anyway)
* map align for p too, not just div
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Just use the previous tree when possible.
The child list is still reconstructed, but at least we no longer alloc
every single node again at every single restyle.
|
|
|
|
| |
the invalid flag must be toggled after styling
|
|
|
|
| |
tokenType had to be checked too
|
|
|
|
|
| |
Text data is no longer stored separately in InlineFragments; instead,
we now include refs to StyledNodes.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* resize images with stb_image_resize
* use tee for output handle redirection (redirectToFile blocks)
* cache original image files
* accept lseek in sandbox
* misc stbi fixes
For now, I just pulled in stb_image_resize v1. v2 is an extra 150K in
size, not sure if it's worth the cost. (Either way, we can always switch
later if needed, since the API is almost the same.)
Next step: move sixel/kitty encoders to CGI, and cache their output in
memory instead of the intermediate RGBA representation.
|
| |
|
|
|
|
| |
this one is weird but I'm sure the standard is technically right
|