|
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)); |