shithub: riscv

Download patch

ref: 1d0f8a7e512e5abfea9c5d2fdf2fb4c05efc720b
parent: a86de839ca16c1d12780d3dcf245b8db81ac21cb
author: aiju <devnull@localhost>
date: Mon Nov 5 15:17:48 EST 2018

sed: only dollars as first address are a problem for -u

--- a/sys/src/cmd/sed.c
+++ b/sys/src/cmd/sed.c
@@ -96,7 +96,7 @@
 SedCom *pend = pspace+MAXCMDS;		/* End of command storage */
 SedCom *rep = pspace;			/* Current fill point */
 
-int	dollars;			/* Number of dollar addresses */
+int	dollars;			/* Number of dollar (first) addresses */
 
 Reprog	*lastre;			/* Last regular expression */
 Resub	subexp[MAXSUB];			/* sub-patterns of pattern match*/
@@ -290,6 +290,8 @@
 
 		address(&rep->ad1);
 		if (rep->ad1.type != A_NONE) {
+			if (rep->ad1.type == A_DOL)
+				dollars++;
 			if (rep->ad1.type == A_LAST) {
 				if (!lastre)
 					quit("First RE may not be null");
@@ -765,10 +767,9 @@
 	int c;
 	long lno;
 
-	if((c = *cp++) == '$'){
+	if((c = *cp++) == '$')
 		ap->type = A_DOL;
-		dollars++;
-	}else if(c == '/') {
+	else if(c == '/') {
 		seof = c;
 		if (ap->rp = compile())
 			ap->type = A_RE;