binutils-gdb/gdb/testsuite/gdb.compile
Andrew Burgess e454ae416a gdb: allow quoted filenames for commands that have custom completion
This commit changes how GDB processes command arguments for the
following commands:

  compile file
  maint print c-tdesc
  save gdb-index

After this commit these commands will now expect their single filename
argument to be (optionally) quoted if it contains any special
characters (e.g. whit space or quotes).

If the filename does not contain any special characters then nothing
changes.  As an example:

   (gdb) save gdb-index /path/to/some/directory/

will work before and after this patch.  However, if the directory
name contains a white space then before this patch a user would write:

  (gdb) save gdb-index /path/to some/directory/

But this will now fail as GDB will consider this as two arguments,
'/path/to' and 'some/directory/'.  To pass this single directory name
a user must now do one of these:

  (gdb) save gdb-index "/path/to some/directory/"
  (gdb) save gdb-index '/path/to some/directory/'
  (gdb) save gdb-index /path/to\ some/directory/

This brings these commands into line with commands like 'file' and
'symbol-file', which have supported quoted filenames for a while.

The motivation for this change is to make handling of filename
arguments consistent throughout GDB.  We can't move to all commands
taking non-quoted filenames as the non-quoted style only allows for a
single argument.  Additionally, the non-quoted style doesn't allow for
filenames that end in white space (though this is probably pretty
rare).  So, if we want to have consistency the only choice is to move
towards supporting quote filenames.

Reviewed-By: Eli Zaretskii <eliz@gnu.org>
2024-09-07 20:28:59 +01:00
..
compile-constvar.c
compile-constvar.S
compile-cplus-anonymous.cc
compile-cplus-anonymous.exp
compile-cplus-array-decay.cc
compile-cplus-array-decay.exp
compile-cplus-inherit.cc
compile-cplus-inherit.exp
compile-cplus-member.cc
compile-cplus-member.exp
compile-cplus-method.cc
compile-cplus-method.exp
compile-cplus-mod.c
compile-cplus-namespace.cc
compile-cplus-namespace.exp
compile-cplus-nested.cc
compile-cplus-nested.exp
compile-cplus-print.c
compile-cplus-print.exp
compile-cplus-virtual.cc
compile-cplus-virtual.exp
compile-cplus.c
compile-cplus.exp
compile-ifunc.c
compile-ifunc.exp
compile-mod.c
compile-nodebug.c
compile-ops.c
compile-ops.exp
compile-print.c
compile-print.exp
compile-setjmp-mod.c
compile-setjmp.c
compile-setjmp.exp
compile-shlib.c
compile-tls.c
compile-tls.exp
compile.c
compile.exp