- spawn->regs.h.ah = 0x25;
- spawn->regs.h.al = spawn->int_no;
- spawn->regs.x.dx = int_offset;
- spawn->sregs.ds = int_segment;
- intdosx(&spawn->regs, &spawn->regs, &spawn->sregs);
-}
-\f
-/* XXX */
-
-#define INTERRUPT_NUMBER 73
-
-main(argc, argv, envp)
-int argc; /* Number of passed arguments */
-char *argv[]; /* Arguments passed */
-char *envp[]; /* Inherited environment */
-{
- Spawn spawned;
- static char command[256];
-
- ClearElement(spawned);
- spawned.int_no = INTERRUPT_NUMBER;
- if (argc == 1) {
- command[0] = 0;
- } else {
- char *cmdptr;
- int length;
-
- argc--;
- argv++;
- strcpy(command, " /c");
- cmdptr = command+strlen(command);
- while (argc) {
- if ((cmdptr+strlen(*argv)) >= (command+sizeof command)) {
- fprintf(stderr, "Argument list too long at argument *%s*.\n",
- *argv);
- return 0;
- }
- *cmdptr++ = ' '; /* Blank separators */
- strcpy(cmdptr, *argv);
- cmdptr += strlen(cmdptr);
- argc--;
- argv++;
- }
- length = strlen(command)-1;
- if (length < 0) {
- length = 0;
- }
- command[0] = length;
- }