From d30a501b1c6b8e8164b266318e26ce6d2e4719cf Mon Sep 17 00:00:00 2001
From: Sebastian Gniazdowski <sgniazdowski@gmail.com>
Date: Tue, 15 Dec 2015 09:35:29 +0100
Subject: [PATCH] znt: more optimizing workarounds for 5.0.6 <= zsh < 5.2

---
 plugins/zsh-navigation-tools/README.md | 2 +-
 plugins/zsh-navigation-tools/n-list    | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/plugins/zsh-navigation-tools/README.md b/plugins/zsh-navigation-tools/README.md
index 630b2e840..4420dab82 100644
--- a/plugins/zsh-navigation-tools/README.md
+++ b/plugins/zsh-navigation-tools/README.md
@@ -105,7 +105,7 @@ colorize output of the tools, via their config files (check out e.g. n-cd.conf,
 it uses this).
 
 ## Performance
-ZNT are fastest with Zsh before 5.0.8 and starting from 5.2
+ZNT are fastest with Zsh before 5.0.6 and starting from 5.2
 
 
 vim:filetype=conf
diff --git a/plugins/zsh-navigation-tools/n-list b/plugins/zsh-navigation-tools/n-list
index d13e048bf..388712bd0 100644
--- a/plugins/zsh-navigation-tools/n-list
+++ b/plugins/zsh-navigation-tools/n-list
@@ -243,7 +243,9 @@ while (( 1 )); do
 
             # Take all elements, including duplicates and non-selectables
             typeset +U list
-            list=( "$@" )
+            repeat 1; do
+                list=( "$@" )
+            done
 
             # Remove non-selectable elements
             [ "$#NLIST_NONSELECTABLE_ELEMENTS" -gt 0 ] && for i in "${(nO)NLIST_NONSELECTABLE_ELEMENTS[@]}"; do
@@ -309,7 +311,9 @@ while (( 1 )); do
 
             # Take all elements, including duplicates and non-selectables
             typeset +U list
-            list=( "$@" )
+            repeat 1; do
+                list=( "$@" )
+            done
 
             # Remove non-selectable elements only when in uniq mode
             [ "$NLIST_IS_UNIQ_MODE" -eq 1 ] && [ "$#NLIST_NONSELECTABLE_ELEMENTS" -gt 0 ] &&