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