aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/language.c10
2 files changed, 14 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 04f4e52..70830d5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+Fri Sep 20 16:10:52 1991 John Gilmore (gnu at cygnus.com)
+
+ * main.c (main): Avoid any output before (gdb) prompt when -q.
+ * language.c (set_language_command): Handle errors by restoring
+ the language string to its current state (fix from A. Beers).
+
Fri Sep 20 15:46:00 1991 Roland H. Pesch (pesch at cygnus.com)
* doc/Makefile: generate aux version-no file doc/gdbVN.m4
diff --git a/gdb/language.c b/gdb/language.c
index bcb00c7..296a6d5 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -115,6 +115,7 @@ set_language_command (str, from_tty)
{
int i;
enum language flang;
+ char *err_lang;
/* FIXME -- do this from the list, with HELP. */
if (!language || !language[0]) {
@@ -147,7 +148,12 @@ mod or m2 Always parse in Modula-2 syntax\n");
}
}
- error ("Unknown language `%s'.",language);
+ /* Reset the language (esp. the global string "language") to the
+ correct values. */
+ err_lang=savestring(language,strlen(language));
+ make_cleanup (free, err_lang); /* Free it after error */
+ set_language(current_language->la_language);
+ error ("Unknown language `%s'.",err_lang);
}
/* Show command. Display a warning if the type setting does
@@ -1094,7 +1100,7 @@ _initialize_language()
/* Have the above take effect */
- set_language_command (NULL, 0);
+ set_language_command (language, 0);
set_type_command (NULL, 0);
set_range_command (NULL, 0);
}