about summary refs log tree commit diff stats
path: root/src/display
Commit message (Collapse)AuthorAgeFilesLines
* term: replace control chars in setTitlebptato2023-10-201-1/+5
|
* WindowAttributes: refactorbptato2023-10-194-56/+64
| | | | | | * rename module (window -> winattrs, to avoid conflict with env/window) * do not use result * remove unused cell_ratio
* pager/lineedit: notify lineedit of windowChangebptato2023-10-181-0/+4
| | | | this was causing crashes
* term: un-export canvasbptato2023-10-011-1/+1
|
* lineedit: fix backspace bugbptato2023-09-301-1/+1
| | | | | We must decrease cursori by `len`, because exactly `len` bytes have been deleted from before the cursor.
* lineedit: add missing begin() calls in prevHist/nextHistbptato2023-09-201-0/+5
|
* lineedit: fix off by one error in killbptato2023-09-201-2/+2
|
* term: simplify/cleanupbptato2023-09-181-77/+17
|
* lineedit: fix a display bugbptato2023-09-181-1/+2
| | | | | The editor box never uses the last cell. However, it should still overwrite it.
* lineedit: rewritebptato2023-09-181-250/+200
| | | | | | | | | | | | | | | | 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).
* move around more modulesbptato2023-09-143-3/+426
| | | | | | | | | | * 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-142-1832/+0
| | | | makes a bit more sense than the previous arrangement
* Switch buffer -> client connection to client -> bufferbptato2023-09-141-30/+11
| | | | | | | | | | | | 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.
* Do not use mailcap for text/plainbptato2023-09-131-0/+5
|
* fix compilation on 1.6.14bptato2023-09-091-3/+3
| | | | changing addr semantics strikes again
* fetch: use JSDictbptato2023-09-091-2/+2
|
* javascript: add JSDict typebptato2023-09-091-13/+11
| | | | And use that in extern().
* add extern, refactor some term functionsbptato2023-09-093-53/+86
| | | | | | | | | | | * Add an extern() call. Maybe it should be defined on client. It certainly should accept a dictionary instead of the enum type we use now. Perhaps it should return the error code? I'll leave it undocumented until I figure this out. * Refactor enableRawMode, unblockStdin, etc. so that they operate on the term object instead of global state. * Move editor to a separate folder, and factor out runprocess into a different module.
* Add vi-style numeric prefixes, make gotoLine 1-basedbptato2023-09-081-8/+43
| | | | | | | | * it is now possible to jump to the nth line by typing {n}G * gotoLine is now 1-based, so to go to the first line you would use pager.gotoLine(1) * it is now allowed to return a function from a keybinding (which will be subsequently executed as a regular keybinding)
* fetch: allow string input, allow init dictionarybptato2023-09-081-2/+5
|
* Add btoa, atobbptato2023-09-071-0/+7
|
* javascript: factor out fromJSbptato2023-08-291-2/+3
|
* javascript: refactorbptato2023-08-282-1/+2
| | | | | | | Split out parts of the JS module, because it was starting to confuse the compiler a little. (Peakmem is back at 750M. Interesting.)
* Allow overriding default headersbptato2023-08-262-2/+2
|
* client: make `client.client' a getterbptato2023-08-201-1/+3
| | | | This way we do not need the ugly getProperty call.
* Move charsets into chakasubptato2023-08-143-4/+7
| | | | Operation "modularize Chawan somewhat" part 1
* Add mailcap, mime.types & misc refactoringsbptato2023-08-132-67/+334
| | | | | | | | * add mailcap: works with copiousoutput, needsterminal, etc. * add mime.types (only works with mailcap) * refactor pipeBuffer * remove "dispatcher" * fix bug in directory display where baseurl would not be used
* Fix double line bug in dump modebptato2023-07-291-1/+2
|
* Add default background/foreground color overridebptato2023-07-291-38/+39
|
* Add suspend() function (bound to C-z)bptato2023-07-261-0/+5
|
* Improve encoding supportbptato2023-07-122-31/+60
| | | | | | | | * Use the output charset in lineedit (as w3m does) * encoder: fix broken UTF-8 encoding, use openArray instead of var seq for input queue * Add RuneStream as an in-memory interface to EncoderStream * Document display-charset config option
* Buffer search fixes & improvementsbptato2023-07-111-27/+39
| | | | | * Fix race condition in updateReadLineISearch * Disable reshape during isearch
* term: fix cursorGoto without termcapbptato2023-07-101-1/+1
|
* htmlparser: decouple from DOMbptato2023-07-091-1/+1
| | | | | Instead of directly appending nodes to the DOM, use a DOMBuilder interface.
* term: fix ANSI color approximationbptato2023-07-061-7/+8
| | | | Fixes a bug that lead to incorrect color approximation.
* Add popup menu for select elementbptato2023-07-051-54/+12
| | | | | | | Replaces the weird CSS implementation we have had until now with a searchable popup menu similar to that of w3m. (The previous implementation broke on websites that do not expect <select> to expand on click, had no separate search, and was ugly.)
* Add proxy supportbptato2023-07-042-19/+28
|
* pager: do not store jsctxbptato2023-07-041-12/+12
|
* Do not conditionally disable CastSizesbptato2023-07-031-6/+1
| | | | ...because that doesn't work at all.
* Fix JS type conversion regressionsbptato2023-07-031-3/+6
|
* Fix CastSize warningsbptato2023-07-031-1/+3
| | | | Introduced by 1.6.14. Warns of undefined behavior.
* Add XHR/Event stubsbptato2023-07-021-3/+7
|
* Factor out headers into separate modulebptato2023-07-012-0/+3
|
* use =destroy instead of finalizersbptato2023-07-012-1/+6
| | | | | This should help with moving to ORC in the future. (Also, finalizers do not work very well in the first place.)
* Add window.locationbptato2023-06-291-1/+1
| | | | Note: setters do not work yet.
* Do not block indefinitely if buffer crashes before acceptbptato2023-06-291-34/+46
| | | | Kind of a hack, but better than nothing.
* Do not free jsrt in quit()bptato2023-06-291-2/+2
| | | | | | Free'ing jsrt triggers a QuickJS assertion, presumably because of references still existing to the global object. Needs a proper fix later, for now it's just annoying.
* Free JSRuntime, JSContext and ctors on exitbptato2023-06-271-1/+8
|
* term: convert 8-bit colors to ANSIbptato2023-06-271-0/+6
| | | | (Instead of crashing)
* Support 8-bit output colorsbptato2023-06-261-20/+48
|