| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is broken in w3m too, so we take nvi behavior instead. Also, we now
consistently complain when the user tries to search for an empty string
instead of just occasionally spitting out "invalid regex" alerts.
(In w3m, /search^M/^M just jumps to the first search result with
ISEARCH. In nvi, it jumps to the second one with both searchincr on
and off.
w3m only produces the latter behavior with regular search, which is I
assume why I made it work this way, but it's still inconsistent for no
good reason.)
|
|
|
|
|
|
|
|
|
| |
For some reason, halfPageDown decremented height instead of incrementing
it, which caused some rather weird behavior where halfPageUp +
halfPageDown would put the cursor in a different position than it was
before.
Also, we must increment *before* dividing to mimic vi behavior properly.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It seems I never properly converted the table cell (pre-)sizing code
to use SizeConstraints, so it was still in a half-working state where
it broke down e.g. on nested tables.
* move auto check to canpx
* simplify convoluted and broken table cell size calculation into
something that actually works
|
|
|
|
|
|
|
| |
* URI-decode path name for local files in default config
* (ab)use mailcap command quoting for passing params to editor command
instead of replicating it badly in formatEditorName
* rename mailcap enums
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here we are restricting the float to the same width constraint as its
parent, so we must add offset.x both when the float is larger than this
constraint *and* when the float fits into the constraint.
An example of what this fixes:
<div style="padding-left: 10em; background: green">
<div style="float: right; background: red">
wat
^ previously the float was positioned as if the padding had been on the
*right*, because it did not take into account offset.x.
|
|
|
|
|
|
|
| |
We must HTML escape data, or the fragment parser will parse plain text
as markup. (However, just running htmlEscape() on data is not enough;
that would also mark <, ', etc. as >, &apos. So we only escape after
the regex is executed.)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Use content type attributes so e.g. git.cgi can set the title even with
a text/x-ansi content type.
(This commit also fixes some bugs in content type attribute handling.)
|
|
|
|
| |
it's an unnecessary abstraction here
|
|
|
|
| |
Array.prototype.at is not present in previous QJS releases.
|
|
|
|
| |
causes problems with header parsing
|
|
|
|
|
| |
seems like a good idea, especially because CGI uses stdout as the IPC
mechanism
|
|
|
|
|
|
|
|
|
|
|
| |
The empty string comparison here was in fact pointless; in cw-out.c,
libcurl only calls cwb (which is curlWriteHeader in this case) if blen
is not 0, so the string will never be empty. (Instead, it is expected
to be \r\n; I've added \n too since CGI can already parse headers like
that.)
Normally it still worked because we just passed through the line to
cgi.nim. However, it choked horribly on HTTP/2 early hints.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's the sandboxing system of FreeBSD. Quite pleasant to work with.
(Just trying to figure out the basics with this one before tackling the
abomination that is seccomp.)
Indeed, the only non-trivial part was getting newSelector to work with
Capsicum. Long story short it doesn't, so we use an ugly pointer cast +
assignment. But even that is stdlib's "fault", not Capsicum's.
This also gets rid of that ugly SocketPath global.
|
|
|
|
|
| |
some terminals (alacritty) don't support XTGETTCAP and don't even
respond with ANSI color support to DA1, so just fall back to termcap.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* fix mismatch between return value & read value that would either crash
or freeze the browser depending on its mood
* add an assertion to detect the above footgun
* fix some resource leaks
* fix iteration over a table that called a function which altered the
table in buffer's cancel()
* if user cancels before anything is loaded, destroy the container too
|
|
|
|
|
|
|
| |
aaaaa
(this was even worse than the previous one, of course caused by the
fix...)
|
|
|
|
| |
as described in <https://todo.sr.ht/~bptato/chawan/6>
|
| |
|
|
|
|
| |
it would get into an infinite loop with line-height: 0 and floats
|
|
|
|
|
| |
it's pointless to do otherwise, and results in inconsistencies between
line positioning and background coloring.
|
|
|
|
|
|
| |
This is still a more conservative approach than completely disabling
line-height. It seems to work better than preserving rounded line-height
in all cases, anyway.
|
|
|
|
|
|
|
| |
Instead of adding a new area for every single line, extend already
existing areas when possible.
(This was my original plan but I got lazy.)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifying the background area as three LayoutUnit pairs sounds clever,
but breaks down for text-align: center.
* store line Y offset in LineBox - this is necessary to pass down areas
we need to paint
* refactor addHorizontalLine loop; remove mystery "If necessary, update ictx's
width" line that used to be labeled "TODO this seems meaningless" and indeed
seems meaningless now (I am prepared to deeply regret this later)
* replace broken & convoluted startOffset/endOffset/size with a simple
seq of offsets + sizes
|
|
|
|
| |
copy-paste error
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
until now, this had very strange (and inconsistent) semantics:
* err() was used for exception propagation, but also as a null value
* Option accepted undefined as a none value, but not null
* Opt and Option were used interchangeably (and mostly randomly)
Now, Result is always used for error reporting, and err(nil) means
JS_EXCEPTION. (Opt is a special case of Result where we don't care about
the error type, and is not used in JS.)
Option on the other hand means "nullable variation of normally
non-nullable type", and translates to JS_NULL. In JS we mainly use
it for turning strings nullable.
|
| |
|
| |
|
| |
|
|
|
|
| |
just a clickable UI for switching branches
|
|
|
|
| |
this was causing problems in git.cgi
|
|
|
|
|
| |
it doesn't change anything in the dom, but this way it's easier to
compose with other commands
|
|
|
|
|
|
|
|
| |
This way they are no longer compatible, but we no longer need them to
be compatible anyway.
(This also forces us to throw out the old serialize module, and use
packet writers everywhere.)
|
|
|
|
|
| |
hack so it's possible to view JS code in a buffer even if it's set as
e.g. application/javascript in user mime.types
|
| |
|
|
|
|
|
|
|
| |
* fall back to text for unimplemented input types
* add custom prompt to all text-like input types
* show min/max for range
* fix accidental override of repaint
|
|
|
|
| |
analogous to bufwriter
|
|
|
|
|
|
|
| |
So long as we have to live with siteconf, let's at least make it useful.
Also, rewrite the header overriding logic because while it did work,
it only did so accidentally.
|
| |
|
| |
|