aboutsummaryrefslogtreecommitdiff
path: root/gdb/common/gdb_tilde_expand.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/common/gdb_tilde_expand.c')
-rw-r--r--gdb/common/gdb_tilde_expand.c95
1 files changed, 0 insertions, 95 deletions
diff --git a/gdb/common/gdb_tilde_expand.c b/gdb/common/gdb_tilde_expand.c
deleted file mode 100644
index 326df8f..0000000
--- a/gdb/common/gdb_tilde_expand.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Perform tilde expansion on paths for GDB and gdbserver.
-
- Copyright (C) 2017-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "common-defs.h"
-#include "gdb_tilde_expand.h"
-#include <glob.h>
-
-/* RAII-style class wrapping "glob". */
-
-class gdb_glob
-{
-public:
- /* Construct a "gdb_glob" object by calling "glob" with the provided
- parameters. This function can throw if "glob" fails. */
- gdb_glob (const char *pattern, int flags,
- int (*errfunc) (const char *epath, int eerrno))
- {
- int ret = glob (pattern, flags, errfunc, &m_glob);
-
- if (ret != 0)
- {
- if (ret == GLOB_NOMATCH)
- error (_("Could not find a match for '%s'."), pattern);
- else
- error (_("glob could not process pattern '%s'."),
- pattern);
- }
- }
-
- /* Destroy the object and free M_GLOB. */
- ~gdb_glob ()
- {
- globfree (&m_glob);
- }
-
- /* Return the GL_PATHC component of M_GLOB. */
- int pathc () const
- {
- return m_glob.gl_pathc;
- }
-
- /* Return the GL_PATHV component of M_GLOB. */
- char **pathv () const
- {
- return m_glob.gl_pathv;
- }
-
-private:
- /* The actual glob object we're dealing with. */
- glob_t m_glob;
-};
-
-/* See common/gdb_tilde_expand.h. */
-
-std::string
-gdb_tilde_expand (const char *dir)
-{
- gdb_glob glob (dir, GLOB_TILDE_CHECK, NULL);
-
- gdb_assert (glob.pathc () > 0);
- /* "glob" may return more than one match to the path provided by the
- user, but we are only interested in the first match. */
- std::string expanded_dir = glob.pathv ()[0];
-
- return expanded_dir;
-}
-
-/* See common/gdb_tilde_expand.h. */
-
-gdb::unique_xmalloc_ptr<char>
-gdb_tilde_expand_up (const char *dir)
-{
- gdb_glob glob (dir, GLOB_TILDE_CHECK, NULL);
-
- gdb_assert (glob.pathc () > 0);
- /* "glob" may return more than one match to the path provided by the
- user, but we are only interested in the first match. */
- return make_unique_xstrdup (glob.pathv ()[0]);
-}