home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
OS2
/
BEAV132X.ZIP
/
SPAWN.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-01-06
|
2KB
|
77 lines
/*
* MS-DOS spawn command.com
*/
#include "def.h"
#ifdef OS2
#define MSDOS 1
#endif
extern char MSG_shell[];
extern char MSG_def_shell[];
extern char MSG_pmpt[];
extern char MSG_pt[];
extern char MSG_pme[];
extern char MSG_null[];
/* #include <dos.h> */
#ifdef MSDOS
#include "process.h"
#endif
char *cspec = NULL; /* Command string. */
char *pspec = NULL;
/*
* Create a subjob with a copy
* of the command intrepreter in it. When the
* command interpreter exits, mark the screen as
* garbage so that you do a full repaint.
*/
bool spawncli (f, n, k)
int f, n, k;
{
#ifdef MSDOS
char *getenv ();
#ifndef OS2
char old_prompt[NCOL];
char prompt_line[NCOL];
#endif
ttcolor (CTEXT); /* Normal color. */
ttmove (nrow - 1, 0); /* Last line. */
ttflush ();
ttcooked ();
#ifndef OS2
#ifndef IBM
strcpy (prompt_line, MSG_pmpt);
pspec = getenv (MSG_pt);
strcpy (old_prompt, pspec);
strcat (prompt_line, pspec);
if (strlen (prompt_line - strlen (MSG_pme)) >= 64)
/* VERY rude, but setenv not found */
{
if (putenv (MSG_pmpt) == -1)
exit (1);
}
else
if (putenv (prompt_line) == -1)
exit (1);
#endif
#endif
if (!cspec && !(cspec = getenv (MSG_shell)))/* jam */
cspec = MSG_def_shell;
spawnl (P_WAIT, cspec, MSG_null, NULL);
#ifndef OS2
putenv (MSG_pme);
if (putenv (old_prompt) == -1)
exit (1);
#endif
ttraw ();
sgarbf = TRUE;
#endif
return (TRUE);
}