From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- private/crt32/stdio/fputc.c | 89 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 private/crt32/stdio/fputc.c (limited to 'private/crt32/stdio/fputc.c') diff --git a/private/crt32/stdio/fputc.c b/private/crt32/stdio/fputc.c new file mode 100644 index 000000000..acb204f2d --- /dev/null +++ b/private/crt32/stdio/fputc.c @@ -0,0 +1,89 @@ +/*** +*fputc.c - write a character to an output stream +* +* Copyright (c) 1985-1993, Microsoft Corporation. All rights reserved. +* +*Purpose: +* defines fputc() - writes a character to a stream +* defines fputwc() - writes a wide character to a stream +* +*Revision History: +* 09-01-83 RN initial version +* 11-09-87 JCR Multi-thread support +* 12-11-87 JCR Added "_LOAD_DS" to declaration +* 05-27-88 PHG Merged DLL and normal versions +* 06-14-88 JCR Near reference to _iob[] entries; improve REG variables +* 08-25-88 GJF Don't use FP_OFF() macro for the 386 +* 06-21-89 PHG Added putc() function +* 08-28-89 JCR Removed _NEAR_ for 386 +* 02-15-90 GJF Fixed copyright and indents. +* 03-19-90 GJF Replaced _LOAD_DS with _CALLTYPE1, added #include +* and removed #include . Also, +* removed some leftover 16-bit support. +* 07-24-90 SBM Replaced by +* 10-02-90 GJF New-style function declarators. +* 04-26-93 CFW Wide char enable. +* 04-30-93 CFW Remove wide char support to fputwc.c. +* +*******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +/*** +*int fputc(ch, stream) - write a character to a stream +* +*Purpose: +* Writes a character to a stream. Function version of putc(). +* +*Entry: +* int ch - character to write +* FILE *stream - stream to write to +* +*Exit: +* returns the character if successful +* returns EOF if fails +* +*Exceptions: +* +*******************************************************************************/ + +int _CRTAPI1 fputc ( + int ch, + FILE *str + ) +{ + REG1 FILE *stream; + REG2 int retval; +#ifdef MTHREAD + int index; +#endif + + assert(str != NULL); + + /* Init stream pointer */ + stream = str; + +#ifdef MTHREAD + index = _iob_index(stream); +#endif + _lock_str(index); + retval = _putc_lk(ch,stream); + _unlock_str(index); + + return(retval); +} + +#undef putc + +int _CRTAPI1 putc ( + int ch, + FILE *str + ) +{ + return fputc(ch, str); +} -- cgit v1.2.3