msvcrt: fgetc needs to use unsigned parameters.

Spotted by and adapted from test written by Tobias Ringström.
This commit is contained in:
Duane Clark 2006-09-25 14:28:22 -07:00 committed by Alexandre Julliard
parent 7a61a617b3
commit 9a71b483d3
2 changed files with 22 additions and 3 deletions

View File

@ -2127,12 +2127,12 @@ int CDECL MSVCRT__filbuf(MSVCRT_FILE* file)
*/
int CDECL MSVCRT_fgetc(MSVCRT_FILE* file)
{
char *i;
int j;
unsigned char *i;
unsigned int j;
do {
if (file->_cnt>0) {
file->_cnt--;
i = file->_ptr++;
i = (unsigned char *)file->_ptr++;
j = *i;
} else
j = MSVCRT__filbuf(file);

View File

@ -255,6 +255,24 @@ static WCHAR* AtoW( char* p )
return buffer;
}
static void test_fgetc( void )
{
char* tempf;
FILE *tempfh;
int ich=0xe0, ret;
tempf=_tempnam(".","wne");
tempfh = fopen(tempf,"w+");
fputc(ich, tempfh);
fputc(ich, tempfh);
rewind(tempfh);
ret = fgetc(tempfh);
ok(ich == ret, "First fgetc expected %x got %x\n", ich, ret);
ret = fgetc(tempfh);
ok(ich == ret, "Second fgetc expected %x got %x\n", ich, ret);
fclose(tempfh);
}
static void test_fgetwc( void )
{
#define LLEN 512
@ -773,6 +791,7 @@ START_TEST(file)
test_fileops();
test_readmode(FALSE); /* binary mode */
test_readmode(TRUE); /* ascii mode */
test_fgetc();
test_fgetwc();
test_ctrlz();
test_file_put_get();