/* Set command. Change the setting for range checking. */ static void set_range_command (char *ignore, int from_tty, struct cmd_list_element *c) { if (strcmp (range, "on") == 0) { range_check = range_check_on; range_mode = range_mode_manual; } else if (strcmp (range, "warn") == 0) { range_check = range_check_warn; range_mode = range_mode_manual; } else if (strcmp (range, "off") == 0) { range_check = range_check_off; range_mode = range_mode_manual; } else if (strcmp (range, "auto") == 0) { range_mode = range_mode_auto; set_range_case (); return; } else { internal_error (__FILE__, __LINE__, _("Unrecognized range check setting: \"%s\""), range); } if (range_check != current_language->la_range_check) warning (_("the current range check setting " "does not match the language.\n")); }
static void set_case_command (char *ignore, int from_tty, struct cmd_list_element *c) { if (strcmp (case_sensitive, "on") == 0) { case_sensitivity = case_sensitive_on; case_mode = case_mode_manual; } else if (strcmp (case_sensitive, "off") == 0) { case_sensitivity = case_sensitive_off; case_mode = case_mode_manual; } else if (strcmp (case_sensitive, "auto") == 0) { case_mode = case_mode_auto; set_range_case (); return; } else { internal_error (__FILE__, __LINE__, "Unrecognized case-sensitive setting: \"%s\"", case_sensitive); } if (case_sensitivity != current_language->la_case_sensitivity) warning (_("the current case sensitivity setting does not match " "the language.\n")); }
/* 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; } }
enum language set_language (enum language lang) { int i; enum language prev_language; prev_language = current_language->la_language; for (i = 0; i < languages_size; i++) { if (languages[i]->la_language == lang) { current_language = languages[i]; set_range_case (); break; } } return prev_language; }
/* 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); }