summaryrefslogtreecommitdiff
path: root/xpaste
diff options
context:
space:
mode:
authordweller <dweller@cabin.digital>2024-03-18 05:08:39 +0200
committerdweller <dweller@cabin.digital>2024-03-18 05:08:39 +0200
commit48d6a9cdb9e9b0d72104ad2eb5214376ed621c19 (patch)
treee128e9b93745cbb66a3d9e85569d40005ab5f854 /xpaste
parentae4693676e49907442d53d320a7c758557c9770a (diff)
shellcheck and fix handling of URI encoded file pathsHEADmaster
Diffstat (limited to 'xpaste')
-rwxr-xr-xxpaste12
1 files changed, 6 insertions, 6 deletions
diff --git a/xpaste b/xpaste
index 444206f..77aa842 100755
--- a/xpaste
+++ b/xpaste
@@ -1,17 +1,17 @@
-#!/bin/sh
+#!/bin/sh -e
#
# Copyright (C) 2023 dwlr <dweller@cabin.digital>
#
# BSD 3-Clause License (BSD-3-Clause)
# See LICENSE for details
-set -e
-
-echo "$(xclip -sel clipboard -o -r -t text/uri-list | cut -d':' -f2- | tr -d '\r')" \
+# NOTE: awk part does URI decoding
+xclip -sel clipboard -o -r -t text/uri-list | cut -d':' -f2- | tr -d '\r' \
+| awk -niord '{printf RT?$0chr("0x"substr(RT,2)):$0}' RS=%.. \
| while IFS= read -r path
do
- if [ -e "${path}" ]; then
- cp -v -r "${path}" "$(basename ${path})"
+ if [ -e "$path" ]; then
+ cp -v -r "$path" "$(basename "$path")"
fi
done