author | Lijo George<lijo.x.george@oracle.com> |
Thu, 26 Nov 2015 02:23:48 -0800 | |
changeset 5129 | 5431772f7235 |
parent 4305 | 90493abe0c5c |
permissions | -rw-r--r-- |
5129
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
1 |
This patch has been developed inhouse. This fixes a Solaris |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
2 |
specific issue and has not been submitted to the community. |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
3 |
--- INIT.2012-08-01.old/src/cmd/ksh93/sh/macro.c 2015-02-24 13:25:19.363200741 -0800 |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
4 |
+++ INIT.2012-08-01/src/cmd/ksh93/sh/macro.c 2015-03-05 11:11:46.044880541 -0800 |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
5 |
@@ -1086,7 +1086,7 @@ static int varsub(Mac_t *mp) |
805
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
6 |
{ |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
7 |
register int c; |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
8 |
register int type=0; /* M_xxx */ |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
9 |
- register char *v,*argp=0; |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
10 |
+ register char *v, *new_v = NULL, *argp=0; |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
11 |
register Namval_t *np = NIL(Namval_t*); |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
12 |
register int dolg=0, mode=0; |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
13 |
Lex_t *lp = (Lex_t*)mp->shp->lex_context; |
5129
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
14 |
@@ -1439,6 +1439,7 @@ retry1: |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
15 |
if((mp->let || (mp->arith&&nv_isattr(np,(NV_LJUST|NV_RJUST|NV_ZFILL)))) && !nv_isattr(np,NV_INTEGER) && (offset==0 || isspace(c) || strchr(",.+-*/=%&|^?!<>",c))) |
805
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
16 |
mp->zeros = 1; |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
17 |
} |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
18 |
+ new_v = v = strdup(v); |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
19 |
if(savptr==stakptr(0)) |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
20 |
stkseek(stkp,offset); |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
21 |
else |
5129
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
22 |
@@ -1989,6 +1990,8 @@ retry2: |
805
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
23 |
} |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
24 |
if(np) |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
25 |
nv_close(np); |
5129
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
26 |
+ if (new_v) |
805
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
27 |
+ free(new_v); |
5129
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
28 |
if(pattern) |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
29 |
free(pattern); |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
30 |
if(repstr) |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
31 |
@@ -1997,6 +2000,8 @@ retry2: |
5431772f7235
PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
4305
diff
changeset
|
32 |
free(idx); |
805
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
33 |
return(1); |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
34 |
nosub: |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
35 |
+ if (new_v) |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
36 |
+ free(new_v); |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
37 |
if(type==M_BRACE && sh_lexstates[ST_NORM][c]==S_BREAK) |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
38 |
{ |
23c55a2f8a8e
7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff
changeset
|
39 |
fcseek(-1); |