sed: only dollars as first address are a problem for -u
This commit is contained in:
parent
a86de839ca
commit
1d0f8a7e51
1 changed files with 5 additions and 4 deletions
|
@ -96,7 +96,7 @@ SedCom pspace[MAXCMDS]; /* Command storage */
|
||||||
SedCom *pend = pspace+MAXCMDS; /* End of command storage */
|
SedCom *pend = pspace+MAXCMDS; /* End of command storage */
|
||||||
SedCom *rep = pspace; /* Current fill point */
|
SedCom *rep = pspace; /* Current fill point */
|
||||||
|
|
||||||
int dollars; /* Number of dollar addresses */
|
int dollars; /* Number of dollar (first) addresses */
|
||||||
|
|
||||||
Reprog *lastre; /* Last regular expression */
|
Reprog *lastre; /* Last regular expression */
|
||||||
Resub subexp[MAXSUB]; /* sub-patterns of pattern match*/
|
Resub subexp[MAXSUB]; /* sub-patterns of pattern match*/
|
||||||
|
@ -290,6 +290,8 @@ comploop:
|
||||||
|
|
||||||
address(&rep->ad1);
|
address(&rep->ad1);
|
||||||
if (rep->ad1.type != A_NONE) {
|
if (rep->ad1.type != A_NONE) {
|
||||||
|
if (rep->ad1.type == A_DOL)
|
||||||
|
dollars++;
|
||||||
if (rep->ad1.type == A_LAST) {
|
if (rep->ad1.type == A_LAST) {
|
||||||
if (!lastre)
|
if (!lastre)
|
||||||
quit("First RE may not be null");
|
quit("First RE may not be null");
|
||||||
|
@ -765,10 +767,9 @@ address(Addr *ap)
|
||||||
int c;
|
int c;
|
||||||
long lno;
|
long lno;
|
||||||
|
|
||||||
if((c = *cp++) == '$'){
|
if((c = *cp++) == '$')
|
||||||
ap->type = A_DOL;
|
ap->type = A_DOL;
|
||||||
dollars++;
|
else if(c == '/') {
|
||||||
}else if(c == '/') {
|
|
||||||
seof = c;
|
seof = c;
|
||||||
if (ap->rp = compile())
|
if (ap->rp = compile())
|
||||||
ap->type = A_RE;
|
ap->type = A_RE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue