summaryrefslogtreecommitdiff
path: root/archive/st/patch/opencopied.c
diff options
context:
space:
mode:
Diffstat (limited to 'archive/st/patch/opencopied.c')
-rw-r--r--archive/st/patch/opencopied.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/archive/st/patch/opencopied.c b/archive/st/patch/opencopied.c
new file mode 100644
index 0000000..9b07c58
--- /dev/null
+++ b/archive/st/patch/opencopied.c
@@ -0,0 +1,19 @@
+void
+opencopied(const Arg *arg)
+{
+ int res;
+ size_t const max_cmd = 2048;
+ char * const clip = xsel.clipboard;
+ if (!clip) {
+ fprintf(stderr, "Warning: nothing copied to clipboard\n");
+ return;
+ }
+
+ /* account for space/quote (3) and \0 (1) and & (1) */
+ /* e.g.: xdg-open "https://st.suckless.org"& */
+ size_t const cmd_size = max_cmd + strlen(clip) + 5;
+ char cmd[cmd_size];
+
+ snprintf(cmd, cmd_size, "%s \"%s\"&", (char *)arg->v, clip);
+ res = system(cmd);
+} \ No newline at end of file