about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* env: fix getComputedStyle arg2bptato2024-10-101-1/+1
|
* promise: remove newPromisebptato2024-10-103-17/+6
| | | | normal construction is enough (and it wasn't really used anyway)
* layout, pager: preserve tabs on display, selection & outputbptato2024-10-104-29/+101
| | | | | | | | | | | | Substitute tabs with one of eight PUA characters based on their width, and convert them back in the pager: * TUI mode always prints spaces, but now handles tabs appropriately on cursor movement * dump mode tries to preserve hard tabs, but uses soft tabs when that is not possible (e.g. tabs after a margin, tab with background color, etc) * selection mode always outputs hard tabs.
* Fix compilation on Nim 2.2.0bptato2024-10-101-11/+16
|
* loader: fix fd leakbptato2024-10-081-0/+1
|
* twtstr: fix stripAndCollapsebptato2024-10-081-11/+9
|
* client: fix redirected buffers jumping back to parent on reloadbptato2024-10-071-0/+5
| | | | | replaceBackup was not being cleared, so the next gotoURL with a replace pointing to such buffers wouldn't work.
* pager: do not choke on empty editor commandbptato2024-10-071-2/+4
|
* layout: small cleanupbptato2024-10-071-14/+11
| | | | the length check is not needed, we do that outside the loop already
* color: reduce CellColor size, misc color refactoringbptato2024-10-0610-128/+148
| | | | | | * split out CSSColor from CellColor; now CellColor is just 4 bytes (which helps reduce FormatCell size) * unify color function naming (still not perfect)
* pager: add missing int conversionbptato2024-10-061-1/+1
|
* url: fix IDNA bugsbptato2024-10-061-2/+2
|
* Update Chagashibptato2024-10-052-10/+1
|
* layout: fix floats overriding margin/paddingbptato2024-10-051-2/+3
|
* dynstream: fix memory leakbptato2024-10-042-4/+6
| | | | now I know why overloading dealloc felt wrong
* sixel, term: reduce half-dump special casingbptato2024-10-043-22/+37
| | | | | | | Makes it slightly easier to debug image output. Also, we stop sending dimension headers, and no longer check for the scheme env var to make CLI invocation a bit less annoying.
* sixel: transparency improvementsbptato2024-10-031-4/+4
| | | | | | | * don't set transparency when raster attributes suffice - it seems terminals don't background-fill in that case either. * fix transparency in encoder standalone mode * update comments
* Update monouchabptato2024-10-021-1/+1
|
* poll: reset events on errorbptato2024-10-021-1/+5
| | | | | poll will return an error if interrupted, which may leave the events in their previous state. Make sure revents is set to 0 first.
* term: "fix" GNU screen not respecting query sequence orderbptato2024-10-011-9/+22
| | | | | | | | | | | | | wtf ... OK, it's a "fix" as much as you can fix this. I'm not adding a timer just to work around screen silently reordering my output. (Who thought this would be a good idea??) Unfortunately, this means that your background/foreground colors won't get detected when using screen. Not that they would have been until now.
* twtstr: misc refactoringsbptato2024-10-013-5/+5
|
* loader: add missing nil check in openCachedItembptato2024-10-011-1/+4
| | | | also, erase cacheRef when it couldn't be opened
* url: fix searchParams.deletebptato2024-09-301-0/+1
|
* pager: improve rewrite-url semanticsbptato2024-09-301-7/+19
| | | | | | | | | | | | | Previously, it just changed the URL before loading the site; now it's an actual redirect. Technically, the previous behavior was more flexible, because it let you apply siteconf rules exclusively for sites where you redirected from. Practically, this was not very useful, and probably unexpected for anybody trying to use the feature. This also fixes a bug where the loader filter would be set for the original page, so you couldn't switch from https to http, etc.
* timeout: accept err stream as parambptato2024-09-304-16/+11
| | | | | gets rid of a todo. (not sure why I thought this was important, but it sure looks nicer)
* sandbox: allow clock_gettime64bptato2024-09-301-1/+2
| | | | used on 32-bit platforms
* dom: optimize element size, remove importc hack & dead codebptato2024-09-304-111/+85
| | | | | This switches CAtom to uint32; it seems better to use the same size on all platforms.
* pager: add missing nil checkbptato2024-09-291-2/+3
|
* buffer: un-extern some procsbptato2024-09-291-2/+2
|
* Update monouchabptato2024-09-292-1/+2
| | | | | Now we use QuickJS-NG, which is better maintained than QJS and has column tracking.
* promise: move PromiseMap to bufferbptato2024-09-292-72/+51
| | | | | It's only used there, and there's no reason for every single promise to carry two pointers to support it.
* loader: get rid of a pointless tablebptato2024-09-281-18/+26
|
* loader: send headers for tocache requests toobptato2024-09-285-43/+41
| | | | | This lets us send the transparency bit as a header, and also halves the number of header parsers in loader.
* gopher: do not depend on libcurlbptato2024-09-282-1/+13
| | | | | | | | I'm thinking of making libcurl entirely optional; let's start with the easiest part. I've added a SOCKS5 client for ALL_PROXY support; I know curl supported others too, but whatever.
* loader: clean up connecterrorbptato2024-09-282-56/+87
| | | | | | * allow string values for public errors * remove unused errors * update naming
* container: fix control char displaybptato2024-09-287-53/+29
| | | | | | Also, kill twidth and its friends; we haven't been using it for a while now. (In the future, a solution with PUA chars might be worth exploring.)
* container: don't show hover type on ubptato2024-09-271-1/+1
| | | | it's a waste of space, and doesn't work well with showFullAlert
* sandbox: allow restart_syscallbptato2024-09-271-1/+3
| | | | required for poll
* layout: fix wrong padding offsetsbptato2024-09-272-54/+44
| | | | + some misc refactorings
* poll: unset unused fds in registerbptato2024-09-271-0/+3
|
* Fixes for FreeBSDbptato2024-09-263-6/+6
|
* loader, pager: fix fd leaksbptato2024-09-252-0/+5
|
* color: fix a parseLegacyColor bugbptato2024-09-251-5/+6
|
* dynstream: fix mmap bugsbptato2024-09-251-12/+16
| | | | ugh
* buffer: make non-button form-associated elems clickablebptato2024-09-251-3/+2
| | | | | d7085253b7 was too strict; in particular, it broke cases where copyable text is placed in text areas.
* term: prevent negative line damage, fix off by onebptato2024-09-252-9/+9
|
* dom: invalidate shared images on loadbptato2024-09-251-0/+1
| | | | fixes the race where reused images wouldn't show up after page load
* pager: make image ordering deterministicbptato2024-09-252-4/+6
| | | | ensure that images are shown in the order buffer sent them
* sixel: support transparencybptato2024-09-246-24/+34
| | | | | | | | | | | | | | | | | | Sixel can only represent transparency for fully transparent (alpha = 0) and fully opaque (alpha = 255) pixels, i.e. we would have to do blending ourselves to do this "properly". But what do you even blend? Background color? Images? Clearly you can't do text... So instead of going down the blending route, we now just approximate the 8-bit channel with Sixel's 1-bit channel and then patch it up with dither. It does look a bit weird, but it's not *that* bad, especially compared to the previous strategy of "blend with some color which hopefully happens to be the background color" (it rarely was). Note that this requires us to handle transparent images specially in term. That is, for opaque ones, we can leave out the "clear cells affected by image" part, but for transparent ones, we must clear the entire image every time.
* select: use a separate module (again)bptato2024-09-244-351/+374
| | | | | | | | | Now we dispatch to select objects from the pager object too, just to make things even more confusing. Well, it works better than the previous arrangement, in that trying to use unimplemented movements now just throws instead of moving around the container. Yay for OOP (?)