]> Sergey Matveev's repositories - nnn.git/commitdiff
Fix dragdrop not working in selection mode (#382)
author0xACE <0xACE@users.noreply.github.com>
Fri, 15 Nov 2019 16:27:37 +0000 (16:27 +0000)
committerMischievous Meerkat <engineerarun@gmail.com>
Fri, 15 Nov 2019 16:27:37 +0000 (21:57 +0530)
xargs couldn't call function `dnd()` and I couldn't find a portable way
to do it, so I replaced it with a variable which I guess should work
fine.

plugins/dragdrop

index 647e8480a720a11d63af493866bc3d28d906d796..47b325c57c4b1d16bd8c660b1a25857f49a972fd 100755 (executable)
 selection=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection
 resp=f
 all=
-
-dnd()
-{
-    if which dragon-drag-and-drop 2>&1 >/dev/null; then
-       dragon-drag-and-drop "$@" 2>/dev/null
-    else
-       dragon "$@" 2>/dev/null
-    fi
-}
+if which dragon-drag-and-drop 2>&1 >/dev/null; then
+    dnd="dragon-drag-and-drop"
+else
+    dnd="dragon"
+fi
 
 function add_file() {
        echo -n "$@" >> "$selection"
@@ -55,13 +51,13 @@ fi
 
 if [ "$resp" = "s" ]; then
     use_all
-    sed -z 's|'"$PWD/"'||g' < "$selection" | xargs -0 dnd "$all" &
+    sed -z 's|'"$PWD/"'||g' < "$selection" | xargs -0 "$dnd" "$all" &
 elif [ "$resp" = "d" ]; then
     use_all
-    dnd "$all" "$PWD/"* &
+    "$dnd" "$all" "$PWD/"* &
 elif [ "$resp" = "r" ]; then
     echo -n > "$selection"
-    dnd --print-path --target | while read f
+    "$dnd" --print-path --target | while read f
     do
             if echo -n "$f" | grep '^\(https\?\|ftps\?\|s\?ftp\):\/\/' ; then
                     curl -LJO "$f"
@@ -72,7 +68,7 @@ elif [ "$resp" = "r" ]; then
     done &
 else
     if [ -n "$1" ] && [ -e "$1" ]; then
-        dnd "$1" &
+        "$dnd" "$1" &
     fi
 fi