ash: speed up ${v//pattern/repl}
function old new delta subevalvar 1447 1457 +10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
1310d7b1d1
commit
53d45c934f
@ -7292,17 +7292,20 @@ subevalvar(char *start, char *str, int strloc,
|
||||
* x=$x$x;x=$x$x;x=$x$x;x=$x$x;x=$x$x;x=$x$x;x=$x$x;x=$x$x;x=$x$x;x=$x$x;echo ${#x}
|
||||
* echo "${x//:/|}"
|
||||
*/
|
||||
size_t n;
|
||||
if (strncmp(rmesc, str, no_meta_len) != 0)
|
||||
goto no_match;
|
||||
n = no_meta_len;
|
||||
loc = idx;
|
||||
if (!quotes) {
|
||||
loc += no_meta_len;
|
||||
} else {
|
||||
size_t n = no_meta_len;
|
||||
do {
|
||||
if (quotes && (unsigned char)*loc == CTLESC)
|
||||
if ((unsigned char)*loc == CTLESC)
|
||||
loc++;
|
||||
loc++;
|
||||
} while (--n != 0);
|
||||
}
|
||||
}
|
||||
//bb_error_msg("scanright('%s'):'%s'", str, loc);
|
||||
if (!loc) {
|
||||
char *restart_detect;
|
||||
|
Loading…
Reference in New Issue
Block a user