Re: RFA: clean up edit_command

Michael Snyder
2008-07-29T02:48:13Z

On Mon, 2008-07-28 at 09:50 -0600, Tom Tromey wrote:
> I noticed some weird code in edit_command yesterday.
>
> Ordinarily I do not like to mix code changes and formatting fixes, but
> in this case, I think it is warranted... the code change here is just
> removing a dead loop. The formatting fixes are the usual: bad brace
> style, bad indentation, wrong comment style, spacing missing before
> "("... this function had them all :)
>
> Built and regtested on the GCC compile farm (x86-64).
>
> Ok?

OK, but don't you want to remove cmdlen as well?
Doesn't seem to be used any more...

>
> Tom
>
> 2008-07-28 Tom Tromey <tromey@redhat.com>
>
> * cli/cli-cmds.c (edit_command): Remove unused variables. Delete
> dead code. Fix indentation.
>
> diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
> index 8dc178e..16fbf3d 100644
> --- a/gdb/cli/cli-cmds.c
> +++ b/gdb/cli/cli-cmds.c
> @@ -615,12 +615,11 @@ edit_command (char *arg, int from_tty)
> struct symtab_and_line sal;
> struct symbol *sym;
> char *arg1;
> - int cmdlen, log10;
> - unsigned m;
> + int cmdlen;
> char *editor;
> char *p, *fn;
>
> - /* Pull in the current default source line if necessary */
> + /* Pull in the current default source line if necessary. */
> if (arg == 0)
> {
> set_default_source_symtab_and_line ();
> @@ -638,17 +637,22 @@ edit_command (char *arg, int from_tty)
> else
> {
>
> - /* Now should only be one argument -- decode it in SAL */
> + /* Now should only be one argument -- decode it in SAL. */
>
> arg1 = arg;
> sals = decode_line_1 (&arg1, 0, 0, 0, 0, 0);
>
> - if (! sals.nelts) return; /* C++ */
> - if (sals.nelts > 1) {
> - ambiguous_line_spec (&sals);
> - xfree (sals.sals);
> - return;
> - }
> + if (! sals.nelts)
> + {
> + /* C++ */
> + return;
> + }
> + if (sals.nelts > 1)
> + {
> + ambiguous_line_spec (&sals);
> + xfree (sals.sals);
> + return;
> + }
>
> sal = sals.sals[0];
> xfree (sals.sals);
> @@ -656,7 +660,7 @@ edit_command (char *arg, int from_tty)
> if (*arg1)
> error (_("Junk at end of line specification."));
>
> - /* if line was specified by address,
> + /* If line was specified by address,
> first print exactly which line, and which file.
> In this case, sal.symtab == 0 means address is outside
> of all known source files, not that user failed to give a filename. */
> @@ -686,10 +690,6 @@ edit_command (char *arg, int from_tty)
> if ((editor = (char *) getenv ("EDITOR")) == NULL)
> editor = "/bin/ex";
>
> - /* Approximate base-10 log of line to 1 unit for digit count */
> - for(log10=32, m=0x80000000; !(sal.line & m) && log10>0; log10--, m=m>>1);
> - log10 = 1 + (int)((log10 + (0 == ((m-1) & sal.line)))/3.32192809);
> -
> /* If we don't already know the full absolute file name of the
> source file, find it now. */
> if (!sal.symtab->fullname)
> @@ -704,8 +704,8 @@ edit_command (char *arg, int from_tty)
> /* Quote the file name, in case it has whitespace or other special
> characters. */
> p = xstrprintf ("%s +%d \"%s\"", editor, sal.line, fn);
> - shell_escape(p, from_tty);
> - xfree(p);
> + shell_escape (p, from_tty);
> + xfree (p);
> }
>
> static void