This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC] "New" command "!"
Cool!
Then cmdline can call shell cmd like ftp? That is great.
Thanks,
Hui
On Tue, Nov 8, 2011 at 17:37, Doug Evans <dje@google.com> wrote:
> Hi.
> I mentioned this before in an offhand comment,
> but now I'm submitting this RFC.
> I'll add tests,docs,NEWS if the code part is ok.
>
> Am I missing something?
> Is there a reason not to add this?
>
> 2011-11-08 ?Doug Evans ?<dje@google.com>
>
> ? ? ? ?New command "!", not just for xdb.
> ? ? ? ?* cli/cli-cmds.c (init_cli_cmds): Remove xdb_commands condition on
> ? ? ? ?adding "!" command, always add it.
> ? ? ? ?* cli/cli-decode.c (find_command_name_length): Recognize "!" as a
> ? ? ? ?command of length one.
>
> Index: cli/cli-cmds.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v
> retrieving revision 1.118
> diff -u -p -r1.118 cli-cmds.c
> --- cli/cli-cmds.c ? ? ?1 Nov 2011 14:51:22 -0000 ? ? ? 1.118
> +++ cli/cli-cmds.c ? ? ?8 Nov 2011 09:21:42 -0000
> @@ -1825,14 +1825,7 @@ Two arguments (separated by a comma) are
> ? if (xdb_commands)
> ? ? add_com_alias ("va", "disassemble", class_xdb, 0);
>
> - ?/* NOTE: cagney/2000-03-20: Being able to enter ``(gdb) !ls'' would
> - ? ? be a really useful feature. ?Unfortunately, the below wont do
> - ? ? this. ?Instead it adds support for the form ``(gdb) ! ls''
> - ? ? (i.e. the space is required). ?If the ``!'' command below is
> - ? ? added the complains about no ``!'' command would be replaced by
> - ? ? complains about how the ``!'' command is broken :-) ?*/
> - ?if (xdb_commands)
> - ? ?add_com_alias ("!", "shell", class_support, 0);
> + ?add_com_alias ("!", "shell", class_support, 0);
>
> ? c = add_com ("make", class_support, make_command, _("\
> ?Run the ``make'' program using the rest of the line as arguments."));
> Index: cli/cli-decode.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v
> retrieving revision 1.98
> diff -u -p -r1.98 cli-decode.c
> --- cli/cli-decode.c ? ?9 Oct 2011 22:21:42 -0000 ? ? ? 1.98
> +++ cli/cli-decode.c ? ?8 Nov 2011 09:30:22 -0000
> @@ -1127,11 +1127,16 @@ find_command_name_length (const char *te
> ? ? ?Note that this is larger than the character set allowed when
> ? ? ?creating user-defined commands. ?*/
>
> + ?/* Recognize '!' as a single character command so that, e.g., "!ls"
> + ? ? works as expected. ?*/
> + ?if (*p == '!')
> + ? ?return 1;
> +
> ? while (isalnum (*p) || *p == '-' || *p == '_'
> ? ? ? ? /* Characters used by TUI specific commands. ?*/
> ? ? ? ? || *p == '+' || *p == '<' || *p == '>' || *p == '$'
> ? ? ? ? /* Characters used for XDB compatibility. ?*/
> - ? ? ? ?|| (xdb_commands && (*p == '!' || *p == '/' || *p == '?')))
> + ? ? ? ?|| (xdb_commands && (*p == '/' || *p == '?')))
> ? ? p++;
>
> ? return p - text;
>