| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
+ be a bit more paranoid about double closes
|
| |
|
|
|
|
|
| |
* fix whitespace-surrounded asterisk turning into emphasis
* slightly refactor parseInline (it's still quite ugly...)
|
| |
|
| |
|
|
|
|
|
|
| |
See comment for details.
(Also, set the palette size based on quality for toBlob.)
|
| |
|
|
|
|
|
| |
Instead of storing pointers to cstrings, put all of them in a single
huge string and store indices of that.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
| |
it's really min-height, not height; consistency is not CSS's strong
suit...
|
|
|
|
| |
whoops
|
|
|
|
|
|
|
|
| |
* expand allowed color range somewhat
* update maximum sixel size on window resize
* fix kitty image cropping
* use faster algorithm for sixel compression (also produces less
wasteful output)
|
|
|
|
| |
+ update todo, readme
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uses floyd-steinberg - I originally tried atkinson, but liked the
results with fs a bit more.
also, I got rid of the half hearted attempt to skip tree traversals for
color lookups, as it performs horribly with dithering. it *did* work if
I set Y as the key, but it still felt wrong - well, as it turns out,
octree traversal is faster anyway, so just do that.
it works out nicely because we can fill in holes (from dithering) with
a linear search for the nearest match as we go.
|
|
|
|
|
|
|
|
|
|
|
| |
ok, of course if you search for the nearest entry after setting blue
as the lowest index bits the search will be biased towards blue...
let's just skip the trouble of reconstructing closest color relations
by storing hashes in the octree - this way, I can ensure that the final
merged colors are present in the buckets that getColor then looks at
(while we're at it, also fix the color run merging code in quantize.)
|
| |
|
|
|
|
|
|
| |
* don't emit transparency request when we don't need it
* add lookup table for missing hash entries
* write(2)'ize
|
|
|
|
| |
& clean up outputSixelImage in general
|
| |
|
|
|
|
|
|
|
| |
in fact, we consider these to be the same image, and arguably that's
a bug in and of itself. but at least we don't crash anymore.
(also, update todo)
|
|
|
|
|
|
|
|
| |
just use an octree. works fine afaict, though obviously somewhat slower
than the static method (encoding is 2-pass now) & still has banding
issues with many colors (will need dithering)
also, fixed a bug that caused initial masks of bands to get misplaced
|
| |
|
|
|
|
|
|
|
|
| |
glibc likes to do weird things (such as calling stat) when you use
fread(3) and friends, so try to use functions that are more likely to
just do a single syscall.
Also, copy over some more paranoid read/write procedures to http.
|
|
|
|
| |
Somewhat rough, but better than nothing.
|
|
|
|
|
|
|
|
|
|
| |
* fix return type
* don't choke on empty bitmaps
* don't check for Cha-Image-Dimensions in encoder output (it was unused
anyways)
Mainly so that I can spec the encoder without Cha-Image-Dimensions as an
output header - it's pointless redundancy.
|
| |
|
|
|
|
|
|
|
|
| |
This caches sixel output. Works best when the line height is a multiple
of 6px, but should still be faster than the previous solution everywhere
else too (simply by virtue of encoding separate images in parallel).
Next step: actual color quantization
|
|
|
|
|
| |
avoid adding whitespace to the previous atom if it's not on the current
line
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If TERM is unrecognized by termcap, retry as dosansi.
When that fails, just fall back to the non-termcap code path.
(There is no reason to panic without termcap; it's just one of the
several capability detection mechanisms we use.)
|
|
|
|
|
|
|
|
| |
Setting the new hover value before unsetting the previous one would
unset the new hover value for nodes in the same branch.
In particular, this broke hover when moving the cursor from a pseudo
element (e.g. ::before) to its parent.
|
|
|
|
|
|
| |
* actually download & compile modules (but don't run them yet)
* fix a bug in XHR (on some older Nim versions, move() doesn't
actually move)
|
|
|
|
|
|
|
|
|
|
| |
* add responseText, response
* add net tests
-> currently sync XHR only; should find a way to do async
tests...
* update monoucha
-> simplified & updated some related code that no longer worked
properly
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix header case sensitivity issues
-> probably still wrong as it discards the original
casing. better than nothing, anyway
* fix fulfill on generic promises
* support standard open() async parameter weirdness
* refactor loader response body reading (so bodyRead is no longer
mandatory)
* actually read response body
still missing: response body getters
|
|
|
|
|
|
| |
* don't accept flags specified as named fields
* don't error out on named field specified as flag
* allow trailing whitespace on named fields & flags
|
|
|
|
|
|
| |
* parse last line even if it doesn't end with LF
* parse flags & named fields case-insensitively
* update naming
|
|
|
|
| |
Dispatch manually with fromJS instead.
|
|
|
|
| |
+ slightly optimize getContentType
|
|
|
|
| |
also, move the ln command to make all
|
|
|
|
| |
like sr.ht does
|
| |
|
|
|
|
| |
It did not actually break rewrite-url, but was still annoying.
|
|
|
|
| |
Nim 1.6 does not like it.
|
|
|
|
| |
called on armhf
|