fix when browse into empty directory

This commit is contained in:
emmett1
2026-03-16 00:21:22 +08:00
parent 1e6fdd9e29
commit 02a8adadc4
+11 -7
View File
@@ -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