← Commit list

f36635cec

Glenn L McGrath
Glenn L McGrath
2003-09-13
FAILED Duration: 69s

Subject

Fix the following testcase by disabling global substitution if the regex is anchored to the start of line, there can be only one subst. echo "aah" | sed 's/^a/b/g'

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/sed.c+5 -3
@@ -43,11 +43,11 @@
Unsupported features:
- GNU extensions
- - and lots, lots more.
+ - and more.
Bugs:
- - Cant subst globally using ^ or $ in regex, eg. "aah" | sed 's/^a/b/g'
+ - lots
Reference http://www.opengroup.org/onlinepubs/007904975/utilities/sed.html
*/
@@ -299,7 +299,9 @@ static int parse_subst_cmd(sed_cmd_t * const sed_cmd, const char *substr)
while (substr[++idx]) {
switch (substr[idx]) {
case 'g':
- sed_cmd->sub_g = 1;
+ if (match[0] != '^') {
+ sed_cmd->sub_g = 1;
+ }
break;
/* Hmm, i dont see the I option mentioned in the standard */
case 'I':