|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 1011 (0x3f3)
Types: TextFile
Names: »spawn.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦this⟧ »EUUGD11/euug-87hel/sec1/micrognu/sys/osk/spawn.c«
/*
* Name: MicroEMACS
* OS9/68k Spawn Shell
* Version: 29ral
* Last edit: 04/20/86
* By: Blarson@Usc-Ecl.Arpa
*
*/
#include "def.h"
#include <sgstat.h>
extern struct sgbuf oldtty; /* There really should be a */
extern struct sgbuf newtty; /* nicer way of doing this, so */
spawncli(f, n, k)
/* what are f, n, and k? They */
/* arn't used by ultrix, so I */
/* ignore them too. */
{
register int pid;
register int wpid;
int status;
ttcolor(CTEXT);
ttnowindow();
ttmove(nrow-1, 0);
if (epresf != FALSE) {
tteeol();
epresf = FALSE;
}
ttflush();
if(_ss_opt(0, &oldtty) == -1) {
ewprintf("_ss_opt #1 to terminal failed");
return (FALSE);
}
if((pid=os9fork("shell", 0, "", 0, 0, 0, 0)) == -1) {
ewprintf("Failed to create process");
return (FALSE);
}
while ((wpid=wait(&status))>=0 && wpid!=pid)
;
sgarbf = TRUE; /* Force repaint. */
if(_ss_opt(0, &newtty) == -1) {
ewprintf("_ss_opt #2 to terminal failed");
return (FALSE);
}
return (TRUE);
}