From 1dc38aa4efdda736bd0a9d01b64b7ac305430d51 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Tue, 4 Aug 2020 14:10:55 +0300 Subject: [PATCH] works --- shfm | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/shfm b/shfm index 72f6259..889835f 100755 --- a/shfm +++ b/shfm @@ -50,7 +50,11 @@ hist_search() { for file do case ${PWD%%/}/$file in - "$old_pwd") y=$j y2=$((j > bottom ? bottom : j)) cur=$file + "$old_pwd") + y=$j + y2=$((j > bottom ? mid : j)) + cur=$file + ;; esac j=$((j + 1)) @@ -62,12 +66,18 @@ list_print() { i=1 end=$((bottom + 1)) + mid=$((bottom / 4 < 5 ? 1 : bottom / 4)) case $hist in - 1) hist_search "$@" - esac + 1) + hist_search "$@" + shift "$((y >= bottom ? y - mid : 0))" + ;; - shift "$((y - bottom > 0 ? y - bottom : 0))" + *) + shift "$((y >= bottom ? y - bottom : 0))" + ;; + esac for file do file_escape "$file" @@ -83,7 +93,7 @@ list_print() { i=$((i + 1)) done - printf '\033[%sH' "$((y > bottom ? bottom : y))" + printf '\033[%sH' "$((y > bottom ? y2 : y))" } redraw() {