char * MyFGetS(char *str, unsigned int size, FILE *file) { if (isterm(file)) { #ifndef WGP_CONSOLE char * p = TextGetS(&textwin, str, size); if (p != NULL) return str; return NULL; #else unsigned int i; int c; c = ConsoleGetch(); if (c == EOF) return NULL; for (i = 1; i < size - 1; i++) { c = ConsoleGetch(); if (str[i] == EOF) break; str[i] = c; if (str[i] == '\n') break; } str[i] = NUL; return str; #endif } return fgets(str,size,file); }
int MyFGetC(FILE *file) { if (isterm(file)) return GETCH(); return fgetc(file); }
int MyFPrintF(FILE *file, const char *fmt, ...) { int count; va_list args; va_start(args, fmt); if (isterm(file)) { char *buf; count = vsnprintf(NULL, 0, fmt, args) + 1; if (count == 0) count = MAXPRINTF; va_end(args); va_start(args, fmt); buf = (char *) malloc(count * sizeof(char)); count = vsnprintf(buf, count, fmt, args); PUTS(buf); free(buf); } else { count = vfprintf(file, fmt, args); } va_end(args); return count; }
int MyFGetC(FILE *file) { if (isterm(file)) { return MyGetChE(); } return fgetc(file); }
int MyFPutS(const char *str, FILE *file) { if (isterm(file)) { PUTS(str); TEXTMESSAGE; return (*str); } return fputs(str,file); }
int MyFPutC(int ch, FILE *file) { if (isterm(file)) { PUTCH(ch); TEXTMESSAGE; return ch; } return fputc(ch,file); }
size_t MyFWrite(const void *ptr, size_t size, size_t n, FILE *file) { if (isterm(file)) { size_t i; for (i=0; i<n; i++) TextPutCh(&textwin, ((BYTE *)ptr)[i]); TextMessage(); return n; } return fwrite(ptr, size, n, file); }
int MyFPutS(const char *str, FILE *file) { if (isterm(file)) { TextPutS(&textwin, (char*) str); #ifndef WGP_CONSOLE TextMessage(); #endif return (*str); /* different from Borland library */ } return fputs(str,file); }
int MyFPutC(int ch, FILE *file) { if (isterm(file)) { MyPutCh((BYTE)ch); #ifndef WGP_CONSOLE TextMessage(); #endif return ch; } return fputc(ch,file); }
size_t MyFWrite(const void *ptr, size_t size, size_t n, FILE *file) { if (isterm(file)) { size_t i; for (i = 0; i < n; i++) PUTCH(((BYTE *)ptr)[i]); TEXTMESSAGE; return n; } return fwrite(ptr, size, n, file); }
size_t MyFRead(void *ptr, size_t size, size_t n, FILE *file) { if (isterm(file)) { size_t i; for (i=0; i<n; i++) ((BYTE *)ptr)[i] = TextGetChE(&textwin); TextMessage(); return n; } return fread(ptr, size, n, file); }
char * MyFGetS(char *str, unsigned int size, FILE *file) { char *p; if (isterm(file)) { p = TextGetS(&textwin, str, size); if (p != (char *)NULL) return str; return (char *)NULL; } return fgets(str,size,file); }
size_t MyFRead(void *ptr, size_t size, size_t n, FILE *file) { if (isterm(file)) { size_t i; for (i = 0; i < n; i++) ((BYTE *)ptr)[i] = GETCH(); TEXTMESSAGE; return n; } return fread(ptr, size, n, file); }
int MyVFPrintF(FILE *file, const char *fmt, va_list args) { int count; if (isterm(file)) { char *buf; va_list args_copied; va_copy(args_copied, args); count = vsnprintf(NULL, 0U, fmt, args) + 1; if (count == 0) count = MAXPRINTF; va_end(args_copied); buf = (char *) malloc(count * sizeof(char)); count = vsnprintf(buf, count, fmt, args); TextPutS(&textwin, buf); free(buf); } else { count = vfprintf(file, fmt, args); } return count; }