io.files.info.unix.linux: Special characters in mount points are encoded as octal escape sequences.
parent
d23aa7e1f1
commit
67e7874e91
|
@ -0,0 +1,7 @@
|
|||
! Copyright (C) 2015 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: tools.test io.files.info.unix.linux ;
|
||||
IN: io.files.info.unix.linux.tests
|
||||
|
||||
[ "/media/erg/4TB D" ]
|
||||
[ "/media/erg/4TB\\040D" decode-mount-point ] unit-test
|
|
@ -1,11 +1,9 @@
|
|||
! Copyright (C) 2008 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien.c-types alien.syntax combinators csv
|
||||
io.backend io.encodings.utf8 io.files io.files.info
|
||||
io.files.unix libc libc.linux kernel math.order namespaces sequences
|
||||
sorting system unix unix.statfs.linux unix.statvfs.linux io.files.links
|
||||
arrays io.files.info.unix assocs io.pathnames unix.types
|
||||
classes.struct ;
|
||||
USING: accessors assocs classes.struct combinators csv
|
||||
io.backend io.encodings.utf8 io.files.info io.files.info.unix
|
||||
io.pathnames kernel libc math math.parser sequences splitting
|
||||
strings system unix.statfs.linux unix.statvfs.linux ;
|
||||
FROM: csv => delimiter ;
|
||||
IN: io.files.info.unix.linux
|
||||
|
||||
|
@ -44,11 +42,21 @@ M: linux statvfs>file-system-info ( file-system-info statfs -- file-system-info'
|
|||
TUPLE: mtab-entry file-system-name mount-point type options
|
||||
frequency pass-number ;
|
||||
|
||||
! octal escape sequences, e.g. "/media/erg/4TB\\040E"
|
||||
: decode-mount-point ( string -- string' )
|
||||
dup "\\" split
|
||||
dup length 1 > [
|
||||
nip 1 cut
|
||||
[ 3 cut [ oct> 1string ] dip append ] map append concat
|
||||
] [
|
||||
drop
|
||||
] if ;
|
||||
|
||||
: mtab-csv>mtab-entry ( csv -- mtab-entry )
|
||||
[ mtab-entry new ] dip
|
||||
{
|
||||
[ first >>file-system-name ]
|
||||
[ second >>mount-point ]
|
||||
[ second decode-mount-point >>mount-point ]
|
||||
[ third >>type ]
|
||||
[ fourth string>csv first >>options ]
|
||||
[ 4 swap ?nth [ 0 ] unless* >>frequency ]
|
||||
|
|
Loading…
Reference in New Issue