/*--------------------------------------------------------------------------*/ /* */ /* */ /* ------------ Bit-Bucket Software, Co. */ /* \ 10001101 / Writers and Distributors of */ /* \ 011110 / Freely Available Software. */ /* \ 1011 / */ /* ------ */ /* */ /* (C) Copyright 1987-90, Bit Bucket Software Co., a Delaware Corporation. */ /* */ /* */ /* Turbo C routines for BinkleyTerm */ /* */ /* */ /* For complete details of the licensing restrictions, please refer */ /* to the License agreement, which is published in its entirety in */ /* the MAKEFILE and BT.C, and also contained in the file LICENSE.240. */ /* */ /* USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE */ /* BINKLEYTERM LICENSING AGREEMENT. IF YOU DO NOT FIND THE TEXT OF */ /* THIS AGREEMENT IN ANY OF THE AFOREMENTIONED FILES, OR IF YOU DO */ /* NOT HAVE THESE FILES, YOU SHOULD IMMEDIATELY CONTACT BIT BUCKET */ /* SOFTWARE CO. AT ONE OF THE ADDRESSES LISTED BELOW. IN NO EVENT */ /* SHOULD YOU PROCEED TO USE THIS FILE WITHOUT HAVING ACCEPTED THE */ /* TERMS OF THE BINKLEYTERM LICENSING AGREEMENT, OR SUCH OTHER */ /* AGREEMENT AS YOU ARE ABLE TO REACH WITH BIT BUCKET SOFTWARE, CO. */ /* */ /* */ /* You can contact Bit Bucket Software Co. at any one of the following */ /* addresses: */ /* */ /* Bit Bucket Software Co. FidoNet 1:104/501, 1:132/491, 1:141/491 */ /* P.O. Box 460398 AlterNet 7:491/0 */ /* Aurora, CO 80046 BBS-Net 86:2030/1 */ /* Internet f491.n132.z1.fidonet.org */ /* */ /* Please feel free to contact us at any time to share your comments about */ /* our software and/or licensing policies. */ /* */ /* */ /* This module is derived from an original work by Russell J. Price, who */ /* has graciously allowed us to use his code in this work. */ /* */ /*--------------------------------------------------------------------------*/ /* This module implements the utime() and _dos_read() functions for Turbo C, along with replacements for Turbo's IBM-specific cprintf(), cputs(), and putch() functions. */ #include #include /* #include "tos.h" */ #include #include #include #include #include "tc_utime.h" /* always uses modification time */ int cdecl utime(char *name, struct utimbuf *times) { int handle; struct date d; struct time t; struct ftime ft; #ifdef __DOS__ unixtodos(times->modtime, &d, &t); #endif #ifdef __TOS__ getdate(&d); gettime(&t); #endif if ( times ) { } ft.ft_tsec = t.ti_sec / 2; ft.ft_min = t.ti_min; ft.ft_hour = t.ti_hour; ft.ft_day = d.da_day; ft.ft_month = d.da_mon; ft.ft_year = d.da_year - 1980; if((handle = open(name, O_RDONLY)) == -1) return -1; setftime(handle, &ft); close(handle); return 0; } #ifndef __TOS__ int _dos_read(int fd, void far *buf, int nbytes, int *bytes_read) { union REGS regs; struct SREGS sregs; regs.h.ah = 0x3f; /* read file */ regs.x.bx = fd; regs.x.cx = nbytes; regs.x.dx = FP_OFF(buf); sregs.ds = FP_SEG(buf); *bytes_read = intdosx(®s, ®s, &sregs); return regs.x.cflag ? -1 : 0; } #endif #ifndef __TURBOC__ int _Cdecl cprintf(const char *format, ...) { va_list arg_ptr; va_start(arg_ptr, format); return vprintf(format, arg_ptr); } /* dunno why Turbo's declares this as int when the manual says it returns nothing */ int _Cdecl cputs (const char *str) { printf("%s", str); return 0; } int _Cdecl putch(int ch) { return putchar(ch); } #endif #ifdef __TOS__ char *mktemp(char *pat) { return tmpnam(pat); } void putenv(char *var) { if ( var ) { } /* Nothing */ } void tzset(void) { /* Nothing */ } #endif