about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* about: markdownify & update license.htmlbptato2024-05-284-50/+45
| | | | We have a markdown converter, so why not use it?
* buffer: fix ampersand escaping in markURLbptato2024-05-281-0/+4
|
* layout: fix crash on inline tablesbptato2024-05-283-1/+4
|
* stylednode: remove `text' fieldbptato2024-05-284-16/+20
| | | | This avoids some unnecessary string copying.
* stylednode: move invalidation data to DOMbptato2024-05-273-25/+23
| | | | this way, we do not refer to nodes of previous cascade passes
* layout: remove BlockBoxBuidlerbptato2024-05-277-687/+608
| | | | | | | | | | Instead of allocating a separate object for each box, just re-use a single BlockBox on re-layouts. This means that now the (block-level) tree is built in its final form in the first pass. (Inline boxes remain the same as before for now.)
* layout: list item improvements, fix inner markersbptato2024-05-253-36/+52
| | | | | * fix list-style-position: inside * get rid of ListItemBoxBuilder
* layout: add wrapper box for table caption + misc stuffbptato2024-05-242-121/+176
| | | | | | | | | Captions are no longer positioned inside tables, yay. Also, misc: * rename some things for consistency * clamp out of bounds rgb() values * remove inherited property lookup table
* client: fix double click on double width charsbptato2024-05-231-7/+7
| | | | | This is not a perfect solution, but it's still better than not being able to double click on CJK links correctly.
* url: add URL.parsebptato2024-05-221-0/+3
| | | | | | | Pointless bloat that fixes no real problems, but it's standard now... (Are we supposed to add a helper function that returns null for *every* constructor that can throw now?)
* layout, layoutunit: remove some automatic convertersbptato2024-05-223-13/+11
| | | | | I wish we didn't need any, but fixing this for integers would be too involved and the float64 one was causing problems now.
* http: allow multiple early hintsbptato2024-05-221-1/+1
|
* man: quote keyword & sectionbptato2024-05-221-5/+5
|
* layout: simplifybptato2024-05-211-102/+76
| | | | removes elaborate table box type hierarchy that does nothing
* Update readmebptato2024-05-211-59/+53
|
* twtstr: fix overflow checkbptato2024-05-211-2/+2
|
* test: inline-backgrounds updatebptato2024-05-211-2/+0
| | | | Both outputs suck, but it probably doesn't matter much.
* gopher: simplifybptato2024-05-213-38/+35
| | | | | * update naming * do not send status code (it was always 200 anyway)
* sandbox: add sigreturnbptato2024-05-211-0/+2
| | | | seems to get called for signal handlers
* forkserver: also skip SIGTERM socket unlinkbptato2024-05-201-5/+1
| | | | rationale: see previous commit
* buffer: never unlink controlling socket in cleanupbptato2024-05-201-5/+2
| | | | | | | | The pager already unlinks it, so ideally this should change nothing. (This was causing buffer processes to core dump on OpenBSD, because I forgot that I removed unlink promise. Better keep code paths the same when possible...)
* html: improve Request, derive Client from Windowbptato2024-05-2017-315/+362
| | | | | | | * make Client an instance of Window (for less special casing) * misc work on Request & fetch * improve origin comparison (opaque origins of same URLs are now considered the same)
* layout: fix inline tab expansionbptato2024-05-191-0/+1
|
* layout: fix BFC positioning in presence of floatsbptato2024-05-196-14/+106
| | | | | | | | | | | | | Previously, the following printed "2" instead of "12": <div style=float:left>1</div><div style=display:flow-root>2</div> This fixes the above problem in the laziest possible way: we relayout once in the smallest possible space the BFC fits in when floats exist. See the comment in the code for details. As a nice bonus, this also fixes tables overlapping with floated boxes, by pretending that they establish a BFC.
* css: stub overflowbptato2024-05-182-3/+18
| | | | | The renderer cannot handle it yet, but at least this fixes pages that expect overflow: hidden (etc.) to establish a new BFC.
* layout: fix maxFloatHeight checkbptato2024-05-181-5/+5
| | | | | Including our own position is a mistake, since the BFC starts from the inner box.
* layout: reuse box.positioned in positionAbsolutebptato2024-05-181-4/+4
|
* layout: relative positioning fixesbptato2024-05-184-75/+85
| | | | Fix percentage-based left/right etc.
* layout: slightly refactor table layoutbptato2024-05-181-27/+26
|
* forkserver: simplify fcLoadConfigbptato2024-05-183-16/+6
|
* Update docsbptato2024-05-164-209/+159
|
* config: separate tmp dir for sockets, usersbptato2024-05-167-22/+22
| | | | | | | * add $LOGNAME to the tmp directory name, so that tmpdirs of separate users don't conflict * use separate directory for sockets, so that we do not have to give buffers access to all cached pages
* test: text-transformbptato2024-05-162-0/+3
|
* css/values -> css/cssvaluesbptato2024-05-1610-11/+11
| | | | for consistency
* cssvalues: fix casingbptato2024-05-161-61/+61
|
* pager: editor command fixesbptato2024-05-123-4/+5
|
* js: allow var instead of ptrbptato2024-05-125-94/+100
|
* container: remove unused codebptato2024-05-121-5/+0
|
* client, pager: remove unnecessary std/streamsbptato2024-05-112-12/+7
|
* buffer: fix multipart formsbptato2024-05-1114-233/+244
| | | | | | | | | * fix enctype not getting picked up * fix form data constructor requiring open() syscall (which gets blocked by our seccomp filter) * add closing boundary to multipart end * pass fds instead of path names through WebFile/Blob and send those through bufwriter/bufreader
* Fix typobptato2024-05-111-1/+2
|
* pager: take $EDITOR from envbptato2024-05-112-6/+6
| | | | | | * use EDITOR environment variable in default config, fix line number ordering in fallback * autodetect vi-like editors and add line number
* term: optimize canvas redraw, remove emulate-overlinebptato2024-05-105-81/+38
| | | | | | | * Replaced the `pcanvas' comparison with a much simpler tracking of the first damaged cell in writeGrid, which is significantly faster. * Removed emulate-overline: it's of too little utility compared to the maintenance burden it caused.
* luwrap: use separate context (+ various cleanups)bptato2024-05-109-256/+293
| | | | | | Use a LUContext to only load required CharRanges once per pager. Also, add kana & hangul vi word break categories for convenience.
* luwrap: replace Nim unicode maps with libunicodebptato2024-05-098-69/+136
| | | | | | | | | | | | | | | | | Instead of using the built-in (and outdated, and buggy) tables, we now use libunicode from QJS. This shaves some bytes off the executable, though far less than I had imagined it would. Also, a surprising effect of this change: because libunicode's tables aren't glitched out, kanji properly gets classified as alpha. I found this greatly annoying because `w' in Japanese text would now jump through whole sentences. As a band-aid solution I added an extra Han category, but I wish we had a more robust solution that could differentiate between *all* scripts. TODO: I suspect that separately loading the tables for every rune in breaksViWordCat is rather inefficient. Using some context object (at least per operation) would probably be beneficial.
* layout: unify some code pathsbptato2024-05-093-246/+236
| | | | | | | Turn Offset, Size, etc. into arrays indexed by a DimensionType enum, and use it to unify code that only differs in the dimension it is computing for. (e.g. this lets us use the same code for flex row & column layouts.)
* img: rename SEGMENT_*bptato2024-05-091-16/+15
|
* fromjs: remove broken uint64 converterbptato2024-05-091-5/+0
| | | | It would silently truncate the upper 32 bits... not a very bright idea.
* dom: simplify ButtonTypebptato2024-05-084-20/+19
|
* layout: another table colwidth fixbptato2024-05-083-2/+16
| | | | | | Turns out we also have to *expand* column width, if the specified column width is too small *and* no unspecified column exists to take the rest of the place.