about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* fix devnull dup in place of stdinbptato2023-09-231-4/+7
| | | | The previous solution was ok, but it could leak an fd...
* buffer: make readFromFd work with pipesbptato2023-09-232-5/+25
|
* buffer: make clone fork()bptato2023-09-237-47/+375
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes e.g. on-page anchor navigation near-instantaneous. Well, as instantaneous as a fork can be. In any case, it's a lot faster than loading the entire page anew. This involves duplicating open resources (file descriptors, etc.), which is not exactly trivial. For now we have a huge clone() procedure that does an ok-ish job at it, but there remains a lot of room for improvement. e.g. cloning is still broken in some cases: * As noted in the comments, TeeStream'ing the input stream for any buffer is a horrible idea, as readout in the cloned buffer now depends on the original buffer also reading from the stream. (So e.g. if you clone, then kill the old buffer without waiting for the new one to load, the new buffer gets stuck.) * Timeouts/intervals are broken in cloned buffers. The timeout module probably needs a redesign to fix this. * If you clone before connect2, the cloned buffer gets stuck. The previous solution was even worse (i.e. broken in more cases), so this is still an improvement. For example, this fixes some issues with mailcap handling (removes the "set the Content-Type of htmloutput buffers to text/html" hack), does not reload all resources, does not completely break if the buffer is cloned during loading, etc.
* fix size for some input typesbptato2023-09-221-1/+1
| | | | | | padToWidth should be called for all input types in InputWithSize. Also, they should be underlined by ua.css.
* Disable "toggle source" for the console bufferbptato2023-09-213-8/+17
|
* lineedit: add missing begin() calls in prevHist/nextHistbptato2023-09-201-0/+5
|
* lineedit: fix off by one error in killbptato2023-09-201-2/+2
|
* config: add missing \nbptato2023-09-201-1/+1
|
* Accept bare strings in -o, fix -o with missing newlinebptato2023-09-203-15/+81
| | | | | | | | * Bare strings are now allowed when specifying config options through -o. * Fix a bug where options specified with -o would be disregarded unless a newline was included. * (Also, add a TOML stringifier routine for debugging.)
* layout: fix table cell sizing with specified widthsbptato2023-09-202-19/+59
| | | | | | | | | | | | | | | | | | | Say we have a table <TABLE> <TR> <TD WIDTH=20>a</TD> </TR> <TR> <TD>aklsdfjaskdfjkl</TD> </TR> </TABLE> This should be 20 pixels wide, not as wide as the second row. Also, larger specified widths now always override previous widths specified on the column. (I think this was a regression, but the previous solution to this problem was an ugly hack.)
* px: convert to float first for percentage valuesbptato2023-09-201-1/+1
| | | | | | | | | px now converts to float64 before converting back to a layout unit when calculating percentage values. This should reduce overflow crashes somewhat. (The real solution would be to not crash on overflow, but that's a little more difficult problem to solve.)
* buffer: support <a name=... for anchor navigationbptato2023-09-202-3/+12
|
* remove unnecessary toTable callsbptato2023-09-204-19/+11
| | | | | | | We did this to please the compiler at one point, but it seems to be fine to remove now. (Also, use withValue when possible.)
* fix compilation on 1.6.14bptato2023-09-204-6/+6
|
* loader: add gopher supportbptato2023-09-204-2/+272
| | | | works
* ftp: add missing prepareMutationbptato2023-09-201-0/+2
|
* ftp, file: better dirlist, fix FTP path issuebptato2023-09-194-36/+131
| | | | | | | | | * Dirlist is now unified across ftp and file loaders. It's basically a copycat of w3m's FTP dirlist, because I like how it looks. * We now hack around the cURL FTP path problem by always prepending a slash to the path. This is probably closer aligned with expectations than the default behavior.
* ftp: encode paths, escape displayed stringsbptato2023-09-192-8/+28
| | | | avoid e.g. # being interpreted as a fragment
* update chamebptato2023-09-197-4/+51
| | | | and with that, resolve the unknown input type issue
* dom: fix regressionbptato2023-09-191-1/+1
|
* dom: add document.all, misc fixesbptato2023-09-195-21/+76
| | | | | | | | * Fix an issue with Collection cache invalidation (we must invalidate collections of the parent node on insertion, so that it triggers a refresh). * Remove circular reference of document.document, now we use a function instead.
* ftp: add auth inputbptato2023-09-191-14/+32
|
* dom: exclude password from exception logbptato2023-09-191-1/+3
|
* loader: add FTP supportbptato2023-09-197-38/+227
| | | | | | | | | | | | works, sort of still needs some work: * better dirlist, ideally make it look like file dirlist (or make file look like ftp dirlist. well, anyway, they should look the same) * absolute paths? (for now you have to append an extra slash to the path beginning) * ssh keys for sftp? (actually I haven't even tested sftp yet...)
* term: simplify/cleanupbptato2023-09-182-77/+26
|
* lineedit: fix a display bugbptato2023-09-181-1/+2
| | | | | The editor box never uses the last cell. However, it should still overwrite it.
* twtstr: remove unused functionsbptato2023-09-181-22/+0
| | | | lineedit no longer needs these
* lineedit: rewritebptato2023-09-183-263/+229
| | | | | | | | | | | | | | | | The old lineedit system worked quite well in the original synchronous model. However, because it needs access to the terminal, it has been subtly broken ever since buffer updates are allowed while the user is in line edit mode. This is best observed in incremental search, where searching for a bgcolor'ed text would result in the bgcolor bleeding into the line editor box. The new version is much simpler, and therefore less optimized. But it can still take advantage of output optimization in the terminal controller, and it is free of races (because we simply query the current state from the pager and feed it into the main output grid).
* response: add blob() functionbptato2023-09-174-9/+30
|
* javascript: static methods, URL.canParsebptato2023-09-172-28/+58
|
* mailcap: fix regressionbptato2023-09-161-1/+1
| | | | not that this code path is ever executed
* mailcap: unquoteCommand improvements/fixesbptato2023-09-161-34/+57
| | | | | | | | * quote substituted URLs, mime types and named attributes too * change quote state: now we use a stack of quote states, new states are pushed/popped when a process substitution is encountered * fix named attribute state (it was incomplete) * remove superfluous tolower statements
* main: set tmpdir for main processbptato2023-09-161-0/+2
|
* mailcap: allow whitespace after subtypebptato2023-09-161-1/+1
|
* data urls: percent decodebptato2023-09-152-7/+7
|
* Fix compilation with --assertions:offbptato2023-09-155-7/+14
| | | | | Remove side effects from assert statements. The flag is not used currently, but let's not depend on that.
* bindings: fix JSInterruptHandler signaturebptato2023-09-152-2/+2
|
* dom: fix incorrect iteration in descendantsbptato2023-09-141-2/+3
|
* buffer: directly pass EncoderStream to parseStylesheetbptato2023-09-141-3/+2
| | | | No need for that extra copy into a StringStream.
* Update submodulesbptato2023-09-144-5/+16
|
* remove radixtreebptato2023-09-141-195/+0
| | | | only used in chame
* move around more modulesbptato2023-09-1454-121/+121
| | | | | | | | | | * ips -> io/ * loader related stuff -> loader/ * tempfile -> extern/ * buffer, forkserver -> server/ * lineedit, window -> display/ * cell -> types/ * opt -> types/
* move some modules to local/bptato2023-09-145-6/+6
| | | | makes a bit more sense than the previous arrangement
* Switch buffer -> client connection to client -> bufferbptato2023-09-143-37/+29
| | | | | | | | | | | | We now connect to buffers from the client, instead of connecting buffers to the client. This has the following advantages: * Simplifies the client event loop. * Makes the client a real client (no more serversocket dependency). * Slightly more secure, as we no longer have to trust buffers not lying about their process ids. * Facilitates the potential future addition of connections from several clients to a single buffer.
* fix ansi color parsing of multiple valuesbptato2023-09-131-1/+0
| | | | | Increasing the index breaks parsing, because that is already done in getParam().
* twtstr: simplifybptato2023-09-132-13/+8
| | | | | | * remove unused function isAlphaAscii * swap pushHex for less casting * remove == overload for char/rune (we did not really use it anyway)
* toml: fix underscore number separatorbptato2023-09-131-1/+1
| | | | | | Underscores should not be added to repr. Also, was_num should only start as true if the first character is a number, and must be true after the while loop.
* Do not use mailcap for text/plainbptato2023-09-131-0/+5
|
* fix compile errorbptato2023-09-131-1/+1
| | | | aaaaaa
* toml: simplifybptato2023-09-131-4/+2
| | | | I meant to put this in the previous commit