| .TH GETSNARF 3 |
| .SH NAME |
| getsnarf, putsnarf \- window system snarf (cut and paste) buffer |
| .SH SYNOPSIS |
| .B #include <draw.h> |
| .PP |
| .B |
| char *getsnarf(void) |
| .PP |
| .B |
| void putsnarf(char *text) |
| .SH DESCRIPTION |
| .I Getsnarf |
| and |
| .I putsnarf |
| access the window system's snarf (cut and paste) buffer. |
| .PP |
| .I Getsnarf |
| returns a copy of the current buffer; |
| the returned pointer should be freed with |
| .I free |
| (see |
| .IR malloc (3)) |
| when no longer needed. |
| .PP |
| .I Putsnarf |
| sets the buffer to the text string |
| .IR text . |
| .PP |
| Callers should assume that the snarf buffer is UTF. |
| If the window system does not keep the buffer in UTF, |
| .I getsnarf |
| and |
| .I putsnarf |
| will convert as necessary. |
| .SH SOURCE |
| .B \*9/src/libdraw/x11-itrans.c |
| .SH SEE ALSO |
| .IR snarfer (1) |
| .SH BUGS |
| On OS X, there are two snarf buffers: the Carbon snarf buffer |
| used by native OS X applications, and the X11 snarf buffer, |
| used by X11 applications. |
| Whenever new text is written to the Carbon snarf buffer, the OS X X11 |
| implementation automatically copies that text to the X11 snarf buffer. |
| The reverse is not done automatically, arguably a bug in the X11 server. |
| To work around this, |
| .I putsnarf |
| writes to both the Carbon snarf buffer and the X11 snarf buffer. |
| To work around this bug in remote or non-Plan 9 X11 clients, run |
| .IR snarfer (1). |