summaryrefslogtreecommitdiff
blob: 46ce6ec29860fec92a120a36b5b6d6729e94de50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- 1/sh/macro.c
+++ 1/sh/macro.c
@@ -322,6 +322,7 @@
 		if ((c = readwc(), dolchar(c))) {
 			struct namnod *n = (struct namnod *)NIL;
 			int		dolg = 0;
+			int		isg = 1;
 			int		vsize = -1;
 			BOOL		bra;
 			BOOL		nulflg;
@@ -362,6 +363,7 @@
 						atflag = 1;
 					}
 					dolg = 1;
+					isg++;
 					c = 1;
 				} else if (digit(c)) {
 					c -= '0';
@@ -622,7 +624,7 @@
 						error(badsub);
 					}
 				}
-			} else if (flags & setflg) {
+			} else if ((flags & setflg) && isg == 0) {
 				failed(id, unset);
 			}
 			goto retry;