From 45f2e4cdc6e185439ef4bde6e2b8181a4decd032 Mon Sep 17 00:00:00 2001 From: erik Date: Tue, 13 Feb 2007 21:52:06 +0000 Subject: 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. --- 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 @@ -183,7 +183,7 @@ bool Palm::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b default: break; } - + if (newkeycode!=keycode) { if ( newkeycode != Key_unknown ) { QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); @@ -192,7 +192,7 @@ bool Palm::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b } } - + return false; } @@ -229,17 +229,19 @@ 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; @@ -247,7 +249,7 @@ int Palm::displayBrightnessResolution() const default: res = 1; } - + return res; } @@ -261,6 +263,7 @@ bool Palm::setDisplayBrightness( int bright ) int numberOfSteps = displayBrightnessResolution(); int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255; + int fd = -1; switch ( d->m_model ) { @@ -268,8 +271,8 @@ bool Palm::setDisplayBrightness( int bright ) 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 ); @@ -277,8 +280,9 @@ bool Palm::setDisplayBrightness( int bright ) ::close( fd ); } break; - - default: res = false; + + default: + res = false; } return res; } -- cgit v0.9.0.2