diff options
Diffstat (limited to '')
-rw-r--r-- | README | 2 | ||||
-rwxr-xr-x | xcopy | 7 | ||||
-rwxr-xr-x | xpaste | 12 |
3 files changed, 9 insertions, 12 deletions
@@ -4,7 +4,7 @@ xfileclip Copy and paste files to and from your shell and X programs! -Dependencies: POSIX shell (like dash) and xclip +Dependencies: POSIX shell (like dash), xclip and GNU awk Install: just copy and paste `xcopy` and `xpaste` scripts somewhere on your $PATH. @@ -1,18 +1,15 @@ -#!/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 "" # TODO: why does it need a \n before the list? - for i in "$@"; do - echo "file://$(realpath ${i})" + echo "file://$(realpath "$i")" done } | xclip -sel clipboard -i -r -t text/uri-list @@ -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 |