@@ -605,13 +605,15 @@ def _randomizeParameter(paramString, randomParameter):
605605 cookie = _randomizeParameter (cookie , randomParameter )
606606
607607 if conf .evalCode :
608+ delimiter = conf .pDel or "&"
608609 variables = {}
609610 originals = {}
610611
611- if get :
612- executeCode (get .replace ("&" , ";" ), variables )
613- if post :
614- executeCode (post .replace ("&" , ";" ), variables )
612+ for item in filter (None , (get , post )):
613+ for part in item .split (delimiter ):
614+ if '=' in part :
615+ name , value = part .split ('=' , 1 )
616+ executeCode ("%s='%s'" % (name , value ), variables )
615617
616618 originals .update (variables )
617619 executeCode (conf .evalCode , variables )
@@ -621,13 +623,13 @@ def _randomizeParameter(paramString, randomParameter):
621623 if isinstance (value , (basestring , int )):
622624 value = unicode (value )
623625 if '%s=' % name in (get or "" ):
624- get = re .sub ("(%s=)([^& ]+)" % name , "\g<1>%s" % value , get )
626+ get = re .sub ("((\A|\W) %s=)([^%s ]+)" % ( name , delimiter ) , "\g<1>%s" % value , get )
625627 elif '%s=' % name in (post or "" ):
626- post = re .sub ("(%s=)([^& ]+)" % name , "\g<1>%s" % value , post )
628+ post = re .sub ("((\A|\W) %s=)([^%s ]+)" % ( name , delimiter ) , "\g<1>%s" % value , post )
627629 elif post :
628- post += "&%s =%s" % (name , value )
630+ post += "%s%s =%s" % (delimiter , name , value )
629631 else :
630- get += "&%s =%s" % (name , value )
632+ get += "%s%s =%s" % (delimiter , name , value )
631633
632634 get = urlencode (get , limit = True )
633635 if post and place != PLACE .POST and hasattr (post , UNENCODED_ORIGINAL_VALUE ):
0 commit comments