SysCalls.c: Add IGNSPEC to the "sane" termios settings so that, by default, function keys and other special keys are ignored.
fvwrite.c:
Line 109: Change test to less-than zero since zero is a valid value.
Line 113: Change test to greater-than zero since we only want to loop when there are characters available.
Line 114: Force uio_resid to zero since it might have become negative on line 113.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: daryl.mcdaniel@intel.com
Reviewed-by: erik.c.bjorge@intel.com
Reviewed-by: lee.g.rosenbaum@intel.com
Reviewed-by: jaben.carsey@intel.com
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14013
6f19259b-4bc3-4df7-8a09-
765794883524
GETIOV(;);\r
w = (*fp->_write)(fp->_cookie, p,\r
(int)MIN(len, BUFSIZ));\r
- if (w <= 0)\r
+ if (w < 0)\r
goto err;\r
p += w;\r
len -= w;\r
- } while ((uio->uio_resid -= w) != 0);\r
+ } while ((uio->uio_resid -= w) > 0);\r
+ uio->uio_resid = 0; // Just in case it went negative such as when NL is expanded to CR NL\r
} else if ((fp->_flags & __SLBF) == 0) {\r
/*\r
* Fully buffered: fill partially full buffer, if any,\r
if((oflags & O_TTY_INIT) && (filp->f_iflags & _S_ITTY) && (filp->devdata != NULL)) {\r
// Initialize the device's termios flags to a "sane" value\r
Termio = &((cIIO *)filp->devdata)->Termio;\r
- Termio->c_iflag = ICRNL;\r
+ Termio->c_iflag = ICRNL | IGNSPEC;\r
Termio->c_oflag = OPOST | ONLCR | OXTABS | ONOEOT | ONOCR | ONLRET | OCTRL;\r
Termio->c_lflag = ECHO | ECHOE | ECHONL | ICANON;\r
Termio->c_cc[VERASE] = 0x08; // ^H Backspace\r