diff options
author | rsc <devnull@localhost> | 2006-02-28 13:13:39 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2006-02-28 13:13:39 +0000 |
commit | 4fc1aa09a95ca3fc4716a98a264a3f58b95b0d2a (patch) | |
tree | 5d8e1fd7c787b8d96dcd3573a13c1d2cec5c6565 /src/libdraw | |
parent | bebdea4e8e1a93c14099a7b8182ddfcb6d2cae14 (diff) | |
download | plan9port-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.c | 27 |
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); |