Author: aandrejevic
Date: Fri Apr 24 23:47:54 2015
New Revision: 67387
URL:
http://svn.reactos.org/svn/reactos?rev=67387&view=rev
Log:
[NTVDM]
Fix INT 21h, AH = 29h: stop at the first non-printable character, make
all the characters uppercase in the FCB.
Modified:
trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/…
==============================================================================
--- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.c [iso-8859-1] Fri Apr 24
23:47:54 2015
@@ -1794,7 +1794,7 @@
/* Parse the file name */
i = 0;
- while (*FileName && (i < 8))
+ while ((*FileName >= 0x20) && (i < 8))
{
if (*FileName == '.') break;
else if (*FileName == '*')
@@ -1803,7 +1803,7 @@
break;
}
- Fcb->FileName[i++] = *FileName++;
+ Fcb->FileName[i++] = RtlUpperChar(*FileName++);
}
/* Fill the whole field with blanks only if bit 2 is not set */
@@ -1813,14 +1813,14 @@
}
/* Skip to the extension part */
- while (*FileName && *FileName != '.') FileName++;
+ while (*FileName >= 0x20 && *FileName != '.') FileName++;
if (*FileName == '.') FileName++;
/* Now parse the extension */
i = 0;
FillChar = ' ';
- while (*FileName && (i < 3))
+ while ((*FileName >= 0x20) && (i < 3))
{
if (*FileName == '*')
{
@@ -1828,7 +1828,7 @@
break;
}
- Fcb->FileExt[i++] = *FileName++;
+ Fcb->FileExt[i++] = RtlUpperChar(*FileName++);
}
/* Fill the whole field with blanks only if bit 3 is not set */