From 2d91768d88b14568139b51da4ce0c85cbe837df5 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Thu, 21 Nov 2019 00:31:39 +0530 Subject: [PATCH] Fix some cat abuses in code, plugins --- misc/clipboard-copier/copier | 10 +++++----- plugins/fzhist | 10 ++++------ plugins/ndiff | 4 ++-- plugins/picker | 2 +- plugins/readit | 4 ++-- src/nnn.c | 4 ++-- 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/misc/clipboard-copier/copier b/misc/clipboard-copier/copier index 92f7dced..6ac3ba6b 100755 --- a/misc/clipboard-copier/copier +++ b/misc/clipboard-copier/copier @@ -8,16 +8,16 @@ SELECTION=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection # Linux -cat "$SELECTION" | xargs -0 | xsel -bi +xargs -0 < "$SELECTION" | xsel -bi # macOS -# cat "$SELECTION" | xargs -0 | pbcopy +# xargs -0 < "$SELECTION" | pbcopy # Termux -# cat "$SELECTION" | xargs -0 | termux-clipboard-set +# xargs -0 < "$SELECTION" | termux-clipboard-set # Cygwin -# cat "$SELECTION" | xargs -0 | clip +# xargs -0 < "$SELECTION" | clip # Wayland -# cat "$SELECTION" | xargs -0 | wl-copy +# xargs -0 < "$SELECTION" | wl-copy diff --git a/plugins/fzhist b/plugins/fzhist index 52f13bfd..ca1db630 100755 --- a/plugins/fzhist +++ b/plugins/fzhist @@ -10,10 +10,10 @@ shellname="$(basename "$SHELL")" if [ "$shellname" = "bash" ]; then hist_file="$HOME/.bash_history" - entry="$(cat "$hist_file" | fzy)" + entry="$(fzy < "$hist_file")" elif [ "$shellname" = "fish" ]; then hist_file="$HOME/.config/fish/fish_history" - entry="$(cat "$hist_file" | grep "\- cmd: " | cut -c 8- | fzy)" + entry="$(grep "\- cmd: " "$hist_file" | cut -c 8- | fzy)" fi if ! [ -z "$entry" ]; then @@ -21,10 +21,8 @@ if ! [ -z "$entry" ]; then echo "$entry" >> $tmpfile $EDITOR $tmpfile - cmd="$(cat $tmpfile)" - - if ! [ -z "$cmd" ]; then - $SHELL -c "$cmd" + if [ -s $tmpfile ]; then + $SHELL -c "$(cat $tmpfile)" fi rm $tmpfile diff --git a/plugins/ndiff b/plugins/ndiff index dff24d25..f5ca0dc3 100755 --- a/plugins/ndiff +++ b/plugins/ndiff @@ -25,9 +25,9 @@ if [ -s $selection ]; then else # If xargs supports the -o option, use it to get rid of: # Vim: Warning: Input is not from a terminal - # cat $selection | xargs -0 -o vimdiff + # xargs -0 -o vimdiff < $selection - cat $selection | xargs -0 vimdiff +0 + xargs -0 vimdiff +0 < $selection fi else echo "needs at least 2 files or directories selected for comparison" diff --git a/plugins/picker b/plugins/picker index a5004359..91101fea 100755 --- a/plugins/picker +++ b/plugins/picker @@ -21,6 +21,6 @@ nnn -p /tmp/picked if [ -f /tmp/picked ]; then - cat /tmp/picked | tr '\0' '\n' + tr '\0' '\n' < /tmp/picked rm /tmp/picked fi diff --git a/plugins/readit b/plugins/readit index b997235a..e0058dbf 100755 --- a/plugins/readit +++ b/plugins/readit @@ -13,11 +13,11 @@ if ! [ -z "$1" ]; then # Convert using pdftotext pdftotext -nopgbrk -layout "$1" - | sed 's/\xe2\x80\x8b//g' > "$tmpf".txt - pico2wave -w "$tmpf".wav -l en-GB "$(cat "$tmpf".txt | tr '\n' ' ')" + pico2wave -w "$tmpf".wav -l en-GB "$(tr '\n' ' ' < "$tmpf".txt)" rm "$tmpf".txt else - pico2wave -w "$tmpf".wav -l en-GB "$(cat "$1" | tr '\n' ' ')" + pico2wave -w "$tmpf".wav -l en-GB "$(tr '\n' ' ' < "$1")" fi # to jump around and note the time diff --git a/src/nnn.c b/src/nnn.c index db6108bf..52347ff2 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -891,7 +891,7 @@ static bool listselfile(void) if (!sb.st_size) return FALSE; - snprintf(g_buf, CMD_LEN_MAX, "cat %s | tr \'\\0\' \'\\n\'", g_selpath); + snprintf(g_buf, CMD_LEN_MAX, "tr \'\\0\' \'\\n\' < %s", g_selpath); spawn(utils[SH_EXEC], g_buf, NULL, NULL, F_CLI | F_CONFIRM); return TRUE; @@ -1346,7 +1346,7 @@ static bool cpmv_rename(int choice, const char *path) /* selsafe() returned TRUE for this to be called */ if (!selbufpos) { - snprintf(buf, sizeof(buf), "cat %s | tr '\\0' '\\n' > %s", g_selpath, g_tmpfpath); + snprintf(buf, sizeof(buf), "tr '\\0' '\\n' < %s > %s", g_selpath, g_tmpfpath); spawn(utils[SH_EXEC], buf, NULL, NULL, F_CLI); count = lines_in_file(fd, buf, sizeof(buf));