| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 API is horrid :( but at least it copies less.
TODO: think of a better API.
|
| |
|
|
|
|
|
|
|
|
| |
* disallow Stream interface usage on non-blocking PosixStreams
* do not read estream of forkserver byte-by-byte (it's slow)
* do not call writeData with a zero len in formdata
* do not quote numbers in mailcap quoteFile
* remove some unused stuff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Instead, use a stream: scheme and associate hostnames with file
descriptors directly from the pager.
|
|
|
|
|
| |
Move forkBuffer into forkserver (why was it in container anyway), remove
unused mainproc variable, etc.
|
|
|
|
|
| |
* pass 0 so e.g. git does not hang
* use sigtstp so e.g. cgi scripts can clean up if needed
|
|
|
|
| |
It is mostly unnecessary, and conflicts with our use of termcap anyway.
|
|
|
|
| |
They only had type definitions, no need to put them in separate modules.
|
| |
|
| |
|
|
|
|
| |
much better
|
|
|
|
|
| |
It may fail if the buffer process could not successfully create a server
socket.
|
| |
|
|
|
|
|
| |
Default is vi-style, but w3m-style marks work as well; see
bonus/w3m.toml.
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
pager.tty refers to infile, not outfile. rename to avoid further
confusion
|
| |
|
|
|
|
|
| |
We now expose some functions from QuickJS to interact with JavaScript
strings without re-encoding them into UTF-8.
|
| |
|
|
|
|
|
|
| |
* rename module (window -> winattrs, to avoid conflict with env/window)
* do not use result
* remove unused cell_ratio
|
|
|
|
|
| |
* merge dom.console & client.Console
* move client-specific stuff out of Console (into callbacks when necessary)
|
| |
|
|
|
|
| |
yay
|
|
|
|
| |
pretty useful I think
|
| |
|
|
|
|
|
| |
* remove unused attributes
* make line a function
|
|
|
|
|
| |
We don't use the generic feature of selectors, so just unify the
client & buffer timeout types.
|
| |
|
|
|
|
|
| |
Remove side effects from assert statements.
The flag is not used currently, but let's not depend on that.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* ips -> io/
* loader related stuff -> loader/
* tempfile -> extern/
* buffer, forkserver -> server/
* lineedit, window -> display/
* cell -> types/
* opt -> types/
|
|
makes a bit more sense than the previous arrangement
|