hello list

I announced a fix on irc earlier today for a recurring problem when using st
on a daily basis, and looking further into the issue, I found there are,
afaict two seemingly identically valid fixes for the problem:

--- st/st.c     2011-11-02 21:24:08.893374099 +0100
+++ st-selfix/st.c      2012-01-10 21:27:24.053424322 +0100
@@ -547,7 +545,7 @@
                                XA_ATOM, 32, PropModeReplace,
                                (unsigned char *) &string, 1);
                xev.property = xsre->property;
-       } else if(xsre->target == sel.xtarget) {
+       } else if(xsre->target == sel.xtarget && sel.clip != NULL) {
                XChangeProperty(xsre->display, xsre->requestor, xsre->property,
                                xsre->target, 8, PropModeReplace,
                                (unsigned char *) sel.clip, strlen(sel.clip));

and

--- st/st.c     2011-11-02 21:24:08.893374099 +0100
+++ st-selfix2/st.c     2012-01-10 21:35:00.131451765 +0100
@@ -493,8 +493,8 @@
                                *ptr++ = '\n';
                }
                *ptr = 0;
+               xsetsel(str);
        }
-       xsetsel(str);
 }
 
 void

anyway, the problem is that XChangeProperty() will cause a segfault if it gets
NULL - or strlen. I'm slightly in favor of the former, as it will allow
sel.clip to be any value at any time, which is good. Thoughts?

Which reminds me, I just wanted to paste the diffs into st where I'm writing
this email and it seems copy/pasting doesn't work well with newlines. I might
be back later or tomorrow with another one. =)

cheers!
mar77i

Reply via email to