| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Some terminal emulators (AKA vte) refuse to set ws_xpixel and ws_ypixel
in the TIOCGWINSZ ioctl, so we now query for CSI 14 t as well. (Also CSI
18 t for good measure, just in case we can't ioctl for some reason.)
Also added some fallback (optionally forced) config values for width,
height, ppc, and ppl. (This is especially useful in dump mode.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Handling text/plain as ANSI colored text was problematic for two
reasons:
* You couldn't actually look at the real source of HTML pages or text
files that used ANSI colors in the source. In general, I only want
ANSI colors when piping something into my pager, not when viewing any
random file.
* More importantly, it introduced a separate rendering mode for
plaintext documents, which resulted in the problem that only some
buffers had DOMs. This made it impossible to add functionality
that would operate on the buffer's DOM, to e.g. implement w3m's
MARK_URL. Also, it locked us into the horribly inefficient line-based
rendering model of entire documents.
Now we solve the problem in two separate parts:
* text/x-ansi is used automatically for documents received through
stdin. A text/x-ansi handler ansi2html converts ANSI formatting to
HTML. text/x-ansi is also used for .ans, .asc file extensions.
* text/plain is a separate input mode in buffer, which places all text
in a single <plaintext> tag. Crucially, this does not invoke the HTML
parser; that would eat NUL characters, which we should avoid.
One blind spot still remains: copiousoutput used to display ANSI colors,
and now it doesn't. To solve this, users can put the x-ansioutput
extension field to their mailcap entries, which behaves like
x-htmloutput except it first pipes the output into ansi2html.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The -cha-ansi color type now sets ANSI colors in CSS.
Also, color correction etc. has been improved a bit:
* don't completely reset output state in processFormat for new colors
* defaultColor is now separated from ANSI color type 0
* bright ANSI colors are no longer replaced with bold + dark variant
* replaced ANSI color map to match xterm defaults
|
| |
|
|
|
|
| |
instead of trying to evaluate exceptions...
|
|
|
|
|
|
| |
* cancel resources on cancel() call
* call _exit in signal handler (also in loader)
* misc cleanups
|
|
|
|
|
|
|
|
|
|
| |
Aside from being a wrapper of Request, it was just storing the -I
charset, except even that didn't actually work. Whoops.
This fixes -I effectively not doing anything; now it's a forced override
that even disables BOM sniffing. (If the user wants to decode a file
using a certain encoding, it seems wise to assume that they really
meant it.)
|
|
|
|
|
|
| |
The API is horrid :( but at least it copies less.
TODO: think of a better API.
|
|
|
|
| |
Return the empty string if it's unset.
|
| |
|
|
|
|
|
|
|
|
| |
* factor out pushBuffer to make loadFromCache async
* fix incorrect cache path
* replace rewind with loadFromCache (it does the same thing except
actually works)
* remove rewindImpl callback, rewind in buffer instead
|
| |
|
|
|
|
|
| |
* show submission URL on hover for all form-associated elements
* skip non-checked checkbox/radio inputs
|
|
|
|
| |
useful for filtering stuff through commands like rdrview
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At last all BufferSources are unified.
To achieve the same effect as the previous CLONE source type, we now
use the "fromcache" flag in Request. This *forces* the document to be
streamed from the disk; if the file no longer exists for some reason,
an error is returned (i.e. the document is not re-downloaded).
For a document to be cached, it has to be the main document of the
buffer (i.e. no additional resources requested with fetch()), and
also not an x-htmloutput HTML file (for those, the original source is
saved). The result is that toggleSource now always returns the actual
source for e.g. markdown files, not the HTML-transformed version.
Also, it is now possible to view the source of a document that is
still being downloaded.
buffer.sstream has almost been eliminated; it still exists, but only as
a pseudo-buffer to interface with EncoderStream and DecoderStream. It no
longer holds the entire source of a buffer at any point, and is cleared
as soon as the buffer is completely loaded.
|
|
|
|
|
| |
We no longer have to wait for the entire document to be loaded to start
loading CSS.
|
|
|
|
|
| |
* enumize insertAdjacentHTML position
* un-extern attrs
|
| |
|
| |
|
| |
|
|
|
|
|
| |
tagType is now a function call, but usually it's enough to just test for
the object type.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Yay!
Admittedly, it is not very useful in its current form, except maybe on
very slow networks.
The problem is that renderDocument is *slow*, so we only run it when
onload fails to consume all bytes from the network in a single pass.
Even then, we are guaranteed to get a FOUC, since CSS is only downloaded
in finishLoad(). Well, I think it's cool, anyway.
|
|
|
|
|
|
|
|
| |
* Update chame to the latest version
* Get rid of nodeType usage
* Add atoms
* Re-implement DOM attributes
* document.write
|
|
|
|
|
|
|
| |
* Unify form variable for all form-associated elements
* Fix broken form association logic in resetFormOwner
* Use form action for all form-associated submitters
* Remove unused getElementsByTag + de-extern some functions
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It's still not perfect, but at least now we do not apply non-standard
whitespace changes.
The stringifier is left as it is since it's more useful for debugging
this way.
|
|
|
|
| |
They only had type definitions, no need to put them in separate modules.
|
| |
|
| |
|
|
|
|
| |
much better
|
|
|
|
| |
whoops
|
|
|
|
| |
(still no module support in buffer...)
|
|
|
|
|
|
|
|
| |
One is a false-positive (in dom).
The other one in pager is something I hadn't noticed before, that's
nice. For now I want to avoid making a change that may break things, so
I just removed the dead code.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See e.g. the sr.ht issue tracker, now forever tainted by the tickets
I accidentally submitted :P Chawan will gladly autosubmit without the
user having written anything in the textbox just by writing some text
in the title.
The problem is that graphical web browsers typically have a "submit"
keybinding (enter), and a "next field" keybinding (tab). The implicit
submission mechanism was created with graphical browsers in mind;
like w3m, Chawan only has an "ok" keybinding, which may or may not
also mean "submit".
With this solution, only forms that could not otherwise be submitted
will autosubmit.
|
|
|
|
|
| |
Avoid computing e.g. charwidth data for http which does not need it
at all.
|
|
|
|
|
| |
Instead, make finalizers optionally pass their runtime for resource
deallocation.
|
| |
|
|
|
|
| |
(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.
|
| |
|
|
|
|
|
| |
Also, func-ize some similar identity functions, and add TODOs about
[Replaceable].
|
| |
|