diff options
Diffstat (limited to 'src/Plugins')
| -rw-r--r-- | src/Plugins/PipeReader.hs | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/src/Plugins/PipeReader.hs b/src/Plugins/PipeReader.hs index 3fd0dd4..42ae500 100644 --- a/src/Plugins/PipeReader.hs +++ b/src/Plugins/PipeReader.hs @@ -23,6 +23,12 @@ data PipeReader = PipeReader String String  instance Exec PipeReader where      alias (PipeReader _ a)    = a      start (PipeReader p _) cb = do -        h <- openFile p ReadWriteMode +        let (def, pipe) = split ':' p +        h <- openFile pipe ReadWriteMode +        cb def          forever (hGetLineSafe h >>= cb) -        where forever a = a >> forever a +      where +        forever a = a >> forever a +        split c xs | c `elem` xs = let (pre, post) = span ((/=) c) xs +                                   in (pre, dropWhile ((==) c) post) +                   | otherwise   = ([], xs) | 
