be called when the users selected frame is being changed. */
be called when the user's selected frame is being changed. */
select_frame (struct frame_info *fi){  struct symtab *s;  deprecated_selected_frame = fi;  /* NOTE: cagney/2002-05-04: FI can be NULL.  This occures when the     frame is being invalidated.  */  if (selected_frame_level_changed_hook)    selected_frame_level_changed_hook (frame_relative_level (fi));  /* FIXME: kseitz/2002-08-28: It would be nice to call     selected_frame_level_changed_event right here, but due to limitations     in the current interfaces, we would end up flooding UIs with events     because select_frame is used extensively internally.     Once we have frame-parameterized frame (and frame-related) commands,     the event notification can be moved here, since this function will only     be called when the users selected frame is being changed. */  /* Ensure that symbols for this frame are read in.  Also, determine the     source language of this frame, and switch to it if desired.  */  if (fi)    {      /* We retrieve the frame's symtab by using the frame PC.  However         we cannot use the frame pc as is, because it usually points to         the instruction following the "call", which is sometimes the         first instruction of another function.  So we rely on         get_frame_address_in_block() which provides us with a PC which         is guaranteed to be inside the frame's code block.  */      s = find_pc_symtab (get_frame_address_in_block (fi));      if (s	  && s->language != current_language->la_language	  && s->language != language_unknown	  && language_mode == language_mode_auto)	{	  set_language (s->language);	}    }}