Usermode/libc #6 Fix string.h functions, add some more unit tests
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / stdio.c
index a0008d3..55fd521 100644 (file)
@@ -692,6 +692,10 @@ EXPORT size_t fread(void *ptr, size_t size, size_t num, FILE *fp)
        if( _GetFileMode(fp) != FILE_FLAG_MODE_READ ) {\r
                errno = 0;\r
                LOG_WARN("not open for read");\r
+               if( fp == stdin ) {\r
+                       LOG_WARN("BUGCHECK FAIL: stdin was not open for read");\r
+                       exit(129);\r
+               }\r
                return -1;\r
        }\r
 \r
@@ -791,13 +795,12 @@ EXPORT char *fgets(char *s, int size, FILE *fp)
  */\r
 EXPORT int fputc(int c, FILE *fp)\r
 {\r
-       char    ch = c;\r
+       unsigned char   ch = c;\r
        return fwrite(&ch, 1, 1, fp);\r
 }\r
 \r
 EXPORT int putchar(int c)\r
 {\r
-       c &= 0xFF;\r
        return fputc(c, stdout);\r
 }\r
 \r
@@ -807,7 +810,7 @@ EXPORT int putchar(int c)
  */\r
 EXPORT int fgetc(FILE *fp)\r
 {\r
-       char    ret = 0;\r
+       unsigned char   ret = 0;\r
        if( fread(&ret, 1, 1, fp) != 1 )\r
                return -1;\r
        return ret;\r
@@ -821,7 +824,6 @@ EXPORT int getchar(void)
 \r
 EXPORT int puts(const char *str)\r
 {\r
-       \r
        if(!str)        return 0;\r
         int    len = strlen(str);\r
        \r

UCC git Repository :: git.ucc.asn.au