Get rid of "gdb_dirbuf" and use "getcwd (NULL, 0)"
authorSergio Durigan Junior <sergiodj@redhat.com>
Mon, 11 Sep 2017 04:54:33 +0000 (00:54 -0400)
committerSergio Durigan Junior <sergiodj@redhat.com>
Fri, 22 Sep 2017 17:28:16 +0000 (13:28 -0400)
commit43573013c9836f2b91b74b9b29dac35fdb41e06b
tree01586f996ba29e158508fa6b34960008f7ac8efa
parent6ec2e0f5bddc69d55e09fe56792edf7a109ff8ae
Get rid of "gdb_dirbuf" and use "getcwd (NULL, 0)"

Currently we have "current_directory" and "gdb_dirbuf" globals, which
means that we basically have two possible places to consult when we
want to know GDB's current working directory.

This is not ideal and can lead to confusion.  Moreover, the way we're
using "gdb_difbuf" along with "getcwd" is problematic because we
declare the buffer with "1024" elements hardcoded, which does not take
into account longer pathnames that are possible in many filesystems.
Using "PATH_MAX" would also not be a solution because of portability
problems.  Therefore, the best solution is to rely on the fact that
"getcwd (NULL, 0)" will "do the right thing" and return a
heap-allocated string containing the full path.  With the new "getcwd"
module from gnulib, it is now possible to do that without worrying
about breaking some host.

With this patch "current_directory" is now the only place to check for
GDB's cwd.

Reviewed-by: Pedro Alves <palves@redhat.com>
gdb/ChangeLog:
2017-09-22  Sergio Durigan Junior  <sergiodj@redhat.com>

* cli/cli-cmds.c (pwd_command): Use "getcwd (NULL, 0)".
(cd_command): Likewise.  Free "current_directory" before
assigning to it.
* main.c (captured_main_1): Use "getcwd (NULL, 0)".
* mi/mi-cmd-env.c (mi_cmd_env_pwd): Likewise.
* top.c (gdb_dirbuf): Remove global declaration.
* top.h (gdb_dirbuf): Likewise.
gdb/ChangeLog
gdb/cli/cli-cmds.c
gdb/main.c
gdb/mi/mi-cmd-env.c
gdb/top.c
gdb/top.h
This page took 0.026594 seconds and 4 git commands to generate.