fix when browse into empty directory
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
#!/bin/sh
|
||||
# sfm - Simple File Manager in POSIX sh (flicker-free)
|
||||
# version 0.3
|
||||
# sfm - Simple File Manager in POSIX sh
|
||||
|
||||
# --- terminal control ---
|
||||
tput_cmd() { command -v tput >/dev/null 2>&1 && tput "$@"; }
|
||||
@@ -443,7 +442,7 @@ draw_topbar() {
|
||||
draw_botbar() {
|
||||
_rows=$1; _cols=$2
|
||||
if [ "$SEARCHING" = "1" ]; then
|
||||
info=" $((SEL + 1))/${COUNT} ${CWD}"
|
||||
info=" $([ "$COUNT" -eq 0 ] && echo 0 || echo $((SEL + 1)))/${COUNT} ${CWD}"
|
||||
keys=" search: ${FILTER} "
|
||||
maxk=$((_cols - ${#info} - 1))
|
||||
[ "${#keys}" -gt "$maxk" ] && keys=$(printf '%s' "$keys" | cut -c1-"$maxk")
|
||||
@@ -457,9 +456,8 @@ draw_botbar() {
|
||||
"${YELLOW}${keys}" \
|
||||
"${RESET}"
|
||||
elif [ -n "$INFO_MSG" ]; then
|
||||
info=" $((SEL + 1))/${COUNT} ${CWD}"
|
||||
msg=" ${INFO_MSG} "
|
||||
padlen=$((_cols - ${#info} - ${#msg}))
|
||||
info=" $([ "$COUNT" -eq 0 ] && echo 0 || echo $((SEL + 1)))/${COUNT} ${CWD}"
|
||||
msg=" ${INFO_MSG} " padlen=$((_cols - ${#info} - ${#msg}))
|
||||
[ "$padlen" -lt 0 ] && padlen=0
|
||||
pad=$(printf '%*s' "$padlen" '')
|
||||
goto "$_rows" 1
|
||||
@@ -478,7 +476,7 @@ draw_botbar() {
|
||||
[ "$SORT_MODE" != "name" ] && _ind="${_ind} [sort:${SORT_MODE}]"
|
||||
[ "$SHOW_DETAILS" = "1" ] && _ind="${_ind} [details]"
|
||||
hint=" press ? for help "
|
||||
info=" $((SEL + 1))/${COUNT} ${CWD}${_ind}"
|
||||
info=" $([ "$COUNT" -eq 0 ] && echo 0 || echo $((SEL + 1)))/${COUNT} ${CWD}${_ind}"
|
||||
padlen=$((_cols - ${#info} - ${#hint}))
|
||||
[ "$padlen" -lt 0 ] && padlen=0
|
||||
pad=$(printf '%*s' "$padlen" '')
|
||||
@@ -523,6 +521,12 @@ draw() {
|
||||
row=$((row + 1))
|
||||
idx=$((idx + 1))
|
||||
done
|
||||
# show (empty) if directory has no entries
|
||||
if [ "$COUNT" -eq 0 ]; then
|
||||
goto 2 1
|
||||
printf '%s (empty)%s%s' "${WHITE}" "${ERASE_LINE}" "${RESET}"
|
||||
row=3
|
||||
fi
|
||||
# blank leftover rows (e.g. after entering a smaller directory)
|
||||
while [ "$row" -le $((LIST_ROWS + 1)) ]; do
|
||||
goto "$row" 1
|
||||
|
||||
Reference in New Issue
Block a user