* Check if this is a special character
* NOTE: \r and \n are handled by the underlying driver!
*/
- if (Character < 0x20 && Character != 0x0A && Character != 0x0D)
+ if (Character < 0x20 && Character != '\r' && Character != '\n')
{
DosPrintCharacter(DOS_OUTPUT_HANDLE, '^');
Character += 'A' - 1;
{
setCF(0);
+ /* Print an extra newline */
+ DosPrintCharacter(DOS_OUTPUT_HANDLE, '\r');
+ DosPrintCharacter(DOS_OUTPUT_HANDLE, '\n');
+
/* Call interrupt 0x23 */
Int32Call(&DosContext, 0x23);
PDOS_DEVICE_NODE Node = DosGetDriverNode(Descriptor->DevicePointer);
BYTE LineSize = 0;
PCHAR Pointer = FAR_POINTER(Buffer);
+ CHAR Character;
- while (TRUE)
+ do
{
USHORT Amount = 1;
- CHAR Character;
/* Read a character from the device */
Node->ReadRoutine(Node,
}
}
- /* Stop on a carriage return */
- if (Character == '\r') break;
- }
+ /* Stop on a carriage return */
+ } while (Character != '\r');
return LineSize - 1;
}
{
/* Translated input from a character device that isn't CON */
PCHAR Pointer = FAR_POINTER(Buffer);
+ CHAR Character;
while (*BytesRead < Count)
{
USHORT Amount = 1;
- CHAR Character;
/* Read a character from the device */
Node->ReadRoutine(Node,