View | Details | Raw Unified
Collapse All | Expand All

(-) /src/subshell.c.000 (-16 lines)
 Lines 745-773   subshell_name_quote (const char *s) Link Here 
    memcpy (d, cmd_start, len);
    memcpy (d, cmd_start, len);
    d += len;
    d += len;
    /*
     * Print every character in octal format with the leading backslash.
     * tcsh and zsh may require 4-digit octals, bash < 2.05b doesn't like them.
     */
    if (subshell_type == BASH) {
	for (; *s; s++) {
	for (; *s; s++) {
	    /* Must quote numbers, so that they are not glued to octals */
	    if (isalpha ((unsigned char) *s)) {
	    if (isalpha ((unsigned char) *s)) {
		*d++ = (unsigned char) *s;
		*d++ = (unsigned char) *s;
	    } else {
	    } else {
		sprintf (d, "\\%03o", (unsigned char) *s);
		d += 4;
	    }
	}
    } else {
	for (; *s; s++) {
	    if (isalnum ((unsigned char) *s)) {
		*d++ = (unsigned char) *s;
	    } else {
		sprintf (d, "\\0%03o", (unsigned char) *s);
		sprintf (d, "\\0%03o", (unsigned char) *s);
		d += 5;
		d += 5;
	    }
	    }
	}
    }
    }
    memcpy (d, common_end, sizeof (common_end));
    memcpy (d, common_end, sizeof (common_end));