about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* cssvalues, twtstr, mediaquery: refactor & fixesbptato2024-08-028-440/+354
| | | | | | | * 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)
* Update Chagashibptato2024-08-012-1/+1
|
* git.cgi: misc improvementsbptato2024-08-011-21/+27
| | | | | | | * highlight shortened commit hashes (up to 7 chars) * send status * refactor cgi commands * support git branch -a
* env, dom: add History stub, basic LocalStoragebptato2024-07-303-0/+86
| | | | | | | * History: doesn't really do anything, just adding it to fix some pages * LocalStorage: kind of works, but does lookups with linear search, and the quota limitation is on the number of entries not their size. plus it doesn't actually store anything on disk yet (like cookies).
* console, client: optimize console.log (etc.)bptato2024-07-302-18/+39
| | | | use JSValue varargs instead
* term: constify queriesbptato2024-07-301-3/+15
| | | | | + also send register & image dimension queries in forced sixel mode, and image dimension query on window resize
* doc: fix typobptato2024-07-301-4/+4
|
* Fixes for Nim 2.2bptato2024-07-2922-307/+283
| | | | | | | | | * xmlhttprequest: fix missing import * painter: generic tuple workaround * dynstream: merge module with implementations (so it will work with vtables) Not enabling vtables yet since it doesn't work with refc.
* Update readme, licensebptato2024-07-292-3/+4
|
* twtstr: fix startsWithIgnoreCasebptato2024-07-292-3/+3
|
* css: hash attribute namesbptato2024-07-293-45/+57
|
* cascade: move some presentational hints to ua.cssbptato2024-07-292-66/+101
|
* Update docsbptato2024-07-293-13/+302
|
* buffer, layout: small refactoringbptato2024-07-292-40/+37
|
* buffer, pager, config: add meta-refresh + misc fixesbptato2024-07-2818-141/+266
| | | | | | | | | * 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
* Update submodulesbptato2024-07-285-4/+4
|
* layout: merge neighboring wordsbptato2024-07-283-32/+28
| | | | Great performance win on large documents.
* dom: add missing nil checksbptato2024-07-271-1/+4
| | | | document is not set in the main process.
* headers, request: bring it closer to the standardbptato2024-07-277-128/+233
| | | | | | * add standard interfaces to headers * use window base URL for newRequest * remove pointless generic in newRequest
* loader: follow redirects in fetch()bptato2024-07-271-4/+21
|
* env: add alert shimbptato2024-07-271-0/+3
| | | | just call console.error for now
* loader: fix saveToBitmap for 0-len imagesbptato2024-07-271-1/+5
|
* cssvalues: fix parseDimensionValues bugbptato2024-07-271-9/+10
| | | | Whitespace-only dimension values no longer crash the parser.
* cascade: add some presentational hintsbptato2024-07-271-3/+7
| | | | | | * top/middle/bottom for img, remove redundant display: block for floats (they get blockified anyway) * map align for p too, not just div
* layout: inline table fixesbptato2024-07-274-55/+188
| | | | | | | * properly wrap inline internal table boxes in inline-table (instead of block-level table) * fix missing baseline in table wrapper boxes * fix wrong wrapping of misparented table/row/row group children
* layout: position: relative, absolute fixesbptato2024-07-263-34/+63
| | | | | | | | | | * support position: absolute on flex items * proper top/bottom/left/right calculation for position: relative * push positioned flex box sizes to positioned stack Still not perfect: position: absolute should always resolve percentage sizes and top/bottom/left/right, meaning absolute layout needs to be delayed until its containing box is fully layouted.
* url: fix URLSearchParams implementationbptato2024-07-251-20/+19
| | | | Just allocate it on-demand so it works properly.
* layout: fix incorrect absolute positioningbptato2024-07-254-18/+97
| | | | It was broken for parent boxes with indefinite sizes.
* layout: min/max sizing fixesbptato2024-07-254-29/+60
| | | | | | | * fix max size trumping min size * respect min-width/max-width/min-height/max-height for images * fix xminwidth calculation for percentage-sized images with an indefinite containing size
* selectorparser: fix broken tostrbptato2024-07-251-11/+27
|
* url: fix a small incompatibilitybptato2024-07-252-28/+35
| | | | + some more cleanup
* url: misc fixes & improvementsbptato2024-07-244-491/+634
| | | | | | * fix various parsing bugs * rewrite state machine * other small optimizations
* client, sandbox: fix termux buildbptato2024-07-243-8/+60
| | | | | Still not perfect, because it crashes on missing /tmp dir so you have to manually set it...
* pager: fix dead containers left in replaceBackupbptato2024-07-232-0/+9
| | | | | | | | | | | fixes the following bug: * click a link that redirects somewhere * go back * discard buffer (that had the link) * discard the new buffer then you would find yourself in a zombie buffer you previously discarded
* jebp: fix NEON simd bugbptato2024-07-231-1/+1
| | | | | | SRCtype and DSTtype were mixed up. See https://todo.sr.ht/~bptato/chawan/14
* term: fix positionImage sixel size clamping (take 2)bptato2024-07-231-2/+2
| | | | | | Hope I got it right this time. (The previous iteration did not take into account the image position on the screen, so it was just as bad as the first one.)
* term: fix positionImage sixel size clampingbptato2024-07-231-6/+10
| | | | | clamping maxwpx/maxhpx crops the image starting from the canvas corner, not the image corner
* dom: fix wrong proc call in fireEventbptato2024-07-222-2/+2
| | | | dispatchEvent is for JS only, since it unsets isTrusted.
* layout: fix various flex column sizing bugsbptato2024-07-225-24/+76
| | | | | | * fix flex column item width not being stretched * set minimum flex column height to the layouted item's height (to avoid overlap)
* buffer, dom, event: JS binding for dispatchEventbptato2024-07-226-116/+152
| | | | | | * move dispatchEvent to event, add a JS binding * only reshape if the document was actually invalidated after event dispatch/interval call/etc.
* dom: fix getElementById signaturebptato2024-07-211-3/+3
|
* buffer: replace dispatchEvent procs with that in dombptato2024-07-213-37/+7
|
* dom: fix race condition in image loadingbptato2024-07-212-5/+4
| | | | | | We were not setting the invalid flag on bitmap load, so any incremental reshape could interfere with displaying images that got loaded after the reshape.
* term: fix kitty image positioningbptato2024-07-201-2/+5
| | | | only use sixelMaxWidth/sixelMaxHeight for sixel
* loader: copy cached items on buffer cloningbptato2024-07-205-8/+20
| | | | | This fixes a bug where cloning buffers with images would crash the browser.
* Update readmebptato2024-07-201-4/+7
|
* img: add webp decoder (jebp)bptato2024-07-207-2/+4885
| | | | | | | | | | It works fine AFAICT, just missing VP8 deblocking filters, so lossy WebP images don't look great. I have extended the API a bit to allow reading from stdin, not just paths. Otherwise, it's the same as matanui159/jebp. TODO: add loop filters
* buffer: fix nil deref on click without clickable elementbptato2024-07-192-7/+5
|
* Update docsbptato2024-07-192-17/+148
|
* Makefile: add distcleanbptato2024-07-192-1/+6
|