From 83b898372834c0137dd0e362f070281c446983f4 Mon Sep 17 00:00:00 2001 From: Joel Kappes Date: Tue, 26 Sep 2023 13:19:33 +0200 Subject: [PATCH 1/4] fix nu quitcd: switched quotes --- misc/quitcd/quitcd.nu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/quitcd/quitcd.nu b/misc/quitcd/quitcd.nu index f89acb728..abd7f2516 100644 --- a/misc/quitcd/quitcd.nu +++ b/misc/quitcd/quitcd.nu @@ -7,7 +7,7 @@ def-env n [...x] { ^nnn ($x | str join) let newpath = ( if ($env.NNN_TMPFILE | path exists) { - let newpath = (open $env.NNN_TMPFILE | parse 'cd "{nnnpath}"').0.nnnpath + let newpath = (open $env.NNN_TMPFILE | parse "cd '{nnnpath}'").0.nnnpath ^rm -f $env.NNN_TMPFILE echo $newpath } else { From 1b9a27a1f780c650cc237f0ac2a038f553b702ba Mon Sep 17 00:00:00 2001 From: Joel Kappes Date: Thu, 28 Sep 2023 08:55:46 +0200 Subject: [PATCH 2/4] added FIXME for quitcd.nu not handling single-quotes For a directory called foo'bar the NNN_TMPFILE will contain cd 'foo'\''bar' --- misc/quitcd/quitcd.nu | 1 + 1 file changed, 1 insertion(+) diff --git a/misc/quitcd/quitcd.nu b/misc/quitcd/quitcd.nu index abd7f2516..b04b09ecf 100644 --- a/misc/quitcd/quitcd.nu +++ b/misc/quitcd/quitcd.nu @@ -7,6 +7,7 @@ def-env n [...x] { ^nnn ($x | str join) let newpath = ( if ($env.NNN_TMPFILE | path exists) { + # FIXME: fails if path contains single-quote let newpath = (open $env.NNN_TMPFILE | parse "cd '{nnnpath}'").0.nnnpath ^rm -f $env.NNN_TMPFILE echo $newpath From c05bced9510fd0216100f11443732b77a1938fff Mon Sep 17 00:00:00 2001 From: Joel Kappes Date: Thu, 28 Sep 2023 09:42:23 +0200 Subject: [PATCH 3/4] quitcd.nu: parse ldir by piping through bash Handles all dir names, even including single-quotes --- misc/quitcd/quitcd.nu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/quitcd/quitcd.nu b/misc/quitcd/quitcd.nu index b04b09ecf..77bc1fb75 100644 --- a/misc/quitcd/quitcd.nu +++ b/misc/quitcd/quitcd.nu @@ -7,8 +7,8 @@ def-env n [...x] { ^nnn ($x | str join) let newpath = ( if ($env.NNN_TMPFILE | path exists) { - # FIXME: fails if path contains single-quote - let newpath = (open $env.NNN_TMPFILE | parse "cd '{nnnpath}'").0.nnnpath + let rawpath = (open $env.NNN_TMPFILE | parse --regex 'cd (?P.+)').0.dir + let newpath = ($rawpath | $"echo ($in)" | /bin/bash -s) ^rm -f $env.NNN_TMPFILE echo $newpath } else { From 5278e0afaa60524d537c14506faf672225e1215a Mon Sep 17 00:00:00 2001 From: NRK Date: Sat, 30 Sep 2023 22:18:15 +0600 Subject: [PATCH 4/4] Revert "quitcd.nu: parse ldir by piping through bash" This reverts commit c05bced9510fd0216100f11443732b77a1938fff. --- misc/quitcd/quitcd.nu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/quitcd/quitcd.nu b/misc/quitcd/quitcd.nu index 77bc1fb75..b04b09ecf 100644 --- a/misc/quitcd/quitcd.nu +++ b/misc/quitcd/quitcd.nu @@ -7,8 +7,8 @@ def-env n [...x] { ^nnn ($x | str join) let newpath = ( if ($env.NNN_TMPFILE | path exists) { - let rawpath = (open $env.NNN_TMPFILE | parse --regex 'cd (?P.+)').0.dir - let newpath = ($rawpath | $"echo ($in)" | /bin/bash -s) + # FIXME: fails if path contains single-quote + let newpath = (open $env.NNN_TMPFILE | parse "cd '{nnnpath}'").0.nnnpath ^rm -f $env.NNN_TMPFILE echo $newpath } else {