Clipboard problems
On 03 Sep 2014, at 13:56 , Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
The standard advice for reading the clipboard on OSX is to use the
pipe("pbpaste") connection, but I'm finding it misses the last line. (I
believe the last line in my examples generally doesn't include any EOL
marker.) For example, if I highlight these three lines:
line 1
line 2
line 3
and copy to the clipboard, then readLines(pipe("pbpaste")) gives
[1] "line 1" "line 2"
in R.app or R in a terminal. If I paste them here, I get
line 1
line 2
line 3
with the cursor left on the third line after the 3. In a console, echo
`pbpaste` gives
line 1 line 2 line 3
so the problem isn't (only) with pbpaste.
I think that the issue is that the last line is incomplete and pipe() is non-blocking E.g., Peters-iMac:R-docs pd$ pbpaste line 1 line 2 line 3Peters-iMac:R-docs pd$ and (with the same clipboard)
readLines(pipe("pbpaste"))
[1] "line 1" "line 2" pushes back the incomplete line, hoping that it might be available for a later read. (It takes someone smarter than me to say whether this is unavoidable or whether pipe() should be able to detect that the command has completed.) This works, presumably because text connections are not non-blocking:
readLines(textConnection(system("pbpaste",intern=TRUE)))
[1] "line 1" "line 2" "line 3" -pd
Duncan Murdoch
_______________________________________________ R-SIG-Mac mailing list R-SIG-Mac at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac
Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com