comparison macro.c @ 170:2ee7db420643

Fix joerg's expansionitem_eq(). Was wrong previously.
author David A. Holland
date Fri, 12 Jun 2015 02:02:38 -0400
parents 80e243f2047d
children 5922e6ca6b80
comparison
equal deleted inserted replaced
169:80e243f2047d 170:2ee7db420643
141 static 141 static
142 bool 142 bool
143 expansionitem_eq(const struct expansionitem *ei1, 143 expansionitem_eq(const struct expansionitem *ei1,
144 const struct expansionitem *ei2) 144 const struct expansionitem *ei2)
145 { 145 {
146 if ((ei1->itemtype == EI_STRING) != (ei2->itemtype == EI_STRING)) { 146 if (ei1->itemtype != ei2->itemtype) {
147 return false; 147 return false;
148 } 148 }
149 if (ei1->itemtype == EI_STRING) { 149 switch (ei1->itemtype) {
150 case EI_STRING:
150 if (strcmp(ei1->string, ei2->string) != 0) { 151 if (strcmp(ei1->string, ei2->string) != 0) {
151 return false; 152 return false;
152 } 153 }
153 } else { 154 break;
155 case EI_PARAM:
154 if (ei1->param != ei2->param) { 156 if (ei1->param != ei2->param) {
155 return false; 157 return false;
156 } 158 }
159 break;
160 case EI_FILE:
161 case EI_LINE:
162 break;
157 } 163 }
158 return true; 164 return true;
159 } 165 }
160 166
161 static 167 static