diff options
Diffstat (limited to 'src/process.c')
| -rw-r--r-- | src/process.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/process.c b/src/process.c index 9015383b8b5..77c94f29211 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -1517,11 +1517,8 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) | |||
| 1517 | tem = program; | 1517 | tem = program; |
| 1518 | } | 1518 | } |
| 1519 | 1519 | ||
| 1520 | /* If program file name starts with /: for quoting a magic name, | 1520 | /* Remove "/:" from TEM. */ |
| 1521 | discard that. */ | 1521 | tem = remove_slash_colon (tem); |
| 1522 | if (SBYTES (tem) > 2 && SREF (tem, 0) == '/' | ||
| 1523 | && SREF (tem, 1) == ':') | ||
| 1524 | tem = Fsubstring (tem, make_number (2), Qnil); | ||
| 1525 | 1522 | ||
| 1526 | { | 1523 | { |
| 1527 | Lisp_Object arg_encoding = Qnil; | 1524 | Lisp_Object arg_encoding = Qnil; |
| @@ -3830,6 +3827,18 @@ Data that is unavailable is returned as nil. */) | |||
| 3830 | #endif | 3827 | #endif |
| 3831 | } | 3828 | } |
| 3832 | 3829 | ||
| 3830 | /* If program file NAME starts with /: for quoting a magic | ||
| 3831 | name, remove that, preserving the multibyteness of NAME. */ | ||
| 3832 | |||
| 3833 | Lisp_Object | ||
| 3834 | remove_slash_colon (Lisp_Object name) | ||
| 3835 | { | ||
| 3836 | return | ||
| 3837 | ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':') | ||
| 3838 | ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2, | ||
| 3839 | SBYTES (name) - 2, STRING_MULTIBYTE (name)) | ||
| 3840 | : name); | ||
| 3841 | } | ||
| 3833 | 3842 | ||
| 3834 | /* Turn off input and output for process PROC. */ | 3843 | /* Turn off input and output for process PROC. */ |
| 3835 | 3844 | ||