Due to the new Caldera license the original BSD sources are available under the BSD license.
/* kern_exec.c 6.2 83/08/23 */ [...] execve() { [...] /* * Read in first few bytes of file for segment sizes, ux_mag: * 407 = plain executable * 410 = RO text * 413 = demand paged RO text * Also an ASCII line beginning with #! is * the file name of a ``shell'' and arguments may be prepended * to the argument list if given here. * * SHELL NAMES ARE LIMITED IN LENGTH. * * ONLY ONE ARGUMENT MAY BE PASSED TO THE SHELL FROM * THE ASCII LINE. */ [...] switch (u.u_exdata.ux_mag) { [...] default: if (u.u_exdata.ux_shell[0] != '#' || u.u_exdata.ux_shell[1] != '!' || indir) { u.u_error = ENOEXEC; goto bad; } cp = &u.u_exdata.ux_shell[2]; /* skip "#!" */ while (cp < &u.u_exdata.ux_shell[SHSIZE]) { if (*cp == '\t') *cp = ' '; else if (*cp == '\n') { *cp = '\0'; break; } cp++; } if (*cp != '\0') { u.u_error = ENOEXEC; goto bad; } cp = &u.u_exdata.ux_shell[2]; while (*cp == ' ') cp++; u.u_dirp = cp; while (*cp && *cp != ' ') cp++; sharg = NULL; if (*cp) { *cp++ = '\0'; while (*cp == ' ') cp++; if (*cp) { bcopy((caddr_t)cp, (caddr_t)cfarg, SHSIZE); sharg = cfarg; } } [...]