summaryrefslogtreecommitdiffstats
path: root/private/crt32/misc/wrt2err.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/misc/wrt2err.c')
-rw-r--r--private/crt32/misc/wrt2err.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/private/crt32/misc/wrt2err.c b/private/crt32/misc/wrt2err.c
new file mode 100644
index 000000000..40ebe675a
--- /dev/null
+++ b/private/crt32/misc/wrt2err.c
@@ -0,0 +1,84 @@
+/***
+*wrt2err.c - write an LSTRING to stderr (OS/2 version)
+*
+* Copyright (c) 1989-1991, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* This module contains a routine __wrt2err that writes an LSTRING
+* (one byte length followed by the several bytes of the string)
+* to the standard error handle (2). This is a helper routine used
+* for MATH error messages (and also FORTRAN error messages). It
+* is in the C library rather than the math library because there
+* are separate MS-DOS and MS OS/2 versions.
+*
+*Revision History:
+* 06-30-89 PHG module created, based on asm version
+* 03-16-90 GJF Made calling type _CALLTYPE1, added #include
+* <cruntime.h> and fixed the copyright. Also, cleaned
+* up the formatting a bit.
+* 07-24-90 SBM Removed '32' from API names
+* 10-04-90 GJF New-style function declarator.
+* 12-04-90 SRW Changed to include <oscalls.h> instead of <doscalls.h>
+* 04-26-91 SRW Removed level 3 warnings
+* 07-18-91 GJF Replaced call to DbgPrint with WriteFile to standard
+* error handle [_WIN32_].
+*
+*******************************************************************************/
+
+#ifndef _POSIX_
+
+#include <cruntime.h>
+#include <oscalls.h>
+#include <internal.h>
+
+/***
+*__wrt2err(msg) - write an LSTRING to stderr
+*
+*Purpose:
+* Takes a near pointer in BX, which is a pointer to an LSTRING which
+* is to be written to standard error. An LSTRING is a one-byte length
+* followed by that many bytes for the character string (as opposed to
+* a null-terminated string).
+*
+*Entry:
+* char *msg = pointer to LSTRING to write to standard error.
+*
+*Exit:
+* Nothing returned.
+*
+*Exceptions:
+* None handled.
+*
+*******************************************************************************/
+
+void __wrt2err (
+ char *msg
+ )
+{
+ unsigned long length; /* length of string to write */
+ unsigned long numwritten; /* number of bytes written */
+
+ length = *msg++; /* 1st byte is length */
+
+ /* write the message to stderr */
+#ifdef _CRUISER_
+
+ DOSWRITE(2, msg, length, &numwritten);
+
+#else /* ndef _CRUISER_ */
+
+#ifdef _WIN32_
+
+ WriteFile((HANDLE)_osfhnd[2], msg, length, &numwritten, NULL);
+
+#else /* ndef _WIN32_ */
+
+#error ERROR - ONLY CRUISER OR WIN32 TARGET SUPPORTED!
+
+#endif /* _WIN32_ */
+
+#endif /* _CRUISER_ */
+}
+
+#endif /* _POSIX_ */
+