mixed query_door(mixed dest) {
  mixed bing;
  if ((bing = door_control[dest]))
    if (!pointerp(bing))
      return bing;
  if (objectp(dest))
    if ((bing = door_control[file_name(dest)]))
      if (!pointerp(bing))
        return bing;
  return 0;
}