| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Now it is (technically) no longer mandatory to link to libcurl.
Also, Chawan is at last completely protocol and network backend
agnostic :)
* Implement multipart requests in local CGI
* Implement simultaneous download of CGI data
* Add REQUEST_HEADERS env var with all headers
* cssparser: add a missing check in consumeEscape
|
|
|
|
| |
Also, move default urimethodmap config to res.
|
| |
|
| |
|
|
|
|
| |
error codes are WIP, not final yet...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add MAPPED_URI_* as environment variables when a request is coming
from urimethodmap
It costs us compatibility with w3m, but it seems to be a massive
improvement over smuggling in the URL as a query string and then
writing an ad-hoc parser for every single urimethodmap script.
The variables are set for every urimethodmap request, to avoid
accidental leaking of global environment variables.
* Move about: to adapters (an obvious improvement over the previous
solution)
|
|
|
|
|
| |
* start from 1
* divide by total - 1, since we are counting the rounding error between each line
|
|
|
|
| |
Also case-sensitive, but for now that is the same as normal matching...
|
|
|
|
|
|
|
| |
Probably not fully correct, but it's a good start.
Includes proprietary extension -cha-half-width, which converts
full-width characters to half-width ones.
|
|
|
|
|
|
|
|
|
|
| |
Instead, position them at the end of their block's layout pass.
Without this, they could be positioned too early, as the grandparent's
position being resolved does not guarantee that the parent's position
has already been resolved as well.
(Unlike the comment suggests, flushMargins is not appropriate there.)
|
|
|
|
|
| |
* Actually calculate rounding error
* Skip a loop over lines by accumulating rounding error in finishLine
|
|
|
|
|
| |
No need to leave gemini support in the bonus folder.
Still TODO: proxy support.
|
|
|
|
|
|
| |
This is better than %u as it is backwards compatible (i.e. does not rely on
other user agents doing whatever upon encountering an unknown substitution
template.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now we use a (much simplified) gopher2html binary in libexec,
instead of converting gopher directories to HTML in loader/gopher.
This has two advantages:
* Less ugly conversion logic in the loader module; we can just
convert the file line by line. (The previous converter also had
some correctness issues, that is fixed now as well.)
* If the user desires, they can replace the gopher converter with
another binary using the mailcap mechanism.
The disadvantages are:
* For now, source display is broken. This is a problem with all
mailcap filters in general, and should be fixed in the future. (That
said, the previous version also only displayed the converted HTML
source, which was not really useful anyway.)
* The proper directory structure is required for this to work;
OTOH plenty of work has been done so that this is as frictionless as
possible, so it should not really be a problem.
|
|
|
|
|
|
| |
* Add a default urimethodmap that points finger: to cha-finger
* Install cha-finger to /usr/local/libexec/cha/cgi-bin by default
* cha-finger: use ALL_PROXY if given, die if curl is not installed
|
|
|
|
|
|
|
|
|
| |
* Paths are now parsed through an unified code path with some useful
additions like environment variable substitution.
* Fix a bug in parseConfigValue where strings would be appended to
existing arrays (and not override them).
* Fix beforeLast calling afterLast for some reason.
* Add a default CGI directory.
|
|
|
|
|
| |
Default is vi-style, but w3m-style marks work as well; see
bonus/w3m.toml.
|
| |
|
|
|
|
|
|
|
|
| |
{ & } acts like in vi (except the cursor is not moved to the line
beginning).
No reason to leave externInto undocumented, as it is even used in
the default config.
|
|
|
|
| |
It is enough to just take the len of children there.
|
| |
|
|
|
|
|
| |
Styled children must be added to their parents *before* they are
styled, because match expects this to hold.
|
| |
|
|
|
|
|
|
|
| |
* Fix a bug where rules would be sorted incorrectly if retrieved from
the cache.
* Use withValue where possible
* camelCase some variables, de-extern some functions, etc.
|
|
|
|
|
|
| |
* Break up applyRules into smaller functions
* Do not call calcRules for every child pseudo element separately;
just use parent's DeclarationListMap
|
| |
|
|
|
|
|
| |
Instead, make finalizers optionally pass their runtime for resource
deallocation.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Add select & copy selection functionality to container
* Fix bug in generateSwapOutput where output could be misplaced
because of zero-width cells
* Add fromJSPromise, call runJSJobs in every iteration of the
headed event loop
* "await" pager actions that output a promise
* Change default view source keybinding to `\'
|
|
|
|
|
| |
* bindings/quickjs: importc and use correct pointer types
* add constcharp module for when it is unavoidable
|
|
|
|
| |
now I know how to :P
|
| |
|
|
|
|
| |
just use an UncheckedArray in the binding
|
| |
|
|
|
|
| |
(and expose it as a JS function)
|
|
|
|
|
|
| |
* parentElement is now just a function.
* Remove TODO from node.document; it is useful and not going anywhere.
* Check for Nim type in Node.document, not nodeType
|
|
|
|
| |
It is only defined for Document, Element, DocumentFragment.
|
| |
|
|
|
|
|
|
|
| |
* Expose js_create_from_ctor from QuickJS and directly use that (instead
of badly recreating it)
* Do not call defineUnforgeable twice (it is inevitably called in toJSP0,
so jsctor does not need it)
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also, func-ize some similar identity functions, and add TODOs about
[Replaceable].
|
|
|
|
|
| |
As the comment says, buffer.document only exists if buffer.ishtml
is true.
|
| |
|
|
|
|
|
|
|
| |
* Add DOMContentLoaded
* Re-use the same event object for all elements
* Reshape if an event was fired
* Reshape on setTimeout/setInterval fired
|
|
|
|
|
|
|
|
|
|
|
| |
We now have real inline boxes.
* Fix nesting of inline boxes
* Represent inline boxes with a hierarchical RootInlineFragment ->
InlineFragment tree
* Get rid of inline padding hack
* Get rid of ComputedFormat
* Paint inline box backgrounds properly
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Without this, setting color-mode using -o required quoting
the values, and then shell-quoting the quotes themselves
(cha -o 'display-color-mode="24bit"').
Instead of more special casing in the TOML parser, we just add aliases
for these enum values that can be parsed using TOML bare string
rules. So now this works:
cha -o display.color-mode=true-color
|