summaryrefslogtreecommitdiff
authorerik <erik>2007-02-13 21:52:06 (UTC)
committer erik <erik>2007-02-13 21:52:06 (UTC)
commit45f2e4cdc6e185439ef4bde6e2b8181a4decd032 (patch) (side-by-side diff)
tree93af498e98728650df1d5e1e62a9711c339c65d4
parentda26f048379252aa1646d54348706c6cb3756a09 (diff)
downloadopie-45f2e4cdc6e185439ef4bde6e2b8181a4decd032.zip
opie-45f2e4cdc6e185439ef4bde6e2b8181a4decd032.tar.gz
opie-45f2e4cdc6e185439ef4bde6e2b8181a4decd032.tar.bz2
This commit fixes bug 1840. The problem is that the palm support declared
a variable inside of a case statement. When I integrated the patch for palm support I streamlined the switch. This lost the brackets that would be required to declare vars inside of switch statements. The bug slipped by because I wasn't doing arm compiles at the time. Sorry. This patch fixes it. It also slides in some corrections associated to what open and sscanf return. It should not cause any behavior change. Thanks goes to GoXbox Live for reporting the problem.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_palm.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/libopie2/opiecore/device/odevice_palm.cpp b/libopie2/opiecore/device/odevice_palm.cpp
index 399c08c..d40dfce 100644
--- a/libopie2/opiecore/device/odevice_palm.cpp
+++ b/libopie2/opiecore/device/odevice_palm.cpp
@@ -226,23 +226,25 @@ bool Palm::suspend()
}
int Palm::displayBrightnessResolution() const
{
int res = 1;
+ int fd = -1;
switch ( d->m_model )
{
case Model_Palm_LD:
case Model_Palm_TX:
case Model_Palm_Z72:
- int fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK );
- if ( fd )
+ fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK );
+ if ( fd != -1)
{
char buf[100];
- if ( ::read( fd, &buf[0], sizeof buf ) ) ::sscanf( &buf[0], "%d", &res );
+ if ( ::read( fd, &buf[0], sizeof buf ) > 0 )
+ ::sscanf( &buf[0], "%d", &res );
::close( fd );
}
break;
default:
res = 1;
@@ -258,27 +260,29 @@ bool Palm::setDisplayBrightness( int bright )
if ( bright > 255 ) bright = 255;
if ( bright < 0 ) bright = 0;
int numberOfSteps = displayBrightnessResolution();
int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255;
+ int fd = -1;
switch ( d->m_model )
{
case Model_Palm_LD:
case Model_Palm_TX:
case Model_Palm_Z72:
- int fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK );
- if ( fd )
+ fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK );
+ if ( fd != -1 )
{
char buf[100];
int len = ::snprintf( &buf[0], sizeof buf, "%d", val );
res = ( ::write( fd, &buf[0], len ) == 0 );
::close( fd );
}
break;
- default: res = false;
+ default:
+ res = false;
}
return res;
}