dmt@mtunb.ATT.COM (Dave Tutelman) (03/25/89)
Thanks to Dennis for posting CPR. It seems to work quite nicely under
the UNIX operating system. However, I'm not sure what "ported to MSDOS"
means. A colleague who uses Microsoft C still hasn't found the right
combination of model and stack size, and I needed to make further changes
to port it to Turbo C. Since the changes were minimal, I'm just showing
them in text form (not even a "patch").
Changes to work with TURBO C:
1. Disable the warning "Possibly incorrect assignment" in the
Common Errors window of Compiler Options. The program has
a bunch of deliberate tests that are also assignments,
that show up as warnings otherwise.
2. Turn on the defined value TURBOC, as well as MSDOS, to catch
change #3.
3. Make the changes below to the function "CatchSignalsPlease".
The action function should be "void" (even for UNIX), and
TURBO C's signal function returns "void".
================ AS POSTED =================
CatchSignalsPlease(action)
int (*action)();
{
if( signal(SIGINT, SIG_IGN) != SIG_IGN ) signal(SIGINT, action);
#ifndef MSDOS
=============== FOR TURBO C ==================
CatchSignalsPlease(action)
void (*action)();
{
#ifndef TURBOC
if( signal(SIGINT, SIG_IGN) != SIG_IGN ) signal(SIGINT, action);
#else /* TURBOC */
signal (SIGINT, action);
#endif
#ifndef MSDOS
================ END ======================
With these changes, it still works fine under UNIX, but also works
under MSDOS with Turbo C.
+---------------------------------------------------------------+
| Dave Tutelman |
| Physical - AT&T Bell Labs - Lincroft, NJ |
| Logical - ...att!mtunb!dmt |
| Audible - (201) 576 2442 |
+---------------------------------------------------------------+