* config/m68k/monitor.mt (TDEPFILE): Add remote-es.o.
[deliverable/binutils-gdb.git] / gdb / demangle.c
index 971085637eefb1aec08b46b8a2177c684c6aeea2..bf7ee47249ffbf3da0fb8ebeb3ba36535614df9e 100644 (file)
@@ -28,15 +28,18 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "demangle.h"
 #include <string.h>
 
-#ifndef DEMANGLING_STYLE
-# define DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
+/* Select the default C++ demangling style to use.  The default is "auto",
+   which allows gdb to attempt to pick an appropriate demangling style for
+   the executable it has loaded.  It can be set to a specific style ("gnu",
+   "lucid", "arm", etc.) in which case gdb will never attempt to do auto
+   selection of the style unless you do an explicit "set demangle auto".
+   To select one of these as the default, set DEFAULT_DEMANGLING_STYLE in
+   the appropriate target configuration file. */
+
+#ifndef DEFAULT_DEMANGLING_STYLE
+# define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
 #endif
 
-/* The current demangling style in affect.  Global so that the demangler
-   can read it (FIXME:  change the interface) */
-
-enum demangling_styles current_demangling_style;
-
 /* String name for the current demangling style.  Set by the "set demangling"
    command, printed as part of the output by the "show demangling" command. */
 
@@ -61,10 +64,10 @@ static const struct demangler
   {LUCID_DEMANGLING_STYLE_STRING,
      lucid_demangling,
      "Lucid (lcc) style demangling"},
-  {CFRONT_DEMANGLING_STYLE_STRING,
-     cfront_demangling,
-     "ARM (cfront) style demangling"},
-  {NULL, 0, NULL}
+  {ARM_DEMANGLING_STYLE_STRING,
+     arm_demangling,
+     "ARM style demangling"},
+  {NULL, unknown_demangling, NULL}
 };
 
 /* show current demangling style. */
@@ -108,8 +111,8 @@ set_demangling_command (ignore, from_tty)
 
   for (dem = demanglers; dem -> demangling_style_name != NULL; dem++)
     {
-      if (strcmp (current_demangling_style_string,
-                 dem -> demangling_style_name) == 0)
+      if (STREQ (current_demangling_style_string,
+                 dem -> demangling_style_name))
        {
          current_demangling_style = dem -> demangling_style;
          break;
@@ -124,13 +127,13 @@ set_demangling_command (ignore, from_tty)
     {
       if (*current_demangling_style_string != '\0')
        {
-         printf ("Unknown demangling style `%s'.\n",
+         printf_unfiltered ("Unknown demangling style `%s'.\n",
                  current_demangling_style_string);
        }
-      printf ("The currently understood settings are:\n\n");
+      printf_unfiltered ("The currently understood settings are:\n\n");
       for (dem = demanglers; dem -> demangling_style_name != NULL; dem++)
        {
-         printf ("%-10s %s\n", dem -> demangling_style_name,
+         printf_unfiltered ("%-10s %s\n", dem -> demangling_style_name,
                  dem -> demangling_style_doc);
          if (dem -> demangling_style == current_demangling_style)
            {
@@ -174,12 +177,14 @@ _initialize_demangler ()
 
    set = add_set_cmd ("demangle-style", class_support, var_string_noescape,
                      (char *) &current_demangling_style_string,
-                     "Set the current C++ demangling style.",
+                     "Set the current C++ demangling style.\n\
+Use `set demangle-style' without arguments for a list of demangling styles.",
                      &setlist);
    show = add_show_from_set (set, &showlist);
    set -> function.cfunc = set_demangling_command;
    show -> function.cfunc = show_demangling_command;
 
    /* Set the default demangling style chosen at compilation time. */
-   set_demangling_style (DEMANGLING_STYLE);
+   set_demangling_style (DEFAULT_DEMANGLING_STYLE);
+   set_cplus_marker_for_demangling (CPLUS_MARKER);
 }
This page took 0.024985 seconds and 4 git commands to generate.