From: John Levon Date: Wed, 31 Jul 2002 04:40:31 +0000 (+0000) Subject: fix bug so inadvertent errno does not break connection X-Git-Tag: 1.6.10~18724 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=f383b26ec6c478fa6edc4c8ccf618eb9cae4a0bc;p=features.git fix bug so inadvertent errno does not break connection git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4814 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/ChangeLog b/src/ChangeLog index 1455f1133a..b3a12c5f00 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2002-07-31 John Levon + + * lyxserver.C: don't let incidental errors get + in the way (errno) + 2002-07-30 John Levon * lyxfunc.C: disable character dialog in ERT inset (partial fix) diff --git a/src/lyxserver.C b/src/lyxserver.C index 9f64d8f9be..35d9829e6b 100644 --- a/src/lyxserver.C +++ b/src/lyxserver.C @@ -271,7 +271,9 @@ void LyXComm::read_ready() errno = 0; int status; // the single = is intended here. - while ((status = read(infd, charbuf, CMDBUFLEN-1))) { + while ((status = read(infd, charbuf, CMDBUFLEN - 1))) { + int rerrno = errno; + if (status > 0) { charbuf[status]= '\0'; // turn it into a c string lsbuf += rtrim(charbuf, "\r"); @@ -289,14 +291,13 @@ void LyXComm::read_ready() //\n or not \n? } } - if (errno == EAGAIN) { + if (rerrno == EAGAIN) { errno = 0; return; } - if (errno != 0) { - lyxerr << "LyXComm: " << strerror(errno) << endl; - if (!lsbuf.empty()) - { + if (rerrno != 0) { + lyxerr << "LyXComm: " << strerror(rerrno) << endl; + if (!lsbuf.empty()) { lyxerr << "LyxComm: truncated command: " << lsbuf << endl; lsbuf.erase();