diff options
author | bptato <nincsnevem662@gmail.com> | 2025-02-25 18:53:05 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-02-25 18:53:05 +0100 |
commit | c0da601b151946aa713c50459b88714588298eef (patch) | |
tree | 6e8921a9d5669e3d9fbeb7b66d7a4e8cac7ab62b /src/local | |
parent | 8a94274fd3b47c87536386159309d2dd777cda70 (diff) | |
download | chawan-c0da601b151946aa713c50459b88714588298eef.tar.gz |
tempfile: merge into pager/loader
and throw out the conflict resolution logic; it doesn't matter much if we override an old cache file, as it should have been cleaned up anyway. I've also replaced dirExists + createDir with a single mkdir at call sites. If it fails, so be it.
Diffstat (limited to 'src/local')
-rw-r--r-- | src/local/pager.nim | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim index 113948ee..457cde8d 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -23,7 +23,6 @@ import io/console import io/dynstream import io/poll import io/promise -import io/tempfile import io/timeout import local/container import local/lineedit @@ -170,6 +169,7 @@ type status: Surface term*: Terminal timeouts*: TimeoutState + tmpfSeq: uint unreg*: seq[Container] ContainerData* = ref object of MapData @@ -1008,7 +1008,12 @@ proc redraw(pager: Pager) {.jsfunc.} = pager.container.select.redraw = true proc getTempFile(pager: Pager; ext = ""): string = - return getTempFile(pager.config.external.tmpdir, ext) + result = pager.config.external.tmpdir / "chaptmp" & + $pager.loader.clientPid & "-" & $pager.tmpfSeq + if ext != "": + result &= "." + result &= ext + inc pager.tmpfSeq proc loadCachedImage(pager: Pager; container: Container; image: PosBitmap; offx, erry, dispw: int) = @@ -1730,6 +1735,7 @@ proc openInEditor(pager: Pager; input: var string): bool = try: let tmpf = pager.getTempFile() if input != "": + discard mkdir(cstring(pager.config.external.tmpdir), 0o700) writeFile(tmpf, input) let cmd = pager.getEditorCommand(tmpf) if cmd == "": @@ -2462,6 +2468,7 @@ proc runMailcapReadFile(pager: Pager; stream: PosixStream; # If needsterminal, leave stderr and stdout open and wait for the process. proc runMailcapWriteFile(pager: Pager; stream: PosixStream; needsterminal: bool; cmd, outpath: string) = + discard mkdir(cstring(pager.config.external.tmpdir), 0o700) if needsterminal: pager.term.quit() let os = newPosixStream(dup(pager.term.ostream.fd)) |