summaryrefslogtreecommitdiff
path: root/archive/st/patch/opencopied.c
diff options
context:
space:
mode:
authorauric <104602845+ihateamongus@users.noreply.github.com>2025-09-08 21:19:14 -0500
committerauric <104602845+ihateamongus@users.noreply.github.com>2025-09-08 21:19:14 -0500
commite61da07522a060da98fa3a56db3d0360469b26cf (patch)
treec72d276bffa4dafe22ae0e4f694acfadb40b8ca1 /archive/st/patch/opencopied.c
parentd11aec86841f77edd6eba3e07aa1e7e591e9da2a (diff)
organize repository layout
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