Work around apparent bug in lsof 4.88's -F output format.
This commit is contained in:
parent
03edf308a3
commit
63fa5c0782
4 changed files with 54 additions and 5 deletions
|
@ -93,11 +93,15 @@ parseFormatted s = bundle $ go [] $ lines s
|
|||
_ -> parsefail
|
||||
|
||||
parsefiles c [] = (c, [])
|
||||
parsefiles c (l:ls) = case splitnull l of
|
||||
['a':mode, 'n':file, ""] ->
|
||||
parsefiles ((file, parsemode mode):c) ls
|
||||
(('p':_):_) -> (c, l:ls)
|
||||
_ -> parsefail
|
||||
parsefiles c (l:ls) = parsefiles' c (splitnull l) l ls
|
||||
|
||||
parsefiles' c ['a':mode, 'n':file, ""] _ ls =
|
||||
parsefiles ((file, parsemode mode):c) ls
|
||||
parsefiles' c (('p':_):_) l ls = (c, l:ls)
|
||||
-- Some buggy versions of lsof emit a f field
|
||||
-- that was not requested, so ignore it.
|
||||
parsefiles' c (('f':_):rest) l ls = parsefiles' c rest l ls
|
||||
parsefiles' _ _ _ _ = parsefail
|
||||
|
||||
parsemode ('r':_) = OpenReadOnly
|
||||
parsemode ('w':_) = OpenWriteOnly
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue