module System.Clipboard
(
setClipboardString
, getClipboardString
, modifyClipboardString
) where
#if defined(mingw32_HOST_OS) || defined(__MINGW32__)
import qualified System.Clipboard.Windows as OS
#else
import qualified System.Clipboard.X11 as OS
#endif
setClipboardString :: String -> IO ()
setClipboardString = OS.setClipboardString
getClipboardString :: IO (Maybe String)
getClipboardString = OS.getClipboardString
modifyClipboardString :: (String -> String) -> IO Bool
modifyClipboardString f = do
s <- getClipboardString
case s of
Nothing -> return False
Just sc -> setClipboardString (f sc) >> return True