* main.c (main): Avoid any output before (gdb) prompt when -q.
authorJohn Gilmore <gnu@cygnus>
Fri, 20 Sep 1991 23:17:32 +0000 (23:17 +0000)
committerJohn Gilmore <gnu@cygnus>
Fri, 20 Sep 1991 23:17:32 +0000 (23:17 +0000)
* language.c (set_language_command):  Handle errors by restoring
the language string to its current state (fix from A. Beers).

gdb/ChangeLog
gdb/language.c

index 04f4e52..70830d5 100644 (file)
@@ -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
index bcb00c7..296a6d5 100644 (file)
@@ -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);
 }