anchor.diff:  
   		var/procname = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null
   		if(!procname)	return
  -
  +		if(targetselected && !hascall(target,procname))
  +			usr << "<font color='red'>Error: callproc(): target has no such call [procname].</font>"
  +			return
   		var/list/lst = get_callproc_args()
   		if(!lst)
   			return
  
positive.code: 		if(targetselected)
  			if(!target)
  				usr << "<font color='red'>Error: callproc(): owner of proc no longer exists.</font>"
  				return
  			if(!hascall(target,procname))
  				usr << "<font color='red'>Error: callproc(): target has no such call [procname].</font>"
  				return
  			log_admin("[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].")
  			returnval = call(target,procname)(arglist(lst)) // Pass the lst as an argument list to the proc
  
negative.code: 	var/procname = input("Proc name, eg: fake_blood","Proc:", null) as text|null
  	if(!procname)
  		return
  	if(!hascall(A,procname))
  		usr << "<span class='warning'>Error: callproc_datum(): target has no such call [procname].</span>"
  		return
  	var/list/lst = get_callproc_args()
  	if(!lst)
  		return
  
  	if(!A || !IsValidSrc(A))
  		usr << "<span class='warning'>Error: callproc_datum(): owner of proc no longer exists.</span>"
  		return
  	log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].")
  
  