diff options
author | bptato <nincsnevem662@gmail.com> | 2022-11-05 15:48:27 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-11-09 15:05:23 +0100 |
commit | c2df7d47b151be732542cc3ff37817762e87bcb8 (patch) | |
tree | 1a28d912a181fe9544e6d797573ea22052bc4172 | |
parent | f3f13da82686c73e5593e3ba3362b2470bd215bc (diff) | |
download | chawan-c2df7d47b151be732542cc3ff37817762e87bcb8.tar.gz |
Use separate FileLoader instance for each buffer
-rw-r--r-- | src/display/client.nim | 4 | ||||
-rw-r--r-- | src/display/pager.nim | 4 | ||||
-rw-r--r-- | src/io/buffer.nim | 7 |
3 files changed, 7 insertions, 8 deletions
diff --git a/src/display/client.nim b/src/display/client.nim index 9f43a623..ddbccc21 100644 --- a/src/display/client.nim +++ b/src/display/client.nim @@ -70,7 +70,7 @@ proc statusMode(client: Client) = print(EL()) proc readPipe(client: Client, ctype: string) = - let buffer = newBuffer(client.config, client.loader, client.console.tty) + let buffer = newBuffer(client.config, client.console.tty) buffer.contenttype = if ctype != "": ctype else: "text/plain" buffer.ispipe = true buffer.istream = newFileStream(stdin) @@ -128,7 +128,7 @@ proc command(client: Client, src: string) = client.command0(src) client.console.err.setPosition(previ) if client.console.lastbuf == nil: - let buffer = newBuffer(client.config, client.loader, client.console.tty) + let buffer = newBuffer(client.config, client.console.tty) buffer.istream = newStringStream(client.console.err.readAll()) #TODO buffer.contenttype = "text/plain" buffer.location = parseUrl("javascript:void(0);").get diff --git a/src/display/pager.nim b/src/display/pager.nim index fbd91483..61407e60 100644 --- a/src/display/pager.nim +++ b/src/display/pager.nim @@ -289,7 +289,7 @@ proc toggleSource*(pager: Pager) {.jsfunc.} = if pager.container.sourcepair != nil: pager.setContainer(pager.container.sourcepair) else: - let buffer = newBuffer(pager.config, pager.loader, pager.tty) + let buffer = newBuffer(pager.config, pager.tty) buffer.source = pager.container.buffer.source buffer.streamclosed = true buffer.location = pager.container.buffer.location @@ -316,7 +316,7 @@ proc gotoURL*(pager: Pager, request: Request, prevurl = none(URL), force = false # feedback on what is actually going to happen when typing a URL; TODO. let response = pager.loader.doRequest(request) if response.body != nil: - let buffer = newBuffer(pager.config, pager.loader, pager.tty) + let buffer = newBuffer(pager.config, pager.tty) buffer.contenttype = if ctype != "": ctype else: response.contenttype buffer.istream = response.body buffer.location = request.url diff --git a/src/io/buffer.nim b/src/io/buffer.nim index 8bfd6d16..f4cce8c4 100644 --- a/src/io/buffer.nim +++ b/src/io/buffer.nim @@ -72,14 +72,13 @@ type config*: Config tty: File -proc newBuffer*(config: Config, loader: FileLoader, tty: File): Buffer = +proc newBuffer*(config: Config, tty: File): Buffer = new(result) result.attrs = getTermAttributes(stdout) result.width = result.attrs.width result.height = result.attrs.height - 1 result.config = config - result.loader = loader - result.tty = tty + result.loader = newFileLoader() result.display = newFixedGrid(result.width, result.height) result.prevdisplay = newFixedGrid(result.width, result.height) @@ -1216,7 +1215,7 @@ proc setupBuffer*(buffer: Buffer) = buffer.redraw = true proc dupeBuffer*(buffer: Buffer, location = none(URL)): Buffer = - let clone = newBuffer(buffer.config, buffer.loader, buffer.tty) + let clone = newBuffer(buffer.config, buffer.tty) clone.contenttype = buffer.contenttype clone.ispipe = buffer.ispipe if location.isSome: |