1 /*
2  * Modified from the MANX croot to fit the rogue requirements
3  */
4 
5 static char **Argv;
6 static int Argc;
7 
8 noper()
9 {
10 	return 0;
11 }
12 
13 int (*cls_)() = noper;
14 
15 Croot(cp, first)
16 register char *cp;
17 {
18 	register char **cpp;
19 	char *sbrk();
20 
21 	Argv = (char **)sbrk((first+1)*sizeof(char *));
22 	Argv[0] = "";
23 	cpp = &Argv[Argc = first];
24 	for (;;) {
25 		while (*cp == ' ' || *cp == '\t')
26 			++cp;
27 		if (*cp == 0)
28 			break;
29 		{
30 			*cpp++ = cp;
31 			Argc++;
32 			if (sbrk(sizeof(char *)) == (char *)-1) {
33 				write(2, "Too many args.", 14);
34 				_exit(200);
35 			}
36 			while (*++cp)
37 				if (*cp == ' ' || *cp == '\t') {
38 					*cp++ = 0;
39 					break;
40 				}
41 		}
42 	}
43 	*cpp = 0;
44 	main(Argc,Argv);
45 	exit(0);
46 }
47 
48 exit(code)
49 {
50 	(*cls_)();
51 #ifdef SDEBUG
52 	ComOff();
53 #endif
54 	unsetup();
55 	_exit(code);
56 }
57 
58 