Пример #1
0
/* Show command.  Display a warning if the language set
   does not match the frame.  */
static void
show_language_command (struct ui_file *file, int from_tty,
		       struct cmd_list_element *c, const char *value)
{
  enum language flang;		/* The language of the frame.  */

  if (language_mode == language_mode_auto)
    fprintf_filtered (gdb_stdout,
		      _("The current source language is "
			"\"auto; currently %s\".\n"),
		      current_language->la_name);
  else
    fprintf_filtered (gdb_stdout,
		      _("The current source language is \"%s\".\n"),
		      current_language->la_name);

  if (has_stack_frames ())
    {
      struct frame_info *frame;

      frame = get_selected_frame (NULL);
      flang = get_frame_language (frame);
      if (flang != language_unknown
	  && language_mode == language_mode_manual
	  && current_language->la_language != flang)
	printf_filtered ("%s\n", lang_frame_mismatch_warn);
    }
}
Пример #2
0
/* Show command.  Display a warning if the language set
   does not match the frame. */
static void
show_language_command (char *ignore, int from_tty)
{
    enum language flang;		/* The language of the current frame */

    flang = get_frame_language ();
    if (flang != language_unknown &&
            language_mode == language_mode_manual &&
            current_language->la_language != flang)
        printf_filtered ("%s\n", lang_frame_mismatch_warn);
}
Пример #3
0
/* Show command.  Display a warning if the language set
   does not match the frame. */
static void
show_language_command (struct ui_file *file, int from_tty,
		       struct cmd_list_element *c, const char *value)
{
  enum language flang;		/* The language of the current frame */

  deprecated_show_value_hack (file, from_tty, c, value);
  flang = get_frame_language ();
  if (flang != language_unknown &&
      language_mode == language_mode_manual &&
      current_language->la_language != flang)
    printf_filtered ("%s\n", lang_frame_mismatch_warn);
}
Пример #4
0
/* Set command.  Change the current working language.  */
static void
set_language_command (char *ignore, int from_tty, struct cmd_list_element *c)
{
  int i;
  enum language flang = language_unknown;

  /* Search the list of languages for a match.  */
  for (i = 0; i < languages_size; i++)
    {
      if (strcmp (languages[i]->la_name, language) == 0)
	{
	  /* Found it!  Go into manual mode, and use this language.  */
	  if (languages[i]->la_language == language_auto)
	    {
	      /* Enter auto mode.  Set to the current frame's language, if
                 known, or fallback to the initial language.  */
	      language_mode = language_mode_auto;
	      TRY
		{
		  struct frame_info *frame;

		  frame = get_selected_frame (NULL);
		  flang = get_frame_language (frame);
		}
	      CATCH (ex, RETURN_MASK_ERROR)
		{
		  flang = language_unknown;
		}
	      END_CATCH

	      if (flang != language_unknown)
		set_language (flang);
	      else
		set_initial_language ();
	      expected_language = current_language;
	      return;
	    }
	  else
	    {
	      /* Enter manual mode.  Set the specified language.  */
	      language_mode = language_mode_manual;
	      current_language = languages[i];
	      set_range_case ();
	      expected_language = current_language;
	      return;
	    }
	}
Пример #5
0
/* Set command.  Change the current working language.  */
static void
set_language_command (char *ignore, int from_tty, struct cmd_list_element *c)
{
  int i;
  enum language flang;

  /* Search the list of languages for a match.  */
  for (i = 0; i < languages_size; i++)
    {
      if (strcmp (languages[i]->la_name, language) == 0)
	{
	  /* Found it!  Go into manual mode, and use this language.  */
	  if (languages[i]->la_language == language_auto)
	    {
	      /* Enter auto mode.  Set to the current frame's language, if
                 known, or fallback to the initial language.  */
	      language_mode = language_mode_auto;
	      flang = get_frame_language ();
	      if (flang != language_unknown)
		set_language (flang);
	      else
		set_initial_language ();
	      expected_language = current_language;
	      return;
	    }
	  else
	    {
	      /* Enter manual mode.  Set the specified language.  */
	      language_mode = language_mode_manual;
	      current_language = languages[i];
	      set_range_case ();
	      expected_language = current_language;
	      return;
	    }
	}
    }

  internal_error (__FILE__, __LINE__,
		  "Couldn't find language `%s' in known languages list.",
		  language);
}
Пример #6
0
/* Set command.  Change the current working language. */
static void
set_language_command (char *ignore, int from_tty)
{
    int i;
    enum language flang;
    char *err_lang;

    if (!language || !language[0])
    {
        printf_unfiltered ("The currently understood settings are:\n\n");
        printf_unfiltered ("local or auto    Automatic setting based on source file\n");

        for (i = 0; i < languages_size; ++i)
        {
            /* Already dealt with these above.  */
            if (languages[i]->la_language == language_unknown
                    || languages[i]->la_language == language_auto)
                continue;

            /* FIXME for now assume that the human-readable name is just
               a capitalization of the internal name.  */
            printf_unfiltered ("%-16s Use the %c%s language\n",
                               languages[i]->la_name,
                               /* Capitalize first letter of language
                                  name.  */
                               toupper (languages[i]->la_name[0]),
                               languages[i]->la_name + 1);
        }
        /* Restore the silly string. */
        set_language (current_language->la_language);
        return;
    }

    /* Search the list of languages for a match.  */
    for (i = 0; i < languages_size; i++)
    {
        if (strcmp (languages[i]->la_name, language) == 0)
        {
            /* Found it!  Go into manual mode, and use this language.  */
            if (languages[i]->la_language == language_auto)
            {
                /* Enter auto mode.  Set to the current frame's language, if known.  */
                language_mode = language_mode_auto;
                flang = get_frame_language ();
                if (flang != language_unknown)
                    set_language (flang);
                expected_language = current_language;
                return;
            }
            else
            {
                /* Enter manual mode.  Set the specified language.  */
                language_mode = language_mode_manual;
                current_language = languages[i];
                set_type_range_case ();
                set_lang_str ();
                expected_language = current_language;
                return;
            }
        }
    }

    /* Reset the language (esp. the global string "language") to the
       correct values. */
    err_lang = savestring (language, strlen (language));
    make_cleanup (xfree, err_lang);	/* Free it after error */
    set_language (current_language->la_language);
    error ("Unknown language `%s'.", err_lang);
}