[wiki] [sites] Add copyurl patch for st || Brandon Mulcahy
commit 7d1fc6427a03be35a1b41ead06b435f240535df2
Author: Brandon Mulcahy <brandon_AT_jangler.info>
Date: Fri Oct 17 01:01:11 2014 -0400
Add copyurl patch for st
diff --git a/st.suckless.org/patches/copyurl.md b/st.suckless.org/patches/copyurl.md
new file mode 100644
index 0000000..ea9a48b
--- /dev/null
+++ b/st.suckless.org/patches/copyurl.md
_AT_@ -0,0 +1,18 @@
+copyurl
+=======
+
+Description
+-----------
+
+Select and copy the last URL in the display. Multiple invocations cycle through
+the available URLs.
+
+Download
+--------
+
+* [st-git-copyurl.diff](st-git-copyurl.diff)
+
+Author
+------
+
+ * Brandon Mulcahy - brandon _AT_ jangler . info
diff --git a/st.suckless.org/patches/st-git-copyurl.diff b/st.suckless.org/patches/st-git-copyurl.diff
new file mode 100644
index 0000000..baf2732
--- /dev/null
+++ b/st.suckless.org/patches/st-git-copyurl.diff
_AT_@ -0,0 +1,98 @@
+From 3aa97780747496b08ec2057266a0a030737cf153 Mon Sep 17 00:00:00 2001
+From: Brandon Mulcahy <brandon_AT_jangler.info>
+Date: Fri, 17 Oct 2014 00:27:46 -0400
+Subject: [PATCH] copyurl patch
+
+Select and copy the last URL in the display. Multiple invocations cycle through
+the available URLs.
+---
+ config.def.h | 1 +
+ st.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 57 insertions(+)
+
+diff --git a/config.def.h b/config.def.h
+index 1667ed6..be25f2a 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -120,6 +120,7 @@ static Shortcut shortcuts[] = {
+ { ShiftMask, XK_Insert, selpaste, {.i = 0} },
+ { MODKEY|ShiftMask, XK_Insert, clippaste, {.i = 0} },
+ { MODKEY, XK_Num_Lock, numlock, {.i = 0} },
++ { MODKEY, XK_l, copyurl, {.i = 0} },
+ };
+
+ /*
+diff --git a/st.c b/st.c
+index bcf96e9..50065e9 100644
+--- a/st.c
++++ b/st.c
+_AT_@ -323,6 +323,7 @@ static void xzoomreset(const Arg *);
+ static void printsel(const Arg *);
+ static void printscreen(const Arg *) ;
+ static void toggleprinter(const Arg *);
++static void copyurl(const Arg *);
+
+ /* Config.h for applying patches and the configuration. */
+ #include "config.h"
+_AT_@ -3989,3 +3990,58 @@ run:
+ return 0;
+ }
+
++/* select and copy the previous url on screen (do nothing if there's no url).
++ * known bug: doesn't handle urls that span multiple lines (wontfix)
++ * known bug: only finds first url on line (mightfix)
++ */
++void
++copyurl(const Arg *arg) {
++ /* () and [] can appear in urls, but excluding them here will reduce false
++ * positives when figuring out where a given url ends.
++ */
++ static char URLCHARS[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
++ "abcdefghijklmnopqrstuvwxyz"
++ "0123456789-._~:/?#_AT_!$&'*+,;=%";
++
++ int i, row, startrow;
++ char *linestr = calloc(sizeof(char), term.col+1); /* assume ascii */
++ char *c, *match = NULL;
++
++ row = startrow = (sel.ob.x >= 0 && sel.nb.y > 0) ? sel.nb.y-1 : term.row-1;
++
++ /* find the start of the last url before selection */
++ do {
++ for (i = 0; i < term.col; ++i)
++ linestr[i] = term.line[row][i].c[0];
++ linestr[term.col] = '
Received on Fri Oct 17 2014 - 07:02:37 CEST
This archive was generated by hypermail 2.3.0
: Thu Jun 18 2015 - 17:39:42 CEST