about summary refs log tree commit diff
path: root/Src/subst.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@users.sourceforge.net>2006-03-07 21:30:36 +0000
committerWayne Davison <wayned@users.sourceforge.net>2006-03-07 21:30:36 +0000
commit4cb83571c45670eb8111801499281ea416b5074d (patch)
treee46e881ad2f0ace5a02761e7cdb4f808df12d9f5 /Src/subst.c
parente17fc5079394ce0c30dc0573676983e6f4a0a5bc (diff)
downloadzsh-4cb83571c45670eb8111801499281ea416b5074d.tar.gz
zsh-4cb83571c45670eb8111801499281ea416b5074d.tar.xz
zsh-4cb83571c45670eb8111801499281ea416b5074d.zip
Changed some structures to avoid gcc's type-punned warnings.
Diffstat (limited to 'Src/subst.c')
-rw-r--r--Src/subst.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/Src/subst.c b/Src/subst.c
index e6e6cba5b..08fb475d6 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -1580,7 +1580,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 			     hkeys|hvals|
 			     (arrasg ? SCANPM_ASSIGNING : 0)|
 			     (qt ? SCANPM_DQUOTED : 0))) ||
-	    (v->pm && (v->pm->flags & PM_UNSET)))
+	    (v->pm && (v->pm->node.flags & PM_UNSET)))
 	    vunset = 1;
 
 	if (wantt) {
@@ -1588,8 +1588,8 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 	     * Handle the (t) flag: value now becomes the type
 	     * information for the parameter.
 	     */
-	    if (v && v->pm && !(v->pm->flags & PM_UNSET)) {
-		int f = v->pm->flags;
+	    if (v && v->pm && !(v->pm->node.flags & PM_UNSET)) {
+		int f = v->pm->node.flags;
 
 		switch (PM_TYPE(f)) {
 		case PM_SCALAR:  val = "scalar"; break;
@@ -1694,12 +1694,12 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 	     * is called by getarrvalue(); needn't test PM_HASHED.   */
 	    if (v->isarr == SCANPM_WANTINDEX) {
 		isarr = v->isarr = 0;
-		val = dupstring(v->pm->nam);
+		val = dupstring(v->pm->node.nam);
 	    } else
 		aval = getarrvalue(v);
 	} else {
 	    /* Value retrieved from parameter/subexpression is scalar */
-	    if (v->pm->flags & PM_ARRAY) {
+	    if (v->pm->node.flags & PM_ARRAY) {
 		/*
 		 * Although the value is a scalar, the parameter
 		 * itself is an array.  Presumably this is due to
@@ -1729,14 +1729,14 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 		 */
 		val = getstrvalue(v);
 		fwidth = v->pm->width ? v->pm->width : (int)strlen(val);
-		switch (v->pm->flags & (PM_LEFT | PM_RIGHT_B | PM_RIGHT_Z)) {
+		switch (v->pm->node.flags & (PM_LEFT | PM_RIGHT_B | PM_RIGHT_Z)) {
 		    char *t;
 		    unsigned int t0;
 
 		case PM_LEFT:
 		case PM_LEFT | PM_RIGHT_Z:
 		    t = val;
-		    if (v->pm->flags & PM_RIGHT_Z)
+		    if (v->pm->node.flags & PM_RIGHT_Z)
 			while (*t == '0')
 			    t++;
 		    else
@@ -1757,7 +1757,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 
 			if (strlen(val) < fwidth) {
 			    char *valprefend = val;
-			    if (v->pm->flags & PM_RIGHT_Z) {
+			    if (v->pm->node.flags & PM_RIGHT_Z) {
 				/*
 				 * This is a documented feature: when deciding
 				 * whether to pad with zeroes, ignore
@@ -1772,7 +1772,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 				 * Allow padding after initial minus
 				 * for numeric variables.
 				 */
-				if ((v->pm->flags &
+				if ((v->pm->node.flags &
 				     (PM_INTEGER|PM_EFLOAT|PM_FFLOAT)) &&
 				    *t == '-')
 				    t++;
@@ -1780,7 +1780,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 				 * Allow padding after initial 0x or
 				 * base# for integer variables.
 				 */
-				if (v->pm->flags & PM_INTEGER) {
+				if (v->pm->node.flags & PM_INTEGER) {
 				    if (isset(CBASES) &&
 					t[0] == '0' && t[1] == 'x')
 					t += 2;
@@ -1790,14 +1790,14 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 				valprefend = t;
 				if (!*t)
 				    zero = 0;
-				else if (v->pm->flags &
+				else if (v->pm->node.flags &
 					 (PM_INTEGER|PM_EFLOAT|PM_FFLOAT)) {
 				    /* zero always OK */
 				} else if (!idigit(*t))
 				    zero = 0;
 			    }
 			    t = (char *) hcalloc(fwidth + 1);
-			    memset(t, (((v->pm->flags & PM_RIGHT_B) || !zero) ?
+			    memset(t, (((v->pm->node.flags & PM_RIGHT_B) || !zero) ?
 				       ' ' : '0'), fwidth);
 			    /*
 			     * How can the following trigger?  We
@@ -1827,7 +1827,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 		    }
 		    break;
 		}
-		switch (v->pm->flags & (PM_LOWER | PM_UPPER)) {
+		switch (v->pm->node.flags & (PM_LOWER | PM_UPPER)) {
 		    char *t;
 
 		case PM_LOWER: