ada-lang.c:ada_value_primitive_packed_val: const correctness
[deliverable/binutils-gdb.git] / gdb / macrocmd.c
index e2967e7b53133bc92f7b03a4a5d476f88034699c..aca4fdc953d8513e756d624957b8391c4e89921b 100644 (file)
@@ -1,5 +1,5 @@
 /* C preprocessor macro expansion commands for GDB.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2015 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
@@ -25,7 +25,6 @@
 #include "cli/cli-utils.h"
 #include "command.h"
 #include "gdbcmd.h"
-#include "gdb_string.h"
 #include "linespec.h"
 
 \f
@@ -38,7 +37,7 @@ macro_command (char *arg, int from_tty)
 {
   printf_unfiltered
     ("\"macro\" must be followed by the name of a macro command.\n");
-  help_list (macrolist, "macro ", -1, gdb_stdout);
+  help_list (macrolist, "macro ", all_commands, gdb_stdout);
 }
 
 
@@ -47,11 +46,10 @@ macro_command (char *arg, int from_tty)
 
 
 /* Prints an informational message regarding the lack of macro information.  */
-static void macro_inform_no_debuginfo()
+static void
+macro_inform_no_debuginfo (void)
 {
-  fputs_filtered ("GDB has no preprocessor macro information for "
-                  "that code.",
-                  gdb_stdout);
+  puts_filtered ("GDB has no preprocessor macro information for that code.\n");
 }
 
 static void
@@ -131,13 +129,18 @@ show_pp_source_pos (struct ui_file *stream,
                     struct macro_source_file *file,
                     int line)
 {
-  fprintf_filtered (stream, "%s:%d\n", file->filename, line);
+  char *fullname;
+
+  fullname = macro_source_fullname (file);
+  fprintf_filtered (stream, "%s:%d\n", fullname, line);
+  xfree (fullname);
 
   while (file->included_by)
     {
-      fprintf_filtered (gdb_stdout, "  included at %s:%d\n",
-                        file->included_by->filename,
+      fullname = macro_source_fullname (file->included_by);
+      fprintf_filtered (gdb_stdout, "  included at %s:%d\n", fullname,
                         file->included_at_line);
+      xfree (fullname);
       file = file->included_by;
     }
 }
@@ -155,32 +158,32 @@ print_macro_definition (const char *name,
                        struct macro_source_file *file,
                        int line)
 {
-      fprintf_filtered (gdb_stdout, "Defined at ");
-      show_pp_source_pos (gdb_stdout, file, line);
+  fprintf_filtered (gdb_stdout, "Defined at ");
+  show_pp_source_pos (gdb_stdout, file, line);
 
-      if (line != 0)
-       fprintf_filtered (gdb_stdout, "#define %s", name);
-      else
-       fprintf_filtered (gdb_stdout, "-D%s", name);
+  if (line != 0)
+    fprintf_filtered (gdb_stdout, "#define %s", name);
+  else
+    fprintf_filtered (gdb_stdout, "-D%s", name);
 
-      if (d->kind == macro_function_like)
-        {
-          int i;
-
-          fputs_filtered ("(", gdb_stdout);
-          for (i = 0; i < d->argc; i++)
-            {
-              fputs_filtered (d->argv[i], gdb_stdout);
-              if (i + 1 < d->argc)
-                fputs_filtered (", ", gdb_stdout);
-            }
-          fputs_filtered (")", gdb_stdout);
-        }
-
-      if (line != 0)
-       fprintf_filtered (gdb_stdout, " %s\n", d->replacement);
-      else
-       fprintf_filtered (gdb_stdout, "=%s\n", d->replacement);
+  if (d->kind == macro_function_like)
+    {
+      int i;
+
+      fputs_filtered ("(", gdb_stdout);
+      for (i = 0; i < d->argc; i++)
+       {
+         fputs_filtered (d->argv[i], gdb_stdout);
+         if (i + 1 < d->argc)
+           fputs_filtered (", ", gdb_stdout);
+       }
+      fputs_filtered (")", gdb_stdout);
+    }
+
+  if (line != 0)
+    fprintf_filtered (gdb_stdout, " %s\n", d->replacement);
+  else
+    fprintf_filtered (gdb_stdout, "=%s\n", d->replacement);
 }
 
 /* A callback function for usage with macro_for_each and friends.
@@ -193,7 +196,7 @@ print_macro_callback (const char *name, const struct macro_definition *macro,
                   struct macro_source_file *source, int line,
                   void *user_data)
 {
-  if (! user_data || strcmp (user_data, name) == 0)
+  if (! user_data || strcmp ((const char *) user_data, name) == 0)
     print_macro_definition (name, macro, source, line);
 }
 
@@ -322,7 +325,7 @@ extract_identifier (char **expp, int is_parameter)
   char *p = *expp;
   unsigned int len;
 
-  if (is_parameter && !strncmp (p, "...", 3))
+  if (is_parameter && startswith (p, "..."))
     {
       /* Ok.  */
     }
@@ -336,7 +339,7 @@ extract_identifier (char **expp, int is_parameter)
        ;
     }
 
-  if (is_parameter && !strncmp (p, "...", 3))      
+  if (is_parameter && startswith (p, "..."))      
     p += 3;
 
   len = p - *expp;
@@ -384,7 +387,7 @@ macro_define_command (char *exp, int from_tty)
     {
       /* Function-like macro.  */
       int alloced = 5;
-      char **argv = (char **) xmalloc (alloced * sizeof (char *));
+      char **argv = XNEWVEC (char *, alloced);
 
       new_macro.kind = macro_function_like;
       new_macro.argc = 0;
This page took 0.026052 seconds and 4 git commands to generate.