Backslashes shouldn't be treated as backticks.

This commit is contained in:
Matt Kraai 2000-09-14 00:43:20 +00:00
parent cbbe4d6bc2
commit 131241f71c
3 changed files with 33 additions and 30 deletions

21
lash.c
View File

@ -1003,16 +1003,6 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
returnCommand = *commandPtr + (src - *commandPtr) + 1;
break;
case '\\':
src++;
if (!*src) {
errorMsg("character expected after \\\n");
freeJob(job);
return 1;
}
if (*src == '*' || *src == '[' || *src == ']'
|| *src == '?') *buf++ = '\\';
/* fallthrough */
#ifdef BB_FEATURE_SH_BACKTICKS
case '`':
/* Exec a backtick-ed command */
@ -1082,6 +1072,17 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
}
break;
#endif // BB_FEATURE_SH_BACKTICKS
case '\\':
src++;
if (!*src) {
errorMsg("character expected after \\\n");
freeJob(job);
return 1;
}
if (*src == '*' || *src == '[' || *src == ']'
|| *src == '?') *buf++ = '\\';
/* fallthrough */
default:
*buf++ = *src;
}

21
sh.c
View File

@ -1003,16 +1003,6 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
returnCommand = *commandPtr + (src - *commandPtr) + 1;
break;
case '\\':
src++;
if (!*src) {
errorMsg("character expected after \\\n");
freeJob(job);
return 1;
}
if (*src == '*' || *src == '[' || *src == ']'
|| *src == '?') *buf++ = '\\';
/* fallthrough */
#ifdef BB_FEATURE_SH_BACKTICKS
case '`':
/* Exec a backtick-ed command */
@ -1082,6 +1072,17 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
}
break;
#endif // BB_FEATURE_SH_BACKTICKS
case '\\':
src++;
if (!*src) {
errorMsg("character expected after \\\n");
freeJob(job);
return 1;
}
if (*src == '*' || *src == '[' || *src == ']'
|| *src == '?') *buf++ = '\\';
/* fallthrough */
default:
*buf++ = *src;
}

View File

@ -1003,16 +1003,6 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
returnCommand = *commandPtr + (src - *commandPtr) + 1;
break;
case '\\':
src++;
if (!*src) {
errorMsg("character expected after \\\n");
freeJob(job);
return 1;
}
if (*src == '*' || *src == '[' || *src == ']'
|| *src == '?') *buf++ = '\\';
/* fallthrough */
#ifdef BB_FEATURE_SH_BACKTICKS
case '`':
/* Exec a backtick-ed command */
@ -1082,6 +1072,17 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi
}
break;
#endif // BB_FEATURE_SH_BACKTICKS
case '\\':
src++;
if (!*src) {
errorMsg("character expected after \\\n");
freeJob(job);
return 1;
}
if (*src == '*' || *src == '[' || *src == ']'
|| *src == '?') *buf++ = '\\';
/* fallthrough */
default:
*buf++ = *src;
}