aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoe <rbo@gmx.us>2025-10-08 17:17:33 +0200
committerjoe <rbo@gmx.us>2025-10-08 17:17:33 +0200
commitc0f4fe5179047e64ab793e798bbf6189fb99db8f (patch)
tree6120306758c4e0c9f1d912e6c7b99bca6ef2f1fe
parentnice (diff)
downloadst-c0f4fe5179047e64ab793e798bbf6189fb99db8f.tar.gz
st-c0f4fe5179047e64ab793e798bbf6189fb99db8f.tar.bz2
st-c0f4fe5179047e64ab793e798bbf6189fb99db8f.tar.xz
st-c0f4fe5179047e64ab793e798bbf6189fb99db8f.tar.zst
st-c0f4fe5179047e64ab793e798bbf6189fb99db8f.zip
up
-rwxr-xr-xst-cpycmd8
-rwxr-xr-xst-cpyout14
2 files changed, 13 insertions, 9 deletions
diff --git a/st-cpycmd b/st-cpycmd
index 3fb38c4..a449364 100755
--- a/st-cpycmd
+++ b/st-cpycmd
@@ -9,11 +9,15 @@ mem=$(sed '{s/^ $//g;s/\x0//g;}')
ps1=$(printf "%s" "$mem" |
tail -n1 |
sed -E 's/([%,#,>,$]).*/\1/')
+printf "%s" "$mem" |
+ grep -F "$ps1" |
+ grep -v "$ps1 $" |
+return
chosen=$(printf "%s" "$mem" |
grep -F "$ps1" |
- sed '$ d' |
+ grep -v "$ps1 $" |
tac |
- dmenu -i -l 10 -m 0)
+ dmenu -i -l 10)
if [ -n "$chosen" ]; then
cmd=$(printf "%s" "$chosen" | sed "{s/^$ps1 //;s/ $//;}")
printf "%s" "$cmd" | xclip -selection clipboard
diff --git a/st-cpyout b/st-cpyout
index c1fa1a1..09712c7 100755
--- a/st-cpyout
+++ b/st-cpyout
@@ -5,28 +5,28 @@
# xclip required for this script.
# By Jaywalker and Luke
# Adapted for FreeBSD by Joe
-mem=$(sed 's/^ $//g' | sed 's/\x0//g')
+mem=$(sed '{s/^ $//g;s/\x0//g;}')
ps1=$(printf "%s" "$mem" |
tail -n1 |
sed -E 's/([%,#,>]).*/\1/')
chosen=$(printf "%s" "$mem" |
grep -F "$ps1" |
- sed '$ d' |
+ grep -v "$ps1 $" |
tac |
- dmenu -i -l 10 -m 0 |
+ dmenu -i -l 10 |
sed 's/[^^]/[&]/g; s/\^/\\^/g')
eps1=$(echo "$ps1" |
sed 's/[^^]/[&]/g; s/\^/\\^/g')
if [ "$1" = "noprompt" ]; then
printf "%s" "$mem" |
gawk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" |
- tac |
- sed '$ d' |
- tac |
- perl -p -e 'chomp if eof' |
+ sed '{1d;s/ $//;}' |
+ head -c -1 |
xclip -selection clipboard
else
printf "%s" "$mem" |
gawk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" |
+ sed 's/ $//' |
+ head -c -1 |
xclip -selection clipboard
fi