When using {list:} to grab a list on an object, if a list propdir with the same name exists on the environment, then lines from the the environment's will be appended to the list retured by {list:} if called with a terminal # on list parameter passed to {list:} and the list on the environment has more lines than the list on the object.
For instance, if a player has his two-line description stored in the propdir _redesc#, and the room he's standing in also has it's twenty-line description stored in _redesc#, then if the player uses {list:_redesc#} as his description, then lines 3-20 from the room's will be appended to the player's description when someone looks at him. {list:_redesc} doesn't do this.
Commands to reproduce
Verified on FurryMUCK
I can see why it behaves that way, but I'm tempted to just say, "Well then don't add that unnecessary terminal '#'."
If we decide to fix this, then we should just check for that terminal #, and remove it before we do normal processing in mfun_list(), and possibly in mfun_envprop(), mfun_prop, etc.
Actually, it may only affect mfun_list
Looking at the code, the appropriate place looks like it'd be in get_concat_list(), get_list_count(), and get_list_item() in msgparse.c.
Implemented.