feat: Improve performance for empty line print for larger lists

This commit is contained in:
Timo Reymann
2023-02-16 12:18:27 +01:00
parent cd8c3c5d5b
commit 3b02fbb911
2 changed files with 11 additions and 4 deletions
+10 -3
View File
@@ -25,7 +25,14 @@ _key_input() {
# print new line for empty element in array
# shellcheck disable=SC2231
_new_line_foreach_item() { for _ in $1[@]; do echo -en "\n" >&2; done }
_new_line_foreach_item() {
count=0
while [[ $count -lt $1 ]];
do
echo "" >&2
((count++))
done
}
# display prompt text without linebreak
_prompt_text() {
@@ -122,7 +129,7 @@ list() {
local opts=("${@:2}")
local opts_count=$(($# -1))
_new_line_foreach_item "${opts[*]}"
_new_line_foreach_item "${#opts[@]}"
# determine current screen position for overwriting the options
local lastrow; lastrow=$(_get_cursor_row)
@@ -179,7 +186,7 @@ checkbox() {
local opts; opts=("${@:2}")
local opts_count; opts_count=$(($# -1))
_new_line_foreach_item "${opts[*]}"
_new_line_foreach_item "${#opts[@]}"
# determine current screen position for overwriting the options
local lastrow; lastrow=$(_get_cursor_row)