aboutsummaryrefslogtreecommitdiffstats
path: root/gpgme/kdpipeiodevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gpgme/kdpipeiodevice.cpp')
-rw-r--r--gpgme/kdpipeiodevice.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/gpgme/kdpipeiodevice.cpp b/gpgme/kdpipeiodevice.cpp
index 67f8bf50..9e0179c9 100644
--- a/gpgme/kdpipeiodevice.cpp
+++ b/gpgme/kdpipeiodevice.cpp
@@ -276,7 +276,7 @@ bool KDPipeIODevice::open( int fd, OpenMode mode ) { KDAB_CHECK_THIS;
bool KDPipeIODevice::open( Qt::HANDLE h, OpenMode mode ) { KDAB_CHECK_THIS;
#ifdef Q_OS_WIN32
- return d->doOpen( 0, h, mode );
+ return d->doOpen( -1, h, mode );
#else
Q_UNUSED( h );
Q_UNUSED( mode );
@@ -341,12 +341,15 @@ void KDPipeIODevice::Private::emitReadyRead()
bool KDPipeIODevice::Private::doOpen( int fd_, Qt::HANDLE handle_, OpenMode mode_ ) {
- if ( q->isOpen() || fd_ < 0 )
+ if ( q->isOpen() )
return false;
#ifdef Q_OS_WIN32
if ( !handle_ )
return false;
+#else
+ if ( fd_ < 0 )
+ return false;
#endif
if ( !(mode_ & ReadWrite) )
@@ -662,8 +665,10 @@ void KDPipeIODevice::close() { KDAB_CHECK_THIS;
waitAndDelete( d->reader );
#undef waitAndDelete
#ifdef Q_OS_WIN32
- qDebug( "Closing handle" );
- CloseHandle( d->handle );
+ if ( d->fd != -1 )
+ _close( d->fd );
+ else
+ CloseHandle( d->handle );
#else
::close( d->fd );
#endif