batch rename: check dep, handle invalid input

This commit is contained in:
Arun Prakash Jana 2020-03-15 20:26:53 +05:30
parent 03e6d7d553
commit ea2de804f8
No known key found for this signature in database
GPG Key ID: A75979F35C080412
2 changed files with 11 additions and 4 deletions

View File

@ -26,6 +26,10 @@ dst_file=$(mktemp "$TMPDIR/.nnnXXXXXX")
if [ -s "$selection" ]; then
printf "Rename 'c'urrent / 's'election? "
read -r resp
if ! [ "$resp" = "c" ] && ! [ "$resp" = "s" ]; then
exit 1
fi
fi
if [ "$resp" = "s" ]; then
@ -96,7 +100,7 @@ while read -r num name; do
printf "%s: failed to rename %s to %s: %s\n" "$0" "$name" "$tmp" "$!" > /dev/stderr
exit_status=1
fi
for key in "${!items[@]}"; do
if [ "${items[$key]}" = "$name" ]; then
items[$key]="$tmp"
@ -116,7 +120,7 @@ while read -r num name; do
for key in "${!items[@]}"; do
items[$key]=$(printf "%s" "${items[$key]}" | sed "s|^$src\(\$\|\/\)|$name\1|")
done
printf "'%s' => '%s'\n" "$src" "$name"
else
printf "'%s' -> '%s'\n" "$src" "$name"

View File

@ -431,7 +431,8 @@ static uchar g_states;
#define UTIL_FZY 16
#define UTIL_NTFY 17
#define UTIL_CBCP 18
#define UTIL_NMV 19
#define UTIL_BASH 19
#define UTIL_NMV 20
/* Utilities to open files, run actions */
static char * const utils[] = {
@ -470,6 +471,7 @@ static char * const utils[] = {
"fzy",
".ntfy",
".cbcp",
"bash",
".nmv",
};
@ -5610,7 +5612,8 @@ nochange:
case SEL_RENAMEMUL:
endselection();
if (!plugscript(utils[UTIL_NMV], newpath, path, F_CLI)
if (!(getutil(utils[UTIL_BASH])
&& plugscript(utils[UTIL_NMV], newpath, path, F_CLI))
&& !batch_rename(path)) {
printwait(messages[MSG_FAILED], &presel);
goto nochange;