From 90adec6981753547df5673d086666eaa720d0ab6 Mon Sep 17 00:00:00 2001 From: tpearson Date: Tue, 16 Aug 2011 00:32:41 +0000 Subject: [PATCH] Make kdmctl reliable Backport of KDE4 SVN revision 1196803 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1247445 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdm/kfrontend/kdmctl.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/kdm/kfrontend/kdmctl.c b/kdm/kfrontend/kdmctl.c index 72e133162..7f70a4ddc 100644 --- a/kdm/kfrontend/kdmctl.c +++ b/kdm/kfrontend/kdmctl.c @@ -93,15 +93,13 @@ exe( int fd, const char *in, int len ) fprintf( stderr, "Cannot send command\n" ); return 1; } - if ((len = read( fd, buf, sizeof(buf) )) <= 0) { - fprintf( stderr, "Cannot receive reply\n" ); - return 1; - } - if (len == sizeof(buf) && buf[sizeof(buf) - 1] != '\n') - fprintf( stderr, "Warning: reply is too long\n" ); - fwrite( buf, 1, len, stdout ); - if (len == sizeof(buf) && buf[sizeof(buf) - 1] != '\n') - puts( "[...]" ); + do { + if ((len = read(fd, buf, sizeof(buf))) <= 0) { + fprintf(stderr, "Cannot receive reply\n"); + return 1; + } + fwrite(buf, 1, len, stdout); + } while (buf[len - 1] != '\n'); return 0; }