void __start(void) { int argc; char *ro_args, *args, **argv; /* Clear BSS */ memset(edata, 0, end - edata); /* Define heap. */ setheap(end, (void *)(HIMEM - 0x1000)); ro_args = os_get_env(NULL, NULL); args = alloc(strlen(ro_args)+10); /* some spare extra */ strcpy(args, ro_args); argc = splitargs(args, 0, NULL); argv = alloc(argc * sizeof(*argv)); if (argv == NULL) panic("alloc of argv failed"); argc = splitargs(args, 1, argv); /* start real main() */ os_exit(NULL, main(argc, argv)); }
static BOOLEAN is_redirecting_stdin(void) { BOOLEAN redirecting_stdin = FALSE; char *cp = NULL; cp = os_get_env("HTTP_HOST"); if (cp) { memFree(cp, "cp"); return(FALSE); } if (isatty(fileno(stdin))) return(FALSE); else return(TRUE); return(redirecting_stdin); }