From b4cc69019a55d167dbf30736732e69c897cc9cf4 Mon Sep 17 00:00:00 2001 From: Derrik Pates Date: Tue, 2 Aug 2011 18:07:10 -0600 Subject: [PATCH] Use a few more Perl-isms. --- examples/fioc.pl | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/examples/fioc.pl b/examples/fioc.pl index 811cb80..1b5282a 100755 --- a/examples/fioc.pl +++ b/examples/fioc.pl @@ -25,6 +25,7 @@ require 'asm/ioctl.ph'; our %sizeof = ('int' => 4); sub FIOC_GET_SIZE { _IOR(ord 'E', 0, 'int'); } sub FIOC_SET_SIZE { _IOW(ord 'E', 1, 'int'); } +sub TCGETS { 0x5401; } sub fioc_resize { my ($size) = @_; @@ -87,9 +88,7 @@ sub fioc_open { my ($path, $flags, $info) = @_; print 'called ', (caller(0))[3], "\n"; - if (fioc_file_type($path) != FIOC_NONE) { - return 0; - } + return 0 if fioc_file_type($path) != FIOC_NONE; return -&ENOENT; } @@ -98,10 +97,7 @@ sub fioc_read { print 'called ', (caller(0))[3], "\n"; return -&EINVAL if fioc_file_type($path) != FIOC_FILE; - - if ($offset > $fioc_size) { - return q{}; - } + return q{} if $offset > $fioc_size; if ($size > $fioc_size - $offset) { $size - $fioc_size - $offset; @@ -116,10 +112,7 @@ sub fioc_write { lock($fioc_buf); return -&EINVAL if fioc_file_type($path) != FIOC_FILE; - - if (fioc_expand($offset + length($data))) { - return -&ENOMEM; - } + return -&ENOMEM if fioc_expand($offset + length($data)); substr($fioc_buf, $offset, length($data), $data); return length($data); @@ -149,7 +142,6 @@ sub fioc_ioctl { print 'called ', (caller(0))[3], "\n"; return -&EINVAL if fioc_file_type($path) != FIOC_FILE; - return -&ENOSYS if $flags & 0x1; if ($cmd == FIOC_GET_SIZE) { @@ -160,6 +152,11 @@ sub fioc_ioctl { fioc_resize(unpack('L', $data)); return 0; } + elsif ($cmd == TCGETS) { + # perl sends TCGETS as part of calling isatty() on opening a file; + # this appears to be a more canonical answer + return -&ENOTTY; + } return -&EINVAL; } -- 2.20.1