/* C preprocessor macro expansion commands for GDB.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2007 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
at the moment, the `print' commands don't save the last expression
evaluated, just its value. */
if (! exp || ! *exp)
- error ("You must follow the `macro expand' command with the"
+ error (_("You must follow the `macro expand' command with the"
" expression you\n"
- "want to expand.");
+ "want to expand."));
ms = default_macro_scope ();
if (ms)
expression'. That way, you could just hit return over and over and
see the expression expanded one level at a time. */
if (! exp || ! *exp)
- error ("You must follow the `macro expand-once' command with"
+ error (_("You must follow the `macro expand-once' command with"
" the expression\n"
- "you want to expand.");
+ "you want to expand."));
ms = default_macro_scope ();
if (ms)
static void
-show_macro_command (char *name, int from_tty)
+info_macro_command (char *name, int from_tty)
{
struct macro_scope *ms = NULL;
struct cleanup *cleanup_chain = make_cleanup (free_current_contents, &ms);
struct macro_definition *d;
if (! name || ! *name)
- error ("You must follow the `show macro' command with the name"
+ error (_("You must follow the `info macro' command with the name"
" of the macro\n"
- "whose definition you want to see.");
+ "whose definition you want to see."));
ms = default_macro_scope ();
if (! ms)
- error ("GDB has no preprocessor macro information for that code.\n");
+ error (_("GDB has no preprocessor macro information for that code."));
d = macro_lookup_definition (ms->file, ms->line, name);
if (d)
static void
macro_define_command (char *exp, int from_tty)
{
- error ("Command not implemented yet.");
+ error (_("Command not implemented yet."));
}
static void
macro_undef_command (char *exp, int from_tty)
{
- error ("Command not implemented yet.");
+ error (_("Command not implemented yet."));
}
static void
macro_list_command (char *exp, int from_tty)
{
- error ("Command not implemented yet.");
+ error (_("Command not implemented yet."));
}
\f
/* Initializing the `macrocmd' module. */
+extern initialize_file_ftype _initialize_macrocmd; /* -Wmissing-prototypes */
+
void
_initialize_macrocmd (void)
{
/* We introduce a new command prefix, `macro', under which we'll put
the various commands for working with preprocessor macros. */
- add_prefix_cmd
- ("macro", class_info, macro_command,
- "Prefix for commands dealing with C preprocessor macros.",
- ¯olist, "macro ", 0, &cmdlist);
-
- add_cmd
- ("expand", no_class, macro_expand_command,
- "Fully expand any C/C++ preprocessor macro invocations in EXPRESSION.\n"
- "Show the expanded expression.",
- ¯olist);
+ add_prefix_cmd ("macro", class_info, macro_command,
+ _("Prefix for commands dealing with C preprocessor macros."),
+ ¯olist, "macro ", 0, &cmdlist);
+
+ add_cmd ("expand", no_class, macro_expand_command, _("\
+Fully expand any C/C++ preprocessor macro invocations in EXPRESSION.\n\
+Show the expanded expression."),
+ ¯olist);
add_alias_cmd ("exp", "expand", no_class, 1, ¯olist);
- add_cmd
- ("expand-once", no_class, macro_expand_once_command,
- "Expand C/C++ preprocessor macro invocations appearing directly in"
- " EXPRESSION.\n"
- "Show the expanded expression.\n"
- "\n"
- "This command differs from `macro expand' in that it only expands macro\n"
- "invocations that appear directly in EXPRESSION; if expanding a macro\n"
- "introduces further macro invocations, those are left unexpanded.\n"
- "\n"
- "`macro expand-once' helps you see how a particular macro expands,\n"
- "whereas `macro expand' shows you how all the macros involved in an\n"
- "expression work together to yield a pre-processed expression.",
- ¯olist);
+ add_cmd ("expand-once", no_class, macro_expand_once_command, _("\
+Expand C/C++ preprocessor macro invocations appearing directly in EXPRESSION.\n\
+Show the expanded expression.\n\
+\n\
+This command differs from `macro expand' in that it only expands macro\n\
+invocations that appear directly in EXPRESSION; if expanding a macro\n\
+introduces further macro invocations, those are left unexpanded.\n\
+\n\
+`macro expand-once' helps you see how a particular macro expands,\n\
+whereas `macro expand' shows you how all the macros involved in an\n\
+expression work together to yield a pre-processed expression."),
+ ¯olist);
add_alias_cmd ("exp1", "expand-once", no_class, 1, ¯olist);
- add_cmd
- ("macro", no_class, show_macro_command,
- "Show the definition of MACRO, and its source location.",
- &showlist);
-
- add_cmd
- ("define", no_class, macro_define_command,
- "Define a new C/C++ preprocessor macro.\n"
- "The GDB command `macro define DEFINITION' is equivalent to placing a\n"
- "preprocessor directive of the form `#define DEFINITION' such that the\n"
- "definition is visible in all the inferior's source files.\n"
- "For example:\n"
- " (gdb) macro define PI (3.1415926)\n"
- " (gdb) macro define MIN(x,y) ((x) < (y) ? (x) : (y))",
- ¯olist);
-
- add_cmd
- ("undef", no_class, macro_undef_command,
- "Remove the definition of the C/C++ preprocessor macro with the"
- " given name.",
- ¯olist);
-
- add_cmd
- ("list", no_class, macro_list_command,
- "List all the macros defined using the `macro define' command.",
- ¯olist);
+ add_cmd ("macro", no_class, info_macro_command,
+ _("Show the definition of MACRO, and its source location."),
+ &infolist);
+
+ add_cmd ("define", no_class, macro_define_command, _("\
+Define a new C/C++ preprocessor macro.\n\
+The GDB command `macro define DEFINITION' is equivalent to placing a\n\
+preprocessor directive of the form `#define DEFINITION' such that the\n\
+definition is visible in all the inferior's source files.\n\
+For example:\n\
+ (gdb) macro define PI (3.1415926)\n\
+ (gdb) macro define MIN(x,y) ((x) < (y) ? (x) : (y))"),
+ ¯olist);
+
+ add_cmd ("undef", no_class, macro_undef_command, _("\
+Remove the definition of the C/C++ preprocessor macro with the given name."),
+ ¯olist);
+
+ add_cmd ("list", no_class, macro_list_command,
+ _("List all the macros defined using the `macro define' command."),
+ ¯olist);
user_macros = new_macro_table (0, 0);
}