Index: roundup/mailgw.py =================================================================== RCS file: /cvsroot/roundup/roundup/roundup/mailgw.py,v retrieving revision 1.74 diff -c -r1.74 mailgw.py *** roundup/mailgw.py 29 May 2002 01:16:17 -0000 1.74 --- roundup/mailgw.py 9 Jul 2002 11:26:11 -0000 *************** *** 438,444 **** else: curvalue = [] ! # handle each add/remove in turn for item in value.split(','): item = item.strip() --- 438,450 ---- else: curvalue = [] ! # handle each add/remove in turn, ! # keep an extra list for all items that are ! # definitely in the new list (in case of e.g. ! # =A,+B, which should replace the old ! # list with A,B) ! set = 0 ! newvalue = [] for item in value.split(','): item = item.strip() *************** *** 449,454 **** --- 455,462 ---- item = item[1:] elif item.startswith('+'): item = item[1:] + else: + set = 1 # look up the value try: *************** *** 467,477 **** 'for %s.'%(item, propname)) continue else: if item not in curvalue: curvalue.append(item) ! # that's it, set the new Multilink property value ! props[propname] = curvalue # handle any errors parsing the argument list if errors: --- 475,490 ---- 'for %s.'%(item, propname)) continue else: + newvalue.append(item) if item not in curvalue: curvalue.append(item) ! # that's it, set the new Multilink property value, ! # or overwrite it completely ! if set: ! props[propname] = newvalue ! else: ! props[propname] = curvalue # handle any errors parsing the argument list if errors: