From 674434ef6f75247fb25d8e5b39786bca9a0cabec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Aptel?= <aurelien.aptel@gmail.com>
Date: Sun, 3 Apr 2011 00:35:02 +0200
Subject: [PATCH] add support for utf8 clipboard. fix usage message.

---
 st.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/st.c b/st.c
index 561d5b0..ed750e6 100644
--- a/st.c
+++ b/st.c
@@ -32,7 +32,7 @@
 
 #define USAGE \
 	"st-" VERSION ", (c) 2010 st engineers\n" \
-	"usage: st [-t title] [-c class] [-e cmd] [-v]\n"
+	"usage: st [-t title] [-c class] [-v] [-e cmd]\n"
 
 /* Arbitrary sizes */
 #define ESC_TITLE_SIZ 256
@@ -152,6 +152,7 @@ typedef struct {
 	int ex, ey;
 	struct {int x, y;}  b, e;
 	char *clip;
+	Atom xtarget;
 } Selection;
 
 #include "config.h"
@@ -370,6 +371,9 @@ selinit(void) {
 	sel.mode = 0;
 	sel.bx = -1;
 	sel.clip = NULL;
+	sel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0);
+	if(sel.xtarget == None)
+		sel.xtarget = XA_STRING;
 }
 
 static inline int 
@@ -453,7 +457,7 @@ selnotify(XEvent *e) {
 
 void
 selpaste() {
-	XConvertSelection(xw.dpy, XA_PRIMARY, XA_STRING, XA_PRIMARY, xw.win, CurrentTime);
+	XConvertSelection(xw.dpy, XA_PRIMARY, sel.xtarget, XA_PRIMARY, xw.win, CurrentTime);
 }
 
 void
@@ -474,7 +478,7 @@ selrequest(XEvent *e) {
 	xa_targets = XInternAtom(xw.dpy, "TARGETS", 0);
 	if(xsre->target == xa_targets) {
 		/* respond with the supported type */
-		Atom string = XA_STRING;
+		Atom string = sel.xtarget;
 		XChangeProperty(xsre->display, xsre->requestor, xsre->property,
 				XA_ATOM, 32, PropModeReplace,
 				(unsigned char *) &string, 1);