about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/local/pager.nim33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim
index 411ef1b1..5a3f84eb 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -8,6 +8,7 @@ import std/selectors
 import std/tables
 import std/unicode
 
+import chagashi/charset
 import config/chapath
 import config/config
 import config/mailcap
@@ -50,8 +51,6 @@ import utils/regexutils
 import utils/strwidth
 import utils/twtstr
 
-import chagashi/charset
-
 type
   LineMode* = enum
     lmLocation = "URL: "
@@ -688,19 +687,23 @@ func findProcMapItem*(pager: Pager; pid: int): int =
   -1
 
 proc dupeBuffer(pager: Pager; container: Container; url: URL) =
-  container.clone(url, pager.loader).then(proc(container: Container) =
-    if container == nil:
-      pager.alert("Failed to duplicate buffer.")
-    else:
-      pager.addContainer(container)
-      pager.procmap.add(ProcMapItem(
-        container: container,
-        fdin: -1,
-        fdout: -1,
-        istreamOutputId: -1,
-        ostreamOutputId: -1
-      ))
-  )
+  let p = container.clone(url, pager.loader)
+  if p == nil:
+    pager.alert("Failed to duplicate buffer.")
+  else:
+    p.then(proc(container: Container) =
+      if container == nil:
+        pager.alert("Failed to duplicate buffer.")
+      else:
+        pager.addContainer(container)
+        pager.procmap.add(ProcMapItem(
+          container: container,
+          fdin: -1,
+          fdout: -1,
+          istreamOutputId: -1,
+          ostreamOutputId: -1
+        ))
+    )
 
 proc dupeBuffer(pager: Pager) {.jsfunc.} =
   pager.dupeBuffer(pager.container, pager.container.url)