/* 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; } }
/* 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); }