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/d... ============================================================================== --- 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 */