about summary refs log tree commit diff stats
path: root/src/local
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-09-25 02:08:33 +0200
committerbptato <nincsnevem662@gmail.com>2023-09-25 02:08:33 +0200
commit463499131a1b4ca41fea56030f77f4794cdca071 (patch)
tree54f2efea637c9762711db4140ff42ae833a0900e /src/local
parent790e937795746563246808abaf4b0b25f4a5d0fe (diff)
downloadchawan-463499131a1b4ca41fea56030f77f4794cdca071.tar.gz
Add M-p as "load page on clipboard"
Diffstat (limited to 'src/local')
-rw-r--r--src/local/pager.nim11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim
index d4853d31..dce66505 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -854,9 +854,7 @@ type ExternDict = object of JSDict
   suspend: Opt[bool]
   wait: bool
 
-#TODO this could be handled much better.
-# * suspend, setenv, wait as dict flags
-# * retval as int?
+#TODO we should have versions with retval as int?
 proc extern(pager: Pager, cmd: string, t = ExternDict()): bool {.jsfunc.} =
   if t.setenv.get(true):
     pager.setEnvVars()
@@ -865,6 +863,13 @@ proc extern(pager: Pager, cmd: string, t = ExternDict()): bool {.jsfunc.} =
   else:
     return runProcess(cmd)
 
+proc externCapture(pager: Pager, cmd: string): Opt[string] {.jsfunc.} =
+  pager.setEnvVars()
+  var s: string
+  if not runProcessCapture(pager.term, cmd, s):
+    return err()
+  return ok(s)
+
 proc authorize(pager: Pager) =
   pager.setLineEdit("Username: ", USERNAME)