aboutsummaryrefslogtreecommitdiff
path: root/src/libdraw
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-02-28 13:13:39 +0000
committerrsc <devnull@localhost>2006-02-28 13:13:39 +0000
commit4fc1aa09a95ca3fc4716a98a264a3f58b95b0d2a (patch)
tree5d8e1fd7c787b8d96dcd3573a13c1d2cec5c6565 /src/libdraw
parentbebdea4e8e1a93c14099a7b8182ddfcb6d2cae14 (diff)
downloadplan9port-4fc1aa09a95ca3fc4716a98a264a3f58b95b0d2a.tar.gz
plan9port-4fc1aa09a95ca3fc4716a98a264a3f58b95b0d2a.tar.bz2
plan9port-4fc1aa09a95ca3fc4716a98a264a3f58b95b0d2a.zip
allow fallback to x11
Diffstat (limited to 'src/libdraw')
-rw-r--r--src/libdraw/x11-itrans.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/libdraw/x11-itrans.c b/src/libdraw/x11-itrans.c
index bad110f7..05431b61 100644
--- a/src/libdraw/x11-itrans.c
+++ b/src/libdraw/x11-itrans.c
@@ -555,7 +555,8 @@ applegetsnarf(void)
PasteboardItemID id;
PasteboardSyncFlags flags;
UInt32 i;
-
+
+// fprint(2, "applegetsnarf\n");
qlock(&clip.lk);
if(clip.apple == nil){
if(PasteboardCreate(kPasteboardClipboard, &clip.apple) != noErr){
@@ -566,8 +567,9 @@ applegetsnarf(void)
}
flags = PasteboardSynchronize(clip.apple);
if(flags&kPasteboardClientIsOwner){
+ s = strdup(clip.buf);
qunlock(&clip.lk);
- return strdup(clip.buf);
+ return s;
}
if(PasteboardGetItemCount(clip.apple, &nitem) != noErr){
fprint(2, "apple pasteboard get item count failed\n");
@@ -608,6 +610,8 @@ appleputsnarf(char *s)
CFDataRef cfdata;
PasteboardSyncFlags flags;
+// fprint(2, "appleputsnarf\n");
+
if(strlen(s) >= SnarfSize)
return;
qlock(&clip.lk);
@@ -648,13 +652,26 @@ appleputsnarf(char *s)
/* CFRelease(cfdata); ??? */
qunlock(&clip.lk);
}
+static int useapplesnarf = -1;
+static int
+checkapplesnarf(void)
+{
+ char *x;
+
+ x = getenv("USEX11SNARF");
+ if(x && x[0])
+ return 0;
+ return 1;
+}
#endif /* APPLESNARF */
void
putsnarf(char *data)
{
#ifdef APPLESNARF
- if(1){
+ if(useapplesnarf == -1)
+ useapplesnarf = checkapplesnarf();
+ if(useapplesnarf){
appleputsnarf(data);
return;
}
@@ -666,7 +683,9 @@ char*
getsnarf(void)
{
#ifdef APPLESNARF
- if(1)
+ if(useapplesnarf == -1)
+ useapplesnarf = checkapplesnarf();
+ if(useapplesnarf)
return applegetsnarf();
#endif
return _xgetsnarf(_x.snarfcon);