From 63e7895905a1cc31c5b6881b4738cd04217adbc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= <p@janouch.name>
Date: Thu, 8 Oct 2020 19:43:19 +0200
Subject: Let the caller decide how to launch helpers

In the end, we don't need to impose any policy on it,
and it removes a level of quoting, as well as an `eval`.
---
 README.adoc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'README.adoc')

diff --git a/README.adoc b/README.adoc
index 103078c..de865de 100644
--- a/README.adoc
+++ b/README.adoc
@@ -64,7 +64,7 @@ sdn-navigate () {
     # helpers after the terminal has been resized while running sdn
     command true
 
-    eval "exec </dev/tty; $helper" || break
+    /bin/sh -c "$helper" </dev/tty || break
   done
   # ... possibly zle-line-init
   zle reset-prompt
@@ -86,7 +86,7 @@ function sdn-navigate
     test -z "$cd" || cd "$cd"
     test -z "$insert" || commandline --insert "$insert "
     test -z "$helper" && break
-    eval $helper || break
+    /bin/sh -c "$helper" || break
   end
   commandline --function repaint
 end
@@ -111,7 +111,7 @@ sdn-navigate () {
       ((SDN_P=SDN_P+${#insert}+1))
     }
     [[ -z "$helper" ]] && break
-    eval "$helper" || break
+    /bin/sh -c "$helper" || break
   done
 }
 sdn-restore () {
@@ -132,7 +132,7 @@ To start using this navigator, put the following in your 'rc.elv':
 use str
 edit:insert:binding[Alt-o] = {
   local:reesc = [posix]{ str:replace "'\\''"  "''" $posix }
-  local:posix = [cmd]{ eval ($reesc $cmd)" </dev/tty >/dev/tty 2>&1" }
+  local:posix = [cmd]{ /bin/sh -c $cmd </dev/tty >/dev/tty 2>&1 }
 
   # XXX: the -dot is not a stable API, and may hence break soon
   local:buffer = $edit:current-command
-- 
cgit v1.2.3

