static int 
load_script(struct linux_binprm *bprm, struct pt_regs *regs) {
    const char *i_arg, *i_name;
    char *cp;
    struct file *file;
     
    if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!'))
        return -ENOEXEC;
     
    if ((cp = strchr(bprm->buf, '\n')) == NULL)
	cp = bprm->buf+BINPRM_BUF_SIZE-1;
    *cp = '\0';
    while (cp > bprm->buf) {
	cp--;
	if ((*cp == ' ') || (*cp == '\t'))
	     *cp = '\0';
	else
	     break;
    }
    for (cp = bprm->buf+2; (*cp == ' ') || (*cp == '\t'); cp++);
    if (*cp == '\0') 
	return -ENOEXEC; /* No interpreter name found */
    i_name = cp;
    i_arg = NULL;
    for ( ; *cp && (*cp != ' ') && (*cp != '\t'); cp++);
    while ((*cp == ' ') || (*cp == '\t'))
	*cp++ = '\0';
    if (*cp)
	i_arg = cp;
    [...]
}
 
