245 if self.content: |
245 if self.content: |
246 hasContent = True |
246 hasContent = True |
247 resultParms = self.values.copy() |
247 resultParms = self.values.copy() |
248 macros = self.macros.copy() |
248 macros = self.macros.copy() |
249 toDelete = [ key for key in resultParms.keys() ] |
249 toDelete = [ key for key in resultParms.keys() ] |
|
250 toPointers = {} |
250 for key in toDelete: |
251 for key in toDelete: |
251 if key[0] == "*": |
252 if key[0] == "*": |
252 del resultParms[key] |
253 toPointers[key] = resultParms.pop(key) |
253 for key, value in callValues.items(): |
254 for key, value in callValues.items(): |
254 if key[0] == "%": |
255 if key[0] == "%": |
255 macros[key] = value |
256 macros[key] = value |
256 else: |
257 else: |
257 resultParms[key] = value |
258 resultParms[key] = value |
258 i = 0 |
259 i = 0 |
259 for cp in callParms: |
260 for cp in callParms: |
260 if i < len(self.parms): |
261 if i < len(self.parms): |
261 if self.parms[i][0] == "*": |
262 if self.parms[i][0] == "*": |
262 cp = u(cp) |
263 toPointers[self.parms[i]] = cp |
263 if "'" in cp: |
|
264 pointers[self.parms[i][1:]] = '"' + cp + '"' |
|
265 else: |
|
266 pointers[self.parms[i][1:]] = "'" + cp + "'" |
|
267 elif self.parms[i][0] == "%": |
264 elif self.parms[i][0] == "%": |
268 macros[self.parms[i]] = u(cp) |
265 macros[self.parms[i]] = u(cp) |
269 else: |
266 else: |
270 resultParms[self.parms[i]] = cp |
267 resultParms[self.parms[i]] = cp |
271 else: |
268 else: |
272 extraContent += u(cp) |
269 extraContent += u(cp) |
273 hasContent = True |
270 hasContent = True |
274 i += 1 |
271 i += 1 |
|
272 for k,v in toPointers.items(): |
|
273 v = applyMacros(macros, u(v)) |
|
274 q = '"' if "'" in v else "'" |
|
275 pointers[k[1:]] = q + v + q |
275 result = "" |
276 result = "" |
276 for p, v in resultParms.items(): |
277 for p, v in resultParms.items(): |
277 if p[0] == "'" or p[0] == '"': |
278 if p[0] == "'" or p[0] == '"': |
278 p = eval(p) |
279 p = eval(p) |
279 result += " "+ p + "=" + quoteattr(applyMacros(macros, u(v))) |
280 result += " "+ p + "=" + quoteattr(applyMacros(macros, u(v))) |